* [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2) @ 2005-01-07 11:00 Martin Egholm Nielsen 2005-01-09 17:03 ` Craig Hughes 0 siblings, 1 reply; 10+ messages in thread From: Martin Egholm Nielsen @ 2005-01-07 11:00 UTC (permalink / raw) To: u-boot Hi there, Now I've gotten a bit further in my quest for getting JFFS2 images to work between U-Boot and Linux. I upgraded to ELDK 3.1 and configured the CONFIG_JFFS2_NAND_SIZE to the proper size. So, now I can succesfully put an image on the flash from U-Boot and "ls" it. (Thanks again for that...) Further, if I erase the NAND from Linux and create some files/dir's, I can see them succesfully from U-Boot with "ls". However, if I put a JFFS2-image on the NAND _from U-Boot_, Linux cannot mount the device any longer: # cd /tmp # mkdir image # cd image/ # echo "Test1" > testfile # mkdir testdir # echo "Test12" > testdir/testfile # mkfs.jffs2 --pad --big-endian --root=. --output=../test20050107.jffs2 => nand erase clean => tftp 100000 test20050107.jffs2 => nand write.jffs2 100000 0 $(filesize) => ls Scanning JFFS2 FS: . done. drwxr-xr-x 0 Tue Nov 30 17:45:59 2004 testdir -rw-r--r-- 6 Tue Nov 30 17:45:45 2004 testfile => ls testdir -rw-r--r-- 7 Tue Nov 30 17:45:59 2004 testfile # mkdir /mnt # mount -t jffs2 /dev/mtdblock0 /mnt jffs2: Erase block size too small (16KiB). Using virtual blocks size (32KiB) instead Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes empty_blocks 0, bad_blocks 5, c->nr_blocks 2048 mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument I have the following kernel configuration options concerning JFFS2: CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_NAND=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y # CONFIG_JFFS2_RUBIN is not set # CONFIG_JFFS2_LZO is not set # CONFIG_JFFS2_LZARI is not set # CONFIG_JFFS2_CMODE_NONE is not set CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_PROC is not set Are there anything else needed in order to support the way U-Boot writes an image? Best regards, Martin Egholm ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-01-07 11:00 [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2) Martin Egholm Nielsen @ 2005-01-09 17:03 ` Craig Hughes 2005-01-09 17:30 ` Allen Curtis 0 siblings, 1 reply; 10+ messages in thread From: Craig Hughes @ 2005-01-09 17:03 UTC (permalink / raw) To: u-boot On Jan 7, 2005, at 3:00 AM, Martin Egholm Nielsen wrote: > Hi there, > > Now I've gotten a bit further in my quest for getting JFFS2 images to > work between U-Boot and Linux. > I upgraded to ELDK 3.1 and configured the CONFIG_JFFS2_NAND_SIZE to > the proper size. So, now I can succesfully put an image on the flash > from U-Boot and "ls" it. (Thanks again for that...) > > Further, if I erase the NAND from Linux and create some files/dir's, I > can see them succesfully from U-Boot with "ls". > However, if I put a JFFS2-image on the NAND _from U-Boot_, Linux > cannot mount the device any longer: > > # cd /tmp > # mkdir image > # cd image/ > # echo "Test1" > testfile > # mkdir testdir > # echo "Test12" > testdir/testfile > # mkfs.jffs2 --pad --big-endian --root=. --output=../test20050107.jffs2 > > => nand erase clean > => tftp 100000 test20050107.jffs2 > => nand write.jffs2 100000 0 $(filesize) > > => ls > Scanning JFFS2 FS: . done. > drwxr-xr-x 0 Tue Nov 30 17:45:59 2004 testdir > -rw-r--r-- 6 Tue Nov 30 17:45:45 2004 testfile > => ls testdir > -rw-r--r-- 7 Tue Nov 30 17:45:59 2004 testfile > > # mkdir /mnt > # mount -t jffs2 /dev/mtdblock0 /mnt > jffs2: Erase block size too small (16KiB). Using virtual blocks size > (32KiB) instead > Cowardly refusing to erase blocks on filesystem with no valid JFFS2 > nodes > empty_blocks 0, bad_blocks 5, c->nr_blocks 2048 > mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument Martin, I noticed something similar recently when I upgraded kernels to a more recent one (not sure the exact version change), and it looked like actually the problem was that mtd-utils mkjffs2 tool was not agreeing with the kernel about how what the FS should look like, when dealing with entries which are both in the filetree being turned into the image, and also in a device_table.txt file (for example if you're specifying permission changes or ownership changes that way). The mtdutils tool seemed to be creating 2 physical copies of the file in the root_fs (which massively increased its size), and marking one of the copies as "erased" or something but not actually removing it. When the new kernel saw that, it borked. I fixed the problem temporarily by just chmod'ing the files I wanted to change perms on before running mkjffs2 -- but a better fix would be to resolve the bug in the tool instead. I haven't had a chance to do this yet. Anyway, I think it's not u-boot's fault -- u-boot is actually being better than the kernel about reading a damaged JFFS2 fs, where the kernel refuses to. C ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-01-09 17:03 ` Craig Hughes @ 2005-01-09 17:30 ` Allen Curtis 2005-01-09 18:32 ` Craig Hughes 2005-01-10 8:50 ` [U-Boot-Users] " Martin Egholm Nielsen 0 siblings, 2 replies; 10+ messages in thread From: Allen Curtis @ 2005-01-09 17:30 UTC (permalink / raw) To: u-boot Did you try upgrading to the latest MTD tools? On Jan 9, 2005, at 9:03 AM, Craig Hughes wrote: > On Jan 7, 2005, at 3:00 AM, Martin Egholm Nielsen wrote: > >> Hi there, >> >> Now I've gotten a bit further in my quest for getting JFFS2 images to >> work between U-Boot and Linux. >> I upgraded to ELDK 3.1 and configured the CONFIG_JFFS2_NAND_SIZE to >> the proper size. So, now I can succesfully put an image on the flash >> from U-Boot and "ls" it. (Thanks again for that...) >> >> Further, if I erase the NAND from Linux and create some files/dir's, >> I can see them succesfully from U-Boot with "ls". >> However, if I put a JFFS2-image on the NAND _from U-Boot_, Linux >> cannot mount the device any longer: >> >> # cd /tmp >> # mkdir image >> # cd image/ >> # echo "Test1" > testfile >> # mkdir testdir >> # echo "Test12" > testdir/testfile >> # mkfs.jffs2 --pad --big-endian --root=. >> --output=../test20050107.jffs2 >> >> => nand erase clean >> => tftp 100000 test20050107.jffs2 >> => nand write.jffs2 100000 0 $(filesize) >> >> => ls >> Scanning JFFS2 FS: . done. >> drwxr-xr-x 0 Tue Nov 30 17:45:59 2004 testdir >> -rw-r--r-- 6 Tue Nov 30 17:45:45 2004 testfile >> => ls testdir >> -rw-r--r-- 7 Tue Nov 30 17:45:59 2004 testfile >> >> # mkdir /mnt >> # mount -t jffs2 /dev/mtdblock0 /mnt >> jffs2: Erase block size too small (16KiB). Using virtual blocks size >> (32KiB) instead >> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 >> nodes >> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048 >> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument > > Martin, I noticed something similar recently when I upgraded kernels > to a more recent one (not sure the exact version change), and it > looked like actually the problem was that mtd-utils mkjffs2 tool was > not agreeing with the kernel about how what the FS should look like, > when dealing with entries which are both in the filetree being turned > into the image, and also in a device_table.txt file (for example if > you're specifying permission changes or ownership changes that way). > The mtdutils tool seemed to be creating 2 physical copies of the file > in the root_fs (which massively increased its size), and marking one > of the copies as "erased" or something but not actually removing it. > When the new kernel saw that, it borked. I fixed the problem > temporarily by just chmod'ing the files I wanted to change perms on > before running mkjffs2 -- but a better fix would be to resolve the bug > in the tool instead. I haven't had a chance to do this yet. Anyway, > I think it's not u-boot's fault -- u-boot is actually being better > than the kernel about reading a damaged JFFS2 fs, where the kernel > refuses to. > > C > > > > ------------------------------------------------------- > The SF.Net email is sponsored by: Beat the post-holiday blues > Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > _______________________________________________ > U-Boot-Users mailing list > U-Boot-Users at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/u-boot-users > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-01-09 17:30 ` Allen Curtis @ 2005-01-09 18:32 ` Craig Hughes 2005-01-10 8:50 ` [U-Boot-Users] " Martin Egholm Nielsen 1 sibling, 0 replies; 10+ messages in thread From: Craig Hughes @ 2005-01-09 18:32 UTC (permalink / raw) To: u-boot On Jan 9, 2005, at 9:30 AM, Allen Curtis wrote: > Did you try upgrading to the latest MTD tools? Yes, I did, and it made it break in a slightly different place, but still didn't work as long as I had an entry in device_table.txt which was an existing file or directory in the root_fs tree. C ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-01-09 17:30 ` Allen Curtis 2005-01-09 18:32 ` Craig Hughes @ 2005-01-10 8:50 ` Martin Egholm Nielsen 2005-01-10 20:15 ` Martin Egholm Nielsen 1 sibling, 1 reply; 10+ messages in thread From: Martin Egholm Nielsen @ 2005-01-10 8:50 UTC (permalink / raw) To: u-boot > Did you try upgrading to the latest MTD tools? I'm running with mkfs.jffs2 from ELDK 3.1 and tried a similar version on target - namely revision 1.42. === 8< 8< 8< === >>> # mount -t jffs2 /dev/mtdblock0 /mnt >>> jffs2: Erase block size too small (16KiB). Using virtual blocks size >>> (32KiB) instead >>> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 >>> nodes >>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048 >>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument >> Martin, I noticed something similar recently when I upgraded kernels >> to a more recent one (not sure the exact version change), and it >> looked like actually the problem was that mtd-utils mkjffs2 tool was >> not agreeing with the kernel about how what the FS should look like, >> when dealing with entries which are both in the filetree being turned >> into the image, and also in a device_table.txt file (for example if >> you're specifying permission changes or ownership changes that way). >> The mtdutils tool seemed to be creating 2 physical copies of the file >> in the root_fs (which massively increased its size), and marking one >> of the copies as "erased" or something but not actually removing it. >> When the new kernel saw that, it borked. I fixed the problem >> temporarily by just chmod'ing the files I wanted to change perms on >> before running mkjffs2 -- but a better fix would be to resolve the bug >> in the tool instead. I haven't had a chance to do this yet. Anyway, But I have no such file. I'm just creating this simple root-filesystem... But I'm getting some info from the Kernel at startup: Scanning device for bad blocks Bad eraseblock 1 at 0x00004000 Bad eraseblock 2 at 0x00008000 Bad eraseblock 3 at 0x0000c000 Bad eraseblock 4 at 0x00010000 Bad eraseblock 5 at 0x00014000 Bad eraseblock 6 at 0x00018000 Bad eraseblock 7 at 0x0001c000 Bad eraseblock 1600 at 0x01900000 Though I'm not sure what it means, or if has anything to do with this at all... >> I think it's not u-boot's fault -- u-boot is actually being better >> than the kernel about reading a damaged JFFS2 fs, where the kernel >> refuses to. Sounds resonable to assume yes - I just wondered whether U-Boot had some sophisticated way of writing the image to the nand, that required some specific kernel configuration. BR, Martin ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-01-10 8:50 ` [U-Boot-Users] " Martin Egholm Nielsen @ 2005-01-10 20:15 ` Martin Egholm Nielsen 2005-01-12 12:29 ` Pantelis Antoniou 0 siblings, 1 reply; 10+ messages in thread From: Martin Egholm Nielsen @ 2005-01-10 20:15 UTC (permalink / raw) To: u-boot Hi again, New information entered the scene: I tried another (identical) board today having none of the "Bad eraseblock" messages from my Linux kernel. And then everything worked! Hence, my boardsupplier suggested that U-Boot "ignored" these "Bad eraseblock" that the NAND presumable was born with... What do you think? BR, Martin Egholm >>>> # mount -t jffs2 /dev/mtdblock0 /mnt >>>> jffs2: Erase block size too small (16KiB). Using virtual blocks size >>>> (32KiB) instead >>>> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 >>>> nodes >>>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048 >>>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument ==== 8< 8< 8< ==== > But I'm getting some info from the Kernel at startup: > Scanning device for bad blocks > Bad eraseblock 1 at 0x00004000 > Bad eraseblock 2 at 0x00008000 > Bad eraseblock 3 at 0x0000c000 > Bad eraseblock 4 at 0x00010000 > Bad eraseblock 5 at 0x00014000 > Bad eraseblock 6 at 0x00018000 > Bad eraseblock 7 at 0x0001c000 > Bad eraseblock 1600 at 0x01900000 >>> I think it's not u-boot's fault -- u-boot is actually being better >>> than the kernel about reading a damaged JFFS2 fs, where the kernel >>> refuses to. > Sounds resonable to assume yes - I just wondered whether U-Boot had some > sophisticated way of writing the image to the nand, that required some > specific kernel configuration. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-01-10 20:15 ` Martin Egholm Nielsen @ 2005-01-12 12:29 ` Pantelis Antoniou 2005-01-12 13:46 ` Martin Egholm Nielsen 2005-02-16 7:35 ` Martin Egholm Nielsen 0 siblings, 2 replies; 10+ messages in thread From: Pantelis Antoniou @ 2005-01-12 12:29 UTC (permalink / raw) To: u-boot Martin Egholm Nielsen wrote: > Hi again, > > New information entered the scene: I tried another (identical) board > today having none of the "Bad eraseblock" messages from my Linux kernel. > And then everything worked! > Hence, my boardsupplier suggested that U-Boot "ignored" these "Bad > eraseblock" that the NAND presumable was born with... What do you think? > > BR, > Martin Egholm > >>>>> # mount -t jffs2 /dev/mtdblock0 /mnt >>>>> jffs2: Erase block size too small (16KiB). Using virtual blocks >>>>> size (32KiB) instead >>>>> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 >>>>> nodes >>>>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048 >>>>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument > > ==== 8< 8< 8< ==== > >> But I'm getting some info from the Kernel at startup: >> Scanning device for bad blocks >> Bad eraseblock 1 at 0x00004000 >> Bad eraseblock 2 at 0x00008000 >> Bad eraseblock 3 at 0x0000c000 >> Bad eraseblock 4 at 0x00010000 >> Bad eraseblock 5 at 0x00014000 >> Bad eraseblock 6 at 0x00018000 >> Bad eraseblock 7 at 0x0001c000 >> Bad eraseblock 1600 at 0x01900000 > > >>>> I think it's not u-boot's fault -- u-boot is actually being better >>>> than the kernel about reading a damaged JFFS2 fs, where the kernel >>>> refuses to. >> >> Sounds resonable to assume yes - I just wondered whether U-Boot had >> some sophisticated way of writing the image to the nand, that required >> some specific kernel configuration. > > > > > ------------------------------------------------------- > The SF.Net email is sponsored by: Beat the post-holiday blues > Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > _______________________________________________ > U-Boot-Users mailing list > U-Boot-Users at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/u-boot-users > > NAND support is currently broken when bad blocks are present. Will sent patches shortly dealing with the problems... Regards Pantelis ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-01-12 12:29 ` Pantelis Antoniou @ 2005-01-12 13:46 ` Martin Egholm Nielsen 2005-02-16 7:35 ` Martin Egholm Nielsen 1 sibling, 0 replies; 10+ messages in thread From: Martin Egholm Nielsen @ 2005-01-12 13:46 UTC (permalink / raw) To: u-boot >>>>>> # mount -t jffs2 /dev/mtdblock0 /mnt >>>>>> jffs2: Erase block size too small (16KiB). Using virtual blocks >>>>>> size (32KiB) instead >>>>>> Cowardly refusing to erase blocks on filesystem with no valid >>>>>> JFFS2 nodes >>>>>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048 >>>>>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument >> New information entered the scene: I tried another (identical) board >> today having none of the "Bad eraseblock" messages from my Linux >> kernel. And then everything worked! >> Hence, my boardsupplier suggested that U-Boot "ignored" these "Bad >> eraseblock" that the NAND presumable was born with... What do you think? >> ==== 8< 8< 8< ==== >> >>> But I'm getting some info from the Kernel at startup: >>> Scanning device for bad blocks >>> Bad eraseblock 1 at 0x00004000 >>> Bad eraseblock 2 at 0x00008000 >>> Bad eraseblock 3 at 0x0000c000 >>> Bad eraseblock 4 at 0x00010000 >>> Bad eraseblock 5 at 0x00014000 >>> Bad eraseblock 6 at 0x00018000 >>> Bad eraseblock 7 at 0x0001c000 >>> Bad eraseblock 1600 at 0x01900000 > NAND support is currently broken when bad blocks are present. > Will sent patches shortly dealing with the problems... Aahaaa! That explains a bit (alot)! :-) Is this also broken in U-Boot 1.1.2 or just CVS? Any estimates on when - months? ;-) Thanks for the super info! Martin ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-01-12 12:29 ` Pantelis Antoniou 2005-01-12 13:46 ` Martin Egholm Nielsen @ 2005-02-16 7:35 ` Martin Egholm Nielsen 2005-02-16 9:34 ` Wolfgang Denk 1 sibling, 1 reply; 10+ messages in thread From: Martin Egholm Nielsen @ 2005-02-16 7:35 UTC (permalink / raw) To: u-boot >> New information entered the scene: I tried another (identical) board >> today having none of the "Bad eraseblock" messages from my Linux >> kernel. And then everything worked! >> Hence, my boardsupplier suggested that U-Boot "ignored" these "Bad >> eraseblock" that the NAND presumable was born with... What do you think? === 8< 8< 8< === Pantelis Antoniou wrote: > NAND support is currently broken when bad blocks are present. > Will sent patches shortly dealing with the problems... Has these been submitted yet? BR, Martin Egholm ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2) 2005-02-16 7:35 ` Martin Egholm Nielsen @ 2005-02-16 9:34 ` Wolfgang Denk 0 siblings, 0 replies; 10+ messages in thread From: Wolfgang Denk @ 2005-02-16 9:34 UTC (permalink / raw) To: u-boot In message <cuusuk$ifd$1@sea.gmane.org> you wrote: > > Pantelis Antoniou wrote: > > NAND support is currently broken when bad blocks are present. > > Will sent patches shortly dealing with the problems... > Has these been submitted yet? No. Best regards, Wolfgang Denk -- See us @ Embedded World, Nuremberg, Feb 22 - 24, Hall 10.0 Booth 310 Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de As in certain cults it is possible to kill a process if you know its true name. -- Ken Thompson and Dennis M. Ritchie ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2005-02-16 9:34 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-01-07 11:00 [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2) Martin Egholm Nielsen 2005-01-09 17:03 ` Craig Hughes 2005-01-09 17:30 ` Allen Curtis 2005-01-09 18:32 ` Craig Hughes 2005-01-10 8:50 ` [U-Boot-Users] " Martin Egholm Nielsen 2005-01-10 20:15 ` Martin Egholm Nielsen 2005-01-12 12:29 ` Pantelis Antoniou 2005-01-12 13:46 ` Martin Egholm Nielsen 2005-02-16 7:35 ` Martin Egholm Nielsen 2005-02-16 9:34 ` Wolfgang Denk
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox