linux使用initramfs、initrd、Flash文件系统时内核分别的编译配置

转载:https://blog.csdn.net/liuzq/article/details/75219942

a,使用initramfs(initialize ram filesystem)的内核配置(使用initramfs做根文件系统):

General setup —> 
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support 
(/rootfs_dir) Initramfs source file(s) //输入根文件系统的所在目录[根文件系统需预先做好,制作方法与一般的文件系统相同]

使用initramfs的内核启动参数 
不需要”initrd=”和”root=”参数,但是必须在initramfs中创建/init文件或者修改内核启动最后代码(init文件是软连接,指向什么? init -> bin/busybox,否则内核启动将会失败)

链接入内核的initramfs文件在linux-2.6.24/usr/initramfs_data.cpio.gz

参数实例: 
bootargs=console=ttySAC0,115200n8 console=tty1 
bootcmd=ext4load mmc 0:1 0x48000000 boot/Image; ext4load mmc 0:1 0x4a000000 boot/s5p6818-nanopi-m3.dtb; booti 0x48000000 - 0x4a000000

b,使用initrd(initialize ram disk)的内核配置(使用网口将根文件系统下载到RAM – tftp addr ramdisk.gz):

  1. 配置initrd 
    General setup —> 
    [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support 
    () Initramfs source file(s) //清空根文件系统的目录配置

使用 initrd的内 核启动参数: 
initrd=addr,0x400000 root=/dev/ram0 rw 
注: 
(1) addr是根文件系统的下载地址; 
(2) 0x400000是根文件系统的大小,该大小需要和内核配置的ramdisk size 4096 kbytes相一致; 
(3) /dev/ram0是ramdisk的设备节点,rw表示根文件系统可读、可写;

参数实例: 
bootargs=console=ttySAC0,115200n8 initrd=0x49000000,0x400000 root=/dev/mmcblk1p1 console=tty1 
bootcmd=ext4load mmc 0:1 0x48000000 boot/Image; mw 0x49000000 0 0x400000; ext4load mmc 0:1 0x49000000 boot/initrd.img; ext4load mmc 0:1 0x4a000000 boot/s5p6818-nanopi-m3.dtb; booti 0x48000000 - 0x4a000000

c,根文件系统存放在FLASH分区:

  1. 内核启动参数不需要”initrd=”(也可以写成”noinitrd”); 
    root=/dev/mtdblock2 (/dev/mtdblock2 – 根文件系统所烧写的FLASH分区)

  2. 内核配置不需要ram disk;也不需要配置initramfs或者initrd 
    [ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support

参数实例: 
bootargs=console=ttySAC0,115200n8 noinitrd root=/dev/mmcblk1p1 rw init=/linuxrc console=tty1 
bootcmd=ext4load mmc 0:1 0x48000000 boot/Image; ext4load mmc 0:1 0x4a000000 boot/s5p6818-nanopi-m3.dtb; booti 0x48000000 - 0x4a000000

猜你喜欢

转载自blog.csdn.net/zjy900507/article/details/89040857