已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 6830-2025电信线路遭受强电线路危险影响的容许值
- 2025辽宁省沈抚示范区教育系统面向部分普通高校2026年应届毕业生招聘事业编制急需紧缺教师12人笔试考试参考题库及答案解析
- 2025重庆市沙坪坝区磁器口社区卫生服务中心招聘2人笔试考试参考题库及答案解析
- 2025广东深圳市优才人力资源有限公司(派至某国企)聘员招聘1人考试笔试备考题库及答案解析
- 新疆和田地区2025年“才聚和田·智汇玉都”招才引智招聘工作人员(204人)考试笔试参考题库附答案解析
- 2025四川宜宾市市属事业单位第二次考核招聘工作人员125人考试笔试备考试题及答案解析
- 2026中国储备粮管理集团有限公司广西分公司招聘45人考试笔试模拟试题及答案解析
- 2026年浙江大学医学院附属邵逸夫医院招聘派遣制岗位135人笔试考试备考题库及答案解析
- 2025河北秦皇岛市大数据有限公司公开选聘高级管理人员1名考试笔试备考试题及答案解析
- 2026年陕西日报社定向校园招聘(12人)笔试考试备考试题及答案解析
- 未成年人法制教育体系构建
- 外研社英语一年级起点五年级上册知识点总结 重点句型 课文讲解
- 矛盾纠纷多元化解工作方案
- 车辆转让协议书
- 食品加工企业会计核算流程
- 生物质燃料颗粒可行性研究报告
- 网络安全教师培训会议
- 【MOOC】《研究生英语科技论文写作》(北京科技大学)中国大学MOOC慕课答案
- 神话故事民间故事《后羿射日》绘本课件
- 屋架平房仓计算书
- 《安全阀培训》课件
评论
0/150
提交评论