Ti AM335X核心模塊Linux系統(tǒng)添加修改nand分區(qū)-基于4.14.67內(nèi)核

本內(nèi)容的驗證使用的盈鵬飛嵌入式CoM-335x核心模塊及評估板EAC-335X,簡要介紹如下:

產(chǎn)品特性

?采用TI公司Cortex-A8 AM335X處理器败匹,運(yùn)行最高速度為1GHZ;

?支持128M-512M DDR3 SDRAM伪节;

?支持128-1G字節(jié) SLC電子盤或者EMMC 4G-32G大容量電子盤瑞信,可啟動厉颤;

?最多可支持兩路千兆以太網(wǎng),支持IEEE1588凡简;

?支持兩路高速USB OTG逼友;

?支持最多六路串口,雙路CAN BUS秤涩;

?支持分辨率最高的1360*768顯示接口帜乞,可支持SGX530 3D引擎;

?板載DS1339的RTC時鐘筐眷,國內(nèi)獨(dú)家設(shè)計黎烈,保證系統(tǒng)時鐘同步;

?支持GPMC擴(kuò)展總線,可擴(kuò)展FPGA或者 DSP應(yīng)用照棋;

?穩(wěn)定的操作系統(tǒng)的支持资溃,可預(yù)裝Ubuntu 16.04或者Preempt Linux 4.14;ANDROID 4.2可根據(jù)項目定制烈炭;

超小體積溶锭,郵票孔設(shè)計,160pins梳庆, 尺寸為:45*45MM

EAC-335X產(chǎn)品功能圖:

1 概述

本手冊主要介紹AM335x系列核心模塊的衍生產(chǎn)品——包括EVB-335x(Linux 3.2.0)與HMI-T335(Linux 4.14.67)基于UBIFS的使用暖途,旨在解決防止用戶文件(數(shù)據(jù))丟失問題。

早前膏执,用戶文件與根文件系統(tǒng)保存在同一MTD分區(qū)驻售,若文件系統(tǒng)發(fā)生不可修復(fù)的損壞,用戶文件也可能隨之丟失更米。分離根文件系統(tǒng)與用戶文件欺栗,使得二者擁有不同分區(qū),可有效規(guī)避此問題征峦。這好比PC有系統(tǒng)分區(qū)專用于安裝系統(tǒng)迟几,還有其他分區(qū)用于存儲用戶文件(例如:文檔、相片栏笆、音樂等)类腮,當(dāng)系統(tǒng)發(fā)生不可修復(fù)的故障時,重新安裝系統(tǒng)只會丟失系統(tǒng)分區(qū)的文件并不會導(dǎo)致其他分區(qū)的文件丟失蛉加。

內(nèi)容梗概:

第2章:介紹nand分區(qū)表蚜枢,這些分區(qū)是典型的應(yīng)用——即用戶文件與根文件系統(tǒng)存儲在同一分區(qū)。

第3章:介紹在u-boot源碼中添加新分區(qū)针饥,包括兩個版本:u-boot 201404與u-boot 2018.01厂抽,其中u-boot 201404用于引導(dǎo)Linux 3.2.0、u-boot 2018.01引導(dǎo)Linux 4.14.67丁眼。

第4章:介紹在Linux源碼中添加新分區(qū)筷凤。 Linux 3.2.0在mach-xxx文件中添加分區(qū),Linux 4.14.67則在dts中添加苞七,注意兩者的區(qū)別藐守。

第5章:提出一些注意事項,包括:u-boot與Linux內(nèi)核分區(qū)大小應(yīng)保持一致蹂风;注意區(qū)別燒錄鏡像文件不同吗伤;驗證新分區(qū)是否生效。

第6章:介紹在用戶空間如何掛載ubi分區(qū)硫眨;如何制作UBI鏡像以及燒錄;如何實現(xiàn)自動掛載ubi分區(qū)。

附錄1 :簡單介紹ubi工具

基于以下條件礁阁,貫穿手冊中的每一章節(jié)巧号,最終實現(xiàn)UBI分區(qū)掛載(user spacemount或automaticmount)。其流程參考本章的流程圖:

