




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
根文件系统制作记录一、 所用工具Busybox-1.16.1arm-linux-gcc-4.3.2二、 制作过程1. 编译/安装Busybox1.1 下载Busybox及其补丁从 / 下载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.patch下载完成后将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/patch.sh加入如下脚本:#!/bin/sh cd busybox-1.16.1echo install patch: for patch_file in ls ./busybox-1.16.1-patch/busybox-1.16.1-*.patch do patch -p1 General Configuration-* Show verbose applet usage messages* Store applet usage messages in compressed form* Support install -s to install applet links at runtime* 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 BusyBox 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 code(+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 Utilities-(/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/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:54 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 etc 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 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 defaults 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/umount -a -r 0 012.4 创建etc/init.d/rcS文件etc/init.d文件中保存的是自动执行的命令。$ gedit etc/init.d/rcS#! /bin/shifconfig eth0 1mount -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的运行依赖于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这几个文件是否正确。有些难以察觉的错误比如“-” 符号由于Word的自动画线功能可能会被自动修改为“”,若读者直接复制Word里面的符号到Linux下,则有可能导致根文件系统挂载失败。三、 根文件系统的挂载1 根文件系统存储在NAND FlashNAND Flash上的根文件系统一般采用YAFFS2格式,这就需要我们将根文件系统制作成YAFFS2格式的映像文件,然后烧写到NAND Flash中。这里使用的制作映像文件的工具是YAFFS2自带的工具mkyaffs2image。烧写64B和128MB或以上的NAND Flash所用到mkyaffs2image是不同的,需要作修改,移植的详细过程请参考mkya
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环境数据共享与信息化管理方案
- 2025国考朝阳市英语翻译岗位申论高频考点及答案
- 解析卷人教版八年级上册物理声现象《噪声的危害和控制》专题测评试题(含答案解析版)
- 2025国考伊春市财务管理岗位行测预测卷及答案
- 2025国考抚顺市文艺管理岗位行测题库含答案
- 2025国考天津证监局行测常识判断必刷题及答案
- 建筑防腐保温材料选择与应用方案
- 考点解析-人教版八年级物理《运动和力》同步训练试卷(含答案详解)
- 达标测试人教版八年级上册物理声现象《声音的产生与传播》专项练习练习题(含答案详解)
- 八段锦对早发血管衰老高血压患者的临床疗效观察
- 可爱卡通风人教部编版一年级语文上册课件比尾巴PPT模板
- 温湿度点检记录表-曲线图
- 北师大版六年级数学上册 (生活中的比)比的认识课件教学
- 高考英语读后续写高分讲义:万能语料之心理描写
- 《以核心价值体系为引领推进陕西文化强省建设》课程讲义
- 伟大的改革开放 全市获奖
- 2022版义务教育艺术(音乐)课标试题及答案
- DMF安全技术说明书MSDS
- 2023春国开电大《实用管理基础》形考任务1-4参考答案
- 现代大学英语-第三版-精读3-教师教案
- 【模板】私募基金通道业务合作协议
评论
0/150
提交评论