Перейти к содержанию

Вопрос

Опубликовано (изменено)

Всем привет!

Дано:

KN-3710, Ноут с Apple M1 Pro процессором.

Требуется:

 Получить на KN-3710 рабочий OPKG наподобие того, что описывается вот в этой инструкции.

=== Подготовка ===

  •  Dockerfile Для сборки. (сборку буду делать на arm архитектуре, поэтому копирую библиотеки из amd64 образа)
  • keenetic-sdk
  • arm.patch (По умолчанию на arm архитектуре char беззнаковый, а тут хотят "знаковый")
  • в файле target/linux/en7528/KN-3710/target.mk надо добавить 
    FEATURES += extended_storage
  • в файле target/linux/en7528/KN-3710/ndwrt.config надо добавить
    СONFIG_USES_EXTENDED_STORAGE=y 
    CONFIG_KERNEL_MTD_NDM_EXTENDED_STORAGE=y 
    CONFIG_PACKAGE_kmod-fs-ubi=y
    CONFIG_PACKAGE_kmod-fs-ubifs=y 
    CONFIG_PACKAGE_kmod-ndm-storage=y 
    CONFIG_PACKAGE_ndm-mod-fstools=m 
    CONFIG_PACKAGE_ndm-mod-opkg-kmod-fs=m 
    CONFIG_PACKAGE_ndm-mod-storage=y

=== Проверка ===

Собираю по инструкции из readme в kinetic-sdk.  Если всё прошло успешно, то в папке /bin/en7528/ появляется файл прошивки с расширением .bin 

Переименовываю файл в KN-3710_recovery.bin и складываю его в папку /private/tftpboot/ на ноуте.

Далее по вот этой инструкции прошиваю девайс.

=== Настройка прошивки ===

Для начала в оригинальной прошивке нужно включить OPKG компонент, затем выгрузить прошивку и на ней сделать

make dirclean
./unpack.sh <файл прошивки>

Далее:

make menuconfig

Доступ к ash

NDM -> Debug -> ndm-mod-shell
NDM -> Opkg   -> ndm-mod-opkg

UBIFS

Kernel modules -> Other modules -> kmod-ndm-storage

Kernel modules -> Filesystems -> kmod-fs-ubi

Kernel modules -> Filesystems -> kmod-fs-ubifs

Kernel modules -> Cryptographic API modules -> kmod-crypto-lzo

Kernel modules -> Libraries -> kmod-lib-lzo

Libraries -> liblzo

Utilities -> ubi-utils

Utilities

Debug suite -> curl

Libraries -> libarchive

Возможно что-то ещё...

Cоздаю папку files/storage

Сохраняю, собираю (make), прошиваю через recovery

Теперь в CLI доступно:

(config)> exec ash


BusyBox v1.24.2 () built-in shell (ash)

/ #

 

в логах появились Storage_A и Storage_B

[I] Jan  1 00:00:03 kernel: 0x000000000000-0x000000020000 : "U-Boot"
[I] Jan  1 00:00:03 kernel: 0x000000020000-0x000000040000 : "U-Config"
[I] Jan  1 00:00:03 kernel: 0x000000040000-0x000000080000 : "RF-EEPROM"
[I] Jan  1 00:00:03 kernel: 0x000000080000-0x000000240000 : "Kernel_1"
[I] Jan  1 00:00:03 kernel: 0x000000240000-0x000001f40000 : "RootFS_1"
[I] Jan  1 00:00:03 kernel: mtd: device 4 (RootFS_1) set to be root filesystem
[I] Jan  1 00:00:03 kernel: 0x000000080000-0x000001f40000 : "Firmware_1"
[I] Jan  1 00:00:03 kernel: 0x000001f40000-0x000001fc0000 : "Config_1"
[I] Jan  1 00:00:03 kernel: 0x000001fc0000-0x000002000000 : "Dump"
[I] Jan  1 00:00:03 kernel: 0x000002000000-0x000003ae0000 : "Storage_A"
[I] Jan  1 00:00:03 kernel: 0x000003ae0000-0x000003b00000 : "U-State"
[I] Jan  1 00:00:03 kernel: 0x000003b00000-0x000003b20000 : "U-Config_res"
[I] Jan  1 00:00:03 kernel: 0x000003b20000-0x000003b60000 : "RF-EEPROM_res"
[I] Jan  1 00:00:03 kernel: random: fast init done
[I] Jan  1 00:00:03 kernel: 0x000003b60000-0x000005a20000 : "Firmware_2"
[I] Jan  1 00:00:03 kernel: 0x000005a20000-0x000005aa0000 : "Config_2"
[I] Jan  1 00:00:03 kernel: 0x000005aa0000-0x0000075e0000 : "Storage_B"
[I] Jan  1 00:00:03 kernel: 0x000000000000-0x0000075e0000 : "Full"
...
[I] Jan  1 00:00:05 kernel: Searching for suitable storage partitions...
[I] Jan  1 00:00:05 kernel: Found 1st storage partition of size 28180480 bytes
[I] Jan  1 00:00:05 kernel: Found 2nd storage partition of size 28573696 bytes
[I] Jan  1 00:00:05 kernel: Registering UBI data partitions parser
[W] Jan  1 00:00:05 kernel: Concatenating MTD devices:
[W] Jan  1 00:00:05 kernel: (0): "Storage_A"
[W] Jan  1 00:00:05 kernel: (1): "Storage_B"
[W] Jan  1 00:00:05 kernel: into device "NDM combined UBI partition"
[I] Jan  1 00:00:05 kernel: 1 ndmubipart partitions found on MTD device NDM combined UBI partition
[I] Jan  1 00:00:05 kernel: mtd: creating 1 MTD partitions on "NDM combined UBI partition":
[I] Jan  1 00:00:05 kernel: 0x000000000000-0x000003620000 : "Storage"
[I] Jan  1 00:00:05 kernel: Merging storage partitions OK

 

 

