James Bryant

根文件系统制作

0
阅读(1353)

一.建立根文件系统目录与文件

1.创建目录

*mkdir /home/ARM11/kernel/rootfs

*cd /home/ARM11/kernel/rootfs

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

*mkdir usr/bin usr/lib usr/sbin lib/modules

2.创建设备文件

* cd rootfs/dev

* mknod -m 666 console c 5 1

*mknod -m 666 null c 1 3

3.加入配置文件

*tar xvzf etc.tar.gz

*mv etc/* ./etc (这里注意是rootfs目录下的etc目录,不是根目录下的etc目录)

4.添加内核模块

*cd /home/ARM11/kernel/tin6410_linux/linux-tiny6410 (进入到我们要安装到开发板的内核源码文件下)

*make modules ARCH=arm CROSS_COMPILE=arm-linux-

*make modules ARCH=arm INSTALL_MOD_PATH=/home/ARM11/kernel/rootfs (INSTALL_MOD_PATH 制定我们要将收集的内核模块再放在哪里,这里我们制定存放在我们制作的根文件目录下,并且自动保存在/lib/modules下)

5.编译和安装Busybox --BusyBox 是一个集成了一百多个最常用linux命令和工具的软件

* tar xvzf busybox-1.13.3.tar.gz

* make menuconfig --配置busybox

* Busybox Settings -->Build Options

*选中Build BusyBox as static binary (no shared lib) -- 静态链接

* ()Cross Compiler prefix -- 括号里填入arm-linux-

* Busybox Settings -->Build Options

*选中Don't use /usr --选中该项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统。

*()BusyBox installation prefix --填入制作跟文件系统所在的目录

* make --编译

* make install --安装到制作的跟文件系统下

二.挂载根文件系统到内核

1.文件系统类型

2.使用Initramfs

*cd /home/ARM11/kernel/rootfs/

*ln -s ./bin/busybox init --创建软链接

*配置linux内核以支持initramfs

*make menuconfig ARCH=arm

*选中

*--括号里填入制作的根文件系统所在的目录。

*make uImage ARCH=arm CROSS_COMPILE=arm-linux- --编译内核

*启动uboot

*setenv bootargs noinitrd console=ttySAC0,115200 --设置串口0

*saveenv --保存环境变量

*tftp --下载内核到内存

*bootm addr 启动内核

3.使用NFS文件系统

*配置linux内核以支持NFS

*make menuconfig ARCH=arm

*取消选中

*选中File systems -->Network File Systems -->Root file system on NFS

*make uImage ARCH=arm CROSS_COMPILE=arm-linux- --编译内核

*启动uboot

*setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=dev/nfs rw nfsroot=192.168.0232:/home/ARM11/kernel/rootfs,proto=tcp,nfsvers=3 ip=192.168.0.137:192.168.0.232:192.168.0.1:255.255.255.0::eth0:off

*saveenv

*tftp --下载内核到内存

*bootm addr 启动内核

-----至此从移植uboot,到用uboot加载系统内核,再到往内核上挂载文件系统,完成了将linux系统移植到了我tiny6410开发板上。

--自己选择的路,在艰难,跪着也要走下去,fighting!

Baidu
map