使用buildroot搭建linux文件系統【轉】


本文轉載自:http://blog.csdn.net/metalseed/article/details/45423061

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

1:獲取buildroot 

git clone git://git.buildroot.net/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
  • 1

進入目錄,執行配置命令

cd /opt/buildroot-2015.02 make menuconfig
  • 1
  • 2
  • 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
  • 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
  • 1
  • 2
  • 3

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

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


免責聲明!

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



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