(六)buildroot使用詳解

爲何要使用buildroot?html

   (文件系統搭建,強烈建議直接用buildroot,官網[http://buildroot.uclibc.org/]上有使用教程很是詳細)文件系統一般要包含不少第三方軟件,好比busybox,udhcpc,tftp,apache,sqlite,PHP,iptable,DNS等,爲了不繁雜的移植工做。buildroot應運而生。經過menuconfig配置咱們須要的功能,不須要的功能去掉,再執行make指令編譯,buildroot就會自動從指定的服務器上下載源碼包,自動編譯,自動搭建成咱們所須要的嵌入式根文件系統。讓咱們的工做效率成百倍的提高。linux

 

1:獲取buildrootsql

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

 

 

2:配置buildroot服務器

將源碼包複製到XXX目錄下,並解壓tar -xvf buildroot-2015.02.tar.gz工具

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

執行:make ARCH=arm menuconfigorm

配置界面以下:sqlite

 

 

2.1 :進入target optionshtm

 

配置CPU參數:little endian 指的是小端存儲;二進制格式是ELF;CPU是Cortex-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等)的文件系統就作好了,真是利器,讓很來須要花不少時間和精力的移植工做變得簡單並且高效。

相關文章
相關標籤/搜索