① 主板:EVB-335x姥闭,其中Nand flash page size 為2048 byte(mkfs.ubifs工具需要傳遞正確的page size 參數(shù)丹鸿,否則導(dǎo)致UBI鏡像掛在失敗)棚品,容量512MB靠欢;

軟件:u-boot 2014.04,Linux 3.2.0铜跑;

UBI分區(qū):新添加373MB的userdata分區(qū)门怪。

② 主板:HMI-335,其中Nand flash page size 為4096 byte锅纺,容量512MB掷空;

軟件:u-boot 2018.01,Linux 4.14.67囤锉;

UBI分區(qū):添加“ubi_volume”分區(qū)坦弟,容量100MB;添加“userdata”分區(qū)官地,使用剩余容量酿傍。

對于分區(qū),u-boot與內(nèi)核的容量是固定的驱入。如果您需要添加新分區(qū)用于保存用戶文件赤炒,保留足夠的rootfs空間,剩余的則可劃分為新分區(qū)沧侥。

流程圖

2nand 分區(qū)介紹

nand 分區(qū)是將某個設(shè)備的存儲空間切割成段可霎,根據(jù)地址規(guī)劃一定大小空間。在u-boot命令行執(zhí)行:mtdparts宴杀,查看當(dāng)前分區(qū)癣朗,如下圖所示:

圖注:u-boot 2014.04-rc2?的分區(qū)表
圖注:u-boot 2018.01?的分區(qū)表

圖中的“parts = 9”,表示共有9個分區(qū)旺罢,各分區(qū)的起始地址及大小在列旷余。需要注意的是,rootfs分區(qū)使用nand的剩余空間扁达,對于不同容量的nand正卧,rootfs分區(qū)的大小不同。在u-boot 2014.04-rc2(引導(dǎo)Linux 3.2.0)分區(qū)表中跪解,出廠默認(rèn)劃分如下:

添加userdata后的分區(qū)表如下:

圖注:添加userdata后u-boot 2014.04-rc2?的分區(qū)表

在u-boot 2018.01(引導(dǎo)Linux 4.14.67)分區(qū)表炉旷,由于Linux4.14.67內(nèi)核的板級代碼采用dtb,所以會看到u-boot包括dtb分區(qū),出廠默認(rèn)劃分如下:

添加ubi_volume與userdata后的分區(qū)表如下:

圖注:添加ubi_volume與userdata后u-boot 2018.01?的分區(qū)表

說明:

① 分區(qū)表中的容量是計算得來的理論值窘行,由于nand壞塊原因饥追,實際可使用空間比理論值小。特別是格式化成UBIFS的分區(qū)罐盔,某些block或page用于存儲UBI的屬性標(biāo)記但绕,實際容量比分區(qū)小。

② 對于不同容量的nand惶看,rootfs或用戶分區(qū)大小不同捏顺,表中列出3種不同容量的分區(qū)示例。

3 U-Boot 修改nand 分區(qū)

EVB-335x(內(nèi)核版本Linux 3.2.0)纬黎,配套u(yù)-boot 2014.04-rc2幅骄;HMI-T335(內(nèi)核版本 Linux 4.14.67),配套u(yù)-boot 2018.01莹桅。兩個版本u-boot修改分區(qū)的方式不一樣昌执,分別介紹:

3.1?EVB-335x修改nand分區(qū)

[if !supportLists]1、?[endif]輸入命令:tar -jxvf u-boot-2014.04-rc2-00037-gbaecd31.tar.bz2,將光盤linux\bootloader中

u-boot-2014.04-rc2-00037-gbaecd31.tar.bz2解壓到PC機(jī) linux下诈泼,如下圖所示:

進(jìn)入u-boot-2014.04-rc2-00037-gbaecd31目錄懂拾,如下圖所示:

2、輸入命令:vi include/configs/com335x.h,打開com335x.h文件

3铐达、定位到#define MTDPARTS_DEFAULT宏定義岖赋,這個宏定義決定u-boot對nand的分區(qū),如將rootfs

