(文件系統(tǒng)搭建,強(qiáng)烈建議直接用buildroot,官網(wǎng)上有使用教程非常詳細(xì)buildroot官網(wǎng))
文件系統(tǒng)通常要包括很多第3方軟件,比如busybox,tslib,qt,vim,交叉編譯工具等,為了不復(fù)雜的移植工作。buildroot應(yīng)運(yùn)而生。通過(guò)menuconfig配置我們需要的功能,不需要的功能去掉,再履行make指令編譯,buildroot就會(huì)自動(dòng)從指定的服務(wù)器上下載源碼包,自動(dòng)編譯,自動(dòng)搭建成我們所需要的嵌入式根文件系統(tǒng)。
1:獲得buildroot
我們可以從buildroot官網(wǎng)(http://buildroot.uclibc.org/download.html)獲得buildroot源碼包,buildroot基本上3個(gè)月更新1次,這里我們實(shí)際下載的源碼包是buildroot⑵015.02.tar.gz
2:配置buildroot
將源碼包復(fù)制到/opt目錄下,并解壓
tar -xvf buildroot-2015.02.tar.gz
進(jìn)入目錄,履行配置命令
cd /opt/buildroot-2015.02
make menuconfig
配置界面以下:
2.1 :進(jìn)入target options
將Target Architecture配置為ARM(littlt endian),將Target Architecture Variant配置為cortex-A9,將Target ABI配置為EABI,將ARM instruction set配置為ARM,再退回上1界面
2.2:進(jìn)入toolchain
將Toolchaintype配置為Externaltoolchain,然后在Toolchain當(dāng)選擇交叉編譯工具的版本,如ARM 2013.11,在Toolchain origin當(dāng)選擇Toolchain to be downloaded andinstalled,后面編譯時(shí),buildroot將會(huì)自動(dòng)下載對(duì)應(yīng)的工具鏈并自動(dòng)安裝。選中Enable MMUsupport,退回上1界面
2.3:進(jìn)入System configuration
在system hostname1欄中輸入開發(fā)板的名稱,如metal box,在system banner中可輸入歡迎語(yǔ),如welcome to metal world。在Init system當(dāng)選擇BusyBox,在/dev management當(dāng)選擇Dynamic using mdev,即便用mdev動(dòng)態(tài)加載裝備節(jié)點(diǎn)的方式,然后在Path to thepermission tables當(dāng)選擇裝備節(jié)點(diǎn)的配置表,這里我們1定要選擇system/device_table_dev.txt,否則后面在dev目錄下將不會(huì)生成各種裝備節(jié)點(diǎn)。固然我們也能夠手動(dòng)的配置該文件,添加必要的節(jié)點(diǎn)或刪除不需要的節(jié)點(diǎn)。Root password為配置進(jìn)入linux控制臺(tái)終端后的密碼,為空則登錄時(shí)不需要密碼,默許登錄用戶名為root。選中Run agetty(login prompt)after boot。
再進(jìn)入下面的getty options選項(xiàng):
將TTY port配置為ttySAC3,將baudrate配置為115200,對(duì)應(yīng)開發(fā)板的打印串口。
再返回上1界面,將Root filesystem overlay directories設(shè)置為board/metalboard/exynos4412/rootfs-overlay,這里表示該路徑下的所有文件將會(huì)無(wú)條件覆蓋buildroot默許的相干路徑文件。配置這1步的同時(shí),我們1并將開發(fā)板光盤中的相干文件拷貝到buildroot對(duì)應(yīng)的board目錄。返回上1界面。
2.4:進(jìn)入Filesystem images
選中ext2/3/4root filesystem,然后在ext2/3/4variant當(dāng)選擇ext4,選中tar the root filesystem,最后保存當(dāng)前的配置并退出,配置完成。大家也能夠根據(jù)自己的實(shí)際需要進(jìn)行配置。
在target packages目錄下,有沒(méi)有限的寶藏供大家使用,從此和移植狗say goodbye
3:編譯buildroot
只需在buildroot的根目錄下履行make指令便可編譯全部buildroot。第1次編譯可能會(huì)彈出1些毛病,這基本上是沒(méi)有安裝1些第3方工具釀成的。依照提示安裝便可,有問(wèn)題問(wèn)度娘。
開始編譯的時(shí)候,buildroot會(huì)自動(dòng)下載所需要的相干源碼包,自動(dòng)編譯安裝。
3.1:下載的源碼包在buildroot根目錄的dl目錄下
3.2:編譯出來(lái)的各種文件會(huì)放在buildroot目錄下面的output目錄
3.2.1: 需要燒寫的終究的映像文件在output/images目錄下
3.2.2: output/target目錄下為對(duì)應(yīng)未打包的文件系統(tǒng),在調(diào)試時(shí)可借助于該目錄下的文件分析緣由
4: 編譯完成,燒寫測(cè)試。
用fastboot燒入開發(fā)版
fastboot flash system rootfs.ext4
啟動(dòng)開發(fā)板看打印信息
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行便可。其他情況類似分析,有問(wèn)題問(wèn)度娘。通常不會(huì)有大問(wèn)題。
借助buildroot1個(gè)含有各項(xiàng)所需要包(busy box,vi,qt,ffmpeg等)的文件系統(tǒng)就做好了,真是利器,可讓工程師專注于核心內(nèi)容的開發(fā),避免繁瑣的重復(fù)進(jìn)程。z