您的位置:首页 > 运维架构 > Linux

mini2440 linux2.6 内核制作-根文件系统制作

2012-03-25 00:25 225 查看
上篇我写了一个关于内核制作的文章,但是只有内核是不能运行linux,还需要根文件系统。下面我们就来介绍根文件系统。

要用到工具,busybox,和一个打包文件(在光盘linux目录下可以找到)--etc.tar.gz.

现在已经报两个文件拷贝到了 ~/working文件夹下。

解压 busybox-1.13.3-mini2440

tar xvzf busybox-1.13.3-mini2440.tar.gz

因为后期要将根文件使用nfs来共享,所以我们这里要在nfs文件夹下建立根文件系统 rootfs文件夹

mkdir -p ./nfs/rootfs

cd nfs/rootfs

创建根文件系统的子目录:

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

cd usr

mkdir bin lib sbin

cd ..

cd lib

mkdir modules

这样把根文件系统所需要的基本子目录创建成功了。

现在创建设备文件:

cd dev

mknod -m 666 console c 5 1(可能会用到root账户)sudo

mknod -m 666 null c 1 3

把etc文件拷贝过来

tar xvzf ~/working/etc.tar.gz -C ../(解压到rootfs 目录下)

输出:

etc/

etc/inittab

etc/profile

etc/fstab

etc/init.d/

etc/init.d/rcS

接下来,编译内核模块:

到我们解压的 linux-2.6.29下。

make modules ARCH=arm CROSS_COMPILE=arm-linux-

安装内核模块:

make modules_install ARCH=arm INSTALL_MOD_PATH=~/working/nfs/rootfs

输出:

INSTALL drivers/char/mini2440_hello_module.ko

INSTALL drivers/scsi/scsi_wait_scan.ko

DEPMOD 2.6.29.4-FriendlyARM

在 /nfs/rootfs/lib/modules/可以看到 2.6.29.4-FriendlyARM文件夹,这样内核模块安装成功。

这一步主要是将 .ko文件放到 rootfs的lib的modules下

配置busybox

到busybox 目录下

然后

make menuconfig

Busybox Settings ---> Build Options ---> Build BusyBox as a static binary (no shared libs) 这里就是使用静态库

再往下: (arm-linux-) Cross Compiler prefix

前面文章我搭建交叉编译环境是 编译器为 arm-linux-,所以这里是 这样。

设置完成后,进入Installation Options

选中 Don't use /usr 防止把这些命令安装到了宿主机中

再把下面的目录修改到 rootfs 路径下。

~/working/nfs/rootfs

然后可以退出,至于其他,可以看看,比如在Editor下面 ,有vi,这样如果选中,就可以为2440上面安装vi编辑器。

退出保存

现在要进行编译了

make ARCH=arm CROSS_COMPILE=arm-linux-

完成后安装

make install

完成后,就可以看到 rootfs目录下的bin sbin 中就有命令程序了。

现在根文件系统就完成了。

下一篇,就开始使用nfs启动根文件系统了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: