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