加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

制作jffs2文件系统时遇到的错误————转载

发布时间:2020-12-15 06:16:39 所属栏目:百科 来源:网络整理
导读:由于粗心大意,又耽误了一天,不过这一天也对jffs2文件系统的制作了解了更多,前面主要是操作错误,写nand flash时我用的是nand write,而文章: 在nand flash上实现JFFS2根文件文件系统 中用的是: ? nand write.jffs2 ?300008000 200000 800000 ? 不过启动
由于粗心大意,又耽误了一天,不过这一天也对jffs2文件系统的制作了解了更多,前面主要是操作错误,写nand flash时我用的是nand write,而文章:在nand flash上实现JFFS2根文件文件系统中用的是:?

nand write.jffs2?300008000 200000 800000?

不过启动后,还有些问题:?

VFS: Unable to mount root fs via NFS,trying floppy.?

jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0050e154: 0xfbeb instead?

等这样的n行错误,这个错误,有空再做处理。?





解决问题时看到网上的同类错误如下?

jffs2挂载不上,大家帮忙分析分析??

http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=610679&page=&view=&sb=&o=&fpart=1&vc=1?

找来找去竟然是制作镜像时大端小端的问题??

制作镜像加上-b选择大端,就ok了?

jffs2不能写的问题?

http://www.linuxfans.org/bbs/viewthread.php?tid=122244&extra=&page=1?

看過??

http://www.samsung.com/Products/Semiconductor/Flash/NAND/128Mbit/K9F2808U0B/K9F2808U0B.htm?

試過把pagesize改為 528,blocksize改為 16K+512,可是還是同一樣的錯誤訊息?

mkfs.jffs2 -l --pagesize=0x200 --eraseblock=0x4000 --pad=0x30000 -d jffs2 -o jffs2.img?

我不明白為何會有「Reading data from NAND FLASH without ECC is not recommended」這個錯誤訊息的?

請問如來才可以啟動ECC的??



終於解決了問題?

原來是因為小弟忘記了在內核啟動「JFFS2 support for NAND chips」?

現在可以讀寫了?



jffs2 挂载的问题??

http://linux.chinaunix.net/bbs/viewthread.php?tid=904219?

原来 erasesize是 0x4000 (16k)?

于是重新作: mkfs.jffs2??-e 0x4000 -d rootfs_dir? ?-o??rootfs.jffs2???

#mkfs.jffs2 默认的erase block size 是64k?

----------?

然后 修改重启进入u-boot ,设置bootargs:?

setenv bootargs root=/dev/mtdblock4 rootfstype=jffs2 rw console=ttySAC0,115200 mem=64M init=/linuxrc?

我的命令是:?

tftpboot 30800000??rootfs.jffs2??

nand erase 1000000 3000000?

nand write??30800000??1000000 1c0000? ?#正好烧写到mtdblock4 里面去了, rootfs.jffs2 的大小不到1c0000 ,我为了 64k对齐。?

? ?#nand write.jffs2 我也试过, 但是也有下面一对的警告和错误?

如果挂载jffs2的时候,出现类似于:?

CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0??

的问题,则见到网上说的办法:?

在嵌入式Linux系统中挂载 jffs2 根文件系统?

二、制作根文件系统的JFFS2镜像。使用MTD工具中的mkfs.jffs2命令,具体做法如下: mkfs.jffs2 -r /home/tekkamanninja/working/nfs/rootfs -o rootfs.jffs2 -e 0x4000 --pad=0x500000 -s 0x200 -n?

各参数的意义:(1)-r : 指定要做成image的源資料夾.?

(2)-o : 指定輸出image檔案的文件名.?

(3)-e : 每一塊要抹除的block size,預設是64KB.要注意,不同的flash,其block size會不一樣.我的是三星的K9F1208U0B.?

(4)--pad (-p): 用16進制來表示所要輸出檔案的大小,也就是root.jffs2的size。很重要的是,為了不浪費flash空間,這個值最好符合flash driver所規劃的區塊大小.以我的板子來說,就是5MB.?

(5)如果挂载后会出现类似:CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0? ?的警告,则加上 -n 就会消失。?

