当前位置:文档之家› 嵌入式Linux系统集成

嵌入式Linux系统集成

嵌入式Linux系统集成
•嵌入式Linux常用文件系统•配置MTD
•配置测试文件系统
•配置单机启动
CramFS文件系统•CramFS 设计简单而且小,适用于在半导体ROM和CD上存储文件系统,使用CramFS,文件系统通常限制在16M以下,最大的文件系统则略大于256M。

•CramFS是只读文件系统,因此不象其他文件系统,必须由本身内容创建。

一旦创建了文件系统影像,就可以写到FLASH/ROM中,然后挂接。

•目前在所有的MVL PE体系结构上都支持CramFS,可以和其他文件系统结合使用。

EXT2和EXT3文件系统•EXT2是一种很常用的文件系统(也许最常见)。

EXT2是开发应用于Linux,在块设备(例如硬盘和CD-ROM驱动器上)工作,EXT2支持大于4T字节大小,文件名长度达到255个字节。

EXT3是EXT文件系统最新的版本。

EXT3的两个大的改进是:支持遵循POSIX规则的访问控制列表(ACL);当文件系统挂接时自动恢复日志。

•所有的MVL PE体系结构都支持EXT2。

EXT3还处于试验阶段,但是在所有的MVL PE体系结构都可以使用。

FLASH日志文件系统•JFFS日志FLASH文件系统是由瑞典的Axis
Communication公司开发的。

•JFFS2是JFFS 的下一个版本,功能更加完善,还处于试验阶段。

•对于JFFS 和JFFS2 ,FLASH 最小也必须大于2 倍erase_sector_size空间用于垃圾回收,大约15%。

JFFS文件系统
•直接在FLASH上提供文件系统,而不是仿真块设备。

•专为FLASH-ROM芯片设计,识别FLASH-ROM芯片的特殊写要求。

•通过磨损平衡延长FLASH的寿命。

•总是把FLASH目录结构保存在RAM中。

•实现日志结构的文件系统,即使系统遇到崩溃或者不正常断电,总是保持一致,不需要在启动时fsck。

JFFS2文件系统
•JFFS2提供了更好的磨损平衡和垃圾回收性能;•改进了对RAM标记和系统内存压力的响应,改进的并发和支持悬挂FLASH擦除操作;
•标记坏块,连续使用剩余的好块,这样提高设备的寿命;
•本地数据压缩;
•支持硬连接。

ReiserFS文件系统
•ReiserFS是一种日志文件系统,可以作为标准Linux文件系统EXT2的替代品。

•ReiserFS的主要好处是在系统重启动时避免了长时间的文件系统检查。

在一般的操作过程中,ReiserFS在磁盘的特殊日志区域记录了所有的文件系统的变化。

在重新启动过程中,不检查整个文件系统,参考日志区就可以恢复文件系统的连续性。

•ReiserFS日志区目前大小定在30M字节。

这样使得ReiserFS对于小于100M字节文件系统很不合适。

MTD
•MontaVista Linux支持MTD(Memory Technology Device)
•MTD常常用来支持FLASH设备,MTD驱动程序可以支持常见的FLASH芯片。

•FLASH芯片接口类型:CFI和非CFI •FLASH芯片参数:类型、地址、总线宽度
•FLASH生产商主要有:Intel和AMD
MTD的配置
•<*> Memory Technology Device (MTD) support –<*> MTD partitioning support
–[ ] Debugging
–---User Modules And Translation Layers
–<*> Direct char device access to MTD devices
–<*> Caching block device access to MTD devices
–RAM/ROM/Flash chip drivers --->
–Mapping drivers for chip access --->
MTD设备
•/dev/mtd 是MTD设备
•/dev/mtd0…n 是MTD分区设备号
•/dev/mtdblock0…n 是固化后的MTD块设备•Linux内核配置了MTD,启动时会探测FLASH
芯片,初始化时添加设备。

•MTD分区:通常FLASH的地址分配是连续的
一块;因为要分别存放BootROM、内核、实际使用需要在相应文件(physmap.c)中添加分区。

配置测试文件系统
•创建文件系统目录结构。

–选择文件系统(JFFS)
–TCT选择应用程序,生成fsimage.tar
–解压fsimage.tar文件,添加自己开发的应用程序•引导内核,通过NFS挂接自己的文件系统。

•配置用户环境,测试。

•裁减文件系统。

•定制嵌入式应用程序。

系统集成
配置单机运行
•嵌入式系统要作为产
品发布,具有左图的
功能。

•在目标板上固化内核、
文件系统等,从本机
文件系统启动。

通常
存放在FLASH中,采
用MTD/JFFS技术。

X86体系结构的目标
板通常固化到硬盘上。

配置单机内核•General setup --->
–[*] Default bootloader kernel arguments
–Initial kernel command string: "console=ttyS0,9600
root=/dev/mtdblock3 rw
•Networking options --->
–[ ] IP: BOOTP support
•File systems --->
–[*] JFFS2 Support
–[ ]Network File Systems --->
•MTD
固化到FLASH
•创建文件系统image
–通过NFS挂接安装的target文件系统,使用目标板工
具,可以把文件系统目录转化为image文件。

例如:要用JFFS2文件系统,则在目标板上执行:
–mkfs.jffs2 –d myfs –o image.jffs2
•复制文件系统image到MTD设备中
–由于MTD支持FLASH设备的读写操作,只要用cp命
令复制即可:
–cp image.jffs2 /dev/mtd3
•复制新内核到FLASH中
–cp zImage.bin /dev/mtd2
•重启目标板。

软盘和硬盘设备
•软盘和硬盘都属于块设备,可以格式化为文件系统,执行文件操作。

•Linux的软盘设备:
–/dev/fd0
–/dev/fd1
•Linux的硬盘设备:
–/dev/hda
–/dev/hda1…n
–/dev/hdb
–/dev/hdb1…n
目标板硬盘安装方法一
•在交叉开发环境下,格式化硬盘文件系统,然后挂接。

–mkreiserfs /dev/hda1
–mount /dev/hda1 /mnt –t reiserfs
•把文件系统复制到硬盘设备上。

–(cd /myfs; tar cf -.) | (cd /mnt; tar xf -)
•制作软盘,启动时挂接硬盘文件系统为/ –内核启动参数为:root=/dev/hda1 rw
•软盘启动,挂接/dev/hda1为根目录。

使用lilo配置硬盘MBR,引导硬盘启动。

目标板硬盘安装方法二
•使用TCT配置内核和文件系统,配置和裁减文件系统。

•制作Linux启动盘和ramdisk文件系统的软盘。

•使用ramdisk文件系统启动目标板。

格式化硬盘并复制文件系统和程序到硬盘。

•使用引导硬盘文件系统的软盘启动。

使用lilo配置硬盘MBR,引导硬盘启动。

相关主题