根文件系统制作记录

上传人:第*** 文档编号:34254000 上传时间:2018-02-22 格式:DOCX 页数:7 大小:28.97KB
返回 下载 相关 举报
根文件系统制作记录_第1页
第1页 / 共7页
根文件系统制作记录_第2页
第2页 / 共7页
根文件系统制作记录_第3页
第3页 / 共7页
根文件系统制作记录_第4页
第4页 / 共7页
根文件系统制作记录_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《根文件系统制作记录》由会员分享,可在线阅读,更多相关《根文件系统制作记录(7页珍藏版)》请在金锄头文库上搜索。

1、根文件系统制作记录一、 所用工具Busybox-1.16.1arm-linux-gcc-4.3.2二、 制作过程1. 编译/安装 Busybox1.1 下载 Busybox 及其补丁从 http:/ 下载 busybox-1.16.1.tar.bz2 及该版本的所有补丁。补丁一个有 5 个,包括:busybox-1.16.1-ash.patchbusybox-1.16.1-cpio.patchbusybox-1.16.1-dnsd.patchbusybox-1.16.1-hwclock.patchbusybox-1.16.1-indexcgi.patchbusybox-1.16.1-sed.p

2、atch下载完成后将 busybox-1.16.1.tar.bz2 复制到/work/create_rootfs 目录下,所有补丁文件复制到/work/create_rootfs/ busybox-1.16.1-patch 目录下。使用如下命令将 busybox-1.16.1.tar.bz2 解压到 busybox-1.16.1 目录$ tar xjf busybox-1.16.1.tar.bz2 1.2 给 Busybox 打上补丁可以手工逐一给 Busybox 打补丁,也可以编写脚本自动帮我们完成打补丁的工作,这里采用后面一种方法。$ gedit /work/create_rootfs/p

3、atch.sh加入如下脚本:#!/bin/shcd busybox-1.16.1echo install patch:for patch_file in ls ./busybox-1.16.1-patch/busybox-1.16.1-*.patchdopatch -p1 General Configuration-* Show verbose applet usage messages* Store applet usage messages in compressed form* Support install -s to install applet links at runtime*

4、Enable locale support(system needs locale for this to work)* Support for long-options* Use the devpts filesystem for unix98 PTYs* Support writing pidfiles* Runtime SUID/SGID configuration via /etc/busybox.config* Suppress warning message if /etc/busybox.conf is not readableBuild Options-* Build Busy

5、Box as a static binary(no shared libs)* Build with Large File Support(for accessing files2GB)Installation Options-Dont use /usrApplets links (as soft-links) -(./_install) BusyBox installation prefixBusybox Library Tuning -(6)Minimum password legth(2)MD5:Trade Bytes for Speed*Fsater /proc scanning co

6、de(+100bytes)*Command line editing(1024)Maximum length of input* vi-style line editing commands(15) History size* History saving* Tab completion*Fancy shell prompts(4) Copy buffer size ,in kilobytes*Use ioctl names rather than hex values in error messages*Support infiniband HW(2)Linux Module Utiliti

7、es-(/lib/modules)Default directory containing modules(modules.dep)Default name of modules.dep增加对 mdev 的支持:(3)Linux System Utilities -*Support /etc/mdev.conf*Support command execution at device addition/removal1.4 安装 Busybox使用如下命令将 Busybox 安装到/work/create_rootfs/rootfs 目录下:$ mkdir /work/create_rootfs

8、/rootfs$ make$ make CONFIG_PREFIX=/work/create_rootfs/rootfs install将 Busybox 安装到 /work/create_rootfs/rootfs 目录下,Busybox 将在该目录下创建如下几个文件和目录:drwxr-xr-x 2 heaad heaad 4096 2010-05-09 10:54 binlrwxrwxrwx 1 heaad heaad 11 2010-05-09 10:54 linuxrc - bin/busyboxdrwxr-xr-x 2 heaad heaad 4096 2010-05-09 10:5

