code style

2017年7月5日 星期三

Buildroot (2)設定

Cross-compilation toolchain:
Buildroot 提供兩種toolchain設定:
1. internal toolchain backend
使用Buildroot自帶的toolchain,支援uClibc-ng, glibc and musl,需選擇Linux kernel headers、C Library、GCC compiler、binutils等工具和版本。

2.external toolchain backend
有三個方式可選:
(1)Use a predefined externel toolchain profile,讓Buildroot去下載安裝
(2)Use a predefined externel toolchain profile,告訴Buildroot這toolchain放在系統那邊,不要去下載安裝
(2)Use a completely externel toolchain,通常這是指晶片商提供的toolchain,我們需要指定Toolchain path,Toolchain prefix and External toolchain C library。一般而言會提供一個設定檔,執行這個檔案,例如 make XXXX_defconfig。再執行make menuconfig,會看到在menu中已經設好了,唯一要手動的是,path和prefix。如果build的時後顯示找不到toolchain,大多是這兩個參數設錯。

例如:
BR2_TOOLCHAIN_EXTERNAL_PATH="/home/<user>/<work directory>/armv7-marvell-linux-gnueabihf/"

BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-marvell-linux-gnueabihf"

BusyBox:
可用default的BusyBox設定或使用BR2_PACKAGE_BUSYBOX_CONFIG這個參數來讀取已定義好的設定。也可使用 make busybox-menuconfig 來編輯BusyBox。

uClibc:
和BusyBox類似,使用BR2_UCLIBC_CONFIG來讀取已定義好的設定。也可使用 make uclibc-menuconfig 來編輯BusyBox。

Linux kernel:
使用BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG來讀取已定義好的設定
使用BR2_LINUX_KERNEL_USE_DEFCONFIG來使用default值
使用 make linux-menuconfig 來編輯

Barebox:
U-Boot二代,使用上和Linux kernel類似
使用BR2_LINUX_TARGET_BAREBOX_USE_CUSTOM_CONFIG來讀取已定義好的設定
使用BR2_LINUX_TARGET_BAREBOX_USE_DEFCONFIG來使用default值
使用 make barebox-menuconfig 來編輯

U-Boot:
U-Boot板本要2015.04以上
使用BR2_LINUX_TARGET_UBOOT_USE_CUSTOM_CONFIG來讀取已定義好的設定
使用BR2_LINUX_TARGET_UBOOT_USE_DEFCONFIG來使用default值
使用 make uboot-menuconfig 來編輯

沒有留言:

張貼留言