LINUX.ORG.RU

как правильно делать ubi образ

 


0

1

Ситуация такая, вот собрал мне buildroot rootfs.ubifs. Надо его залить на плату. Сперва делаем ubi-образ с помощью ubinize

открываем гугл и берем пример:

конфиг

[ubifs]
mode=ubi
image=rootfs.ubifs
vol_id=0
vol_size=200MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize

/usr/sbin/ubinize -o ubi.img -m 2048 -p 128KiB -s 512 ubinize.cfg

и получаем ошибку

[    9.550000] UBI: attaching mtd4 to ubi0
[    9.560000] UBI error: validate_ec_hdr: bad VID header offset 512, expected 2048
[    9.570000] UBI error: validate_ec_hdr: bad EC header
[    9.580000] Erase counter header dump:
[    9.590000]  magic          0x55424923
[    9.600000]  version        1
[    9.610000]  ec             0
[    9.620000]  vid_hdr_offset 512
[    9.630000]  data_offset    2048
[    9.640000]  image_seq      745861233
[    9.650000]  hdr_crc        0xfb58fdc8
[    9.660000] erase counter header hexdump:
[    9.670000] CPU: 0 PID: 1 Comm: swapper Not tainted 3.10.28-modules #6
[    9.680000] [<c0012498>] (unwind_backtrace+0x0/0x11c) from [<c0010ed0>] (show_stack+0x10/0x14)
[    9.690000] [<c0010ed0>] (show_stack+0x10/0x14) from [<c01cf7c4>] (validate_ec_hdr+0x124/0x14c)
[    9.700000] [<c01cf7c4>] (validate_ec_hdr+0x124/0x14c) from [<c01d0470>] (ubi_io_read_ec_hdr+0x284/0x300)
[    9.710000] [<c01d0470>] (ubi_io_read_ec_hdr+0x284/0x300) from [<c01d546c>] (ubi_attach+0x1a0/0x136c)
[    9.720000] [<c01d546c>] (ubi_attach+0x1a0/0x136c) from [<c01c9fe4>] (ubi_attach_mtd_dev+0x864/0xe8c)
[    9.730000] [<c01c9fe4>] (ubi_attach_mtd_dev+0x864/0xe8c) from [<c046fe00>] (ubi_init+0x1d0/0x2c8)
[    9.740000] [<c046fe00>] (ubi_init+0x1d0/0x2c8) from [<c0008678>] (do_one_initcall+0xb8/0x164)
[    9.750000] [<c0008678>] (do_one_initcall+0xb8/0x164) from [<c0460ac0>] (kernel_init_freeable+0x128/0x1ec)
[    9.760000] [<c0460ac0>] (kernel_init_freeable+0x128/0x1ec) from [<c02c86b4>] (kernel_init+0x8/0xe4)
[    9.770000] [<c02c86b4>] (kernel_init+0x8/0xe4) from [<c000dff8>] (ret_from_fork+0x14/0x3c)
[    9.780000] UBI error: ubi_io_read_ec_hdr: validation failed for PEB 0
[    9.790000] UBI error: ubi_attach_mtd_dev: failed to attach mtd4, error -22
[    9.800000] UBI error: ubi_init: cannot attach mtd4

После чего делаю

/usr/sbin/ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 ubinize.cfg

и получаю ошибку

[   19.640000] UBI: scanning is finished
[   19.730000] UBI: volume 0 ("rootfs") re-sized from 1652 to 7992 LEBs
[   19.740000] UBI: attached mtd4 (name "rootfs", size 1019 MiB) to ubi0
[   19.750000] UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[   19.760000] UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[   19.770000] UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
[   19.780000] UBI: good PEBs: 8145, bad PEBs: 11, corrupted PEBs: 0
[   19.790000] UBI: user volume: 1, internal volumes: 1, max. volumes count: 128
[   19.800000] UBI: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1712739736
[   19.810000] UBI: available PEBs: 0, total reserved PEBs: 8145, PEBs reserved for bad PEB handling: 149
[   19.820000] UBI: background thread "ubi_bgt0d" started, PID 565
[   19.830000] UBIFS error (pid 1): validate_sb: LEB size mismatch: 129024 in superblock, 126976 real
[   19.840000] UBIFS error (pid 1): validate_sb: bad superblock, error 1
[   19.850000]  magic          0x6101831
[   19.860000]  crc            0xd3702c3
[   19.870000]  node_type      6 (superblock node)
[   19.880000]  group_type     0 (no node group)
[   19.890000]  sqnum          16002
[   19.900000]  len            4096
[   19.910000]  key_hash       0 (R5)
[   19.920000]  key_fmt        0 (simple)
[   19.930000]  flags          0x0
[   19.940000]    big_lpt      0
[   19.950000]    space_fixup  0
[   19.960000]  min_io_size    2048
[   19.960000]  leb_size       129024
[   19.970000]  leb_cnt        183
[   19.970000]  max_leb_cnt    2048
[   19.980000]  max_bud_bytes  8388608
[   19.990000]  log_lebs       5
[   20.000000]  lpt_lebs       2
[   20.010000]  orph_lebs      1
[   20.020000]  jhead_cnt      1
[   20.030000]  fanout         8
[   20.040000]  lsave_cnt      256
[   20.050000]  default_compr  1
[   20.060000]  rp_size        0
[   20.070000]  rp_uid         0
[   20.080000]  rp_gid         0
[   20.080000]  fmt_version    4
[   20.090000]  time_gran      1000000000
[   20.100000]  UUID           60770486-8BBA-43DB-A8B0-6CA873730EF1

ЧЯДНТ?

★★★★★

Так я готовил раздел для хранения данных:

/root/ubiformat /dev/$TARGET --yes
/root/ubiattach --dev-path=/dev/$TARGET
/root/ubimkvol /dev/ubi0 --name=data --maxavsize
/root/ubidetach --dev-path=/dev/$TARGET
И в fstab:
ubi0:data       /data      ubifs   noauto  0       0
Не совсем то, но может быть поможет.

imb ★★
()
Ответ на: комментарий от cvs-255

В общем, busybox init для встраиваемых систем гораздо удобнее, чем systemd)

cvs-255 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.