玩转开发板--最简单的根文件系统树的制作-7
Linux内核使用initramfs文件系统启动
initramfs是Linux开发的一种基于内存的根文件系统,在编译Linux内核的时候,它会直接把根文件系统树打包进内核的镜像文件中(zImage),这也意味着该镜像文件同时包含了Linux内核和根文件系统。因为根文件系统是内核打包进去的,所以内核自己知道根文件系统的位置,这样u-boot也就不需要通过bootargs参数告诉内核根文件系统的信息,此外也不需要额外烧录根文件系统镜像文件,如ubifs、yaffs2、jffs2等。在今后做其他根文件系统的时候,轻务必在内核中禁用initramfs,否则Linux内核将优先使用initramfs启动了。
因为initramfs是基于内存的根文件系统,所以大家在开发板上对根文件系统里的任何文件的操作,包括创建、修改在重启后都会丢失。因此如果想要更改根文件系统里的文件,必须修改根文件系统树,然后重新编译Linux内核并使用u-boot重新烧录。
Linux内核时用initramfs启动,只需要在make menuconfig做下面修改,然后重新编译即可。
[[email protected] linux-3.0]$ make menuconfig
进入到General setup-->设置根文件启动位置
进入到Device Drivers-->Block Drivers-->取消选项 RAM.....
[[email protected] linux-3.0]$ ./build.sh
将编译生成的linuxrom-s3c2440.bin烧录到开发板上。
参考烧入linuxrom-s3c2440.bin:https://blog.****.net/PipiAvenger/article/details/79563996
开发板:
进入到u-boot设置:
[[email protected]]# set bootargs 'console=tty0 console=ttyS0,115200 mem=64M rw loglevel=7'
[[email protected]]# save
[[email protected]]# tftp 30008000 linuxrom-tr-s3c2440.bin
[[email protected]]# bootm 30008000
Copyright (C) 2018 LingYun-GuoZhihao Studio<iot-yun.com>
Default Logon Username: root Password: 123456
LingYun-guozhihao-FL2440 login: root
Password:
~ >: ls
apps dev init mnt sbin usr
bin etc lib proc sys var
data info linuxrc root tmp