趁著今年目標希望自己可以在Raspberry pi建構專屬的作業系統環境(包含學習一下linux kernel),因此要些來學習如何透過Buildroot來編譯自己的系統並客製化了。
Raspberry pi Logo |
Buildroot是目前蠻熱門的嵌入式系統編譯平台,主要是把所有嵌入式系統該需要的套件工具都整合在一起,開發者只需要根據這套環境就可以簡單去進行開發系統與編譯相應套件。
我們可以透過Buildroot官網(https://buildroot.uclibc.org/)去下載source code,同樣也可以透過git直接下載。
git clone git://git.buildroot.net/buildroot
另外Buildroot平台建立也需要事前安裝相關的套件與工具才能編譯,這部分可以參考手冊(https://buildroot.org/downloads/manual/manual.html)的2.1. Mandatory packages中了解。
下載Buildroot以後並安裝相應套件以後,只需要在編譯時使用raspberry pi的設定就可以開始進行系統編譯,以在HOST為ubuntu的環境下用buildroot編譯pi2為例如下:
cd buildroot/
make raspberrypi2_defconfig
make clean; make
然後就可以做別的事情了。
完成以後,就可以看到output資料夾,裡面是raspberry pi2專用的編譯工具與系統,同時在output/images內的sdcard.img就是燒至raspberry pi2的image。
後續的就可以按照raspberry pi燒錄流程進行系統安裝了。
如果是非pi2 model的,也可以參考buildroot/configs資料夾下是否有支援相應開發版的設定,
目前來說raspberry pi所有型號都有支援(pi0即pi zero)就是。
至於系統成功建置完成後,接下來就是學習如何透過Buildroot去編譯raspberry pi可使用的套件與應用程式了。
P.S
由於是使用預設config去編譯系統,通常燒進去開機後是沒有方式連進raspberry pi的,個人是建議購買TTL to USB的工具透過Serial方式進行操作。
或著就是執行make以前先透過make menuconfig -> Target packages內選擇ssh套件,這樣系統建置出來時就會同時包含ssh套件了,要支援wifi功能也是如此設定。
不過如果是特殊一點的驅動就需要自己porting了,這也是學習如何透過Buildroot去編譯相應的kernel driver好機會。
沒有留言:
張貼留言