|
AT91sam9263EK使用JFFS2根文件系统 OneWind 发表于 2007-6-1 16:40:00
AT91sam9263EK使用JFFS2根文件系统
张驿风
2007-6-1
cbuilder@peoplemail.com.cn
在AT91sam9263EK成功配置了NFS根文件系统后,后来又想把JFFS2也移植到AT91sam9263EK上吧,说干就干。
1. 呵呵,其实很简单我使用的linux-2.6.20内核里已经有jffs2 文件系统支持,选上jffs2即可
File systems --->
Miscellaneous filesystems --->
<*> Journalling Flash File System v2 (JFFS2) support (0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy) [*] JFFS2 write-buffering support [*] JFFS2 summary support (EXPERIMENTAL) [*] JFFS2 XATTR support (EXPERIMENTAL) [*] JFFS2 POSIX Access Control Lists [*] JFFS2 Security Labels [*] Advanced compression options for JFFS2 [*] JFFS2 ZLIB compression support [*] JFFS2 RTIME compression support [ ] JFFS2 RUBIN compression support JFFS2 default compression mode (priority)
选上MTD支持
Device Drivers --->
Memory Technology Devices (MTD) --->
<*> Memory Technology Device (MTD) support [ ] Debugging <*> MTD concatenating support [*] MTD partitioning support < > RedBoot partition table parsing [*] Command line partition table parsing <*> ARM Firmware Suite partition parsing --- User Modules And Translation Layers <*> Direct char device access to MTD devices <*> Caching block device access to MTD devices <*> FTL (Flash Translation Layer) support <*> NFTL (NAND Flash Translation Layer) support [ ] Write support for NFTL 2. 从ttp://www.linux-mtd.infradead.org/上下载
mtd-utils-1.0.0.tar.gz 到宿主机。
解压
tar xvzf mtd-utils-1.0.0.tar.gz
进入mtd-utils-1.0.0目录修改Makefile进行编译。
编译出mkfs.jffs2,nandwrite等工具
3. 创建jffs2根文件系统:
首先要有一个其他类型的根文件系统,制作和获取方式可以参见<< AT91sam9263EK使用NFS根文件系统>>
比如可以:
mount -t cramfs rootfs_lnxdemo.cramfs tmp/ -o loop
rootfs_lnxdemo.cramfs由atmel提供当然你可以自己制作,这里直接使用atmel的省去了制作的麻烦。
tar czvf target.tar.gz tmp/
生成jffs2根文件系统镜像:
mkfs.jffs2 –l –s 0x400 –e 0x20000 –d tmp/ -o target.jffs2
4. 烧写jffs2根文件系统镜像到nand flash。
烧写方法应该有多种常用的有2种(呵呵自己认为的):
a.通过nand编程器烧写镜像文件到nand flash芯片然后再焊接到pcb.
b.挂载nfs文件系统,使用nandwrite工具写镜像文件
到mtd设备。
第一种适合生产时使用,而我们测试时候比较适合使用第二种方式。
挂载nfs文件系统:
nandwrite –o /dev/mtd1 target.jffs2
或者是在nfs 根文件系统下:
mount –t jffs2 /dev/mtdblock1 /mnt
cd /mnt
tar xvzf ../target.tar.gz
umount /mnt
5. 配置内核启动参数如下:
setenv bootargs mem=64M console=ttyS0 115200 root=/dev/mtdblock1 rootfstype=jffs2 rw
6. 重新启动,呵呵内核使用jffs2文件系统自动挂载根文件系统到mtdblock1设备上。
ls 测试一下
vi test
hello this is for test jffs2 filesystem.
保存退出。
Sync
重新启动
vi test
内容依旧。
Ok jffs2根文件系统引导成功。
|