(文件系統搭建,強烈建議直接用buildroot,官網上有使用教程非常詳細buildroot官網)
文件系統通常要包括很多第3方軟件,比如busybox,tslib,qt,vim,交叉編譯工具等,為了不復雜的移植工作。buildroot應運而生。通過menuconfig配置我們需要的功能,不需要的功能去掉,再履行make指令編譯,buildroot就會自動從指定的服務器上下載源碼包,自動編譯,自動搭建成我們所需要的嵌入式根文件系統。
1:獲得buildroot
我們可以從buildroot官網(http://buildroot.uclibc.org/download.html)獲得buildroot源碼包,buildroot基本上3個月更新1次,這里我們實際下載的源碼包是buildroot⑵015.02.tar.gz
2:配置buildroot
將源碼包復制到/opt目錄下,并解壓
tar -xvf buildroot-2015.02.tar.gz
進入目錄,履行配置命令
cd /opt/buildroot-2015.02
make menuconfig
配置界面以下:
2.1 :進入target options
將Target Architecture配置為ARM(littlt endian),將Target Architecture Variant配置為cortex-A9,將Target ABI配置為EABI,將ARM instruction set配置為ARM,再退回上1界面
2.2:進入toolchain
將Toolchaintype配置為Externaltoolchain,然后在Toolchain當選擇交叉編譯工具的版本,如ARM 2013.11,在Toolchain origin當選擇Toolchain to be downloaded andinstalled,后面編譯時,buildroot將會自動下載對應的工具鏈并自動安裝。選中Enable MMUsupport,退回上1界面
2.3:進入System configuration
在system hostname1欄中輸入開發板的名稱,如metal box,在system banner中可輸入歡迎語,如welcome to metal world。在Init system當選擇BusyBox,在/dev management當選擇Dynamic using mdev,即便用mdev動態加載裝備節點的方式,然后在Path to thepermission tables當選擇裝備節點的配置表,這里我們1定要選擇system/device_table_dev.txt,否則后面在dev目錄下將不會生成各種裝備節點。固然我們也能夠手動的配置該文件,添加必要的節點或刪除不需要的節點。Root password為配置進入linux控制臺終端后的密碼,為空則登錄時不需要密碼,默許登錄用戶名為root。選中Run agetty(login prompt)after boot。
再進入下面的getty options選項:
將TTY port配置為ttySAC3,將baudrate配置為115200,對應開發板的打印串口。
再返回上1界面,將Root filesystem overlay directories設置為board/metalboard/exynos4412/rootfs-overlay,這里表示該路徑下的所有文件將會無條件覆蓋buildroot默許的相干路徑文件。配置這1步的同時,我們1并將開發板光盤中的相干文件拷貝到buildroot對應的board目錄。返回上1界面。
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。第1次編譯可能會彈出1些毛病,這基本上是沒有安裝1些第3方工具釀成的。依照提示安裝便可,有問題問度娘。
開始編譯的時候,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
啟動開發板看打印信息
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
如上述毛病為找不到hotplug文件,直接刪除s10mdev文件第9行便可。其他情況類似分析,有問題問度娘。通常不會有大問題。
借助buildroot1個含有各項所需要包(busy box,vi,qt,ffmpeg等)的文件系統就做好了,真是利器,可讓工程師專注于核心內容的開發,避免繁瑣的重復進程。z