Note: To clone special branch for Git operation

Posted in git, SCM(Software Configuration Management) with tags on 2016 年 01 月 30 日 by Kun-Yi

起因是最近有個新案子在跑 用的是Yocto/OE 的Build environments 他有一個設計就是針對某的vendors 的BSP 可以將patch 透過寫script 方式在Buildtime時一個一個打上去, 也可以自己透過SCM tools 去拉特定的 revision,一般的建議是用patch 一個一個打,可是我覺的這樣很蠢呀! 尤其是kernel 明明廠商就是有git repo. 可以拉了,當然因為你沒辦法推回去 但是只要自己clone一份就好。

但是事情沒有我這個笨人想的那樣簡單,因為目前是多方合作的案子,所以由客戶方在Bitbucket 上開了一個 team group 共同協作,當我好不容易把kernel repo 搬到bitbucket 上時,竟然發現Bitbucket 出現該repo. 超過2GB 所以只能讀不能寫的訊息,按照線上說明去做了一些步驟如透過BFG去過濾大於某一個大小的檔案等方法,但是都一無所獲。不由得想到前幾天看到的一個方法

  1. git init #initialized a empty repository
  2. git remote add -t <branch> <name> <url>     # track a special branch
    or git remote add -m <brancn> <name> <url> # track a special branch to master
  3. git checkout

經過測試後該 repo 果然可以有效降為只剩下 1GB 大小 雖然 Bitbucket 還是會警告 但是最少還是可以 commit 到 2GB 的狀況, 我個人是覺的應該不會出現被我commit到出現 repository 增長到 2GB 的慘事才是

update: 剛不知道為啥 又不成功 但是在 git官網看到 doc 有寫 下面這段

Imitate git clone but track only selected branches

$ mkdir project.git
$ cd project.git
$ git init
$ git remote add -f -t master -m master origin git://example.com/git.git/
$ git merge origin

Note: learning javascript using NodeJS

Posted in Javascript with tags , on 2016 年 01 月 11 日 by Kun-Yi

最近開始想跟上時代腳步 開始練一下Javascript 配合未來趨勢,底下是我看某些教材練習的片段, person 是一個 object 宣告 可以直接用for 去列舉屬性還蠻方便做很多meta programming 而整數的sort 從小排到大 則是跟C 語言的qsort 一樣要提供一個compare function 只是這裡是沒有名稱的形式 而且傳回定義同C語言

var person = {
name : “Jules Verne",
job : “Author",
year_of_birth : 1828,
year_of_death : 1905
},
prop;

