這一篇計劃是放到最后寫(xiě)的,但是QT5.4.1移植和TSLIB的修改內容比較多,想想就將這篇提前。 /home/XXXX/nfs下已經(jīng)包含一個(gè)完整的根文件系統了,可以使用這個(gè)文件系統來(lái)制作一個(gè)UBI文件鏡像,并將它燒寫(xiě)到nand中。 如果沒(méi)有根文件系統,就需要先獲取或者自己制作一個(gè)。制作根文件系統可以用busybox。不過(guò)為了省事,我直接使用TI的SDK中的根文件系統,然后自己刪減,得的了一個(gè)大約40M左右的根文件系統,在加入tslib,qt5.4.1,以及中文字庫后的大小大約在90M左右。 制作ubi文件鏡像需要用到mtd-utils工具,目前的最新版本是1.5.1,使用git下載:git clone git://git.infradead.org/mtd-utils.git。 下載下來(lái)的mtd-utils解壓縮后保存到/home/XXXX/mtd-utils目錄。 編譯mtd-utils還需要一些其他的庫,我們使用apt-get來(lái)安裝: sudo -s apt-get install libzo2-dev apt-get install libacl1-dev apt-get install uuid-dev 以及zlib,到www.zlib.net下載zlib的源代碼,保存到/home/XXXX/zlib目錄中,進(jìn)入到這個(gè)目錄中執行./configure,成功后執行make -j4,make install。 之后編譯mtd-utils,進(jìn)入到mts-utils目錄中,執行make -j4。 新建一個(gè)目錄/home/XXXX/tools,將這個(gè)目錄加入到PATH環(huán)境變量中,然后將編譯出來(lái)的mtd-utils的目標執行程序拷貝到這個(gè)tools目錄下。 進(jìn)入到/home/XXXX目錄下,執行以下操作: mkfs.ubifs -F -q -r ./nfs -m 2048 -e 126976 -c 1599 -o ubifs.img -F: 使能"white-space-fixup",通過(guò)uboot燒寫(xiě)nand時(shí)必須要這個(gè)參數 -r ./nfs, 我計算機上用戶(hù)掛載am335x板的nfs根文件系統,以這個(gè)目錄中的內容制作鏡像文件 -m 2048, nand的最小讀寫(xiě)單元,page size -e 126976, nand的block size-2*page size -c 1599, 文件系統占用的最大block數,一般小于等于nand最大block數-1,或者根據文件系統的大小實(shí)際計算 -o ubifs.img,輸出文件名 ubinize -o ubi.img -m 2048 -p 128KiB /home/jerry/tools/ubifs.conf -o ubi.img,輸出文件名 -m 2048, nand的最小讀寫(xiě)單元,page size -p 128KiB, block size 最后面的ubifs.conf是配置文件: [ubifs] mode=ubi image=ubifs.img vol_id=0 vol_size=120MiB vol_type=dynamic vol_name=rootfs vol_flags=autoresize 到這里,就生成了一個(gè)ubi.img文件,這個(gè)就是ubi鏡像文件,可以在u-boot中寫(xiě)入到nand中。 |