(6) 还有的选项,自己看帮助!-h?





2.6.22挂载yaffs文件系统的问题?

http://www.linuxsir.org/bbs/printthread.php?t=317121?





换成cramfs后可以正常进入系统,把yaffs烧到另一个分区,用mount查看,发现里面只有一个lost+found,是不是烧写不对?我用过两个声称支持yaffs的bootloader烧写都是出现同样问题。?

另外用jffs2的时候也有问题,出现一大堆,感觉应该是文件系统制作有问题,我用的命令是:?

引用:?

--------------------------------------------------------------------------------?

mkfs.jffs2 -l -n --eraseblock=0x4000 --pad -d rootfs -o rootfs.jffs2.new??

--------------------------------------------------------------------------------?

flash是三星的64M大小的K9F1208 Nand。?

而且我是mknod console c 5 1过了?

null zero也有?



经过两天的研究,阅读代码,对比分析,终于初步把这个问题解决了!?

主要在于新版本内核出来后,yaffs2的代码也有所变动,现在yaffs中通过?

nandmtd1_WriteChunkWithTagsToNAND() 来写他的chunk而不是原来的 nandmtd_WriteChunkToNAND()。写入oob的数据变成了yaffs_PackedTags1结构,而不是原来yaffs_Spare变换后的oob。?

而在mkyaffsimage中还是没该过来,所以问题就是挂上后,就只看到lost+found.?

我在我的日志上有一些分析:?

http://www.armchina.cn/article.asp?id=63?

http://www.armchina.cn/article.asp?id=64?



目前尝试了一下,修改了mkyaffsimage,通过mtd_util?

flash_eraseall?

nandwrite -a -o?

能够正确挂载,修改uboot也应该很简单了。?





请教---用JFFS2 NAND FLASH作为根文件系统时起不来?

http://oldlinux.org/oldlinux/viewthread.php?tid=8556?

我的nand flash是64MB的三星K9F1208??

1Page = 512+16 Byte; 1Block = 32 Pages; 1Device = 4096 Blocks?

这样看来,Erase Size == 0x4000??(16KB)了?

我加了 -e 0x4000 --pad 0x01e00000 (此分区的长度Size)选项了,?

但是我同样的方法制作的映像放在 ext-fs分区时(只是改了选项--pad x02000000),mount上去时却可以正常的写入和删除.~~?

是不是我的mkfs.jff2的问题,这个是直接在网上down的一个二进制档. ??



AT91sam9263EK使用JFFS2根文件系统?

http://blog.chinaunix.net/u/27204/showart_367635.html?

http://blog.21ic.com/user1/765/archives/2007/38548.html?

生成jffs2根文件系统镜像:?

mkfs.jffs2 –l –s 0x400 –e 0x20000 –d tmp/ -o target.jffs2?

a.通过nand编程器烧写镜像文件到nand flash芯片然后再焊接到pcb.?

b.挂载nfs文件系统,使用nandwrite工具写镜像文件?

5.? ?? ?? ?配置内核启动参数如下:?

??setenv bootargs mem=64M console=ttyS0 115200 root=/dev/mtdblock1 rootfstype=jffs2 rw?





U-Boot1.3.1中JFFS2文件系统支持和U盘支持的使用备忘??

http://blog.chinaunix.net/u1/34474/showart_488324.html?

http://blog.chinaunix.net/u2/67519/showart_640401.html?

http://linux.chinaunix.net/techdoc/install/2008/04/29/998089.shtml?

《在嵌入式Linux系统中挂载 jffs2 根文件系统 》一文中有介绍?

[tekkamanninja@Tekkaman-Ninja mtd-utils.git]$ ./mkfs.jffs2 -r /home/tekkamanninja/working/nfs/boot -o boot.jffs2 -e 0x4000 --pad=0x4c0000 -s 0x200 -n



在嵌入式Linux系统中挂载 jffs2 根文件系统??Tekkaman Ninja?

http://blog.chinaunix.net/u1/34474/showart_486812.html?

使用MTD工具中的mkfs.jffs2命令,具体做法如下:??

