buildroot使用詳解


為什么要使用buildroot?

   (文件系統搭建,強烈建議直接用buildroot,官網[http://buildroot.uclibc.org/]上有使用教程非常詳細)文件系統通常要包含很多第三方軟件,比如busybox,udhcpc,tftpapache,sqlite,PHP,iptable,DNS等,為了避免繁雜的移植工作。buildroot應運而生。通過menuconfig配置我們需要的功能,不需要的功能去掉,再執行make指令編譯,buildroot就會自動從指定的服務器上下載源碼包,自動編譯,自動搭建成我們所需要的嵌入式根文件系統。讓我們的工作效率成百倍的提升。

 

1:獲取buildroot

我們可以從buildroot官網(http://buildroot.uclibc.org/download.html)獲取buildroot源碼包,buildroot基本上三個月更新一次,目前最新是buildroot-2016.11.tar.gz,這里我們實際下載的源碼包是 buildroot-2016.02.tar.gz。建議下載最新的版本,因為新的版本包含更多的第三方工具軟件。

 

 

2:配置buildroot

將源碼包復制到XXX目錄下,並解壓tar -xvf buildroot-2015.02.tar.gz

進入目錄,執行配置命令:cd /XXX/buildroot-2015.02

執行:make ARCH=arm menuconfig

配置界面如下:

 

 

2.1 :進入target options

 

配置CPU參數:little endian 指的是小端存儲;二進制格式是ELFCPUCortex-A5;交叉工具支持eabihf;浮點書處理采用VFP-v4;采用精簡指令集Thumb2

配置如下圖所示:

 

 

2.2:進入toolchain

Toolchaintype配置為Externaltoolchain,然后在Toolchain中選擇交叉編譯工具的版本,如Custom toolchain,在Toolchain origin中選擇Pre-installed toolchain,后面編譯時,buildroot將會根據Toolchain path找到我們的交叉編譯工具。選中Enable MMU support,退回上一界面;

 

 

2.3:進入System configuration

system hostname一欄中輸入開發板的名稱,如ZHD-A5,在system banner中可輸入歡迎語,如welcome to Hi-Target。在Init system中選擇BusyBox,在/dev management中選擇Dynamic using mdev,即使用mdev動態加載設備節點的方式,然后在Path to thepermission tables中選擇設備節點的配置表,這里我們一定要選擇system/device_table_dev.txt,否則后面在dev目錄下將不會生成各 種設備節點。當然我們也可以手動的配置該文件,添加必要的節點或刪除不需要的節點。Root password為配置進入linux控制台終端后的密碼,為空則登錄時不需要密碼,默認登錄用戶名為root。選中Run agetty(login prompt)after boot。Remount root filesystem read-write during boot表示可以進行動態的掛載;

 

 

再進入下面的getty options選項:

TTY port配置為ttyS0,將baudrate配置為115200,對應開發板的打印串口。

 

2.4:進入Filesystem images

選中ext2/3/4root filesystem,然后在ext2/3/4variant中選擇ext4,選中tar the root filesystem,最后保存當前的配置並退出,配置完成。大家也可以根據自己的實際需要進行配置。

 

 

2.5:進入target packages

target packages目錄下,有一大堆第三方的開源工具軟件,基本上嵌入式上可能會用到得或用不到的,在這里都用,如果你想要把這個工具軟件包含進固件里面,很簡單,只要在這個軟件的名稱前面打個*星號,表示要編譯這個軟件到固件里面,從此和刀耕火種的源代碼移植say goodbye,今入工業文明時代。

下面以移植DNS服務器bind為例,做一個簡單的說明:

 

 

3:編譯buildroot

只需在buildroot的根目錄下執行make指令即可編譯整個buildroot。

編譯時,buildroot會自動下載第三方軟件的源碼,我們只要等一下,讓buildroot自己下載編譯。編譯完成后,會在output/image目錄下面生成固件的鏡像包,把這個包拷貝到RTK的platform目錄下,然后解壓,就可以使用了。在output/target下也可以看根文件,包含的內容如下所示:

 

借助buildroot一個含有各項所需要包(busybox,apache,PHP,bind等)的文件系統就做好了,真是利器,讓很來需要花很多時間和精力的移植工作變得簡單而且高效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM