配置kernel使用ramdisk文件系統(tǒng)
修改uboot
的環(huán)境變量:
setenv initrd_high=0xffffffff
setenv bootargs console=ttyS0,115200 root=/dev/ram rw init=/sbin/init; bootm ${loadaddr} ${ramdiskaddr} ${fdtaddr}
initrd_high
為0xffffffff
,表示將initrd
加載到最高的可用內(nèi)存地址上。這樣可以確保在啟動(dòng)過(guò)程中有足夠的內(nèi)存空間來(lái)加載initrd
文件。
bootargs
中,主要是這句:root=/dev/ram rw init=/sbin/init
要對(duì)。
bootm
啟動(dòng)中,loadaddr
是內(nèi)核的加載地址,ramdiskaddr
是ramdisk
的加載地址,fdtaddr
是設(shè)備樹(shù)的加載地址
制作好的uramdisk.image.gz
文件系統(tǒng),可以在uboot
中,先通過(guò)tftp
命令將uramdisk.image.gz
加載到某段內(nèi)存,例如tftp 82000000 uramdisk.image.gz
。最后通過(guò)bootm
啟動(dòng)。
kernel配置
打開(kāi)ramfs
支持:
General setup --- >
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
打開(kāi)ext2
文件系統(tǒng)支持:
File systems --- >
* > Second extended fs support
打開(kāi)ram block
支持,并設(shè)置大小:
Device Drivers --- >
[*] Block devices --- >
< * > RAM block device support
(16) Default number of RAM disks
(65536) Default RAM disk size (kbytes)
正確配置后,uboot
啟動(dòng)時(shí),能夠看到類似如下ramdisk
加載的過(guò)程:
## Loading init Ramdisk from Legacy Image at 42000000 ...
Image Name:
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 2168875 Bytes = 2.1 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
-
Linux
+關(guān)注
關(guān)注
87文章
11419瀏覽量
212275 -
文件
+關(guān)注
關(guān)注
1文章
575瀏覽量
25113 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1024瀏覽量
21651
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于Buildroot的Linux系統(tǒng)構(gòu)建之根文件系統(tǒng)
linux驅(qū)動(dòng)開(kāi)發(fā)_文件系統(tǒng)本地掛載

想問(wèn)下怎么把ramdisk文件系統(tǒng)類型改掉呢
淺析Ramdisk制作供linux掛載的根文件系統(tǒng)過(guò)程
Linux文件系統(tǒng)課程
制作ZedBoard上linux根文件系統(tǒng)(ramdisk)

《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)

詳解Linux根文件系統(tǒng)Ramdisk的制作過(guò)程
需要了解的混合文件系統(tǒng)(ramdisk+jffs)

可以了解的Linux 文件系統(tǒng)結(jié)構(gòu)

Linux新的exFAT文件系統(tǒng)驅(qū)動(dòng)程序要來(lái)了
如何制作一個(gè)自啟動(dòng)的Linux根文件系統(tǒng)

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

Linux的文件系統(tǒng)特點(diǎn)

評(píng)論