嵌入式实验6

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六内核与根文件系统实验
一、实验目的
1.了解UP-NetARM2410-S的根文件系统结构
2.了解根文件系统的生成过程
3.完成一个简单的文件系统生成步骤
4.了解busybox、mkcramfs工具
二、实验内容
使用busybox生成文件系统中的命令部分,使用mkcramfs工具制作文件系统,并完成将文件系统放置到开发板的烧写工作。

三、预备知识
1.熟悉linux下文件目录结构
2.熟悉linux下常用命令的使用
3.掌握Makefile 的编写和使用。

4.掌握Linux下的程序编译与交叉编译过程
四、实验设备及工具
硬件:UP-NetARM2410-S嵌入式实验仪,PC机pentumn500以上, 硬盘10G以上。

软件:PC机操作系统REDHAT LINUX 9.0 +MINICOM +AMRLINUX开发环境。

五、实验步骤
1.UP-NetARM2410-S Linux文件系统构建方案:
1)根文件系统:
根文件系统是系统启动时挂载的第一个文件系统,其他的文件系统需要在跟文件系统目录中建立节点后再挂载。

UP-NetARM2410-S有一个64M大小的NANDFLASH,根文件系统和用户文件系统建立在该flash的后大半部分。

该flash的前小半部分用来存放bootloader和kernel映像。

根文件系统选用了Cramfs文件系统格式。

2)用户YAFFS文件系统:
由于Cramfs为只读文件系统,为了得到可读写的文件系统,用户文件系统采用YAFFS 格式。

用户文件系统挂载于根文件系统下的/mnt/yaffs目录。

3)临时文件系统:
为了避免频繁的读写操作对Flash造成的伤害,系统对频繁的读写操作的文件夹采用了Ramfs文件系统。

根目录下的/var,/tmp目录为Ramfs临
时文件系统的挂载点。

文件系统构建流程:在嵌人式Linux系统中混合使用Cramfs、YAFFS 和Ramfs。

三种文件系统的实现思路如下:
配置内核:将内核对MTD,Cramfs,YAFFS以及Ramfs文件系统的支持功能编译进内核。

划分Flash分区:对Flash物理空间进行分区,以便在不同的分区上存放不同的数据,采用不同的文件系统格式;必要时编写MAPS 文件。

今修改系统脚本:在系统启动后利用脚本挂载文件系统。

今创建文件系统镜像文件:利用工具生成文件系统镜像文件,并通过Flash烧写。

工具将镜像文件烧写到Flash物理空间。

2.内核配置
1)内核配置(运行make menuconfig)
①配置MTD_要使用Cramfs和YAFFS文件系统,首先需要
配置MTD.在Memory Technology Devices (MTD) --->选项中
选中如下选项:
<*> Memory Technology Device (MTD) support MTD支持
[*] MTD partitioning support MTD分区支持
<*> Direct char device access to MTD devices 字符设备的支持
<*> Caching block device access to MTD devices 块设备支持
NAND Flash Device Drivers ---> 对NAND Flash的支持
<*> SMC Device Support
<*> Simple Block Device for Nand Flash(BON FS)
<*> SMC device on S3C2410 SMDK
[*] Use MTD From SMC
②配置文件系统。

<*> Kernel automounter version 4 support (also supports v3) 文件系统自动挂载支持
<*> DOS FAT fs supportt fs support 对DOS/FAT文件系统的支持
<*> VFAT (Windows-95) fs support
<*> Yaffs filesystem on NAND 对YAFFS文件系统的支持
<*> Compressed ROM file system support 对Cramfs文件系统的支持
[*] Virtual memory file system support (former shm fs) 对temfs文件系统的支持<*> Simple RAM-based file system support
[*] /proc file system support 对/proc和/dev设备文件系统的支持
[*] /dev file system support (EXPERIMENTAL) /dev设备文件系统支持
[*] Automatically mount at boot 启动时自动挂载的支持[*] /dev/pts file system for Unix98 PTYs
Network File Systems ---> 对NFS网络文件系统的支持<*> NFS file system support
[*] Provide NFSv3 client support
2)根文件系统的实现
制作Cramfs格式的根文件系统:一个使用 linux内核的嵌入式系统中的root 文件系统必须包括支持完整 linux系统的全部东西,因此它至少应包括:基本文件系统结构;至少含有目录/dev/proc/bin/etc/lib/usr;最基本的应用程序,如sh、ls、cp、mv等;
最低限度的配置文件,如inittab、fstab等;
设备:/dev/null/dev/console/dev/ tty*/dev/ttyS*对应flash分区的设备节点等;
基本程序运行所需的函数库。

但由于嵌入式系统资源相对紧缺,在构建的时候要根据系统进行定制。

实验步骤如下:
cd /arm2410s/exp
mkdir rootfs
cd rootfs/
cp –arf/arm2410s/busybox-1.00-pre10/
/arm2410s/root/ . cd busybox-1.00-pre10/
进行到这一步时注意:
General Configuration --->
[*] Use the devpts filesystem for Unix98 PTYs
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
[*] Do you want to build BusyBox with a Cross Compiler?
选择交叉编译(/opt/host/armv4l/bin/armv4l-unknown-linux-gcc) Cross Compiler prefix
回车
将路径改为/opt/host/armv4l/bin/armv4l-unknown-linux-
Installation Options ---> [ ] Don't use /usr
Init Utilities ---> 全都不要
网络环境不差的话几秒钟应该可以烧完。

如图1所示。

六、实验总结
通过本次实验,移植QT/E到UP-ARM2410CL上;在QT/E中添加触摸屏鼠标等设备支持;在Qt Designer下编写程序,ARM设备上运行;了解了
UP-NetARM2410-S的根文件系统结构,了解了根文件系统的生成过程以及busybox、mkcramfs工具的使用。

能够完成一个简单的文件系统生成步骤。

图1(a)
图1(b)。

相关文档
最新文档