zju(4)使用busybox制作根文件系统
1、实验目的
1、学习和掌握busybox相关知识及应用;
2、学会使用交叉编译器定制一个busybox;
3、利用该busybox制作一个文件系统;
4、熟悉根文件系统组织结构;
5、定制、编译ramdisk根文件系统。
二、实验内容
1.使用交叉编译器定制一个busybox;
2.利用该busybox制作一个文件系统;
3. 利用已经完成的文件系统,生成根文件系统。
三、主要仪器设备
1、Ubuntu12.04系统。
2、英培特eduk4-s3c2410试验平台
四、操作方法和实验步骤
1. 编译busybox
设置环境变量,执行命令切换到busybox实验目录下,并解压busybox
在终端中输入命令设置环境变量
source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh
source /usr/local/arm/2.95.3/path.sh



清除早前可能存在的配置信息

执行配置命令


选择Load An Alternate Configurstion File选项,添加配置文件,在弹出的窗体中写入eduk4后,保存并退出。
编译busybox
执行make 和 make install 后将在busybox-1.1.2下面生成一个_install文件夹

基于busybox生成文件系统包

创建文件系统目录树结构,并拷贝必要的文件到文件系统目录内
mkdir –p dev etc/init.d home mnt proc root sys tmp var media


cd /usr/local/src/EduKit-IV/Mini2410/simple/6.3-busybox/root-mini/etc/init.d/

#!/bin/sh
echo "running /etc/init.d/rcS"
#mount the /proc file system
/bin/mount -t proc proc /proc
echo "mount tmpfs filesystem to /tmp"
/bin/mount -t tmpfs none /tmp
echo "mount ramfs filesystem to /var"
/bin/mount -t ramfs none /var
/bin/ln -s /dev/fb/0 /dev/fb0
/bin/ln -s /dev/ub/a/part1 /dev/sda1
/bin/ln -s /dev/sound/dsp /dev/dsp
/bin/ln -s /dev/tts/0 /dev/ttyS0
/bin/ln -s /dev/tts/1 /dev/ttyS1
/bin/ln -s /dev/tts/2 /dev/ttyS2
/bin/mknod /dev/mtd0 c 90 0
/bin/mknod /dev/mtd1 c 90 2
/bin/mknod /dev/mtd2 c 90 4
/bin/mknod /dev/mtd3 c 90 6
/bin/mknod /dev/mtd4 c 90 8
/bin/mknod /dev/mtd5 c 90 10
/bin/hostname EDUK4
/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0
#/sbin/ifconfig eth0 192.192.192.200 netmask 255.255.255.0
/sbin/ifconfig eth1 192.192.192.201 netmask 255.255.255.0
#exec /etc/init.d/rc.local
在chmod –R 777 root-mini
Busybox文件完
根文件系统ramdisk的制作
进入6.4-ramdisk执行脚本

运行shell脚本结果

创建一个空的ramdisk镜像

格式化文件系统

挂载文件系统
mkdir -p temp
mount -o loop ramdisk temp