分區(qū)改為128M瓮孙,再在rootfs分區(qū)后添加一個userdata分區(qū)唐断,則修改如下圖所示:

注意:修改分區(qū)大小時,不要忘記單位(m), 如128m(rootfs)杭抠。另要使用逗號將每個分區(qū)分開脸甘,最后一個分區(qū)后沒有逗號。

4偏灿、保存退出丹诀,編譯u-boot,編譯過程請參考Linux CoM335X 開發(fā)指南翁垂。

3.2 HMI-T335修改nand分區(qū)

新版本的u-boot在defconfig修改分區(qū)铆遭。假設(shè),需要在hmi-t335-nand-800x480_defconfig添加ubi_volume與userdata分區(qū)沿猜,操作如下:

1枚荣、使用文檔編輯工具(例如vim、gedit等)打開configs/hmi-t335-nand-800x480_defconfig文件啼肩;

2橄妆、找到配置項“CONFIG_MTDPARTS_DEFAULT”衙伶,添加ubi_volume與userdata,分區(qū)之間用“,”間隔呼畸,如下:

注:

① 分區(qū)格式為:容量(分區(qū)名)痕支,如100m(ubi_volume)表示ubi_volume分區(qū)的容量為100m。最后一個分區(qū)的容量用“-”蛮原,表示分配全部的剩余容量。

② 未添加新分區(qū)前另绩,nand的剩余容量都分配給rootfs儒陨,添加ubi_volume與userdata分區(qū),同時修改rootfs分區(qū)的容量笋籽,示例中改為128m蹦漠。

3、修改nand分區(qū)完成后车海,保存退出笛园,重新編譯u-boot,可參考以下操作:

host# make distclean

host# make ARCH=arm hmi-t335-nand-800x480_defconfig

host# make?ARCH=arm CROSS_COMPILE=/opt/hmi-t335-linux-sdk/bin/arm-linux-gnueabihf- -j32

4侍芝、正常編譯結(jié)束后研铆,在u-boot源碼頂級目錄生成MLO、u-boot.img州叠,這兩個文件最終要燒錄到nand中棵红。

4、Linux內(nèi)核修改nand分區(qū)

EVB-335x使用Linux 3.2.0咧栗,HMI-T335使用Linux 4.14.67逆甜。Linux 3.2.0無device tree,有關(guān)板級的代碼在mach-xxx中添加致板;Linux 4.14.67板級代碼在dts中添加交煞。以下分別介紹:

4.1、EVB-335x 修改nand分區(qū)

1斟或、輸入命令:tar -jxvf linux-3.2-evb335x.tar.bz2,將光盤linux\kernel\?linux-3.2-evb335x.tar.bz2解壓到PC機(jī)linux系統(tǒng)下素征,如下圖所示

紅色框內(nèi)linux-3.2-evb335x為解壓生成的目錄。

進(jìn)入linux-3.2-evb335x目錄缕粹,如下圖所示:

2稚茅、輸入命令:vi arch/arm/mach-omap2/board-com335x.c,打開板級初始化文件平斩,如下圖所示:

3亚享、定位到static struct mtd_partition com335x_nand_partitions[],此結(jié)構(gòu)數(shù)組為內(nèi)核對nand 分區(qū)绘面,

如將文件系統(tǒng)分區(qū)劃分128M欺税,添加分區(qū)userdata侈沪,userdata分區(qū)占用剩余空間,如下圖所示:

其中:

name :為分區(qū)的名字

offset :為分區(qū)開始的偏移地址

MTDPART_OFS_APPEND:表示緊接著上一個分區(qū)晚凿,MTD Core會自動計算和處理分區(qū)地址

Size:為分區(qū)的大小亭罪,在最后一個分區(qū)我們設(shè)為MTDPART_SIZ_FULL,表示這個NADN剩下的所有部分。

SZ_128K:代表128k榨呆,nand flash以block為單位擦除诊胞,而K9F2G08U0B 或K9F4G08U0B每個block大小為128K,所以在內(nèi)核分區(qū)計算中以SZ_128為最小單位箩祥。

