在移植Linux內核早期時,如果flash等存儲設備的驅動還沒寫好,可以將文件系統(tǒng)放到內存中運行。
此時可以使用ramfs
和ramdisk
,即將內存的一部分用作文件系統(tǒng)。
ramfs
ramfs
就是將文件系統(tǒng)和內核一起編譯,編譯出來的鏡像就包括 內核本身和文件系統(tǒng) 。
內核打開ramfs
:
在Initramfs source file(s)
選項中,填入文件系統(tǒng)的路徑即可。
最后,uboot
的bootargs
中需要將init=/sbin/init
修改為rdinit=/sbin/init
,主要就是init
和rdinit
的區(qū)別。
ramdisk
ramdisk
也是將內存的一部分用作文件系統(tǒng),只不過不用像上面一樣要重新編譯內核。
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
制作成一個名為ramdisk.image
的ramdisk
- 然后使用
gizp
壓縮ramdisk.image
,得到ramdisk.image.gz
- 最后用
mkimage
工具生成uramdisk.image.gz
給uboot
使用
方法二: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
過程類似,只不過是先制作一個空的鏡像,然后拷貝文件系統(tǒng)的內容。
-
Linux
+關注
關注
87文章
11304瀏覽量
209543 -
文件
+關注
關注
1文章
566瀏覽量
24749 -
系統(tǒng)
+關注
關注
1文章
1017瀏覽量
21347
發(fā)布評論請先 登錄
相關推薦
評論