将root-mini下文件复制到temp
cp -av ../6.3-busybox/root-mini/* temp/

卸载
umount temp

生成压缩文件,修改root-mini.gz权限,再删除临时文件夹ramdisk,拷贝生成的ramdisk根文件系统映像到/home/example目录

gzip -v9 ramdisk
chmod -R 777 ramdisk.gz
cp -av ramdisk.gz /home/example/
固化ramdisk
启动minicom,按住space启动实验箱,进入vivi下载模式,使用load flash ramdisk x进行ramdisk根文件映像的固化。



重启系统,修改vivi启动参数,具体如下
param set ramdisk_copy 1
param set linux_cmd_line "initrd=0x30800000,0x200000 root=/dev/ram console=ttySAC1"
param save

重启实验箱,可以在minicom中看到ramdisk文件系统的相关信息,如图4-10所示。

定位导致出错的信息。通过提示信息猜测,问题出现在执行rcS的过程中,通过在文件中添加echo提示信息,进行问题定位。实验过程中发现,问题出现在配置网络信息过程中,即下面的语句:
/sbin/ifconfig eth1 192.192.192.201 netmask 255.255.255.0
当将eth1改为eth0时,提示信息消失。


zju(4)使用busybox制作根文件系统的更多相关文章
- 通过busybox制作根文件系统
通过busybox制作根文件系统可以自定义选项,在制作的根文件系统中添加需要的命令,指定生成的根文件系统到相应的目录下. 一. 根文件系统的获取方式--->官网: https://busybox ...
- 通过busybox制作根文件系统详细过程
我在之前的uboot通过NFS挂载ubuntu根文件系统中也有实现过根文件系统的制作,那只是在ubuntu官网已经做好的根文件基础上安装一些自己所需的软解而已.而使用busybox制作根文件系统可以自 ...
- 利用busybox制作根文件系统
实际项目中可以使用Buildroot制作根文件系统 1.busybox源码下载及配置 https://busybox.net/downloads/ 1.1.修改Makefile (1) ARCH = ...
- 使用BusyBox制作根文件系统【转】
本文转载自:http://www.cnblogs.com/lidabo/p/5300180.html 1.BusyBox简介 BusyBox 是很多标准 Linux 工具的一个单个可执行实现.Busy ...
- 使用BusyBox制作根文件系统
1.BusyBox简介 BusyBox 是很多标准 Linux 工具的一个单个可执行实现.BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大.更复杂的工具,例如 gre ...
- tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04
http://blog.csdn.net/liudijiang/article/details/50555429(转) 首先得要有制作好的uboot和linux内核镜像zImage,先烧录到sd卡里, ...
- Linux 利用busybox制作根文件系统
busybox版本:1.17.3 官网下载路径:https://busybox.net/downloads/ 网盘下载路径:https://pan.baidu.com/s/1nvrEa73 密码:7y ...
- 第4阶段——制作根文件系统之分析init进程(2)
本节目标: (1) 了解busybox(init进程和命令都放在busybox中) (2) 创建SI工程,分析busybox源码来知道init进程做了哪些事情 (3) 分析busybox中init进 ...
- Busybox构建根文件系统和制作Ramdisk
定制根文件系统的方法很多,最常用的是使用BusyBox来构建定制根文件系统.它集成压缩了Linux的许多工具和命令,可以使用户迅速方便地建立一套相对完整.功能丰富的文件系统,其中包括大量常用的应用 ...
随机推荐
- hdfs 名称节点和数据节点
名字节点(NameNode )是HDFS主从结构中主节点上运行的主要进程,它指导主从结构中的从节点,数据节点(DataNode)执行底层的I/O任务. 名字节点是HDFS的书记员,维护着整个文件系统的 ...
- LR检查点的if (status == LR_FAIL)写法
C语言例子:登录失败返回一个信息 int status = web_url("Login", "URL=https://secure.computing.com//log ...
- DSP using MATLAB 示例Example3.8
代码: x = rand(1,11); n = 0:10; k = 0:500; w = (pi/500)*k; % [0,pi] axis divided into 501 points. X = ...
- react-redux(2)
中间件 机制: 建立一个store.dispatch的链条,每个middleware是链条中的一个环节,传入的action对象逐步处理,直到最后出来是Javascript Plain Object; ...
- 【转】Python yield 使用浅析
转载地址: www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ Python yield 使用浅析 初学 Python 的开发者经 ...
- Monkeyrunner脚本中component快速定位方法
在编写MonkeyRunner脚本过程中,会出现component这一项内容,很多人可能不知道怎么确认,其实这个主要是为了指定要测试的程序包名和主Activity名,我们可以用以下方法去进行确认: 1 ...
- Oracle执行计划
建立与oracle的web程序,经常性出现sql性能不高导致的问题,比如程序好好的突然数据库查询变得很慢,几乎加载不了,这时候就有可能是oracle查询计划出错的原因. <sql id=&quo ...
- BZOJ1946 : [Ceoi2006]ANTENNA
首先通过随机增量法求出最小覆盖圆,作为答案的上界. 然后二分答案,检验的时候枚举每个点作为原点,求出其他每个点被包括在圆内的角度区间,然后扫描线即可. 时间复杂度$O(Tn^2\log n)$. #i ...
- Posterior visual bounds retrieval for the Plato framework
Plato is a MVVM compliant 2D on-canvas graphics framework I've been designing and implementing for d ...
- POJ - Ubiquitous Religions
Description 当今世界有很多不同的宗教,很难通晓他们.你有兴趣找出在你的大学里有多少种不同的宗教信仰. 你知道在你的大学里有n个学生(0 < n <= 50000) .你无法询问 ...