本文檔配套資料在網(wǎng)盤資料“iTOP4412 開發(fā)板資料匯總 (不含光盤內(nèi)容)\iTOP-4412 開發(fā)板系統(tǒng)源碼及鏡像(其他)\4412 開發(fā)板支持 4G 以上文件系統(tǒng)擴(kuò)展”目錄下。 1、概述 光盤默認(rèn)的 Uboot 鏡像只可以燒寫小于 4G 的文件系統(tǒng),但是我們想要文件系統(tǒng)設(shè)定成 6G 或者更大的空間,應(yīng)該怎么辦呢? 2、快速燒寫方法 1.本文檔配套的資料里面提供了支持可以擴(kuò)展 4G 以上文件系統(tǒng)的 uboot 鏡像和 uboot 源碼,如下所示: ![]() 2.將上一步驟提供的 uboot 鏡像(一定要確定自己核心板的類型,選擇對(duì)應(yīng)的鏡像)燒寫到開發(fā)板中(注意只燒 uboot 鏡像),然后進(jìn)入 uboot 模式,然后在 uboot 輸入分區(qū)命令:“fdisk -c 0 6144 300 300”,如下圖所示。特別要注意的是,這里的分區(qū)命令不是固定的,如果你想文件系統(tǒng)擴(kuò)展到 6G,設(shè)置的文件系 統(tǒng)大小要比分區(qū)設(shè)定的值要大,這里設(shè)定分區(qū)值是 6144。 ![]() 3.分區(qū)完成后,然后在 uboot 命令行分別輸入下面的命令,格式化分區(qū)。fatformat mmc 0:1北京迅為電子有限公司 iTOP-4412 精英版使用手冊(cè) 日期:2021-01-17 2288 www.topeetboard.com ext3format mmc 0:2 ext3format mmc 0:3 ext3format mmc 0:4 4.然后將擴(kuò)展為 6G 根目錄的文件系統(tǒng)燒寫進(jìn)開發(fā)板,配套資料里面提供了 6G 的 QT4.7 文件系統(tǒng),大家也可以制作別的系統(tǒng),比如 QT5.7 系統(tǒng),最小系統(tǒng)。 (注意一定要用修改過的 uboot 鏡像分區(qū),然后燒寫擴(kuò)展后的文件系統(tǒng),不然會(huì)提示分區(qū)比鏡像小,燒不進(jìn)去系統(tǒng)),系統(tǒng)燒寫進(jìn)去后,如下圖所示,輸入 df 命令查看。 ![]() 5.此時(shí)文件系統(tǒng)已經(jīng)擴(kuò)展為 6G,因?yàn)槟J(rèn)文件系統(tǒng)稍微占用了點(diǎn),可利用的空間比 6G 小。那么 6G 的文件系統(tǒng)是怎么做的呢?大家也可以根據(jù)下節(jié)方法隨意指定文件系統(tǒng)的大小。如果是批量燒錄,可以參考手冊(cè)的 TF 卡燒寫鏡像章節(jié)。 3、制作文件系統(tǒng) 我們將網(wǎng)盤資料“iTOP4412 開發(fā)板資料匯總(不含光盤內(nèi)容)\iTOP-4412 開發(fā)板系統(tǒng)源碼及鏡像(其他)\QtE4.7 根文件系統(tǒng)升級(jí)目錄\iTOP-4412-QtE4.7-root_V1.0.tar.gz”壓縮包拷貝到 Ubuntu 上面,作者拷貝到了/home/topeet/Qt4.7 目錄下面,解壓后如下圖所示: ![]() 接下來輸入“make_ext4fs -s -l 6000M -a root -L linux system.img root”命令生成“system.img”,如下圖所示,6000M 就是文件系統(tǒng)的大小,大家可以根據(jù)自己的需求進(jìn)行指定。 ![]() 生成的 system.img 是大概 6G 的文件系統(tǒng)鏡像,我們可以用于燒寫了。 4、原理解析 之所以光盤默認(rèn)的 Uboot 源碼不支持燒寫 4G 以上文件系統(tǒng)的原因如下:我們進(jìn)入到 文件中。 unsigned int calc_unit(unsigned int length, SDInfo sdInfo), length 定義的是 unsigned int,是 32bit 的。但是調(diào)用的時(shí)候輸入是 unsigned long long,是 64bit 的。 block_offset = calc_unit((unsigned long long)simple_strtoul(argv[3], NULL, 0)*1024*1024, sdInfo); 所以這個(gè)過程中,丟了高位置信息,改掉這個(gè) bug,重新編譯 uboot,這樣就支持燒寫 4G 以上文件系統(tǒng)了。 接下來編譯 uboot 鏡像,進(jìn)入“iTop4412_uboot”文件夾,使用編譯腳本“build_uboot.sh”編譯 uboot, 這里需要編譯的是“SCP 2G 核心板”的 uboot 鏡像,那么編譯命令是“./build_uboot.sh SCP_2GDDR” SCP_2GDDR 是編譯的配置參數(shù),其他參數(shù)可以查看使用手冊(cè)編譯 uboot 部分。輸入編譯命令,如下圖所示,這里一定先確定核心板是哪種類型,然后將對(duì)應(yīng)的參數(shù)傳到腳本。 ![]() 編譯完如下所示: ![]() 編譯生成的 uboot 鏡像是支持燒寫 4G 以上文件系統(tǒng)。 |