Как лучше собрать в общую прошивку U-boot, OpenWrt, таблицы с использованием HEX редактора на полностью пустую Flash память с объёмом 16 мб?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: появилась необходимость собрать прошивку под свои нужды, и записать её на полностью новую flash память объёмом 16 мб. В ходе работы появилась проблема с сборкой U-Boot, а именно ошибки при самой конфигурации и сборке. Сам архив скачан от:https://github.com/pepe2k/u-boot_mod/tree/master/u-bootНужно понять:. Откуда можно достать готовый бинарник загрузчика и откуда брать таблицы? А так же как правильно сформировать прошивку используя HEX редактор?

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Мария Код Ответ

Собирать образ для пустой SPI Flash “через HEX-редактор” можно только если вы точно знаете карту памяти конкретного роутера: где начинается bootloader, где ART/EEPROM/calibration partition, где firmware, где config. В OpenWrt это критично: если затереть ART/EEPROM, можно потерять Wi-Fi-калибровки и MAC-адреса. Поэтому сначала нужна не сборка, а дамп и схема разделов именно вашей модели.

Правильный порядок такой:

  • Найти OpenWrt wiki/форум по точной модели и ревизии платы.
  • Снять дамп старой flash, если она еще читается.
  • Сохранить ART/EEPROM/caldata отдельно.
  • Взять u-boot именно под ваш SoC/плату/размер flash.
  • Собрать полный образ по offsets, а не “на глаз”.

Если старая flash доступна хотя бы частично, считайте ее программатором:

flashrom -p ch341a_spi -r backup-full.bin
binwalk backup-full.bin

flashrom -p ch341a_spi -r backup-full.bin binwalk backup-full.bin

Новая 16 МБ flash обычно заполняется так: bootloader в начало, затем firmware/sysupgrade/factory image по нужному offset, в конце или отдельным разделом - ART/EEPROM. Но offsets у разных устройств отличаются. Готовый u-boot можно искать в исходниках OpenWrt для вашей target-платформы, на wiki устройства или в дампах такой же модели. Брать бинарник “похожего” роутера опасно.

Для склейки лучше использовать не HEX-редактор, а dd. Так меньше шансов ошибиться на смещение:

dd if=/dev/zero bs=1M count=16 | tr '00' '377' > fullflash.bin
dd if=u-boot.bin of=fullflash.bin conv=notrunc bs=1 seek=0
dd if=openwrt-factory.bin of=fullflash.bin conv=notrunc bs=1 seek=131072
dd if=art.bin of=fullflash.bin conv=notrunc bs=1 seek=16252928

dd if=/dev/zero bs=1M count=16 | tr '00' '377' > fullflash.bin dd if=u-boot.bin of=fullflash.bin conv=notrunc bs=1 seek=0 dd if=openwrt-factory.bin of=fullflash.bin conv=notrunc bs=1 seek=131072 dd if=art.bin of=fullflash.bin conv=notrunc bs=1 seek=16252928

Цифры выше только пример. Их нельзя использовать без проверки под вашу плату. Если нет дампа и схемы разделов, безопаснее найти fullflash dump от такой же ревизии устройства и заменить в нем только уникальные данные: MAC, PIN, ART/caldata, если они у вас есть. Иначе можно получить загрузчик, который стартует, но Wi-Fi или Ethernet работать не будут.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

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

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно