根文件系统制作

时间:2021-12-16 09:05:39

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

    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!