打印
[嵌入式linux]

S3C2410开发板上使用flash_eraseall,为什么找不到MTD信息!

[复制链接]
7068|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
youcanh|  楼主 | 2007-6-29 23:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
急!大虾帮帮小弟。最近我要用到flash_eraseall工具,好擦除flash,往NAND上写yaffs文件系统。参考网上的做法下载了mtd-utils-1.0.0.tar 和 zlib-1.2.3.tar 。我的环境是centOS5.0 交叉编译器3.4.3下面是我的操作步骤,帮我看看有没有错误
首先交叉编译zlib。做法如下
make clean 
CC=arm-linux-gcc LDSHARED="arm-linux-ld -shared" ./configure --shared
make 
make prefix=/usr/local/arm/v5t_le/rootfs install
这样在rootfs下有三个目录 include  lib  share在include目录里就有zlib.h我就把include里的头文件拷到了usr/include中。lib中有我们下一步用到的库文件
接着交叉编译mtd-util
修改Makefile
SBINDIR=/usr/sbin
MANDIR=/usr/man 
INCLUDEDIR=/usr/include
上面几句不知道什么意思,就没改
LDFLAGS := -L /usr/local/arm/v5t_le/rootfs/lib  添了这句,就是前面交叉编译出来的库
CROSS=arm-linux-
CC := $(CROSS)gcc

make就出现了下面的错误arm-linux-gcc -I./include -O2 -Wall -g -c -o mkfs.jffs2.o mkfs.jffs2.c -g -Wp,-MD,.mkfs.jffs2.c.dep
mkfs.jffs2.c:68:18: zlib.h: No such file or directory
make: *** [mkfs.jffs2.o] Error 1
rm ftl_check.o mkfs.jffs.o flash_erase.o ftl_format.o nanddump.o doc_loadbios.o
把编译器换成3.3.2,步骤一样zlib.h找到了,链接又有错误
/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld: ERROR: /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.oS) is compiled for EABI version 0, whereas mkfs.jffs2 is compiled for version 4
File format not recognized: failed to merge target specific data of file /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.oS)
mtd换成mtd-snapshot-20040730.tar也是找不到zlib.h
我都快急疯了,搞了一整天都没有结果!是不是zlib和mtd的版本不配套呢?真是搞不明白了!

相关帖子

沙发
andante| | 2007-6-30 14:10 | 只看该作者

偶之前的一个笔记,希望对你有参考作用

交叉编译mtd-utils-1.0.0 

https://bbs.21ic.com/club/bbs/list.asp?boardid=40&t=2514289&tp=mkfs.jfss2%u4EA4%u53C9%u7F16%u8BD1%u7684%u95EE%u9898%3F%3F%3F

 andante 发表于 2007-5-23 06:19 LINUX|编程 ←返回版面    

2楼: 交叉编译mtd-utils-1.0.0 

假设mtd-utils-1.0.0.tar.gz解压目录为mtd-utils-1.0.0
#cd mtd-utils-1.0.0

1) 修改Makefile
CROSS=arm-linux-
并确认以下两项都有加 -lz(链接zlib)
mkfs.jffs2: crc32.o compr_rtime.o mkfs.jffs2.o compr_zlib.o compr.o
    $(CC) $(LDFLAGS) -o $@ $^ -lz

jffs2reader: jffs2reader.o
    $(CC) $(LDFLAGS) -o $@ $^ -lz

2) 复制zlib头文件及库
交叉编译zlib生成三个文件夹如下:include lib share(假设为home目录下)
  cp /home/include/* -> mtd-utils-1.0.0/include 下
  cp -ar /home/lib/* -> /usr/local/arm/3.4.4/arm-linux/lib(根据所使用交叉编译器,进行修改。

3) make ( 用file命令查看,如 file mkfs.jffs2 )
#file mkfs.jffs2
mkfs.jffs2: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
可知:交叉编译成功。

注:最近也整这个,所以把笔记整理了下。(走了不少弯路。。)
 
 

使用特权

评论回复
板凳
youcanh|  楼主 | 2007-6-30 18:23 | 只看该作者

呵呵 搞定了!

呵呵 谢谢!是我交叉编译zlib的时候错了。
编译zlib的时修改配置选项
./configure –prefix=/usr/local/arm/3.3.2/arm-linux/ --shared
注意这里配置选项指向了 /usr/local/arm/3.3.2/arm-linux/目录,编译时会自动安装 /usr/local/arm/3.3.2/arm-linux/[include,lib]目录,一定不要安装错了,不然后面会找不到zlib.h
  make 
  make install
然后交叉编译mtd-utils,顺利通过,编译出了flash_erase和flash_eraseall,问题又来了,我把它下载到目标板上,zlib库也拷进去了,可是执行
flash_eraseall /dev/mtdblock/3
提示找不到MTD设备信息, 提示unable to get MTD device info
执行
flash_erase /dev/mtdblock/3
也不能擦除提示 Erase Total 1 Units
有没有人遇到过这种情况

使用特权

评论回复
地板
wangkj| | 2007-7-2 09:01 | 只看该作者

我用的是dev/mtdblock3

使用特权

评论回复
5
andante| | 2007-7-2 20:37 | 只看该作者

flash_eraseall /dev/mtd3

flash_eraseall /dev/mtdblock/3
提示找不到MTD设备信息, 提示unable to get MTD device info

感觉,这可能与nand flash的擦除方式有关

flash_eraseall /dev/mtdx,这样能正常擦除(当做字符设备),写入的时候,则当块设备看待。可以查阅下datasheet。偶印象中,应该是这样

使用特权

评论回复
6
youcanh|  楼主 | 2007-7-3 12:35 | 只看该作者

谢谢

我现在用着cramfs暂时没有用yaffs,有空再试试,说不定就是这个原因

使用特权

评论回复
7
youcanh|  楼主 | 2007-7-4 20:54 | 只看该作者

还是不行啊!

dev/mtdblock3 dev/mtd3都试了还是不行啊!
擦的时候是当成字符设备来擦,可我的dev下面没有mtd设备啊,只有mtdblock设备。直接设节点是不行的,怎么才能让他出现mtd字符设备呢?下面是我的mtd信息。
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00004000 "bootloader"
mtd1: 00300000 00004000 "kernel"
mtd2: 02800000 00004000 "root"
mtd3: 00f00000 00004000 "user"
# flash_eraseall: /dev/mtd3                           
flash_eraseall:: No such file or directory
# flash_eraseall /dev/mtdblock/3
flash_eraseall: /dev/mtdblock/3: unable to get MTD device info

使用特权

评论回复
8
daxia911| | 2007-7-7 21:50 | 只看该作者

的啊

使用特权

评论回复
9
liangjiaf| | 2011-7-11 13:50 | 只看该作者
7# youcanh

使用特权

评论回复
10
liangjiaf| | 2011-7-11 13:50 | 只看该作者
7# youcanh

您的问题现在解决了吗?我也是最近出现这个问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

57

帖子

0

粉丝