根文件系统制作

时间:2021-06-15 16:30:20
1:建立根文件系统目录和文件
     1.1:创建目录   
    mkdir bin dev etc lib proc  sbin  sys  usr   mnt  tmp  var  
    mkdir  usr/bin  usr/lib  usr/sbin  lib/modules
     1.2:创建设备文件
    cd rootfs/dev/
    mknod -m 666 console c 5 1 
    mknod -m 666 null c 1 3 
     1.3:加入配置文件
    tar etc.tar.gz(配制文件可以自己去网上下载,我学习的是国嵌的教程,这里在第四季的专题四)
    mv /etc/* /root/etc/ -rf 
     1.4:添加内核模块
               cd /kernel  make modules ARCH=arm  CROSS_COMPILE=arm-linux-
               make modules_install ARCH=arm INSTALL_MOD_PATH=/rootfs/
     1.5:编译busybox
               busybox就是提供小命令(这个东东可以自己去找)
               make menuconfig   --> Build Settings -->build options-->选中Build busybox as a static binary
                Installation Options->
v 选中“Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的
/usr目录下,破坏宿主系统
                Busybox Installation Prefix (/xxx/rootfs)  该选项表明编译后的busybox的安装位置
               make , make install
2:挂载根文件系统到内核
     2.1:挂载方式简介
           根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为RAM 和FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk等
     2.2:initramfs挂载
          ls -s ./bin/busybox init
          然后是进入内核,make munuconfig ARCH=arm 
          General setup --> Initial ARM ...*  ,  /home.../Initramfs  sources file(s) -->输入根文件系统的路径。 
           make得到内核    
           队此之外,还要在开发板上添加环境变量: setenv bootargs noinitrd console=ttySAC0,115200  , save 
          然后下载即可
     2.3:NFS挂载
          选取消掉上面的initramfs内核选择
           选择这个:file systems-->*network file systems                                                                                  
            make  
            开发板-- setenv bootargs noinitrd  console=ttySAC0,115200 init=/init  root=/dev/nfs rw  nfsroot=192.168.1.3:/home/S5- driver/lesson9/rootfs,proto=tcp,nfsvers= proto=tcp,nfsvers= ip=192.168.1.6:192.168.1.3:192.168.1.1:5.255.255.0::eth0:off 
其中IP可改