9、4 sbindrwxr-xr-x 4 heaad heaad 4096 2010-05-09 10:54 usr2. 构建根文件系统2.1 创建根文件系统下必要的目录为了创建根文件系统下的其他目录与文件,我们可以采用手工敲命令创建的方式,也可以编写脚本自动完成,这里采用后一种方式。编写如下脚本,保存为/work/create_rootfs /create_fs.sh 。#!/bin/shecho -creating rootfs directions-cd /work/create_rootfs/rootfsecho -creating root ,dev -mkdir root dev et

10、c boot tmp var sys proc lib mnt homemkdir etc/init.d etc/rc.d etc/sysconfigmkdir usr/lib usr/modulesecho -making node for dev/console dev/null-mknod -m 600 dev/console c 5 1 mknod -m 600 dev/null c 1 3mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/tempmkdir var/lib var/lock var/run var/tmpchmod 1777

11、 tmp chmod 1777 var/tmpecho -make direction done-使用如下的命令执行脚本:sudo chmod +x create_fs.shsudo ./create_fs.sh /mknod 需要管理员权限2.2 创建 etc/fstab 文件etc/fstab 文件中指定了内核启动后要挂载的文件系统。$ cd /work/create_rootfs/rootfs$ gedit etc/fstab在该文件中添加如下内容:#device mount-point type option dump fsck orderproc /proc proc default

12、s 0 0tmpfs /tmp tmpfs defaults 0 0sysfs /sys sysfs defaults 0 0tmpfs /dev tmpfs defaults 0 02.3 创建 etc/inittab 文件Busybox 的 init 程序根据 etc/inittab 的内容创建各种子进程。$ gedit etc/inittab在该文件中添加如下内容:# /etc/inittab:sysinit:/etc/init.d/rcSs3c2410_serial0:askfirst:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umo

13、unt -a -r 0 012.4 创建 etc/init.d/rcS 文件etc/init.d 文件中保存的是自动执行的命令。$ gedit etc/init.d/rcS#! /bin/shifconfig eth0 192.168.0.11mount -amkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev /proc/sys/kernel/hotplugmdev -s最后还要改变这个文件的属性,使它能够执行。$ sudo chmod +x etc/init.d/rcS2.5 复制 glibc 库文件Busybox 的运行

14、依赖于 glibc 动态链接库,而 Linux 上的应用程序也可能需要链接动态链接库,因此需要将 glibc 库复制到根文件系统的 lib 目录下:$ cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so* /work/create_rootfs/rootfs /lib -d其中/usr/local/arm/4.3.2 是 arm-linux-gcc 安装的目录,请根据你机器上具体安装的目录作相应的修改。若出现根文件系统无法挂载的情况,请先检查etc/init.d/rcS、etc/inittab、etc/fstab

15、 这几个文件是否正确。有些难以察觉的错误比如“-” 符号由于 Word 的自动画线功能可能会被自动修改为 “” ,若读者直接复制 Word 里面的符号到 Linux 下,则有可能导致根文件系统挂载失败。三、 根文件系统的挂载1 根文件系统存储在 NAND FlashNAND Flash 上的根文件系统一般采用 YAFFS2 格式,这就需要我们将根文件系统制作成 YAFFS2 格式的映像文件,然后烧写到 NAND Flash中。这里使用的制作映像文件的工具是 YAFFS2 自带的工具mkyaffs2image。烧写 64B 和 128MB 或以上的 NAND Flash 所用到mkyaffs2image 是不同的,需要作修改,移植的详细过程请参考mkyaffs2image 移植过程 。使用使用如下命令:cd /work/create_rootfs 对于 128MB 或以上的 NAND Flash,请用下面的命令:mkyaffs2image-128m rootfs rootfs.yaffs2-128m对于 64MB 的 NAND Flash,请用下面的命令:mkyaffs2image-64m rootfs rootfs.yaffs2-64m2 根文件系统存储在 SD 卡SD 卡挂载根文件系统请参考SD 卡启动 Linux 并挂载根文件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号