嵌入式linux根文件系统制作(基于arm)

2019-07-12 16:23发布

嵌入式linux根文件系统制作(基于arm)  

基于国嵌视频:课程4(嵌入式LINUX内核驱动进阶班-上)  > >  第3天(嵌入式Linux系统构建)  > >  国嵌内核驱动进阶班-3-2(根文件系统制作)

根文件系统是linux启动时使用的第一个文件系统,没有根文件系统,linux无法正常启动。根文件系统由一系列的目录组成,目录中包含了应用程序、C库、以及相关的配置文件。 根文件系统的制作 1. 创建根文件系统的目录 # pwd /home/chen/guoqian/4-3-2 #mkdir  rootfs #cd  rootfs #mkdir  bin dev etc lib proc sbin sys usr mnt tmp var #mkdir  usr/bin  usr/lib  usr/sbin  lib/modules 2. 创建设备文件  # pwd /home/chen/guoqian/4-3-2/rootfs #cd  ./dev/ #mknod  -m 666 console  c   5  1 #mknod  -m 666  null    c  1  3 数字分别代表主装置代码 major 次装置代码 minor,-m用来设置权限。c用于装置为一个周边输入设备备档案,例如鼠标/键盘等 #cd  ../ 3. 安装/etc到rootfs目录 # pwd /home/chen/guoqian/4-3-2 # ls busybox-1.13.3.tar.gz   etc.tar.gz   rootfs #tar -zxvf  etc.tar.gz  -C  ./rootfs # pwd /home/chen/guoqian/4-3-2/rootfs/etc # ls fstab  init.d  inittab  profile 4. 编译内核模块 先进入linux内核目录(linux-2.6.29) # pwd /home/chen/guoqian/4-3-1/linux-2.6.29 # make modules  ARCH=arm  CROSS_COMPILE=arm-linux- 5. 安装内核模块 # pwd /home/chen/guoqian/4-3-1/linux-2.6.29 #make modules_install  ARCH=arm   INSTALL_MOD_PATH=../../4-3-2/rootfs # pwd /home/chen/guoqian/4-3-2/rootfs # ls ./lib/modules/ 2.6.29.4-FriendlyARM 6. 配置busybox 将busybox-1.13.3.tar.gz解压后进入busybox目录执行 # pwd /home/chen/guoqian/4-3-2 # tar -zxvf busybox-1.13.3  # pwd /home/chen/guoqian/4-3-2/busybox-1.13.3      #make  menuconfig 嵌入式linux根文件系统制作(基于arm) - 至庸 - THE BOLG OF CHEN (1)  进入Busybox Settings->Build Options-> 嵌入式linux根文件系统制作(基于arm) - 至庸 - THE BOLG OF CHEN 选中”Build Busybox as a static binary (no shared libs)”,静态链接 嵌入式linux根文件系统制作(基于arm) - 至庸 - THE BOLG OF CHEN 并将Cross Compiler prefix指定为arm-linux- 嵌入式linux根文件系统制作(基于arm) - 至庸 - THE BOLG OF CHEN (2)   进入Busybox Settings –>Installation Options-> 嵌入式linux根文件系统制作(基于arm) - 至庸 - THE BOLG OF CHEN 选中”Don’t use /usr”,避免busybox被安装到宿主机的/usr目录下,破快宿主机系统。 嵌入式linux根文件系统制作(基于arm) - 至庸 - THE BOLG OF CHEN 并指明编译后的busybox的安装位置,在BusyBox  installation prefix中输入如下路径。 嵌入式linux根文件系统制作(基于arm) - 至庸 - THE BOLG OF CHEN   退出busybox,保存。上面是busybox的基本配置,自己可以根据自己的需求增删其他配置。 7.编译、安装busybox 在busybox目录下执行: # pwd /home/chen/guoqian/4-3-2/busybox-1.13.3      #make  ARCH=arm  CROSS_COMPILE=arm-linux- # make install 安装完后会在rootfs的bin和sbin目录下出现许多命令,注意查看一下sbin目录下是否有init文件,这个是系统启动首先加载的文件。至此根文件系统就制作好了,由于本文用的是congig-mini2440文件制作的是nfs文件系统,为了能够挂载需要修改/erc/export配置文件,具体配置见另一博文  
nfs与ramdisk文件系统 在针对mini2440配置好的内核linux-2.6.29目录下打开.config文件,里面有一行是这样描述的(nfs文件系统) CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.2.119:/home/chen/guoqian/4-3-2/rootfs ip=192.168.2.118  console=tySAC0 mem=64M” 如果是ramdisk文件系统,则可改为 CONFIG_CMDLINE=”root=/dev/ram  rw  console=tySAC0  mem=64M”