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

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

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

移植Linux內(nèi)核ramfs和ramdisk文件系統(tǒng)

麥辣雞腿堡 ? 來(lái)源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-04 14:41 ? 次閱讀

在移植Linux內(nèi)核早期時(shí),如果flash等存儲(chǔ)設(shè)備的驅(qū)動(dòng)還沒(méi)寫(xiě)好,可以將文件系統(tǒng)放到內(nèi)存中運(yùn)行。

此時(shí)可以使用ramfsramdisk,即將內(nèi)存的一部分用作文件系統(tǒng)。

ramfs

ramfs就是將文件系統(tǒng)和內(nèi)核一起編譯,編譯出來(lái)的鏡像就包括 內(nèi)核本身和文件系統(tǒng) 。

內(nèi)核打開(kāi)ramfs

Initramfs source file(s)選項(xiàng)中,填入文件系統(tǒng)的路徑即可。

最后,ubootbootargs中需要將init=/sbin/init修改為rdinit=/sbin/init,主要就是initrdinit的區(qū)別。

ramdisk

ramdisk也是將內(nèi)存的一部分用作文件系統(tǒng),只不過(guò)不用像上面一樣要重新編譯內(nèi)核。

ramdisk制作

ramdisk制作可以使用genext2fs工具或者mke2fs等工具制作。

方法一:genext2fs

genext2fs安裝:

sudo apt-get install genext2fs

ramdisk制作腳本:

genext2fs -b 16384 -d /home/book/rootfs ramdisk.image
gzip –v9 ramdisk.image
mkimage -A arm -O linux -T ramdisk -C gzip -n 'xx ramdisk filesystem' -d ramdisk.image.gz uramdisk.image.gz
  • 先使用genext2fs/home/book/rootfs制作成一個(gè)名為ramdisk.imageramdisk
  • 然后使用gizp壓縮ramdisk.image,得到ramdisk.image.gz
  • 最后用mkimage工具生成uramdisk.image.gzuboot使用

方法二:mke2fs

ramdisk制作腳本:

