Configure

buildboot的資料夾『buildroot/board/』裡面有許多內建的組態,如下:

可以看到我們需要的組態是『raspberrypi3』,根據官方的release note上,這個config是2016年5月所release的:

如果想要知道目前這個版本到底支援多少的default config的話,可以用以下指令來觀察:

make list-defconfigs | less

在文件『buildroot/board/raspberrypi3/readme.txt』上面有明確的定義要怎麼去使用這個組態。

vim board/raspberrypi3/readme.txt

官方線上文件:
https://git.busybox.net/buildroot/tree/board/raspberrypi/readme.txt

這些預設的組態都是最小限度的安裝,假設現在我們要使用『raspberryPi3』的default config的話,就必須使用底下語法:

make raspberrypi3_defconfig

然後系統就會將預設的『.config』檔給覆蓋過去,所以如果你想要自行修改組態的話,可以使用:

make menuconfig
make nconfig
make xconfig
make gconfig

下圖是menuconfig的介面示意圖:

當然上列的每個config功能都需要安裝相對應的套件才能運作:

config 相對應套件
menuconfig ncurses
nconfig ncurses
xconfig QT
gconfig Gtk

Create your own config

上面我們講解過要如何使用buildroot所提供的預設組態,那假設我想要建制自己客製化的組態,那要怎麼弄?

首先,假設現在你的『.config』檔案已經是你修改過後的結果了,接下來修改『.config』,將選項『BR2_DEFCONFIG』修改一下,最後面那個檔名改成你要的,假設將:
BR2_DEFCONFIG="/workspace/buildroot/configs/raspberrypi3_defconfig"
改成
BR2_DEFCONFIG="/workspace/buildroot/configs/test_defconfig"

然後下指令:
make savedefconfig

你就會發現你的設定被存在configs裡面了:

接下來要用它的話,只要直接用:
make test_defconfig
就好了,這樣看起來好像只是直接將『.config』複製到『buildroot/configs/』裡面,但是其時他還是有它的相依性,所以最好還是用『savedefconfig』比較好。

Configuration hierarchy

在buildroot裡面的組態是用kconfig的格式,所以所有選項都會有像樹枝狀的結構:

(來源 : free-electrons )

就像上圖一樣,舉個『Target options』來說,這個選項主要的組態是『buildroot/arch/Config.in』,是用kconfig語言寫的,用來描述target board上面的ABI,所以底下又會有許多的子結構,像是『Config.in.arm』和『Config.in.MIPS』等等。

results matching ""

    No results matching ""