Archive for the 未分類 Category

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/

2014 in review, 還有34000人次瀏覽, 寫了27篇Blogs

Posted in 未分類 on 2014 年 12 月 30 日 by Kun-Yi

WordPress.com 統計資料小幫手們已準備好這個網誌的 2014 年度報告。

此為摘要:

雪梨歌劇院的演奏廳可容納 2,700 名觀眾。這個網誌在 2014 年擁有約 34,000 次瀏覽次數。如果這是在雪梨歌劇院舉辦的演唱會,可能需要將 13 場門票賣光的表演場次加起來,才有這麼多觀眾。

按一下這裡查看完整的報告。

Note: Setting a folder permission with a InnoSetup setup package

Posted in 未分類 with tags , , on 2014 年 12 月 26 日 by Kun-Yi

承上篇 該 Service 實際上安裝是透過Local Service Account 執行, 但是安裝時該目錄並不會有 Local Service 的存取權限, 所以會造成Service 啟動失敗

此時需要設定 Folder 的 permssion 但是InnoSetup 提供的 permission 設定 不知道是我太笨 看不懂還是怎樣, 怎麼試就是做不到我想要的, 後來找了一下工具 發現有隻 SetACL 的程式 可以幫忙處理這些設定, 但是早期是Open Source/LGPL 的授權 後來的版本已經更改為需要另外要求授權, 對我來說太麻煩

又找了找 發現 Microsoft 可能有聽到用戶的心聲,  Win7 已經提供了 Icacls 來處理 permission 設定, 而經過測試 同前篇需要將指令寫在一個 batch 才行, 下面是我用到的寫法, %1 是 設定的 Folder/File 而"Local Service:(OI)(CI)(RX)" 是 SDDL 的寫法, 簡單講(RX) 是讀與執行, (OI)是 Object Inherit, (CI) 則是 Container Inherit,

icacls "%1" /grant "Local Service:(OI)(CI)(RX)" >> NULL

Note: After start an service when use InnoSetup install a service

Posted in 未分類 with tags , , on 2014 年 12 月 26 日 by Kun-Yi

這陣子在做一個 Windows 上用的 Toolkit 其中有個功能需要做在Service 中, 需求是在安裝完畢需要自動啟動 service

用的Setup Package 程式是 InnoSetup, InnoSetup 是一個常見用來做 Setup package 的工具集,處理一般應用程式的安裝非常強大, 但是針對Service 方面的支援很少!

而我的 Service 的開發基本上是 透過改寫Microsoft 提供的 simple code, 這個Sample code 做了自我安裝, 但是沒有自我啟動的功能, 我又不想花時間去寫 code implement 自我啟動

查了一下 Windows 目前內建的工具程式有隻叫作 “sc" 可以透過 sc start <service name> 這樣啟動

因此就直接把 他加進 InnoSetup 的Script 中的[Run] Section 但是實際測試 發現沒有作用, 但是經過我反覆測試發現把該command 放到 batch file 中, 然後一樣透過 [Run] setcion 中執行 該 batch 就可以生效了