使用Buildroot为Nxp i.mx6ul制作文件系统
隨著神U s3c2440,6410的停產,NXP 針對中國市場推出低成本方案i.mx6ul,可用于商業級和工業級應用,10年超長供貨周期,市場很有潛力。
官方只支持Yocto,但個人感覺Yocto太多龐大且太復雜,而工業市場業務并不是特別負責,需要用到的軟件包有限,且在特定的一個范圍。工業市場
對穩定性要求較高,并不需很大的靈活度。
本文將介紹使用Buildroot為i.mx6制作文件系統,相對來說Buildroot較為簡單,容易理解,且有接近2千種包支持,穩定性也不是問題。
移植Buildroot前,需要先了解i.mx6體系結構,本文移植基于米爾科技的i.mx6ulx開發板,256MB Nand,256MB RAM,支持SD卡;
i.mx6ul 為Cortex-A7架構,支持Neon;
前序:
在制作文件系統之前,先了解一下幾個基本概念。
Uboot:引導操作系統之用;
Linux Kernel:內核,主要關注其穩定性,其中接口驅動最為重要,一般使用官方的Release包,因為官方在標準的Kernel之上針對自家芯片做了一系列的優化工作,且有很多廠商的應用案例,其穩定性得到了一定的驗證;不建議使用標準的kernel,尤其是接口驅動穩定性得不到保證。
文件系統:可以看成一系列基本命令的集合,如:ps,insmod,netstat,iptables,ifconfig等等;我們所開發的應用程序也會包含在文件系統之中,并且將使用到文件系統所提供的基本命令和各種標準庫以及第三方庫等;
制作文件系統:有很多方法,Buildroot和Yocto只是一個輔助框架,其本身已經設定好編譯環境,且支持多種平臺,可以很方便的幫助用戶為特定的平臺制作文件系統。當然也可以自行手動建立,文件系統無非就是一堆文件的集合,自行手動編譯,打包即可;只是比較耗費精力,穩定性和移植性也得不到保證;所以一般情況下,我們會選用Buildroot等框架輔助我們建立文件系統;
第一步:
第二步:
200960 轉換為Hex格式0x31100;即3.11.0 版本;但編譯過程中Buildroot貌似會自動判斷Linux Version,我的主機自動判斷是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前需打開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編譯;
輸出結果位于output/images 下
燒寫文件系統:具體燒寫方式請見我另一篇博文 對于ARM的啟動,系統升級,燒寫過程和文件系統等方面的總結分析
總結
以上是生活随笔為你收集整理的使用Buildroot为Nxp i.mx6ul制作文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对于ARM的启动,系统升级,烧写过程和文
- 下一篇: MT76x8的多网口与GPIO复用配置