
Hi, I'm trying to use UBI and UBIFS over a nand device. I want to create a mtd partition in u-boot (with ubi part command), save a ubifs image (with mkfs.ubifs), mount and load it with ubifs commands. The commands that I used are listed bellow:
(environment) mtdids=nand0=nand mtdparts=mtdparts=nand:64m(allstuff) partition=nand0,0 mtddevnum=0 mtddevname=allstuff
=> ubi part nand allstuff Creating 1 MTD partitions on "NAND 64MiB 3,3V 8-bit": 0x00000000-0x04000000 : "mtd=0" UBI: attaching mtd0 to ubi0 UBI: physical eraseblock size: 16384 bytes (16 KiB) UBI: logical eraseblock size: 15872 bytes UBI: smallest flash I/O unit: 512 UBI: sub-page size: 256 UBI: VID header offset: 256 (aligned 256) UBI: data offset: 512 UBI: empty MTD device detected UBI: create volume table (copy #1) UBI: create volume table (copy #2) UBI: attached mtd0 to ubi0 UBI: MTD device name: "mtd=0" UBI: MTD device size: 64 MiB UBI: number of good PEBs: 4096 UBI: number of bad PEBs: 0 UBI: max. allowed volumes: 92 UBI: wear-leveling threshold: 4096 UBI: number of internal volumes: 1 UBI: number of user volumes: 0 UBI: available PEBs: 4052 UBI: total number of reserved PEBs: 44 UBI: number of PEBs reserved for bad PEB handling: 40 UBI: max/mean erase counter: 0/0
=> ubi create vol Creating dynamic volume vol of size 64313344 => ubi info l UBI: volume information dump: UBI: vol_id 0 UBI: reserved_pebs 4052 UBI: alignment 1 UBI: data_pad 0 UBI: vol_type 3 UBI: name_len 3 UBI: usable_leb_size 15872 UBI: used_ebs 4052 UBI: used_bytes 64313344 UBI: last_eb_bytes 15872 UBI: corrupted 0 UBI: upd_marker 0 UBI: name vol
UBI: volume information dump: UBI: vol_id 2147479551 UBI: reserved_pebs 2 UBI: alignment 1 UBI: data_pad 0 UBI: vol_type 3 UBI: name_len 13 UBI: usable_leb_size 15872 UBI: used_ebs 2 UBI: used_bytes 31744 UBI: last_eb_bytes 2 UBI: corrupted 0 UBI: upd_marker 0 UBI: name layout volume
tftp 1000000 image.ubifs vol ${filesize} => ubi write 1000000 vol ${filesize} Volume "vol" found at volume id 0 => ubifsmount vol UBIFS error (pid 0): ubifs_check_node: bad node length 4100 UBIFS error (pid 0): ubifs_check_node: bad node at LEB 0:0 UBIFS error (pid 0): ubifs_read_node: expected node type 6 Error reading superblock on volume 'ubi:vol'!
image.ubifs was generated with the follow command: mkfs.ubifs -r /ubifs -m 256 -c 2180 -e 16KiB -v -g 3 -o image.ubifs (/ubifs contains a kernel+ramdisk cramfs image.)
My question is if the error was in image.ubifs creation or some u-boot configuration. I can't find where u-boot takes this 4100 length from. By the way, is a volume created in u-boot able to be used in linux kernel in read-write mode?
Thanks in advance,
Marcelo

Hi Marcelo,
On Tuesday 31 March 2009, DATACOM - Mallmann wrote:
I'm trying to use UBI and UBIFS over a nand device. I want to create a mtd partition in u-boot (with ubi part command), save a ubifs image (with mkfs.ubifs), mount and load it with ubifs commands.
The easiest way to write an UBIFS image in U-Boot is to generate an UBI image with includes the UBIFS volume. This is done after "mkfs.ubifs" using the "ubinize" command. This creates an UBI image which can be written to FLASH via the "normal" commands ("cp.b" for NOR, "nand write" for NAND).
Here a link for some background:
http://www.linux-mtd.infradead.org/faq/ubifs.html#L_mkfubifs
<snip>
By the way, is a volume created in u-boot able to be used in linux kernel in read-write mode?
Sure. You can write an UBIFS image in U-Boot and use it read-only here. And later in Linux you can mount it read-write and write to it. Next time in U-Boot you will see the changes.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================

Stefan Roese wrote:
Hi Marcelo,
On Tuesday 31 March 2009, DATACOM - Mallmann wrote:
I'm trying to use UBI and UBIFS over a nand device. I want to create a mtd partition in u-boot (with ubi part command), save a ubifs image (with mkfs.ubifs), mount and load it with ubifs commands.
The easiest way to write an UBIFS image in U-Boot is to generate an UBI image with includes the UBIFS volume. This is done after "mkfs.ubifs" using the "ubinize" command. This creates an UBI image which can be written to FLASH via the "normal" commands ("cp.b" for NOR, "nand write" for NAND).
Here a link for some background:
http://www.linux-mtd.infradead.org/faq/ubifs.html#L_mkfubifs
<snip>
By the way, is a volume created in u-boot able to be used in linux kernel in read-write mode?
Sure. You can write an UBIFS image in U-Boot and use it read-only here. And later in Linux you can mount it read-write and write to it. Next time in U-Boot you will see the changes.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================
Hi Stefan,
Thanks a lot for the tip. It works fine and pretty fast, like I expected. =D
participants (2)
-
DATACOM - Mallmann
-
Stefan Roese