4、保存退出后肆氓,編譯內(nèi)核袍祖,編譯過程請參考CoM335X Linux 開發(fā)指南。

4.2谢揪、HMI-T335修改nand分區(qū)

說明:HMI-T335的Linux內(nèi)核集成到buildroot當(dāng)中蕉陋,所有修改均在“buildroot-2018.02.12”目錄下進(jìn)行。

以在board/hmi-t335/hmi-t335-nand-800x480.dts中添加“ubi_volume”與“userdata”分區(qū)為例拨扶,步驟如下:

1凳鬓、使用文本編輯工具打開,找到“&gpmc”node屈雄,修改“partition@10”的容量村视,在此改為128MB;

2酒奶、添加“ubi_volume”分區(qū)蚁孔,容量100MB;添加“userdata”分區(qū)惋嚎,使用剩余容量杠氢。


3、保存退出另伍,重新編譯內(nèi)核鼻百。

host# make linux-rebuild

注:partition的“l(fā)abel”屬性為分區(qū)名稱;“reg”屬性為容量摆尝,其格式為<offset size>温艇,reg的size為0表示使用剩余容量。

5? nand分區(qū)注意事項

1堕汞、u-boot分區(qū)應(yīng)與內(nèi)核分區(qū)大小保持一致勺爱;

2、修改分區(qū)后讯检,重新編譯u-boot與Linux內(nèi)核琐鲁,并更新到目標(biāo)板卫旱。通常使用TF卡更新,EVB-335x與HMI-T335的 系統(tǒng)鏡像區(qū)分如下:

3围段、更新系統(tǒng)鏡像前顾翼,先執(zhí)行擦除操作,以確保清除nand中的舊數(shù)據(jù)奈泪,再更新适贸。擦除整個nand,執(zhí)行:nand erase.chip如下圖:

網(wǎng)絡(luò)燒寫系統(tǒng)可參考CoM335X更新linux系統(tǒng)手冊段磨。

4.4取逾、驗證分區(qū)是否生效,在u-boot命令行執(zhí)行mtdpats苹支,在shell中執(zhí)行cat /proc/mtd,如下列圖片所示:

圖注:u-boot 2014.04分區(qū)表
圖注:Linux 3.2.0?mtd 分區(qū)

從以上兩圖中看出u-boot與Linux內(nèi)核修改后的分區(qū)误阻,調(diào)整后的rootfs為128MB(0x08000000 byte)债蜜,新增的userdata分區(qū)為373MB(0x17580000 byte)。

圖注:u-boot 2018.01分區(qū)表
圖注:Linux 4.14.67 mtd 分區(qū)

從以上兩圖中看出u-boot與Linux內(nèi)核修改后的分區(qū)究反,調(diào)整后的rootfs為128MB(0x08000000 byte)寻定,新增的分區(qū)ubi_volume為100MB(0x6400000 byte)、userdata為373MB(0x17580000 byte)精耐。

6 MTD設(shè)備用戶空間操作

創(chuàng)建分區(qū)參考前文所述狼速,以下內(nèi)容將闡述:

1、如何掛載MTD分區(qū)卦停;

2向胡、如何將用戶文件壓制成UBI鏡像;

3惊完、應(yīng)用舉例僵芹。

應(yīng)用舉例,涉及兩個不同版本的Linux kernel以及u-boot小槐,應(yīng)當(dāng)注意當(dāng)前所使用的版本拇派。

6.1?如何掛載MTD分區(qū)

MTD設(shè)備分區(qū)后,還不能直接用作存儲空間凿跳,需要經(jīng)過格式化件豌、關(guān)聯(lián)UBI、掛載操作控嗜。以userdata分區(qū)(/dev/mtd9)掛載到/mnt目錄為例茧彤,步驟如下:

① 格式化MTD分區(qū),如下圖所示:

EVB-335x# ubiformat /dev/mtd9

② 關(guān)聯(lián)UBI設(shè)備躬审,如下圖所示:

EVB-335x# ubiattach /dev/ubi_ctrl -m 9

注:正常關(guān)聯(lián)設(shè)備棘街,打印設(shè)備相關(guān)信息蟆盐,如:物理擦除快、邏輯擦除塊遭殉、容量等石挂。留意console中的信息“UBI: attached mtd9 to ubi1”,創(chuàng)建UBI卷時會用到险污。

③ 創(chuàng)建一個UBI卷痹愚,使用部分容量或全部容量。如下圖所示:

?使用部分蛔糯,例如創(chuàng)建10MB的卷拯腮、卷標(biāo)為ubifs_volume

EVB-335x# ubimkvol /dev/ubi1 -N ubifs_volume ?-s 10MiB

?使用全部容量,例如使用全部容量蚁飒、卷標(biāo)為userdata

EVB-335x# ubimkvol /dev/ubi1 -N userdata -m

④ 掛載MTD分區(qū)动壤,掛載時可指定設(shè)備節(jié)點(diǎn)或者卷標(biāo)

?設(shè)備節(jié)點(diǎn)掛載的方式,例如掛載/dev/ubi1_0到/mnt

EVB-335x# mount -t ubifs /dev/ubi1_0 /mnt/

?卷標(biāo)掛載的方式淮逻,例如ubi1的卷標(biāo)為userdata琼懊,將其掛載/mnt

EVB-335x# mount -t ubifs ubi1:userdata /mnt/

注:正常掛載,console中輸出卷標(biāo)爬早、容量等信息哼丈。亦可通過df指令查看,如下圖所示:

6.2 制作UBI鏡像

Linux應(yīng)用程序或數(shù)據(jù)庫等可能時常需要升級筛严,傳統(tǒng)的辦法是直接拷貝到運(yùn)行的系統(tǒng)或者重新制作根文件系統(tǒng)再燒錄醉旦。拷貝的工作量與設(shè)備數(shù)量成正比桨啃,當(dāng)有很多設(shè)備時车胡,顯然這不是高效的方法。重新制作根文件系統(tǒng)优幸,再燒錄吨拍,需要停止運(yùn)行Linux且燒寫時間較長。如果不是生產(chǎn)燒錄网杆,不建議直接燒錄根文件系統(tǒng)羹饰,直接燒錄講求的是一步到位。

針對以上兩個問題碳却,將用戶文件壓制成UBI鏡像并燒錄在一定程度上解決升級的問題队秩。大致流程為:制作UBI鏡像、基于用戶空間燒錄或u-boot燒錄UBI鏡像昼浦。

6.2.1 制作UBI鏡像

假設(shè)馍资,以userdata目錄為UBI鏡像的源,userdata目錄下包含一個test.txt文件关噪,步驟如下:

1鸟蟹、host# mkfs.ubifs -F -q -r userdata -m 2048 -e 126976 -c 2987 -o userdata_ubifs.img

2乌妙、host# ubinize -o userdata.ubi -m 2048 -p 128KiB -s 512 -O 2048 userdata_ubinize.cfg

userdata_ubinize.cfg內(nèi)容如下:

host#?cat userdata_ubinize.cfg

注:制作容量為373MB、page size為2048 byte的UBI鏡像建钥。

1藤韵、host# mkfs.ubifs -F -q -r ubi_volume -m 4096 -e 253952 -c 399 -o ubivolume_ubifs.img

2、host# ubinize -o ubi_volume.ubi -m 4096 -p 256KiB -s 1024 -O 4096 ubivolume.cfg

host # cat ubivolume.cfg

注:制作容量為100MB熊经、page size為4096 byte的UBI鏡像泽艘。

6.2.2 燒錄UBI鏡像

將UBI鏡像燒錄指定分區(qū),可在Linux shell中完成镐依,或者在u-boot中單獨(dú)燒錄UBI鏡像以及u-boot源碼中添加自動燒寫的指令匹涮。當(dāng)應(yīng)用程序升級,而根文件系統(tǒng)與內(nèi)核不升級時槐壳,可選擇單獨(dú)燒錄UBI鏡像然低。

