基于busybox制作mini2440根文件系统及使用nfs挂载 - 图文
更新时间:2023-09-24 17:08:01 阅读量: IT计算机 文档下载
常见的文件系统有yaffs2, jffs2,他们是适用于根文件系统镜像存在于NAND Flash上的情况。而传统的Linux EXT2/EXT3文件系统格式适用于传统的block设备,比如SD卡或者硬盘。
cramfs同时适用于以上两种情况。其不管采用哪种格式,内核都必须支持它,这是根文件系统正确挂载的前提条件。其内核支持它是指:在对内核进行编译的时候必须加入对相应文件系统的支持。
由于在内核没有加入对yaffs2的支持,因此在最后根据mkyaffs2image制作yaffs2类型的根文件系统,在加载之前,必须要对linux内核进行打yaffs2的补丁。将yaffs文件系统编译进内核。之后在启动linux内核时候才能识别yaffs2文件系统。
我在自己的mini2440开发板上面通过nfs来加载制作好的\根文件系统\,这里的\根文件系统\指的是:没有经过像mkyaffs2image工具转化的原始的类linux目录结构的文件。其文件包括Linux启动时所必须的目录和关键性的文件。nfs便于加载及验证我们制作的文件系统的正确性。其加载时文件系统不用读写flash。
*******************************第一步:下载busybox并编译******************************** 下载busybox-1.19.2.tar.bz2 http://www.busybox.net/downloads/
解压并进入目录
# tar jxvf busybox-1.19.2.tar.bz2 # cd busybox-1.19.2修改Makefile # gedit Makefile & 把 164 行修改为:
CROSS_COMPILE = arm-linux- 把 190 行修改为: ARCH = arm
配置
# make menuconfig 或者make xconfig(为图形化界面)
在Busybox Settings->Build Options之下选择Build BusyBox as a static binary (no shared libs) (STATIC)以静态的方式来编译busybox。
其他的比如安装目录及常用命令我没有设置,采用的是默认值。如果有需要再添加。 编译 # make 安装
# make install
在busybox-1.19.2目录下可以找到_install子目录,其中就是编译好的命令。 [busybox-1.19.2]$ll total 12
drwxr-xr-x 2 root root 4096 Feb 9 14:43 bin
lrwxrwxrwx 1 root root 11 Feb 9 14:43 linuxrc -> bin/busybox drwxr-xr-x 2 root root 4096 Feb 9 14:43 sbin drwxr-xr-x 4 root root 4096 Feb 9 14:43 usr 并将以上文件copy到/mini2440/rootfs目录下面
*******************第二步:建立所需的目录及文件************************* 1: 建立目录 使用以下脚本
[root@centos /mini2440]$cat mkDir.sh //具有执行权限 #!/bin/sh
echo \mkdir /mini2440/rootfs cd /mini2440/rootfs
echo \
mkdir root dev etc boot tmp var sys proc lib mnt home usr mkdir etc/init.d etc/rc.d etc/sysconfig mkdir usr/sbin usr/bin usr/lib usr/modules echo \mknod -m 600 dev/console c 5 1 mknod -m 600 dev/null c 1 3
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/run var/tmp chmod 777 tmp chmod 777 var/tmp
echo \
上面shell中建立的目录有的没有使用。执行问脚本目录结构如下: [root@centos /mini2440/rootfs]$ls
boot dev etc home lib mnt proc root sys tmp usr var [root@centos /mini2440/rootfs]$tree . |-- boot |-- dev | |-- console | `-- null |-- etc | |-- init.d | |-- rc.d | `-- sysconfig |-- home |-- lib |-- mnt | |-- data | |-- etc | |-- jffs2 | |-- temp | `-- yaffs |-- proc |-- root |-- sys |-- tmp |-- usr | |-- bin | |-- lib | |-- modules | `-- sbin `-- var
|-- lib |-- lock |-- run `-- tmp
28 directories, 2 files:
2:修改与添加系统初始化脚本 都在 /mini2440/rootfs目录下面进行 (1)etc/inittab 系统init进程配置文件,并更改权限 chmod +x inittab ::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh #没有这就不行,就不能打开console控制台。 ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r ::shutdown:/sbin/swapoff -a
(2)etc/init.d/rcS系统启动加载项文件,并更改权限chmod +x etc/init.d/rcS #!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022
export PATH runlevel prevlevel mount -a mkdir /dev/pts
mount -t devpts devpts /dev/pts #用于telnet登录时使用 echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s
mkdir -p /var/lock
/bin/hostname -F /etc/sysconfig/HOSTNAME (3)etc/fstab 系统挂载文件系统列表文件 #device mount-point type option dump fsck order proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 mdev /dev ramfs defaults 0 0 none /var ramfs defaults 0 0 none /tmp ramfs defaults 0 0 (4)etc/profile用户环境配置文件
# Ash profile # vim: syntax= sh # No core file by defaults
# ulimit - S - c 0> / dev/ null 2> & 1 USER=\LOGNAME=$USER
PS1=\#\\w 目录将显示全路径 PATH=$PATH
HOSTNAME= '/bin/hostname' alias cls=\
export USER LOGNAME PS1 PATH (5)/etc/passwd shadow 用户文件以及密码 把主机的passwd shadow 文件拷贝到/etc下 # cp /etc/passwd /mini2440/rootfs/etc # cp /etc/group /mini2440/rootfs/etc # cp /etc/shadow /mini2440/rootfs/etc
(6)etc/sysconfig/HOSTNAME的内容为你自己的名字即可,内容为\ gedit /etc/sysconfig/HOSTNAME 然后键入 mini2440
***********************第三步:以nfs方式加载测试******************************** 测试之前必须确保nfs服务已经开启,uboot中的bootargs参数已经设置成功。 bootcmd=nfs 0x30008000 192.168.1.149:/opt/FriendlyARM/uImage;bootm bootargs=noinitrd root=/dev/nfs proto=tcp,nolock,nfsvers=3, rw
nfsroot=192.168.1.149:/mini2440/rootfsip=192.168.1.144:192.168.1.149::255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M 在reboot的时候 [@mini2440 /etc]#reboot
[@mini2440 /etc]#umount: mdev busy - remounted read-only
是由于在reboot的时候执行了 /etc/inittab中的::shutdown:/bin/umount -a -r 需要重新挂载设备所致,可以去掉此行。
有待改进:使用mkyaffs2image制作成为最终的根文件系统,烧写到flash中,启动的时候从flash中读取内容。后面会做这一实验。 最终rootfs中的目录结构如下:
正在阅读:
基于busybox制作mini2440根文件系统及使用nfs挂载 - 图文09-24
请示02-23
2013秋华东理工大学《现代远程教育概论》在线作业一参考答案11-30
气敏器件传感器行业发展预测及投资咨询报告05-16
全国金属焊接与热切割作业模拟试题大全04-13
描写校园景色的作文:秋天的校园02-04
绿色指标112-15
河北省2016年下半年房地产估价师理论与方法:比较法适用的估价对04-06
望子成龙的爸爸作文400字06-29
小学减负工作计划范文05-10
- 供应商绩效评价考核程序
- 美国加州水资源开发管理历史与现状的启示
- 供应商主数据最终用户培训教材
- 交通安全科普体验教室施工方案
- 井架安装顺序
- 会员积分制度
- 互联网对美容连锁企业的推动作用
- 互联网发展先驱聚首香港
- 公司文档管理规则
- 机电一体化系统设计基础作业、、、参考答案
- 如何选择BI可视化工具
- 互联网产品经理必备文档技巧
- 居家装修风水的布置_家庭风水布局详解
- 全省基础教育信息化应用与发展情况调查问卷
- 中国石油--计算机网络应用基础第三阶段在线作业
- 【知识管理专题系列之五十八】知识管理中如何实现“场景化协同”
- 网络推广方案
- 中国石油--计算机网络应用基础第二阶段在线作业
- 汽车检测与维修技术专业人才培养方案
- 详解胎儿颈透明层
- 挂载
- mini2440
- 基于
- busybox
- 图文
- 文件
- 使用
- 制作
- 系统
- nfs
- 企业安全生产自查表
- 成型设备思考题-
- 江苏省职业学校技能大赛理论考试试题库试题卡
- 题库1
- 外墙外保温工程施工方案
- 迎宾踏板项目可行性研究报告(目录) - 图文
- 高中数学 3.2第1课时 空间向量与平行、垂直关系知能演练轻松闯关 理 新人教A版选修2-1
- 第三章 货币资金练习题
- 110kv变电站施工组织设计方案
- 《认识平行》公开课教学设计
- 第三部分(湖南省建设工程计价办法及有关工程消耗量标准统一解释汇总及勘误(第2辑))
- 企业绩效管理存在的问题及对策
- 2009年一级建造师考试建设工程经济预测试题及答案
- 天地协竞赛题 - 图文
- 调车组复习题-hu
- 学生交通安全承诺书
- 网络导论考试我94分
- T-SQL程序设计
- 从礼貌原则浅析模糊限制语语用实现
- 第五章 受弯构件正截面承载力答案