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