分类: LINUX
2007-12-21 02:55:49
本文主要介绍如何在AT91SAM9261EK板子上制作和使用jffs2文件系统,使用的是linux-
首先:配置MTD
$ make menuconfig
进入 Memory
Technology Devices (MTD) --->
<*> Memory Technology Device (MTD) support
[*] Debugging
[*] MTD partitioning support
[*] Command line partition table
parsing
[*] Direct char device access to MTD
devices
[*] Caching block device access to MTD
devices
RAM/ROM/Flash chip drivers ----->
<*> Detect non-CFI
AMD/JEDEC-compatible flash chips
<*> Support for
AMD/Fujitsu flash chips
Mapping drivers for chip access --->
[*] Support
non-linear mappings of flash chips
Self-contained MTD device drivers --->
[*] Support for
AT45... DataFlash
NAND Flash Device Drivers ---->
[*] NAND Device
Support
[*] Support for
NAND Flash /SmartMedia on AT91
File systems ---->
<*> Second extended fs
support
[*] Inotify file change
notification support
[*] Inotify support for user
space
<*> Filesystem in
Userspace support
Miscellaneous filesystems
<*> Journalling
Flash File System v2 (JFFS2) support
[*] JFFS2
write-buffering support
<*> Compressed ROM
file system support (cramfs)
以上配置中没有列出的,都没选;其配置仅做参考,可根据自己的需要自行配置。
$ make all
其次:制作mtd-util工具
从网上下载zlib-
$ ./configure –prefix=/usr/local/arm/3.4.1/arm-linux --shared
修改Makefile如下:
CC=arm-linux-gcc
LDSHARED=arm-linux-ld -shared
$ make all
$ make install
注意:这里是安装在/usr/local/arm/3.4.1/arm-linux目录下
由于交叉编译mtd工具时需要zlib.h文件,所以在编译之前先安装zlib库文件。
从网上下载 mtd-snapshot-20050519.tar.bz2 解压缩 $ cd mtd/util
修改该目录下的Makefile:
CROSS=arm-linux-
$ make all
然后将该目录下生成的
flash_erase,flash_eraseall, mkfs.jffs2工具放在ramdisk 文件系统中(我这里放在/bin目录下),另外在 ramdisk文件系统的dev目录下要保证有mtd0~mtd9,mtdblock0~mtdblock9这些设备,如果没有可参考 ramdisk文件系统的制作,也可从pc机相同目录下拷贝,要加上文件属性。
另外,需要将/arm-linux/lib目录下的libz.so, libz.so.1,
libz.so.
最后将新生成的uImage和ramdisk文件下载到板子上,起动系统,使用命令 cat /proc/mtd 可以看到
dev: size erasesize name
mtd0: 00040000 00020000 "Partition 1"
mtd1: 0ffc0000 00020000 "Partition 2"
mtd2: 00420000 00000210 "spi0.0-AT45DB321x"
这里mtd0,mtd1是nandflash上的分区; mtd2是dataflsh上的分区,该分区上放有u-boot,uImage.img,ramdisk.img,所以我们这里可以使用空的nandflash上的两个分区。使用之前要先用工具flash_erase或者flash_eraseall擦除nandflash,具体使用的步骤如下:
# flash_erase /dev/mtd1
制作jffs2映像
# cd /var/tmp
# mkdir jffs2 (jffs2下的目录可以任意建)
# mkfs.jffs2 –d jffs2/ -o jffs2.img
# cp /var/tmp/jffs2/jffs2.img
/dev/mtdblock1
最后# mount -t jffs2 /dev/mtdblock1
/mnt/mtd即可,使用结束可使用$ umount
/mnt/mtd 卸载.
如果只是当作普通的jffs2 来使用dataflash或者nandflash,可不必制作 jffs2映像,只需要最后一步
本文主要介绍如何在AT91SAM9261EK板子上制作和使用jffs2文件系统,使用的是linux-
首先:配置MTD
$ make menuconfig
进入 Memory
Technology Devices (MTD) --->
<*> Memory Technology Device (MTD) support
[*] Debugging
[*] MTD partitioning support
[*] Command line partition table
parsing
[*] Direct char device access to MTD
devices
[*] Caching block device access to MTD
devices
RAM/ROM/Flash chip drivers ----->
<*> Detect non-CFI
AMD/JEDEC-compatible flash chips
<*> Support for
AMD/Fujitsu flash chips
Mapping drivers for chip access --->
[*] Support
non-linear mappings of flash chips
Self-contained MTD device drivers --->
[*] Support for
AT45... DataFlash
NAND Flash Device Drivers ---->
[*] NAND Device
Support
[*] Support for
NAND Flash /SmartMedia on AT91
File systems ---->
<*> Second extended fs
support
[*] Inotify file change
notification support
[*] Inotify support for user
space
<*> Filesystem in
Userspace support
Miscellaneous filesystems
<*> Journalling
Flash File System v2 (JFFS2) support
[*] JFFS2
write-buffering support
<*> Compressed ROM
file system support (cramfs)
以上配置中没有列出的,都没选;其配置仅做参考,可根据自己的需要自行配置。
$ make all
其次:制作mtd-util工具
从网上下载zlib-
$ ./configure –prefix=/usr/local/arm/3.4.1/arm-linux --shared
修改Makefile如下:
CC=arm-linux-gcc
LDSHARED=arm-linux-ld -shared
$ make all
$ make install
注意:这里是安装在/usr/local/arm/3.4.1/arm-linux目录下
由于交叉编译mtd工具时需要zlib.h文件,所以在编译之前先安装zlib库文件。
从网上下载 mtd-snapshot-20050519.tar.bz2 解压缩 $ cd mtd/util
修改该目录下的Makefile:
CROSS=arm-linux-
$ make all
然后将该目录下生成的
flash_erase,flash_eraseall, mkfs.jffs2工具放在ramdisk 文件系统中(我这里放在/bin目录下),另外在 ramdisk文件系统的dev目录下要保证有mtd0~mtd9,mtdblock0~mtdblock9这些设备,如果没有可参考 ramdisk文件系统的制作,也可从pc机相同目录下拷贝,要加上文件属性。
另外,需要将/arm-linux/lib目录下的libz.so, libz.so.1,
libz.so.
最后将新生成的uImage和ramdisk文件下载到板子上,起动系统,使用命令 cat /proc/mtd 可以看到
dev: size erasesize name
mtd0: 00040000 00020000 "Partition 1"
mtd1: 0ffc0000 00020000 "Partition 2"
mtd2: 00420000 00000210 "spi0.0-AT45DB321x"
这里mtd0,mtd1是nandflash上的分区; mtd2是dataflsh上的分区,该分区上放有u-boot,uImage.img,ramdisk.img,所以我们这里可以使用空的nandflash上的两个分区。使用之前要先用工具flash_erase或者flash_eraseall擦除nandflash,具体使用的步骤如下:
# flash_erase /dev/mtd1
制作jffs2映像
# cd /var/tmp
# mkdir jffs2 (jffs2下的目录可以任意建)
# mkfs.jffs2 –d jffs2/ -o jffs2.img
# cp /var/tmp/jffs2/jffs2.img
/dev/mtdblock1
最后# mount -t jffs2 /dev/mtdblock1
/mnt/mtd即可,使用结束可使用$ umount
/mnt/mtd 卸载.
如果只是当作普通的jffs2 来使用dataflash或者nandflash,可不必制作 jffs2映像,只需要最后一步