使用buildroot搭建linux文件系統

(文件系統搭建,強烈建議直接用buildroot,官網上有使用教程非常詳細buildroot官網) 
文件系統通常要包含很多第三方軟件,比如busybox,tslib,qt,vim,交叉編譯工具等,爲了避免繁雜的移植工作。buildroot應運而生。通過menuconfig配置我們需要的功能,不需要的功能去掉,再執行make指令編譯,buildroot就會自動從指定的服務器上下載源碼包,自動編譯,自動搭建成我們所需要的嵌入式根文件系統。

1:獲取buildroot 
我們可以從buildroot官網(http://buildroot.uclibc.org/download.html)獲取buildroot源碼包,buildroot基本上三個月更新一次,這裏我們實際下載的源碼包是buildroot-2015.02.tar.gz

2:配置buildroot 
將源碼包複製到/opt目錄下,並解壓

tar -xvf buildroot-2015.02.tar.gz
  • 1

進入目錄,執行配置命令

cd /opt/buildroot-2015.02
make menuconfig
  • 1
  • 2

配置界面如下: 
這裏寫圖片描述

2.1 :進入target options

將Target Architecture配置爲ARM(littlt endian),將Target Architecture Variant配置爲cortex-A9,將Target ABI配置爲EABI,將ARM instruction set配置爲ARM,再退回上一界面

這裏寫圖片描述

2.2:進入toolchain 
將Toolchaintype配置爲Externaltoolchain,然後在Toolchain中選擇交叉編譯工具的版本,如ARM 2013.11,在Toolchain origin中選擇Toolchain to be downloaded andinstalled,後面編譯時,buildroot將會自動下載對應的工具鏈並自動安裝。選中Enable MMUsupport,退回上一界面 
這裏寫圖片描述 
2.3:進入System configuration 
在system hostname一欄中輸入開發板的名稱,如metal box,在system banner中可輸入歡迎語,如welcome to metal world。在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。 
這裏寫圖片描述 
再進入下面的getty options選項: 
將TTY port配置爲ttySAC3,將baudrate配置爲115200,對應開發板的打印串口。 
這裏寫圖片描述 
再返回上一界面,將Root filesystem overlay directories設置爲board/metalboard/exynos4412/rootfs-overlay,這裏表示該路徑下的所有文件將會無條件覆蓋buildroot默認的相關路徑文件。配置這一步的同時,我們一併將開發板光盤中的相關文件拷貝到buildroot對應的board目錄。返回上一界面。 
這裏寫圖片描述 
2.4:進入Filesystem images 
選中ext2/3/4root filesystem,然後在ext2/3/4variant中選擇ext4,選中tar the root filesystem,最後保存當前的配置並退出,配置完成。大家也可以根據自己的實際需要進行配置。 
這裏寫圖片描述

在target packages目錄下,有無限的寶藏供大家使用,從此和移植狗say goodbye

3:編譯buildroot 
只需在buildroot的根目錄下執行make指令即可編譯整個buildroot。第一次編譯可能會彈出一些錯誤,這基本上是沒有安裝一些第三方工具造成的。按照提示安裝即可,有問題問度娘。 
開始編譯的時候,buildroot會自動下載所需要的相關源碼包,自動編譯安裝。

3.1:下載的源碼包在buildroot根目錄的dl目錄下 
這裏寫圖片描述 
3.2:編譯出來的各種文件會放在buildroot目錄下面的output目錄 
這裏寫圖片描述 
3.2.1: 需要燒寫的最終的映像文件在output/images目錄下 
這裏寫圖片描述 
3.2.2: output/target目錄下爲對應未打包的文件系統,在調試時可藉助於該目錄下的文件分析原因 
這裏寫圖片描述 
4: 編譯完成,燒寫測試。 
用fastboot燒入開發版

fastboot  flash  system  rootfs.ext4
  • 1

啓動開發板看打印信息

Starting mdev...
/etc/init.d/S10mdev: line 9: /proc/sys/kernel/hotplug: No such file or directory
mdev: /sys/class: No such file or directory
  • 1
  • 2
  • 3

如上述錯誤爲找不到hotplug文件,直接刪除s10mdev文件第九行即可。其他情況類似分析,有問題問度娘。通常不會有大問題。

藉助buildroot一個含有各項所需要包(busy box,vi,qt,ffmpeg等)的文件系統就做好了,真是利器,可以讓工程師專注於核心內容的開發,避免繁瑣的重複過程。

轉自:https://blog.csdn.net/metalseed/article/details/45423061



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章