Я хочу изменить существующую прошивку для некоторого устройства ARMv7.Думайте об этом как: «Я хочу добавить функцию контроля температуры наружного воздуха и добавить соответствующую веб-страницу в мой домашний маршрутизатор».Поэтому мне нужно встроить дополнительное программное обеспечение в микропрограмму и изменить код расширения веб-сервера cgi.
Микропрограмма обычно сохраняется в виде некоторого двоичного файла firmware_filename.bin
, который затем записывается в nand внутри устройства во время выполнения.из $nandwrite -p /dev/mtd8 firmware_filename.bin
.
Проще говоря, мой вопрос: как легко"приготовить" этот файл firmware_filename.bin
с небольшими изменениями (с добавлением дополнительной веб-страницы и добавляемого бинарного файла))?
До сих пор я исследовал, что в пакете mtd-utils есть симулятор NAND для linux - вы можете создать виртуальный чип с помощью команды modprobe nandsim
, а затем прошить его.
Могут быть некоторые смещения байтов или разделы, которые могут быть привязаны к загрузчику или участвовать в процессе загрузки - это необходимо, чтобы «не трогать», чтобы повторно использовать существующую рабочую схему.Мой лучший подход - я хочу быть «совершенно не осведомленным» об этих разделах - не блокировать устройство и работать с наименьшим необходимым подмножеством на уровне файлов.
Так что я хочу - не это доступ на низком западном уровне , но для проверки и незначительного изменения его файловой системы на уровне файлов.Я не совсем понимаю, что такое / dev / mtd0 и как с ним работать, как я делаю с / dev / sda0?Как «монтировать» устройство / dev / mtd0 или иным образом редактировать содержимое его файловой системы?