mkfs.jffs2 -r /home/tekkamanninja/working/nfs/rootfs -o rootfs.jffs2 -e 0x4000 --pad=0x500000 -s 0x200 -n?

各参数的意义:?

(1)-r : 指定要做成image的源資料夾.?

(2)-o : 指定輸出image檔案的文件名.?

(3)-e : 每一塊要抹除的block size,預設是64KB.要注意,不同的flash,其block size會不一樣.我的是三星的K9F1208U0B.

(4)--pad (-p): 用16進制來表示所要輸出檔案的大小,也就是root.jffs2的size。很重要的是,這個值最好符合flash driver所規劃的區塊大小.以我的板子來說,就是5MB.?

(5)如果挂载后会出现类似:CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0??的警告,则加上 -n 就会消失。?

(6) 还有的选项,自己看帮助!-h?



其他查看相关文章:?

我想让你们分析下,MOUNT到底做了什么事,它管不管格式化磁盘?

http://www.icembed.com/bbs/dispbbs.asp?boardid=60&id=2644?

系统会编译生成JFFS2的辅助工具:mkfs.jffs2、eraseall、erase。其中mkfs.jffs2?

会产生JFFS2文件系统镜像的工具,eraseall和erase用来对FLASH芯片的擦除。mkfs.jffs的?

使用方法如下:mkfs.jffs -d根目录?-b| l??-e 擦除块大小??-o 输出文件??-v ?0-9???

?-q?。?

第一步cat procmtd?

查看jffs文件分区表?

第二步eraseall devmtd0(或者mtd1)?

擦除芯片,不知道是不是必须的?

第三步?

创建和复制jffs2影像?

#mkfs.jffs2 –d filesystem –o jffs2.image?

制作jffs2文件系统,filesystem是我制作的一个很小的包含几个文件的目录,生成的jffs2文件系统文件为jffs2.image。在??

mnt/下建立目录jffs2:?

#mkdir/mnt/jffs2?

将jffs2文件系统拷贝到FLASH:?

#cp jffs2.image /dev/mtdblock2?

第四步 挂载?

制作根文件系统?

http://www.mcublog.com/blog/user1/675/archives/2006/13314.html?

这样制作根文件系统?

mkfs.jffs2 -d ./rootbox -l??-o jffs2-root.img??

我公司的flash块大小是128K,用:?

mkfs.jffs2 -d ./rootbox -l -e 0x20000 -o jffs2-root.img?

创建根文件系统的命令及参数:??

/sbin/mkfs.jffs2 --eraseblock=0x10000 -l -n -d ramdisk -o rootfs.jffs2 --pad=0x400000?



我把NOR-FLASH做了一个分区,但是MOUNT时,就报一堆这样的信息:?

http://linux.chinaunix.net/bbs/viewthread.php?tid=917346&page=1#pid6438487?

http://linux.chinaunix.net/bbs/archiver/?tid-917346.html?

多谢了,问题解决了,?

犯错了,我把flash的扇区大小弄错了.?



小女子初来报到,请高手指点下制作jffs2文件系统问题,谢谢?

http://www.linuxfans.org/bbs/thread-170593-1-1.html?

谢谢大虾,我后来用了下面的指令产生的文件映象就没有再出现这样的问题了:?

mkfs.jffs2 -l -n --eraseblock=0x4000 --pad -d ... -o ....img?

我能不能再问多两个问题?我之前在别的地方看到的这条指令时,其中还有一项是--pagesize=0x200。我不懂这里的pagesize指?

的是什么??还有就是我觉得--pad的值与产生文件映象的速度快慢有关,这样理解正确吗?因为是小菜鸟,老问这些简单问题,?

真不好意思,麻烦高手帮忙解答,谢谢!?



jffs2不能正常mount的问题??

http://www.linuxforum.net/forum/showthreaded.php?Cat=&Board=embedded&Number=564679&page=&view=&sb=&o=all?

原来的把檫除尺寸搞错了,我是先在主机上建立映像文件??

mkfs.jffs2 -e 0x20000 --pad=0x1e0000 -l -d b -o jffs2.bin??