1、Linux shell使用指令燒錄务唐;

① 燒寫UBI鏡像脚翘,如下圖所示:

EVB-335x# ubiformat /dev/mtd9 -f userdata.ubi

② 掛載分區(qū)鏡像,掛載完成后绍哎,查看UBI 鏡像的文件,如下圖所示:

EVB-335x?# ubiattach /dev/ubi_ctrl -m 9

EVB-335x?# mount -t ubifs /dev/ubi1_1 /mnt/

UBI鏡像中文件的文件內(nèi)容與制作UBI鏡像的源文件一致鞋真,鏡像燒寫成功崇堰。

注意:4096 byte page size的nand燒寫UBI image時,提示offsets不符的warning涩咖,如下圖所示海诲。

當(dāng)選擇y,繼續(xù)格式化檩互。然后關(guān)聯(lián)UBI設(shè)備特幔,報錯如下圖所示:

此時,需要指定sub-page與VID header(volume identifier header)闸昨,指令如下:

HMI-T335# ubiformat /dev/mtd11 -s 1024 -O 4096 -f ubi_volume.ubi

如果由于VID與指定的不一樣蚯斯,提示“libscan: warning!: inconsistent VID header offset: was 4096, but is 1024 in eraseblock 399”,選擇y繼續(xù)饵较。如下圖所示:

關(guān)聯(lián)設(shè)備拍嵌,也需要指定VID header執(zhí)行:

HMI-335# ubiattach /dev/ubi_ctrl -m 11 -O 4096

2、在u-boot命令行中燒寫UBI鏡像循诉,首先將鏡像文件(userdata.ubi)保存到TF卡根目錄横辆,然后通過fatload指令讀到RAM的某個地址,再寫入Nand Flash的userdata分區(qū)茄猫。

U-Boot# mw.b 0x82000000 0xFF

U-Boot# mmc rescan

U-Boot# fatload mmc 0 0x82000000 userdata.ubi

U-Boot# nand erase.part userdata

U-Boot# nand write 0x82000000 userdata ${filesize}

3狈蚤、u-boot自動燒錄困肩,其原理與u-boot命令行燒錄一樣。自動燒錄脆侮,少了人工干預(yù)锌畸,燒錄工作交由u-boot完成。要想完成自動燒錄他嚷,需在board/eac/com335x/board.c文件中蹋绽,添加如下代碼:

將UBI鏡像(usedata.ubi)保存到TF卡根目錄,連同其他系統(tǒng)鏡像一并燒錄筋蓖。待系統(tǒng)啟動后卸耘,執(zhí)行以下指令掛載UBI分區(qū),同時可以看到分區(qū)中文件粘咖,如下圖所示:

EVB-335x?# ubiattach /dev/ubi_ctrl -m 9

EVB-335x?# mount -t ubifs ubi1:userdata /mnt

注:步驟3自動燒錄的代碼蚣抗,EVB-335x在文件中添加?u-boot-2014.04-rc2-00037-gbaecd31/board/eac/com335x/board.cHMI-T335在u-boot-2018.01/board/embfly/hmi-t335/board.c文件中添加瓮下。

6.3 自動掛載UBI分區(qū)

本節(jié)介紹基于Linux 3.2.0以及4.14.67版本的內(nèi)核翰铡,分別實現(xiàn)自動掛載UBI分區(qū)方法。

6.3.1 Linux 3.2.0 應(yīng)用舉例

假設(shè)讽坏,要實現(xiàn)UBI device 1锭魔、volume 0、userdata卷標(biāo)的UBI分區(qū)掛載到/mnt目錄路呜。使用前文中分區(qū)迷捧,UBI最大的可用容量為373MB。

1胀葱、在include/configs/com335x.h文件中#define CONFIG_EXTRA_ENV_SETTINGS?定義處漠秋,添加黑體字部分的變量,該變量傳遞給Linux kernel抵屿,但不會自動掛載庆锦,這樣做可減少UBI設(shè)備關(guān)聯(lián)。如下圖所示:

