James Bryant

根文件系统制作

0
阅读(2161)

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

    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!