Strijar
Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Добрый день.
Второй день голову ломаю, где-то упустил, а где не вижу. Не монтируется rootfs и все тут.
mtdinfo говорил:
mtd0
Name: Partition 1
Type: nand
Eraseblock size: 131072 bytes, 128.0 KiB
Amount of eraseblocks: 2 (262144 bytes, 256.0 KiB)
Minimum input/output unit size: 2048 bytes
Sub-page size: 512 bytes
OOB size: 64 bytes
Character device major/minor: 90:0
Bad blocks are allowed: true
Device is writable: true
mtd1
Name: Partition 2
Type: nand
Eraseblock size: 131072 bytes, 128.0 KiB
Amount of eraseblocks: 1022 (133955584 bytes, 127.8 MiB)
Minimum input/output unit size: 2048 bytes
Sub-page size: 512 bytes
OOB size: 64 bytes
Character device major/minor: 90:2
Bad blocks are allowed: true
Device is writable: true
собираю:
mkfs.ubifs -e 0x1F800 -c 1000 -m 2048 -x lzo -r ../rootfs.all -o rootfs.ubifs -v -D ../device_table.txt
ubinize -p 128KiB -m 2048 -s 512 -v -o rootfs_ubi.bin ubifs.cfg
[ubifs]
mode=ubi
image=rootfs.ubifs
vol_id=0
vol_size=32MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
грузиться:
Creating 2 MTD partitions on "atmel_nand":
0x000000000000-0x000000040000 : "Partition 1"
0x000000040000-0x000008000000 : "Partition 2"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI: attached mtd1 to ubi0
UBI: MTD device name: "Partition 2"
UBI: MTD device size: 127 MiB
UBI: number of good PEBs: 1021
UBI: number of bad PEBs: 1
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 1
UBI: available PEBs: 0
UBI: total number of reserved PEBs: 1021
UBI: number of PEBs reserved for bad PEB handling: 10
UBI: max/mean erase counter: 1/0
UBI: image sequence number: 1731858833
...
UBIFS error (pid 1): ubifs_check_node: bad CRC: calculated 0xed1f6b2a, read 0x49a9e4ac
UBIFS error (pid 1): ubifs_check_node: bad node at LEB 0:0
UBIFS error (pid 1): ubifs_read_node: expected node type 6
VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)
В чем может быть проблема?
sasamy
Пункты: 83542
Регистрация: 14.08.2009
Цитата
собираю:
А каким образом записываете в nand ?
Strijar
Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Через sam-ba
Сейчас попробовал прямо на устройстве сделать ubifs том - все нормально создалось, отформатировалось и потом при перезагрузке примонтировалось. Но это как то не комильфо... делать ФС на девайсе - потом сливать всю флэшку и копировать на другие устройства.
sasamy
Пункты: 83542
Регистрация: 14.08.2009
#ubiformat /dev/mtd1 -s 512 -f image_name
Например так, а камильфо/некамильфо это все блаж - у ubi должна быть информация о битых блоках. Имидж можно например с nfs брать.
Strijar
Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Это приемлемо для десятка устройств. А для сотен и тысяч? Я планировал что sam-ba будет сразу заливать bootstrap, u-boot, ядро и rootfs. А так придется заливать урезаную систему - или грузиться по nfs, потом дополнительно изнутри заливать rootfs. Не получиться автоматизировать процесс.
Т.е. нет возможность как с jffs2 - просто залить образ напрямую в nand?
Strijar
Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
кстати - разве за битые блоки не MTD отвечает? А как тогда JFFS2 работает? Он ведь при создании образа не знает о битых блоках
sasamy
Пункты: 83542
Регистрация: 14.08.2009
Цитата
Т.е. нет возможность как с jffs2 - просто залить образ напрямую в nand?
Если честно - я не знаю потому что не приходилось делать оптом, но подозреваю что можно сделать правильно на одном устройстве, снять имидж самбой всей nand а потом тиражировать.
Цитата
кстати - разве за битые блоки не MTD отвечает?
По крайней мере mtd работает с bbt и есть ф-ции проверки на целостность блоков как минимум при стирании - дальше я не интересовался еще :)
Strijar
Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Странно все это... и не красиво. Может не стоит овчинка выделки? Хотелось только надежности (в плане нештатных перезагрузок). Может достаточно будет jffs2 с -o sync взамен?
Вся NAND 16мб - долго будет заливаться.
Strijar
Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Все грустно -
http://www.linux-mtd.infradead.org/doc/ubi.html#L_flasher_algo
И на тему JFFS2 тут же:
Цитата
By the way, we experienced the similar problems with JFFS2. The JFFS2 images generated by the mkfs.jffs2 program were padded to the physical eraseblock size and were later flashed to our NAND. The flasher did not bother skipping empty NAND pages. When JFFS2 was mounted, it wrote to those NAND pages, and the writes did not fail. But later we observed weird ECC errors. It took a while to find out the problem. In other words, this is also relevant to JFFS2 images.
Хотя с другой стороны - sam-ba умеет пропускать плохие блоки...