注意:Nand Flash的page size為 2048 byte轧葛。

2搂抒、在內(nèi)核中打開arch/arm/mach-omap2/board-com335x.c文件,找到?“static struct mtd_partition com335x_nand_partitions[]”函數(shù)朝群,添加”user data”分區(qū)燕耿。注意同時修改rootfs分區(qū)的容量。如下:

3姜胖、重新編譯u-boot誉帅、Linux 內(nèi)核,并燒寫到EVB-335x主板。

4蚜锨、將以下指令寫入腳本:

注:按照/etc/init.d/rcS的命名規(guī)則(S??)档插,保存到/etc/init.d目錄(例如:/etc/init.d/S81mountubi.sh),每次都會自動運(yùn)行掛載userdata分區(qū)亚再。

5郭膛、分區(qū)正常掛載、容量接近UBI鏡像所指定的氛悬、且分區(qū)內(nèi)的文件與源一致则剃,則表明UBI鏡像掛載成功。如下圖所:

6.3.2 Linux 4.14.67 應(yīng)用舉例

512MB如捅、page size為4096 byte的Nand Flash新建2個分區(qū)棍现,其中一個為空分區(qū)(卷標(biāo)為userdata),另一個(卷標(biāo)為ubi_volume)用于燒寫UBI鏡像镜遣。假設(shè)userdata掛載到/mnt己肮,ubi_volume掛載到/opt。

1悲关、在include/configs/hmi-t335.h文件的#define CONFIG_EXTRA_ENV_SETTINGS?處添加以下環(huán)境變量谎僻,該變量傳遞給Linux kernel,但不會自動掛載寓辱,這樣做可減少UBI設(shè)備關(guān)聯(lián)艘绍。

注意:Nand Flash的page size為4096 byte。

2秫筏、在configs/hmi-t335-nand-800x480_defconfig文件中添加新分區(qū)及指定容量(黑體字部分):

3鞍盗、在board/hmi-t335/hmi-t335-nand-800x480.dts文件中添加新分區(qū):

注:原rootfs分區(qū)的容量改為128MB。

4跳昼、重新編譯u-boot、Linux內(nèi)核肋乍,并燒錄到目標(biāo)設(shè)備鹅颊。啟動日志信息中打印關(guān)聯(lián)(attach)過程,如下圖墓造。

將掛載指令寫成腳本堪伍,并保存到目標(biāo)板的/etc/init.d/目錄,系統(tǒng)每次運(yùn)行都會執(zhí)行這些腳本觅闽。腳本的內(nèi)容如下:

HMI-T335# cat /etc/init.d/S82mountubivolume.sh

HMI-T335?# cat /etc/init.d/S81mountuserdata.sh

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帝雇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蛉拙,更是在濱河造成了極大的恐慌尸闸,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吮廉,居然都是意外死亡苞尝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門宦芦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宙址,“玉大人,你說我怎么就攤上這事调卑÷丈埃” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵恬涧,是天一觀的道長注益。 經(jīng)常有香客問我,道長气破,這世上最難降的妖魔是什么聊浅? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮现使,結(jié)果婚禮上低匙,老公的妹妹穿的比我還像新娘。我一直安慰自己碳锈,他們只是感情好顽冶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著售碳,像睡著了一般强重。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贸人,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天间景,我揣著相機(jī)與錄音,去河邊找鬼艺智。 笑死倘要,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的十拣。 我是一名探鬼主播封拧,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夭问!你這毒婦竟也來了泽西?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤缰趋,失蹤者是張志新(化名)和其女友劉穎捧杉,沒想到半個月后陕见,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡糠溜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年淳玩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片非竿。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜕着,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出红柱,到底是詐尸還是另有隱情承匣,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布锤悄,位于F島的核電站韧骗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏零聚。R本人自食惡果不足惜袍暴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隶症。 院中可真熱鬧政模,春花似錦、人聲如沸蚂会。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胁住。三九已至趁猴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間彪见,已是汗流浹背儡司。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留余指,地道東北人枫慷。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像浪规,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子探孝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容