system
可以由 GitHub 或是 Gerrit 下載,如果要參與開發則要在 Gerrit 上。
Yocto 需要 local.conf
這個編譯設定檔才能知道需要編譯的套件、目標、系統參數等,為了方便可以先產生專案提供的範例,再依需求修改。
執行後就會產生 build
資料夾並進到裡面,而預設的範例設定檔就會出現在 build/conf/local.conf
。
local.conf
MACHINE
代表型號,可以參考 meta-raspberrypi/conf/machine
GPU_MEM
代表要預留給 GPU 的 Memory 大小,單位是 MB,這個值過大會佔用運算效能,在這邊應該很少有機會使用 GPU,所以先給個最小值 16 MB。
以 Raspberry Pi 2 為例,可以修改成以下內容。
預設的 flash 大小只有 32 KB,不足以塞進這麼多套件,所以建議調整 flash 大小,目前必須修改 source code 來達成。
在 build
資料夾裡使用 bitbake
一邊下載一邊編譯,此專案預設有使用 ccache
,只有第一次需要花較多時間,之後進行小修改都可以很快速的完成編譯。
這裡只要用 dd
對 SD 卡的 device file 寫入即可,通常是 /dev/sda
、/dev/sdb
…,但所有儲存裝置都有可能以這個名稱出現,一旦寫入 device 所有內容包含分割表都會被洗掉,要特別小心。另外寫入時間有點久是正常的,dd
是一小塊一小塊區域寫入指定位置的,這裡一樣以 Raspberry Pi 2 為例。
lsblk
確認。
接上網路線及電源線後即可開機並自動取得 IP,預設有開啟 Port 22 跟 443,應該是可以透過 SSH 或是網頁 HTTPS 登入,帳號是 root,密碼是 0panBmc (開頭是數字 0,不是英文 O)。
下次開機會發現在 build
資料夾直接用 bitbake
編譯會找不到路徑,原因是 bitbake
是在設定編譯環境時 export 到環境變數的,所以必須回到 repository 根目錄要再次設定環境,此時不會蓋掉原本存在的 local.conf
。