0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

zynq 7000系列三個(gè)命令的簡單介紹

ZYNQ ? 來源:ZYNQ ? 作者:ZYNQ ? 2022-10-17 09:19 ? 次閱讀

前言

由于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

470be2d4-4db4-11ed-a3b6-dac502259ad0.png4722e268-4db4-11ed-a3b6-dac502259ad0.png473f51b4-4db4-11ed-a3b6-dac502259ad0.png

保存設(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
47614c56-4db4-11ed-a3b6-dac502259ad0.png
審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    以Xilinx的ZYNQ7000系列為例,介紹CLB功能與結(jié)構(gòu)

    ,SliceM還可以配置為分布式RAM和分布式ROM。 下面以Xilinx的ZYNQ7000系列為例介紹其功能與結(jié)構(gòu) ZYNQ7000
    的頭像 發(fā)表于 11-02 17:18 ?5620次閱讀
    以Xilinx的<b class='flag-5'>ZYNQ</b>的<b class='flag-5'>7000</b><b class='flag-5'>系列</b>為例,<b class='flag-5'>介紹</b>CLB功能與結(jié)構(gòu)

    [XILINX] 正點(diǎn)原子ZYNQ7035/7045/7100開發(fā)板發(fā)布、ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2!

    正點(diǎn)原子FPGA新品ZYNQ7035/7045/7100開發(fā)板,ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2! 正點(diǎn)原子Z100
    發(fā)表于 09-02 17:18

    分享黑金ZYNQ7000系列視頻教程

    視頻太大了,無法上傳,直接分享百度網(wǎng)盤了介紹一下內(nèi)容【黑金ZYNQ7000系列原創(chuàng)視頻教程】20.Linux下的GPIO操作【黑金ZYNQ7000
    發(fā)表于 11-14 21:04

    如何為第方設(shè)置Zynq 7000系列進(jìn)行邊界掃描?

    嗨,大家好,是否有“白癡指南”如何為第方設(shè)置Zynq 7000系列進(jìn)行邊界掃描?我有一個(gè)測試工作,但我得到間歇性的測試結(jié)果取決于
    發(fā)表于 04-17 08:56

    Zynq-7000是什么?Zynq-7000能干什么?

    Zynq-7000是什么?Zynq-7000能干什么?有何作用?
    發(fā)表于 06-30 06:22

    Xilinx? Zynq?7000系列電源解決方案

    描述此 PMP10600.1參考設(shè)計(jì)提供為 Xilinx? Zynq? 7000 系列 (XC7Z015) FPGA供電時(shí)所需的所有電源軌。此設(shè)計(jì)使用多個(gè) LMZ3 系列模塊、多個(gè) L
    發(fā)表于 09-23 07:43

    Xilinx? Zynq?7000系列電源解決方案

    描述 PMP10601 參考設(shè)計(jì)提供為 Xilinx? Zynq? 7000 系列 (XC7Z015) FPGA供電時(shí)所需的所有電源軌。此設(shè)計(jì)使用多個(gè) LMZ3 系列模塊、多個(gè) LDO
    發(fā)表于 09-28 06:24

    Zynq7000系列之芯片引腳功能綜述

    很多人做了很久的FPGA,知道怎么去給信號分配引腳,卻對這些引腳的功能及其資源限制知之甚少;在第一章里對Zynq7000系列的系統(tǒng)框架進(jìn)行了分析和論述,對Zynq7000系列的基本資源
    發(fā)表于 02-09 05:52 ?4607次閱讀

    第二章 Zynq7000芯片的簡介

    詳細(xì)介紹zynq7000系列板子的資料,適合初學(xué)者借鑒學(xué)習(xí)。
    發(fā)表于 02-28 15:12 ?11次下載

    Zynq-7000系列特征概述

    Zynq-7000系列特征概述 Zynq-7000系列是全可編程片上系統(tǒng),主要包含PS(processing system)和PL(Programmable Logic)兩部分。PL
    發(fā)表于 11-18 05:11 ?1.9w次閱讀
    <b class='flag-5'>Zynq-7000</b><b class='flag-5'>系列</b>特征概述

    ZYNQ-7000系列MIO、EMIO、AXI_GPIO接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口
    發(fā)表于 07-25 17:41 ?2607次閱讀
    <b class='flag-5'>ZYNQ-7000</b><b class='flag-5'>系列</b>MIO、EMIO、AXI_GPIO接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口
    發(fā)表于 01-31 06:50 ?12次下載
    <b class='flag-5'>ZYNQ-7000</b><b class='flag-5'>系列</b>MIO/EMIO/AXI_GPIO接口

    Zynq 7000系列的設(shè)計(jì)參考書中文版

    Zynq 7000系列的設(shè)計(jì)參考書中文版
    發(fā)表于 12-17 17:08 ?0次下載

    linux關(guān)機(jī)的三個(gè)命令

    在Linux系統(tǒng)中,常用的關(guān)機(jī)命令三個(gè):shutdown、poweroff和halt。下面是對這三個(gè)命令的詳細(xì)解釋: shutdown命令
    的頭像 發(fā)表于 11-26 15:33 ?2689次閱讀

    Xilinx ZYNQ 7000系列SoC的功能特性

    本文介紹下Xilinx ZYNQ 7000系列SoC的功能特性、資源特性、封裝兼容性以及如何訂購器件。
    的頭像 發(fā)表于 10-24 15:04 ?230次閱讀
    Xilinx <b class='flag-5'>ZYNQ</b> <b class='flag-5'>7000</b><b class='flag-5'>系列</b>SoC的功能特性