前言
由于zynq 7000系列 自帶的文件系統(tǒng)(ramdisk)大小為16M的,而我現(xiàn)在使用的開發(fā)板中,除去嵌入式linux系統(tǒng)所需要的存儲(chǔ)空間后,剩余的空間只有4M多了。當(dāng)在開發(fā)過程中移植一些庫或者程序到文件系統(tǒng),16M的文件系統(tǒng)容量更顯的相形見絀了。所以給文件系統(tǒng)擴(kuò)容是給zynq 7000 系列開發(fā)新功能的重要環(huán)節(jié)。
目前我在我的zynq 開發(fā)版上測試,成功將根文件系統(tǒng)擴(kuò)容到336M,至于為什么只能擴(kuò)容到336M,暫時(shí)還沒找到相關(guān)的資料(我的zynq 開發(fā)版硬件ddr3是4G,內(nèi)存是512M),如果有知道原因的,懇請留言評論,在此感激不盡。
根文件系統(tǒng)ramdisk擴(kuò)容分為三個(gè)步驟(以擴(kuò)容24M為例):
制作存儲(chǔ)空間為24M的根文件系統(tǒng)(ramdisk.image.gz)
拷貝原有的linux文件系統(tǒng)中的所有文件
制作支持24M以上的linux內(nèi)核文件(uImage)
制作存儲(chǔ)空間為24M的根文件系統(tǒng)
制作存儲(chǔ)空間為24M的根文件系統(tǒng),使用到三個(gè)命令:
dd命令:作用是用指定大小的塊拷貝一個(gè)文件,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換 mke2fs命令:作用是將鏡像文件制作成ext2格式的文件系統(tǒng) tune2fs命令:作用是調(diào)整和查看ext2/ext3文件系統(tǒng)的文件系統(tǒng)參數(shù) 123
三個(gè)命令的簡單介紹:
dd命令:
主要選項(xiàng): if=file輸入文件名,默認(rèn)為標(biāo)準(zhǔn)輸入 of=file輸出文件名,默認(rèn)為標(biāo)準(zhǔn)輸出 ibs=bytes一次讀入bytes個(gè)字節(jié)(即一個(gè)塊大小為bytes個(gè)字節(jié)) obs=bytes一次寫入bytes個(gè)字節(jié) bs=bytes同時(shí)設(shè)置讀和寫的塊大小為bytes cbs=bytes一次轉(zhuǎn)換bytes個(gè)字節(jié) skip=blocks從輸入文件開頭跳過blocks個(gè)塊后再開始復(fù)制 seek=blocks從輸出文件開頭跳過blocks個(gè)塊后再開始復(fù)制 count=blocks僅僅拷貝blocks個(gè)塊,塊大小等于ibs指定的字節(jié)數(shù) 1234567891011
mke2fs命令:
一般用法: mke2fs-F設(shè)備-L標(biāo)簽名稱-mxx%-b區(qū)塊大小 -b<區(qū)塊大小>指定區(qū)塊大小,單位為字節(jié)。 -c檢查是否有損壞的區(qū)塊。 -f<不連續(xù)區(qū)段大小>指定不連續(xù)區(qū)段的大小,單位為字節(jié)。 -F不管指定的設(shè)備為何,強(qiáng)制執(zhí)行mke2fs。 -i<字節(jié)>指定"字節(jié)/inode"的比例。 -N指定要建立的inode數(shù)目。 -l<文件>從指定的文件中,讀取文件西中損壞區(qū)塊的信息。 -L<標(biāo)簽>設(shè)置文件系統(tǒng)的標(biāo)簽名稱。 -m<百分比值>指定給管理員保留區(qū)塊的比例,預(yù)設(shè)為5%。 -M記錄最后一次掛入的目錄。 -q執(zhí)行時(shí)不顯示任何信息。 -r指定要建立的ext2文件系統(tǒng)版本。 -R=<區(qū)塊數(shù)>設(shè)置磁盤陣列參數(shù)。 -S僅寫入superblock與groupdescriptors,而不更改inodeableinode bitmap以及blockbitmap。 -v執(zhí)行時(shí)顯示詳細(xì)信息。 -V顯示版本信息。 1234567891011121314151617181920
tune2fs命令:
常用選項(xiàng)說明: -l查看文件系統(tǒng)信息 -cmax-mount-counts設(shè)置強(qiáng)制自檢的掛載次數(shù),如果開啟,每掛載一次mountconut就會(huì)加1,超過次數(shù)就會(huì)強(qiáng)制自檢 -iinterval-between-checks[d|m|w]設(shè)置強(qiáng)制自檢的時(shí)間間隔[d天m月w周] -mreserved-blocks-percentage保留塊的百分比 -j將ext2文件系統(tǒng)轉(zhuǎn)換為ext3類型的文件系統(tǒng) -Lvolume-label類似e2label的功能,可以修改文件系統(tǒng)的標(biāo)簽 -rreserved-blocks-count調(diào)整系統(tǒng)保留空間 -o[^]mount-option[,...]Setorcleartheindicateddefaultmountoptionsinthefilesystem.設(shè)置或清除默認(rèn)掛載的文件系統(tǒng)選項(xiàng) 12345678910
好了,啰嗦了那么多,現(xiàn)在來看制作存儲(chǔ)空間為24M的根文件系統(tǒng)的詳細(xì)步驟。
1. 制作 ramdisk 文件系統(tǒng)
1)建立文件系統(tǒng)映象,設(shè)置文件系統(tǒng)大小為24576/1024 = 24M :
Host#ddif=/dev/zeroof=ramdisk.imagebs=1kcount=24576 1
2)格式化為 ext2 文件系統(tǒng):
Host#mke2fs-Framdisk.image-L“24Mvolume”-b1024-m0 1
3)調(diào)整和查看 ext2/ext3 文件系統(tǒng)的文件系統(tǒng)參數(shù):
Host#tune2fsramdisk.image-i0 1
4)修改權(quán)限:
Host#chmoda+rwxramdisk.image 1
5)壓縮鏡像文件,生成 ramdisk.image.gz :
Host#gzip-v9ramdisk.image 1
拷貝原有的linux文件系統(tǒng)中的所有文件
擴(kuò)容的根文件系統(tǒng)(ramdisk.image.gz)已經(jīng)生成,但剛才生成的跟文件系統(tǒng)里什么東西都沒有,而能運(yùn)行l(wèi)inux系統(tǒng)的根文件系統(tǒng),需要很多系統(tǒng)文件,直接拷貝原有的linux文件系統(tǒng)中的所有文件,到這個(gè)新生成的根文件系統(tǒng)中,就能像以前運(yùn)行l(wèi)inux系統(tǒng)。
1)提取 initrd 鏡像文件:
Host#gunzipramdisk.image.gz 1
2)掛載 initrd 鏡像文件:
Host#chmodu+rwxramdisk.image Host#mkdirtmp_mnt/ Host#mount-oloopramdisk.imagetmp_mnt/ 123
3)提取 原有的initrd 鏡像文件:
Host#gunzipramdisk.image.gz 1
4)掛載 原有的initrd 鏡像文件:新建一個(gè)目錄src_ramdisk,將原有的根文件系統(tǒng)放如這個(gè)目錄下。
Host#cdsrc_ramdisk Host#chmodu+rwxramdisk.image Host#mkdirtmp_mnt/ Host#mount-oloopramdisk.imagetmp_mnt/ Host#cdtmp_mnt/ 12345
5)將原來的文件系統(tǒng)中的所有文件復(fù)制到tmp_mnt中:
Host#cp-ri*../tmp_mnt 1
6)壓縮ramdisk.image,并生成 uramdisk.image
Host#cd.. Host#gzipramdisk.image.gz Host#mkimage-Aarm-Tramdisk-Cgzip-dramdisk.image.gzuramdisk.image.gz 123
制作支持24M以上的linux內(nèi)核文件
我們將文件系統(tǒng)擴(kuò)容后,在啟動(dòng)過程中可能會(huì)報(bào)錯(cuò),報(bào)錯(cuò)的原因是在內(nèi)核配置里預(yù)留的啟動(dòng)內(nèi)存空間不夠引起的,所以需要改內(nèi)核的配置,從新編譯,內(nèi)核配置要改的地方如下:
#makeARCH=armmenuconfig 1
保存設(shè)置后,編譯生成uImage:
Host#make-j4ARCH=armCROSS_COMPILE=arm-xilinx-linux-gnueabi-UIMAGE_LOADADDR=0X8000uImage 1
驗(yàn)證
將修改好的uImage 和ramdisk 復(fù)制到sd卡中,并加載進(jìn)入系統(tǒng)。
使用 df -h 命令查看空間使用情況。
Host#df-h 1
-
嵌入式
+關(guān)注
關(guān)注
5060文章
18975瀏覽量
302120 -
Zynq
+關(guān)注
關(guān)注
9文章
607瀏覽量
47101 -
存儲(chǔ)空間
+關(guān)注
關(guān)注
0文章
54瀏覽量
10663
原文標(biāo)題:Zynq-7000移植——根文件系統(tǒng)ramdisk擴(kuò)容教程
文章出處:【微信號:ZYNQ,微信公眾號:ZYNQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論