Yocto 的封存

Note: how to apply Shell environments into bitbak/yocto project

Posted in Yocto with tags , on 2017 年 07 月 26 日 by Kun-Yi

要讓 bitbake 可以吃到 shell environments 還要下一個
export BB_ENV_EXTRAWHITE 才行
如要指定 DL_DIR

export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE DL_DIR"

這樣才能透過 .bashrc 去指定想要的 DL_DIR
這樣才不用每個人去改自己的 local.conf

如果是 team work 可以指定一台NFS servers 放 DL_DIR, SSTATE_DIR 等目錄,這樣可以有效減少能源消耗跟避免讓電腦做一些已經做過的事情

 

廣告

Note: Porting Boot2Qt to Customer board

Posted in Linux with tags , , , on 2017 年 01 月 16 日 by Kun-Yi

因為最近公司沒有特別指定讓我作啥 但是有些來自PM/Sales 的訊息是有Qt5 的需求, 做了一年的Yocto project 終於對Embedded Linux 算是也有大略認識, 然後自己先從NXP/Freescale i.MX6 跟 Intel Apollo lake 的Yocto BSP 玩起, 先把Qt5 在上述廠商提供的YoctoBSP 測試一遍, 掌握了一些要注意的基本事項後 基本上就是Graphics/Input subsystems
在X Windows 上還測過 MatchBox 換成 LXDE 之後應該會試著把LxQt 與 Meta

其他的Graphics backend 像是 Wayland/XWayland/FB 也都基本測一下

然後開始看寫Qt Application 的SDK 確注意到 Qt有個 QT Device creation 的商業版本, 本來看到是商業版本不太想管了, 但是卻看到 網站上的一篇 Building Your Own Embedded Linux Image 發現它是一個OpenEmbedded recipes  而且預先支援的的版子就有我手上同一系列的版本 就好奇研究一下, 基本上跟porting 一個Yocto bsp 到自訂的版子上沒啥差別, 因為基本上Qt5 要有的就是那個Graphics backend 基本上只要有OpenGL ES 2 含以後版本的支援, 應該不是難事

下面是我fork 官網的boot2qt 去加上我公司自己的一塊版本 imx6dltinto 的測試版本, 基本上我只改了kernel/bootloader 指向我放在同一個帳號上的 repositories 其他照舊, kernel/bootloader 用的是NXP/Freescale 最後release 的 4.1.15_v2.0.1 patch

https://github.com/UBIQCONN/meta-boot2qt/commits/krogoth

基本上參考Qt網站上的那篇文章 把 boot2qt 從安裝 Device Creation 改成 底下

git clone https://github.com/UBIQCONN/meta-boot2qt boot2qt
cd boot2qt
b2qt-init-build-env help

其他步驟相同

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: 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/