dd if=/dev/zero of=ramdisk.image bs=1k count=15360
mke2fs –F –v –m 0 ramdisk.image
mount –o loop ramdisk.image /mnt/loop
cp -a rootfs/* /mnt/loop
umount /mnt/loop
gzip –v9 ramdisk.image
mkimage -A arm -O linux -T ramdisk -C gzip -n 'xx ramdisk filesystem' -d ramdisk.image.gz uramdisk.image.gz

過(guò)程類(lèi)似,只不過(guò)是先制作一個(gè)空的鏡像,然后拷貝文件系統(tǒng)的內(nèi)容。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11207

    瀏覽量

    208716
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    561

    瀏覽量

    24671
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1006

    瀏覽量

    21292
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ramfsramdisk文件系統(tǒng)的制作和啟動(dòng)

    移植Linux內(nèi)核早期時(shí),如果flash等存儲(chǔ)設(shè)備的驅(qū)動(dòng)還沒(méi)寫(xiě)好,可以將文件系統(tǒng)放到內(nèi)存中運(yùn)行。
    發(fā)表于 08-21 15:31 ?5442次閱讀
    <b class='flag-5'>ramfs</b>和<b class='flag-5'>ramdisk</b><b class='flag-5'>文件系統(tǒng)</b>的制作和啟動(dòng)

    淺析Ramdisk制作供linux掛載的根文件系統(tǒng)過(guò)程

    ,然后去執(zhí)行。在linux中,ramdisk有2種:?initrd:linux內(nèi)核2.0開(kāi)始支持,大小固定?initramfs: linux
    發(fā)表于 07-21 15:26

    ramfs不支持創(chuàng)建文件夾,是否可以設(shè)計(jì)一個(gè)ramdisk呢?

    ramfs不支持創(chuàng)建文件夾,是否可以設(shè)計(jì)一個(gè)ramdisk來(lái)實(shí)現(xiàn)塊設(shè)備然后實(shí)現(xiàn)在ram上的文件系統(tǒng)。想法是:1.在系統(tǒng)初始化時(shí)使用ram生成
    發(fā)表于 02-08 11:08

    實(shí)現(xiàn)嵌入式Linux的新方法-ramdisk

    實(shí)現(xiàn)嵌入式Linux的新方法-ramdisk 概述   在Linux操作系統(tǒng)中,有一項(xiàng)特殊的功能——初始化內(nèi)存盤(pán)INITRD(INITial Ram   Disk)技術(shù),而且
    發(fā)表于 04-19 08:40 ?993次閱讀

    制作ZedBoard上linux文件系統(tǒng)(ramdisk)

    loader(FSBL)和引導(dǎo)linux需要的Second-Stage boot loader(SSBL)、Linux內(nèi)核zImage、設(shè)備樹(shù)文件devicetree_
    發(fā)表于 02-10 18:46 ?1566次閱讀
    制作ZedBoard上<b class='flag-5'>linux</b>根<b class='flag-5'>文件系統(tǒng)</b>(<b class='flag-5'>ramdisk</b>)

    詳解Linux文件系統(tǒng)Ramdisk的制作過(guò)程

    ramdisk是一個(gè)最小的linux rootfs系統(tǒng),它包含了除內(nèi)核以外的所有linux系統(tǒng)
    發(fā)表于 10-30 15:54 ?1次下載

    Linux 內(nèi)核/sys 文件系統(tǒng)介紹

    linux2.6內(nèi)核引入sysfs文件系統(tǒng),sysfs可以看成與proc,devfs和devpty同類(lèi)別的文件系統(tǒng),該文件系統(tǒng)是虛擬的
    發(fā)表于 04-25 16:20 ?4255次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>內(nèi)核</b>/sys <b class='flag-5'>文件系統(tǒng)</b>介紹

    需要了解的混合文件系統(tǒng)ramdisk+jffs)

    ramdisk制作成一個(gè)基本的文件系統(tǒng),不同項(xiàng)目改動(dòng)的只是jffs2數(shù)據(jù)分區(qū),可以實(shí)現(xiàn)文件系統(tǒng)的重復(fù)利用。類(lèi)似于核心板和底板的關(guān)系。
    發(fā)表于 04-25 17:38 ?1806次閱讀
    需要了解的混合<b class='flag-5'>文件系統(tǒng)</b>(<b class='flag-5'>ramdisk</b>+jffs)

    Linuxramdisk,tmpfs,ramfs對(duì)比說(shuō)明

    Linux中可以將一部分內(nèi)存mount為分區(qū)來(lái)使用,通常稱(chēng)之為RamDisk,分為:Ramdisk, ramfs, tmpfs.
    發(fā)表于 04-27 19:38 ?2489次閱讀
    <b class='flag-5'>Linux</b>中<b class='flag-5'>ramdisk</b>,tmpfs,<b class='flag-5'>ramfs</b>對(duì)比說(shuō)明

    如何實(shí)現(xiàn)Linux內(nèi)核移植和yaffs2根文件系統(tǒng)制作

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何實(shí)現(xiàn)Linux內(nèi)核移植和yaffs2根文件系統(tǒng)制作。
    發(fā)表于 03-24 09:12 ?9次下載

    嵌入式Linux系統(tǒng)移植開(kāi)發(fā)-(1)基于Yocto構(gòu)建嵌入式u-boot,內(nèi)核,文件系統(tǒng)

    基于Yocto構(gòu)建嵌入式u-boot,內(nèi)核,文件系統(tǒng)Yocto是什么?簡(jiǎn)單地概括,它是一個(gè)工具,可以用來(lái)構(gòu)建u-boot,kernel,文件系統(tǒng),交叉編譯工具鏈,等等。Yocto提供了一套完整的全面
    發(fā)表于 11-01 17:38 ?14次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>移植</b>開(kāi)發(fā)-(1)基于Yocto構(gòu)建嵌入式u-boot,<b class='flag-5'>內(nèi)核</b>,<b class='flag-5'>文件系統(tǒng)</b>

    嵌入式Linux系統(tǒng)移植-(Linux文件系統(tǒng)

    嵌入式Linux系統(tǒng)移植-(Linux文件系統(tǒng))嵌入式文件系統(tǒng)概述·
    發(fā)表于 11-02 12:51 ?16次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>移植</b>-(<b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>)

    深入剖析Linux內(nèi)核虛擬文件系統(tǒng)

    虛擬文件系統(tǒng)(Virtual File System,簡(jiǎn)稱(chēng)VFS)是Linux內(nèi)核的子系統(tǒng)之一,它為用戶(hù)程序提供文件
    的頭像 發(fā)表于 05-14 15:53 ?3026次閱讀
    深入剖析<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>虛擬<b class='flag-5'>文件系統(tǒng)</b>

    Linux配置kernel使用ramdisk文件系統(tǒng)

    配置kernel使用ramdisk文件系統(tǒng) 修改 uboot 的環(huán)境變量: setenv initrd_high= 0 xffffffff setenv bootargs console=ttyS
    的頭像 發(fā)表于 10-04 14:48 ?1804次閱讀
    <b class='flag-5'>Linux</b>配置kernel使用<b class='flag-5'>ramdisk</b><b class='flag-5'>文件系統(tǒng)</b>

    Linux文件系統(tǒng)的掛載過(guò)程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)
    的頭像 發(fā)表于 10-05 16:50 ?232次閱讀