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

本文详细介绍了如何创建Linux根文件系统initramfs,包括创建目录、设备文件、配置文件,加入内核模块,编译busybox,并挂载到内核中。主要步骤涉及mkdir、mknod、vim编辑配置文件,make modules_install,make menuconfig,make install,以及在U-boot中设置启动参数和加载内核。
摘要由CSDN通过智能技术生成

一、创建根文件系统

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 命令发现出现了在本机上创建的根文件系统

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值