Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
UBIFS
Strijar
Добавлено 20.07.2010 10:26
0
Сообщение: 1
Strijar
Ранг
5

Группа: Клиенты
Пункты: 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
Добавлено 20.07.2010 12:08 Сообщение: 2
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

собираю:


А каким образом записываете в nand ?
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 20.07.2010 12:31 Сообщение: 3
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Через sam-ba

Сейчас попробовал прямо на устройстве сделать ubifs том - все нормально создалось, отформатировалось и потом при перезагрузке примонтировалось. Но это как то не комильфо... делать ФС на девайсе - потом сливать всю флэшку и копировать на другие устройства.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.07.2010 12:58 Редактировалось 20.07.2010 12:59 Сообщение: 4
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
#ubiformat /dev/mtd1 -s 512 -f image_name

Например так, а камильфо/некамильфо это все блаж - у ubi должна быть информация о битых блоках. Имидж можно например с nfs брать.
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 20.07.2010 13:12 Редактировалось 20.07.2010 13:16 Сообщение: 5
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Это приемлемо для десятка устройств. А для сотен и тысяч? Я планировал что sam-ba будет сразу заливать bootstrap, u-boot, ядро и rootfs. А так придется заливать урезаную систему - или грузиться по nfs, потом дополнительно изнутри заливать rootfs. Не получиться автоматизировать процесс.

Т.е. нет возможность как с jffs2 - просто залить образ напрямую в nand?
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 20.07.2010 13:14 Сообщение: 6
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
кстати - разве за битые блоки не MTD отвечает? А как тогда JFFS2 работает? Он ведь при создании образа не знает о битых блоках
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.07.2010 13:16 Редактировалось 20.07.2010 13:20 Сообщение: 7
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

Т.е. нет возможность как с jffs2 - просто залить образ напрямую в nand?


Если честно - я не знаю потому что не приходилось делать оптом, но подозреваю что можно сделать правильно на одном устройстве, снять имидж самбой всей nand а потом тиражировать.

Цитата

кстати - разве за битые блоки не MTD отвечает?


По крайней мере mtd работает с bbt и есть ф-ции проверки на целостность блоков как минимум при стирании - дальше я не интересовался еще :)
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 20.07.2010 13:19 Редактировалось 20.07.2010 13:20 Сообщение: 8
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Странно все это... и не красиво. Может не стоит овчинка выделки? Хотелось только надежности (в плане нештатных перезагрузок). Может достаточно будет jffs2 с -o sync взамен?

Вся NAND 16мб - долго будет заливаться.
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 20.07.2010 14:24 Редактировалось 20.07.2010 14:27 Сообщение: 9
Strijar
Ранг
5

Группа: Клиенты
Пункты: 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 умеет пропускать плохие блоки...
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux