构建嵌入式linux根文件系统

2019-07-12 19:56发布

                                          构建嵌入式linux根文件系统   步骤流程: 1、  编译、安装Busybox Tar xjf busybox-1.70.tar.bz2 配置 busybox      make menuconfig  修改 makefile     ARCH ?= $(SUBARCH)                  CROSS_COMPILE ?= 修改为    ARCH ?= arm           CROSS_COMPILE ?= arm-linux- Make  Make CONFIG_PREFIX = /work/mini_fs install  (选定好安装目录)   2、  构建 dev 目录 静态创建设备文件  /dev/console  /dev/null 3、  创建/etc 目录 inittab   Console::askfirst -bin/sh 4、  C glibc   将交叉编译环境下 lib 复制到文件系统lib Cp  *.so* /xx/xx/xx/arm-linux/lib –d eg  cp *so* /work/fs_mini/ -d   此时在fs_mini目录下就是一个非常小的根文件系统,开发板可以将它作为网络根文件系统直接启动。如果烧入开发板,还要将它制作为一个文件,称作:映像文件 在这里  :首先设置成 NFS  挂载根文件系统方便调试 具体boot参数配置方法参照下面: 增加功能:  ps      # ps   PID  Uid        VSZ Stat Command ps: can't open '/proc': No such file or directory 方式: 在 etc/inittab  中加入 ::sysinit:/etc/init.d/rcS 创建 init.d    mkdir etc/init.d     vi rcS #!/bin/sh Ifconfig 10.15.50.64  //自动配置ip地址    Mount –a   // 这个命令挂载一个文件的内容    /etc/fstab     #device mount-point type options dump fsck order Proc    /proc  proc  defaults  0  0 1、  device要挂接的设备 2、  mount-point  要挂接的设备 3、  type  文件系统的类型 4、  options  挂接参数   以逗号隔开 确切的说 etc/fstab  用来控制mount –a的行为 添加第2个功能   ls /dev   udev  机制  busybox    一个简化版本  mdev   自动创建设备节点。 要使用mdev  需要内核支持sysfs  文件系统还要支持 tmpfs 文件系统 确保内核已经设置了 CONFIG_SYSFS CONFIG_TMPFS Tmpfs  内存文件系统减少对flash 的读写 Mdev 通过 sysfs文件系统获得设备信息 [1] mount -t sysfs sysfs /sys  [2] echo /bin/mdev > /proc/sys/kernel/hotplug [3] mdev -s Of course, a more "full" setup would entail executing this before the previous code snippet: [4] mount -t tmpfs mdev /dev [5] mkdir /dev/pts  [6] mount -t devpts devpts /dev/pts 手册上是这几个步骤 我们可以再 /etc/fstab  中挂载文件系统 Tmpfs  /tmp  tmpfs defaults 0 0 Sysfs   /sys   sysfs  defaults 0 0  etc/init.d/rcS Mount –a   //  去挂载 fstab 中的文件系统 Mkdir /dev/pts Mkdir –t devpts devpts /dev/pts Echo /sbin/mdev >/pro/sys/kernel/hotplug Mdev –s 最后在 /etc  文件中加入  mdev.conf 否则报错 到这里一个根文件系统基本就做好了。再就是制作成镜像的形式烧写到 flash中去 。