![]() |
|
|||||||
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
#11 |
|
Junior Member
Регистрация: 06.11.2016
Адрес: Москва
Сообщений: 13
Вес репутации: 0 ![]() |
Сегодня, вернее вчера, набрел вот на эту статью про "укорачивание" прошивок с boot, и решил попробовать.. Правда решил сначала посмотреть, что-же там на самом деле получилось.. Кроме, того читал кучу отзывов о "окирпичивании" после оной процедуры...
Команда в статье выглядела так: dd if=original_flash.bin of=flash_without_boot.bin skip=257 bs=512 Обратили внимание? Не 256, как край блока, а 257! А это означает, что вы отрезали вместе с boot первые 512 байт своей прошивки!!! ... ![]() Скорее всего команда имеет место быть, но видимо не для нашего роутера. В "нашем" начальный загрузчик имеет 128К прошивка начинается с адреса 2000Н, то сразу после этого адреса. Правда об этом можно спорить,.. мол все зависит от разметки и так далее.., спорьте, я не против.. ![]() Правильная команда: dd if=original_flash.bin of=flash_without_boot.bin skip=256 bs=512 А как быть если у вас fullflash, то есть образ считанной микросхемы памяти? А вот примерно так: с помощью команды dd "нарезать" необходимые вам части, а именно boot, firmware и art, для загрузки в роутер, например китайским загрузчиком u-boot. Все команды на примере fullflash микросхемы FL032PIF, "выдранной" из роутера. Кладем образ флеша FL032PIF.bin, размером 4194304 байт в какую-нить пустую директорию. 1. Отрезаем от начала файла загрузчик boot: dd if=FL032PIF.bin of=boot_FL032PIF.bin count=256 bs=512 то есть, считываем в выходной файл первые 256 блоков по 512 байт, что и составит 256х512=131072 байт или 128К. Кстати именно во "вторых" 64К "своего" загрузчика вы можете увидеть по адресам: 1FC00=MAK, 1FD00=router type и 1FE00= PIN-number. Сам загрузчик, скорее всего меньше и занимает первую и иногда еще часть второй части области загрузки. (см. в статье) 2. Следующей командой сначала получим промежуточный файл без boot. Примерно, как в начале статьи: dd if=FL032PIF.bin of=proFL032PIF.bin skip=256 bs=512, это (firmware+art) И далее, отрежем от него "хвост", размером 64К. dd if=proFL032PIF.bin of=art_FL032PIF.bin skip=7808 bs=512, - это и есть art. И сама прошивка - это начальная часть промежуточного файла, а именно: dd if=proFL032PIF.bin of=firmware_FL032PIF.bin count=7808 bs=512 - это firmware Для визуального контроля "обрезков", применялся редактор HEX-файлов "Okteta", в OS Ubuntu. Вы можете применить более распространенный WinHEX. Разумеется можно все сделать и в самом редакторе "мышкой", то как говорится "мы простых путей не ищем"... ![]() P.S. Все это мне не совсем нравиться, поэтому прошу ГУРУ мне указать на ошибки и очепятки...
Последний раз редактировалось alex286; 08.12.2016 в 15:31. |
|
|
|
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|