for (prop in person)
{
console.log(“His " + prop + " is " + person[prop]);
}

var arr = [5, 2, 3, 4, 1];

arr.sort(function (a, b) {
console.log (“a:" + a + “, b:" + b + “, a – b:" + (a – b));
return a – b;
});
console.log(arr);

執行結果如下

His name is Jules Verne
His job is Author
His year_of_birth is 1828
His year_of_death is 1905
a:5, b:2, a – b:3
a:5, b:3, a – b:2
a:2, b:3, a – b:-1
a:5, b:4, a – b:1
a:3, b:4, a – b:-1
a:5, b:1, a – b:4
a:4, b:1, a – b:3
a:3, b:1, a – b:2
a:2, b:1, a – b:1
[ 1, 2, 3, 4, 5 ]

Note: Test build Legato Platform of Sierra on Ubuntu 14.04

Posted in Hardware, Works, 未分類 with tags on 2015 年 12 月 29 日 by Kun-Yi

只需要在Sierra Wireless 上註冊帳號就可以下載他的 Source code
它現在採主流 Embedded Linux 的開發環境 Yocto Project,解開後很簡單只需下 make 就可以完成 喔對了網頁上會寫要裝哪些套件成功 build code

但是如果按照這樣的步驟會發現有兩個 package 會出現問題 原因是他在bb 的function 中呼叫了 bash 的內建函式 而bb是呼叫/bin/sh 在 Ubuntu 上預設的 sh 是dash 所以會不能正確執行, 需要做一個work around 當然你也可以手動砍掉symolically 在重新建立連到 bash 的link 也是可行的

 

  • Check that /bin/sh (ls -l /bin/sh) is not symbolically linked to dash. “dash" is a POSIX compliant shell that is much smaller than “bash" — however some broken shell scripts still make use of bash extensions while calling into /bin/sh. To work around this issue call “sudo dpkg-reconfigure dash" and select No when it asks you to install dash as /bin/sh.

 

Note: U-Boot update read from SD card then write into SPI Flash

Posted in ARM, uboot, 未分類 with tags , on 2015 年 11 月 30 日 by Kun-Yi

這兩天拿到一張 IMX 的 SMARC 版子,想要弄Android 但是只有Freescale 的codebase ,所以從u-boot 開始搞起。

接上 console 後,測試版上的u-boot 發現需要更新到新版本,研究一下u-boot 現在可以自我更新,嘗試了一下發現按照下面的command 順序即可

  1. mmc dev 1  # 切換mmc 到那一個slot
  2. mmcinfo   # 可以確認是否有認到sdcard
  3. fatload mmc 1 0x10800400 u-boot.bin # 讀SD card 上的u-boot.bin 到DRAM中, 讀完會有檔案大小
  4. sf probe
  5. sf erase 0 0x200000 # erase all
  6. sf write 0x10800000  0 0x58000 # 0x58000 是檔案大小 + 1024(0x400), 注意第三步已經偏移了 0x400, 這是IMX6的需求
  7. reset

Note: Freescale 3.14.28-1.0.1 release kernel & u-boot

Posted in Linux, 未分類 with tags , on 2015 年 11 月 19 日 by Kun-Yi

一開始的工作應該是改這兩個kernel & u-boot東西 還要看一下怎樣做才正確

Bitbake 的 Recipes

  • ./yocto_3.14.28-1.0.1/sources/meta-fsl-bsp-release/imx/meta-fsl-arm/recipes-bsp/u-boot/u-boot-imx_2014.04.bb
  • ./yocto_3.14.28-1.0.1/sources/meta-fsl-bsp-release/imx/meta-fsl-arm/recipes-kernel/linux/linux-imx_3.14.28.bb

透過 Recipes 會把Source code 解壓縮或是透過git clone/pull 的方式弄到下面對應的build folder 裡面去,主要看 Recipes 的寫法

  • ./yocto_3.14.28-1.01/build/tmp/work/imx6dlsabresd-poky-linux-gnueabi/u-boot-imx/2014.04-r0/git
  • ./yocto_3.14.28-1.01/build/tmp/work/imx6dlsabresd-poky-linux-gnueabi/linux-imx/3.14.28-r0/git

 

Tips: Yocto project how to speed build time

Posted in Linux, 未分類 with tags , on 2015 年 11 月 19 日 by Kun-Yi

這篇是從 Embedded Linux Projects Using Yocto Project Cookbook 上看來的, 今年爽了半年沒上班,週一終於認命回辦公室上班了。老闆指派的任務就是看一下i.mx6 系列的 linux 環境,而且已經有新同事接手,我可以慢慢來:P

在書上第四頁,就有提到如果Build time 對你而言很重要,可以透過下列方式提升(不過我想這點對大家都很重要才是,畢竟誰也不想要花太多時間等待,尤其是老闆、PM與客戶們更是如此)

  1. 第一步指定Build 目錄使用獨立的檔案系統分割區,甚至是獨立速度夠快的磁碟機
  2. 接著這在這個分割區上使用ext4形式的檔案系統,但是關掉日誌功能,了解斷電等因素會造成資料遺失的風險
  3. 掛上這個檔案系統的時,使用下面的參數,關掉存取檔案的時間戳記,關掉寫入防護措施,延遲寫入時間
    noatime, barrier=0, commit=6000  # to edit /etc/fstab
  4. 不要使用網路磁碟機

要注意的是因為2, 3的步驟會造成ext4 檔案系統的不穩定與失去可靠度,不過因為build folder 是很簡單可以重新產生的暫時性資料所以不需要擔心這件事情

ref. https://notesfromheck.wordpress.com/2012/09/01/mount-options-for-a-faster-ext4/

記:永遠的山

Posted in Travel with tags , , on 2015 年 11 月 06 日 by Kun-Yi

去年的11月底因為許多工作接近到一個段落,所以今年春節假期,因為前後的連假加上自己的特休,原本計畫是一共休20天左右,目標是獨自去逛一下 EBC (Everest Base Camp),但是後來因為氣候因素與加德滿都機場因為土航滑出跑道關閉,所以最後變成了一個25天的假期。

因為是很晚決定要去EBC, 所以很快的找了一些資料,準備禦寒衣物跟訂機票,拜馬航因為飛安紀錄不佳的關係,在這黃金假期時間還因此買到相對便宜的機票,而且因為去程轉機超過6hrs, 馬航在吉隆坡還有免費過境旅館可以使用,回程則是加德滿都到吉隆坡航段,被幸運的升等變成商務艙,真是賺到了!

因為不熟悉EBC要準備哪些東西,所以出發前,是透過email 尋問加德滿都某個朋友介紹的旅行社,要準備哪些東西與證件另外還代訂Lukala的來回機票,不過後來發現實際上,不需要透過任何旅行社,因為在Lukala 往EBC的路上就可以辦TIMS Permitted(Trekker’s Information Management System),本來以為一定是要在加德滿都的Thamal 辦,但是實際上是不需要的 位於Lukala 的路上會有檢查站要求你出示TIMS時再辦就可以,除了這個TIMS 還有一張國家公園進入許可是只能在路上辦的。

但是尼泊爾今年四月發生了大地震,這幾天看了一下大多數的區域都已經可以接待旅客了,現在又開始想念山上的日子,每天就是呼吸新鮮空氣,然後靠著雙腳朝著目標前進,遇到路上的徒步者,大家相互打個招呼,累了就到TeaHouse 喝杯茶歇歇 遠離世上塵囂

因為是農曆新年假期期間,這幾年強國崛起,所以路上有很大一部份是強國人。有很拼命三郎的強國人,也有啥都搞不清楚狀況的, 有小女生一個人出來,也有那種網路上論壇找的團,走到一半就大吵起來的狀況,我這旁觀者就把這當成旅途的點綴!

DSC_6353

這張照片是從市區奔跑前往Bhaktapur 途中遇到的場景,加德滿都峽谷因為地形因素,又加上各種人為污染所以天空常常是濛濛的,而當我穿著拖鞋與藍色的UA緊身褲奔跑在街道上時,非常引人側目,因為傳統的尼泊爾人是不常見穿著緊身運動服在街道上出沒的怪人,所以特別吸引眼球,好險我這把年紀已經練成有城牆厚的臉皮

DSC_6042
南崎巴扎(Namche Bazaar) 是古時連接西藏與尼泊爾之間的重要城鎮,現在則是前往EBC的必經之地,是往EBC路上最大的村落。海拔約3400m 也是一個高度適應的休息站 通常一般旅遊建議是第三天留在這裡休息一天,停留在適應高度時可以前去附近的村落或是前去世界上最高的五星級飯店 Everest View Hotel 逛逛!

DSC_5813

這就是下過雪後的南崎巴扎(Namche Bazaar)

DSC_5860

這張照片就是前往Everest View Hotel 途中,在照片的中間就是Everest 也就是聖母峰,而飯店就在中間前方的平台上,很幸運的是我前往的時候剛下完雪 所以一片雪白