然后直接把映像文件写入到flash中,启动后现在还不能进行写入,难道非要在开发板引导以后再檫除mtd分区写入映像才可以吗?

?我的没有网卡所以这样做很麻烦!?



制作jffs2 根文件系统??

http://blog.chinaunix.net/u1/49088/showart.php?id=1070779?

2.6.24.3内核采用yaffs会出错,采用cramfs又不能写,目前只有jffs可以用了。?

但是在生成mkfs.jffs2却受到很大困难。编译一直出错。无奈网上找到了一个?

工具。在附件中。?

? ?通过mkfs.jffs2 -r /rootfs -o filesystem.jffs2 -e 0x4000 --pad=0x500000 -s 0x200 -n?

? ?生产jffs2文件系统。?

各参数的意义:?

(1)-r : 指定要做成image的源資料夾.?

(2)-o : 指定輸出image檔案的文件名.?

(3)-e : 每一塊要抹除的block size,預設是64KB.要注意,不同的flash,其block size會不一樣.?

(4)--pad (-p): 用16進制來表示所要輸出檔案的大小,也就是root.jffs2的size。很重要的是,這個?

值最好符合flash driver所規劃的區塊大小.?

(5)如果挂载后会出现类似:CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0??的警告,则加上 -n 就?

会消失。?

(6) 还有的选项,自己看帮助!-h?

mkfs.jffs2 -o rootfs_jffs2.img -r rootfs -e 0x40000 -l --pad=0x1e80000??

-e 表示擦除块大小,?

-l表示little-endian,??

--pad=0x1e80000 表示文件系统大小为0x1e80000 bytes,?

如果不足则使用0xff来填充补满。?



嵌入式linux下jffs2文件系统的实现?

http://blog2.eastmoney.com/stevenhe,856269.html?

$ ./mkfs.jffs2 -e0x20000 -d./rootfsdir -ojffs2.img?

其中-e 0x20000表示擦除块的大小为128kb;-d表示文件系统所在的目录;-o表示文件系统映像名。?

jffs2文件系统是专门针对嵌入式系统中的flash存储芯片设计的,由于jffs2自身的特点,适合于在nor flash系列芯片上使用,?

本文以intel strata flash e28f128为例,介绍了在nor flash上实现jffs2文件系统的过程,为嵌入式linux下的应用程序开发?

奠定了基础。?



http://hi.baidu.com/perfectdeathknight/blog/item/1fc0d01e0557011d413417b7.html?

./mkfs.jffs2 -d rootfs -p -s 0x200 -e 0x4000 -n -l -U -o rootfs.img?

-d 指定待转换的目录,-p 指定将所有的已擦除但未使用的块填充为0xFF,-s 设定页的大小为528字节,-e 设定擦除块的大小?

为16KB,-n 指明不添加清楚标记(nand flash 有自己的校检块,存放相关的信息。),-l 指定使用小端格式,-U 将所有文件?

的拥有者设为root用户,最后-o 指明输出的镜像文件名。生成的rootfs.img可通过u-boot直接烧写?

至nand flash:?

? ?? ?? ?? ???nand erase 0x200000 0x3e00000?

? ?? ?? ?? ???tftp 0x30000000 rootfs.img?

? ?? ?? ?? ???nand write.jffs2 0x200000 $(filesize)?

要想使用jffs2文件系统作为根文件系统,还需给linux传入以下参数: root=/dev/mtdblock1 rw rootfstype=jffs2 ,可以通过?

设定u-boot的bootargs完成这项工作。?

setenv bootargs root=/dev/mtdblock1 rw rootfstype=jffs2 noinitrd init=/linuxrc??

console=ttySAC0,115200?

如何创建JFFS2 image?

http://www.lupaworld.com/bbs/viewthread.php?tid=19212?

linux下Nand Flash的JFFS2文件系统的移植?

http://blog.csdn.net/bekars/archive/2006/02/22/606486.aspx?

[技术问答 LINUX|编程] mkfs.jfss2交叉编译的问题????

http://www.ic37.com/htm_bbs_dic/2007-4/158367_542026.htm?

错误信息?

http://my.clubhi.com/bbs/661523/messages/21523.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读