Но вот автоматом оно не монтируется:

/ # mount
/dev/root on / type squashfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,noexec,relatime)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

даже после

(config)> opkg disk storage:/
Opkg::Manager: Disk is set to: storage:/.

Пытаюсь сделать руками:

(config)> exec sh


BusyBox v1.24.2 () built-in shell (ash)

/ # modprobe ubi
/ # modprobe ubifs
/ # ubinfo
UBI version:                    1
Count of UBI devices:           0
UBI control device major/minor: 10:59
/ # mknod /dev/ubi_ctrl c 10 59
/ # ubiattach /dev/ubi_ctrl -m 16
UBI device number 0, total 433 LEBs (54980608 bytes, 52.4 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
/ # ubinfo /dev/ubi0
ubi0
Volumes count:                           0
Logical eraseblock size:                 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks:     433 (54980608 bytes, 52.4 MiB)
Amount of available logical eraseblocks: 428 (54345728 bytes, 51.8 MiB)
Maximum count of volumes                 128
Count of bad physical eraseblocks:       0
Count of reserved physical eraseblocks:  1
Current maximum erase counter value:     1
Minimum input/output unit size:          2048 bytes
Character device major/minor:            241:0
/ # ubimkvol /dev/ubi0 -N storage -s 54345728
Volume ID 0, size 428 LEBs (54345728 bytes, 51.8 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "storage", alignment 1
/ # ubinfo /dev/ubi0_0
Volume ID:   0 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        428 LEBs (54345728 bytes, 51.8 MiB)
State:       OK
Name:        storage
Character device major/minor: 241:1

Смонтировать вручную

/ # mount -t ubifs -o compr=zlib ubi0_0 /storage
/ # mount -t ubifs -o compr=zlib ubi0_0 /opt
/ # mount
/dev/root on / type squashfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,noexec,relatime)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
ubi0_0 on /storage type ubifs (rw,relatime,compr=zlib)
ubi0_0 on /opt type ubifs (rw,relatime,compr=zlib)

 

Но вот дальше Opkg::Manager не хочет устанавливать ничего из папки /storage/install

При перезагрузке /dev/ubi_ctrl пропадает, и, по прежнему автоматом ничего не монтируется и не устанавливается.

Помогите, plz.

 

 

 

Изменено пользователем srgsf
Следующий шаг.

Рекомендуемые сообщения

  • 0
Опубликовано
3 часа назад, hoaxisr сказал:

По хорошему, если вы хотите что-то собирать через SDK для своего роутера, то очень полезным будет иметь UART подключение к роутеру. Чтобы видеть загрузочные логи uboot и ядра, ну и для отладки не помешает точно, когда будут ошибки в прошивке и она не будет запускаться или уходить в цикл ребут, то понять где и почему это происходит без UART не выйдет. 

т.е. это из uart копипаста была? нету его и вроде пока только раз окирпичилось что не бутился, за десятки вариантов прошек. получилось вернуть чтение для 1714 путём переделки 1713

так а на счёт ndmubipart  есть сведения? должен он быть в разметке или както сам создаётся?

я по конфигам изучал и разобрался что 2 вида встроенных есть. NDM_STORAGE и NDM_EXTENDED_STORAGE

1е всегда маленькое и с заданием размера. а вот 2e для nand и у разных моделей по разному - гдето размер задаётся в конфигах а гдето нет  -- вот понять бы при таком раскладе когда не задаётся -- меняется ли он в зависимости от того сколько места сам firmware занимает?

  • 0
Опубликовано
1 час назад, Quqas Wased сказал:

Т.е. это из uart копипаста была?

Я думаю да. При загрузке что-то похоже выводится в лог. 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.