使用Buildroot为Nxp i.mx6ul制作文件系统
隨著神U s3c2440,6410的停產(chǎn),NXP 針對(duì)中國(guó)市場(chǎng)推出低成本方案i.mx6ul,可用于商業(yè)級(jí)和工業(yè)級(jí)應(yīng)用,10年超長(zhǎng)供貨周期,市場(chǎng)很有潛力。
官方只支持Yocto,但個(gè)人感覺(jué)Yocto太多龐大且太復(fù)雜,而工業(yè)市場(chǎng)業(yè)務(wù)并不是特別負(fù)責(zé),需要用到的軟件包有限,且在特定的一個(gè)范圍。工業(yè)市場(chǎng)
對(duì)穩(wěn)定性要求較高,并不需很大的靈活度。
本文將介紹使用Buildroot為i.mx6制作文件系統(tǒng),相對(duì)來(lái)說(shuō)Buildroot較為簡(jiǎn)單,容易理解,且有接近2千種包支持,穩(wěn)定性也不是問(wèn)題。
移植Buildroot前,需要先了解i.mx6體系結(jié)構(gòu),本文移植基于米爾科技的i.mx6ulx開(kāi)發(fā)板,256MB Nand,256MB RAM,支持SD卡;
i.mx6ul 為Cortex-A7架構(gòu),支持Neon;
前序:
在制作文件系統(tǒng)之前,先了解一下幾個(gè)基本概念。
Uboot:引導(dǎo)操作系統(tǒng)之用;
Linux Kernel:內(nèi)核,主要關(guān)注其穩(wěn)定性,其中接口驅(qū)動(dòng)最為重要,一般使用官方的Release包,因?yàn)楣俜皆跇?biāo)準(zhǔn)的Kernel之上針對(duì)自家芯片做了一系列的優(yōu)化工作,且有很多廠商的應(yīng)用案例,其穩(wěn)定性得到了一定的驗(yàn)證;不建議使用標(biāo)準(zhǔn)的kernel,尤其是接口驅(qū)動(dòng)穩(wěn)定性得不到保證。
文件系統(tǒng):可以看成一系列基本命令的集合,如:ps,insmod,netstat,iptables,ifconfig等等;我們所開(kāi)發(fā)的應(yīng)用程序也會(huì)包含在文件系統(tǒng)之中,并且將使用到文件系統(tǒng)所提供的基本命令和各種標(biāo)準(zhǔn)庫(kù)以及第三方庫(kù)等;
制作文件系統(tǒng):有很多方法,Buildroot和Yocto只是一個(gè)輔助框架,其本身已經(jīng)設(shè)定好編譯環(huán)境,且支持多種平臺(tái),可以很方便的幫助用戶為特定的平臺(tái)制作文件系統(tǒng)。當(dāng)然也可以自行手動(dòng)建立,文件系統(tǒng)無(wú)非就是一堆文件的集合,自行手動(dòng)編譯,打包即可;只是比較耗費(fèi)精力,穩(wěn)定性和移植性也得不到保證;所以一般情況下,我們會(huì)選用Buildroot等框架輔助我們建立文件系統(tǒng);
第一步:
第二步:
200960 轉(zhuǎn)換為Hex格式0x31100;即3.11.0 版本;但編譯過(guò)程中Buildroot貌似會(huì)自動(dòng)判斷Linux Version,我的主機(jī)自動(dòng)判斷是3.17,因此我選擇3.17版本;此處還有待考察;
Toolchain type (External toolchain) ---> x xx x *** Toolchain External Options *** x xx x Toolchain (Custom toolchain) ---> x xx x Toolchain origin (Pre-installed toolchain) ---> x xx x (/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/) Toolchain path x xx x ($(ARCH)-linux-gnueabihf) Toolchain prefix x xx x External toolchain gcc version (4.9.x) ---> x xx x External toolchain kernel headers series (3.17.x) ---> x xx x External toolchain C library (glibc/eglibc) ---> 注意使能MMU[*] Enable MMU support
選擇Bash前需打開(kāi)Show packages that are alse provideed by busybox; 位于Target Package 下 -*- BusyBox x xx x (package/busybox/busybox.config) BusyBox configuration file to use? x xx x () Additional BusyBox configuration fragment files x xx x [*] Show packages that are also provided by busybox tty配置為:
--- Run a getty (login prompt) after boot x xx x (/dev/ttymxc0) TTY port x xx x Baudrate (keep kernel default) ---> x xx x (vt100) TERM environment variable x xx x () other options to pass to getty
Ext2/3/4支持:[*] ext2/3/4 root filesystem x xx x ext2/3/4 variant (ext4) ---> x xx x () filesystem label x xx x (60M) exact size x xx x (0) exact number of inodes (leave at 0 for auto calculation) x xx x (5) reserved blocks percentage x xx x (-O ^64bit) additional mke2fs options x xx x Compression method (no compression) --
至此,配置完畢;
第三步:
make all編譯;
輸出結(jié)果位于output/images 下
燒寫(xiě)文件系統(tǒng):具體燒寫(xiě)方式請(qǐng)見(jiàn)我另一篇博文 對(duì)于ARM的啟動(dòng),系統(tǒng)升級(jí),燒寫(xiě)過(guò)程和文件系統(tǒng)等方面的總結(jié)分析
總結(jié)
以上是生活随笔為你收集整理的使用Buildroot为Nxp i.mx6ul制作文件系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 对于ARM的启动,系统升级,烧写过程和文
- 下一篇: java信息管理系统总结_java实现科