一.建立根文件系统目录与文件
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!