OK210制作根文件系统(1)initramfs

一、创建根文件系统

1、创建目录

         #mkdir rootfs

         #cd rootfs

         #mkdir bin dev etc lib proc sbin sys usr mnt tmp var

         #mkdir usr/bin usr/sbin usr/lib lib/modules

2、创建设备文件

         #cd rootfs/dev

         #mknod–m 666 console c 5 1

         #mknod–m 666 null c 1 3

         如果有必要也可以创建其他的设备节点,此处为了记录创建根文件系统的过程仅创建这两个必备的设备节点。

3、加入配置文件

         #mkdir init.d

         #cd init.d

         #mkdir rcS

         #vim rcS  //此文件为开机后运行的第一个脚本(init进程启动后)

         #!/bin/sh

/bin/mount -a

/bin/mount -ttmpfs mdev /dev

/bin/echo/sbin/mdev > /proc/sys/kernel/hotplug

mdev -s   

 

#vim etc/fstab  //此文件在 执行mount –a使被调用,记录着开机自动挂载的文件系统和挂载点挂载方式等信息

proc            /proc   proc   defaults    0   0

sysfs           /sys    sysfs  defaults    0   0

 

#vim etc/inittab   //此文件保存init进程的信息

::sysinit:/etc/init.d/rcS

::respawn:-/bin/sh

::ctrlaltdel:/bin/umount-a –r

 

#vim etc/profile

# /etc/profile:system-wide .profile file for the Bourne shells

 

echo

echo -n"Processing /etc/profile... "

# no-op

echo"Done"

echo

 

4、添加内核模块

         进入内核目录

         #make modules (笔者已经在Makefile中修改了ARCH 和 CROSS_COMPILE变量的值所以此处不再用参数传递这两个变量的值)

         #make modules_install INSTALL_MOD_PATH=/rootfs (rootfs的路径)

5、编译busybox

         解压并进入busybox的根目录

         #make menuconfig

         Busybox Settings -> Build Options ->  [*]Build BusyBox as a static binary 选中

         Cross Compiler prefix 填写交叉编译工具,笔者已经修改了环境变量因此只填arm-linux- 就可以了

         Busybox Settings -> Installation Options -> [*]Don`t use/usr 选中

         Busybox installation prefix 填写rootfs路径

         #make

         #make install

 

二、挂载根文件系统到内核中

1、进入rootfs

2、ln –s ./bin/busybox init  创建busybox软连接为init 供内核启动后调用

3、进入内核目录

         #make menuconfig

         Generalsetup -> [*]Initial RAM filesystem and RAM disk support 选中

         Initramfssource file(s)  填写rootfs 的路径

4、重新编译内核

         #make zImage

5、打开开发板电源,在串口终端中按下键盘任何键进入U-boot

6、#setenv bootargsnoinitrd console=ttuSAC2,115200 (笔者的开发板使用的是串口二,可以根据自己的情况设置)

         #saveenv

7、下载启动内核

         #tftp  c0008000 zImage

         #bootm  c0008000

 

等内核启动后发现出现”#”命令行提示符,输入ls 命令发现出现了在本机上创建的根文件系统

 

发布了31 篇原创文章 · 获赞 9 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章