Linux

UBI error: vtbl_check: volume table check failed: > record 0, error 9

raulyo 2013. 3. 6. 17:35

Hi, On Thu, 2009-04-02 at 15:58 +0200, simon polette wrote: > Hi, > > I'm using the last mtd utils version provided by the git mtd > repository. I want to flash an ubi image built with mkfs.ubfis and > ubinize into a Nand flash. Once the nand is flashed, when I try to > attach ubi, I get this error : > > # ubiattach /dev/ubi_ctrl -m 2 > [ 968.980000] UBI: attaching mtd2 to ubi1 > [ 969.000000] UBI: physical eraseblock size: 131072 bytes (128 KiB) > [ 969.030000] UBI: logical eraseblock size: 129024 bytes > [ 969.050000] UBI: smallest flash I/O unit: 2048 > [ 969.060000] UBI: sub-page size: 512 > [ 969.080000] UBI: VID header offset: 512 (aligned 512) > [ 969.100000] UBI: data offset: 2048 > [ 969.330000] UBI error: vtbl_check: volume table check failed: > record 1, error 9 > ubiattach: error!: cannot attach mtd2 > error 22 (Invalid argument) > > The ubi image I use is ok because I already successfully flashed it > and used it with this hardware. This error appeared since I upgraded > both mtd utils and Linux kernel, but even if come back to the previous > versions I was used to work with, this error persist. I think I'm > doing something wrong, but don't know where at all. > Any idea is welcome. You did not enable debugging, as it is asked for here: http://www.linux-mtd.infradead.org/doc/ubifs.html#L_how_send_bugreport But I took a look into the code, and the following is error 9: if (reserved_pebs > ubi->good_peb_count) { dbg_err("too large reserved_pebs %d, good PEBs %d", reserved_pebs, ubi->good_peb_count); err = 9; goto bad; } This means you created a too large UBI volume in the image, and your real flash is smaller. Try to enable UBI debugging, and type dmesg, then you'll see reserved and real eraseblock numbers.


같은 에러가 떠서 ubi.ini 의 volsize를 늘려줘서 수정하였다.