09.06.2017, 11:53 | #1 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Загрузчики, дампы, программатор, замена флешки
Пока здесь обоснуюсь
=== Имеется роутер, который выкинуть жалко - но потренироваться на нем можно Netgear WGR612v1 Atheros AR2317-AC1A = CPU/WLAN etc Atheros AR8216-BH1A = Ethernet switch Samsung k4S281632k-uc75 = 16MB SDRAM Nanya NT5SV8M16FS-6K/75B MX25L1605DMI-12G = 2MB Flash Надежная железяка, заменил электролиты, пробовал подкинуть 32MB SDRAM - не подошла имеющаяся На место MX25L1605DMI-12G = 2MB Flash - впаял кроватку (чип можно вставлять/вынимать без пайки с материнки Asus) и воткнул чип Winbond 25Q64B= 8MB Flash(с той же материнки). Снял дамп с родной флешки MX25L1605DMI-12G = 2MB Flash и решил поковырять его в hex-редакторе. Прошивка: WGR612 Firmware Version 1.0.1.2 (Russia) Загрузчик redboot: RedBoot(tm) bootstrap and debug environment [ROMRAM] Non-certified release, version V1.05 - built 12:01:55, Sep 10 2009 https://wiki.openwrt.org/doc/techref/bootloader/redboot http://ecos.sourceware.org/docs-late...oot-guide.html Структура прошивки: Развернуть для просмотраКод:
Загрузчик начало: 00000000 Загрузчик конец: 131079 DE AD DE AD F3 74 6F B2 5D 00 00 80 00 00 90 17 Прошивка начало orig.bin: 0131086 1E 02 0C 81 B3 28 86 FC 71 16 26 99 B4 22 Прошивка начало WGR612****.img: 0000142 1E 02 0C 81 B3 28 86 FC 71 16 26 99 B4 22 Прошивка конец orig.bin: 1965504 6F 1A A6 AF F7 A6 68 B8 87 B9 DC FF E6 0C 54 Прошивка конец WGR612****.img: 1832810 6F 1A A6 AF F7 A6 68 B8 87 B9 DC FF E6 0C 54 Настройки пользователя начало: 1966080 CA FE 23 45 00 DD 53 62 Настройки пользователя конец: 1977691 81 A4 47 4D 54 2D 33 47 4D 54 0A 00 00 00 art начало: 2031616 35 33 31 31 32 C6 00 04 41 74 68 art конец: 2033919 80 02 05 6F 00 00 00 01 [свернуть] Попробывал зашить флешку Winbond 25Q64B= 8MB Flash собранной в хекс-редакторе прошивкой (3-4 варианта) загрузчик стартует. Инициализация загрузчика - загорается светодиод питания (без флешки или с пустой флешкой FF такого не происходит). Спустя 3 секунды, светодиод должен проморгаться - инициализация железа, далее идет запуск самой прошивки. С Winbond 25Q64B= 8MB Flash диод горит постоянно.. Собирал исходя из рекомендаций: http://cyber-place.ru/showthread.php?p=3157#post3157 Как делал: - создал файл размером 8*388*608 байт - заполнил его FF - скопировал в его начало все кроме art - скопировал в конец 64Кб art Загрузчик стартует, железо он не видит. === Связь с загрузчиком я так понял возможна используя: - LAN-у (не в моем случае) - Serial - JTag 4 штырька из платы торчат, по контактам: - земля - 3.24V -.3.3V - 3.3V Что это Serial или JTag откровенно говоря не понял, впрочем пока не гуглил - может кто подскажет... === Стоит задача прикрутить к этому роутеру флешку на 8Mb сначала с родной прошивкой, потом поставить openwrt/lede. Попробую подкинуть вторую флешку 8Mb после инициализации родной 2Mb - я так понимаю я смогу подключиться по lan и зайти в загрузчик: http://digitais.ist.utl.pt/ec-sc/040...rce-usage.html Какие команды выполнять для копирования, пока не определился. С программатором и хекс-редатором тоже пока решения нет. Какие будут ваши предложения (кроме роутер в окно - всегда успеется )
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 10.06.2017 в 10:28. |
09.06.2017, 15:51 | #2 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Добавлю фоточек :
Впаял кроватку, чип на 8Мб: Родной чип на 2Мб: Можно подкинуть чип на 8Мб(в другом корпусе) и скопировать redboot-ом с флешки 2Мб на 8Мб с помощью шнурка с прищепкой: Все барахло в сборе В рабочем положении с родным чипом и прошивкой(горит индикатор сети и индикатор wi-fi)
__________________
Читаю ваши мысли по аватару ... |
09.06.2017, 16:12 | #3 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Аналоги по железу:
D-Link DIR-300 Rev.A1 (Airlink AR335W/AR430W) https://wiki.openwrt.org/toh/d-link/dir-300?s[]=ar2317 ASUS RT-G32 https://wiki.openwrt.org/toh/asus/rt-g32_atheros?s[]=ar2317 TP-Link TL-WR542g https://wiki.openwrt.org/toh/tp-link/tl-wr542g?s[]=ar2317 WIZnet Wiz610wi https://wiki.openwrt.org/toh/wiznet/wiz610wi?s[]=ar2317 Dragino MS12 https://wiki.openwrt.org/toh/dragino/ms12?s[]=ar2317 SMC WBR14-G2 https://wiki.openwrt.org/oldwiki/ope...smc/wbr14_g2?s[]=ar2317 Может под дир-300 или асус-g32 его перешить Есть у кого дамп для программатора ? Даташит на проц во вложении:
__________________
Читаю ваши мысли по аватару ... |
10.06.2017, 00:10 | #4 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Определился по "штырькам"
Крайний со стороны разъемов - питание 3.3V - звонится накоротко с 8-й ногой флешки в корпусе sop-8. Подцепил USB-232 TTL на PL2303 к TXD RXD GND(без GND все отображается, но на клавиши не реагирует). Запустил Putty /dev/ttyUSB0 9600 - увидел процесс загрузки. После надписи: nmrp timeoust exit;==Executing boot script in 1.000 seconds - enter ^C to abort жмем Ctrl+C и можем вывести список команд Redboot-a - командой help. C флешки 8Мб зайти в Redboot не удается.. Попробую загрузившись подцепить дополнительно флешку на 8Мб и скопировать на нее содержимое 2Мб... Таким образом: http://cyber-place.ru/showthread.php?p=3157#post3157
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 10.06.2017 в 09:31. |
10.06.2017, 09:34 | #5 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Подключаем USB-232 TTL на PL2303:
Настраиваем Putty: Запускаем Putty: И подаем питание на роутер, наблюдаем загрузку.. После надписи: nmrp timeoust exit;==Executing boot script in 1.000 seconds - enter ^C to abort жмем Ctrl+C и попадаем в RedBoot Смотрим доступные команды с помощью help:
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 10.06.2017 в 10:07. |
10.06.2017, 09:43 | #6 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Смотрим разделы родной флешки 2Mb
С помощью fis list Имеем: Код:
===================================================================== Name FLASH addr Mem addr Length Entry point RedBoot 0xBFC00000 0xBFC00000 0x0001F800 0x00000000 FIS directory 0xBFC1F800 0xBFC1F800 0x00000400 0x00000000 RedBoot config 0xBFC1FC00 0xBFC1FC00 0x00000400 0x00000000 vmlinux.bin.gz 0xBFC20000 0x80041000 0x00070000 0x80041000 rootfs 0xBFC90000 0x80041000 0x00150000 0x00000000 nvram 0xBFDE0000 0xBFDE0000 0x00010000 0x00000000 ===================================================================== Только загрузчик там U-Boot 1.1.4 и команды здесь другие.. === Есть еще вариант поправить в hex-редакторе дамп 2Mb FLASH: 0xbfc00000 - 0xbfdf0000,32 blocks of 0x00010000 bytes each 8Mb FLASH: 0xbfc00000 - 0xffff0000, 128 blocks of 0x00010000 bytes each. По идее он увидит полный объем флешки:
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 10.06.2017 в 16:07. |
10.06.2017, 16:11 | #7 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Разобрался kernel panic - можно в принципе сразу правильный kernel подсунуть.
Девайс видит новую флешку, видит все разделы записанные программатором - дампом отредактированном в хекс-редакторе. Но kernel не стартует:
__________________
Читаю ваши мысли по аватару ... |
10.06.2017, 16:17 | #8 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Переносим содержимое с флешки меньшего размера - на флешку большого размера с помощью RedBoot
Загружаемся с родной флешки. После надписи: nmrp timeoust exit;==Executing boot script in 1.000 seconds - enter ^C to abort жмем Ctrl+C и попадаем в RedBoot Вынимаем родную флешку и подключаем новую - ничего не отключая. И выполняем: Код:
fis init -f Код:
About to initialize [format] FLASH image system - continue (y/n)? Проверяем: Код:
fis list Код:
Name FLASH addr Mem addr Length Entry point RedBoot 0xBFC00000 0xBFC00000 0x0001F800 0x00000000 FIS directory 0xBFC1F800 0xBFC1F800 0x00000400 0x00000000 RedBoot config 0xBFC1FC00 0xBFC1FC00 0x00000400 0x00000000 Код:
load -r -v -b 0x80041000 vmlinux.gz Код:
fis create kernel Код:
load -r -v -b 0x80041000 root.squashfs Код:
fis create rootfs Код:
fis load -l vmlinux.gz exec -c "reset=0 panic=1" Код:
RedBoot> fconfig Run script at boot: true Boot script: .. fis load -b 0x80041000 -d vmlinux.bin.gz .. exec -c "reset=0 panic=1 Enter script, terminate with empty line >> fis load -b 0x80041000 -d vmlinux.bin.gz >> exec -c "reset=0 panic=1 >> Update RedBoot non-volatile configuration - continue (y/n)? y RedBoot> reset https://wiki.openwrt.org/toh/wistron/ca8-4
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 12.06.2017 в 13:57. |
12.06.2017, 10:57 | #9 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
При копировании на программаторе или переносе загрузчика (в данном случае RedBoot) - с флешки 2Mb на 8Mb - загрузчик продолжает видит объем флешки, как 2Mb - в этом основная проблема
Ядро видит полный объем флешки 8Mb - загрузчик нет. Его нужно устанавливать на флешку большего объема.. === Yes успешно поставил u-boot из под redboot-a на флешку 8 Mb !!!
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 12.06.2017 в 13:47. |
12.06.2017, 14:10 | #10 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Ставим U-Boot из под RedBoot-a:
Подходит для Netgear WGR612v1 (для других моделей нужно подбирать u-boot и менять адреса) Подключаемся по UART жмем Ctrl+С Грузимся с родной флешки меньшего размера (2Mb) Перетыкаем на работающем роутере флешку большего размера (4-8-16Mb) Загружаем с ПК загрузчик u-boot в память роутера RAM: Код:
load -v -r -b 0x80041000 u-boot.bin Затираем место на новой флешке под загрузчик, если вы очистили флешку в программаторе, этого делать не нужно: Код:
fis erase -f 0xBFC00000 -l 0x00040000 Код:
fis write -f 0xBFC00000 -b 0x80041000 -l 196608 Код:
reset Данный u-boot предназначен для AR2317 (во вложении) === U-Boot брал здесь: https://forum.openwrt.org/viewtopic.php?id=17252 u-boot имеет веб-интерфейс 192.168.1.1 Из минусов слетает MAC и ... не работает, нужно адаптировать под ar8616 Актуально для TL-WR340GD и чипов на ar8236 https://delfer.ru/2016/06/12/openwrt...nk-tl-wr340gd/ И прочих: Atheros AR2317+AR8216
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 14.06.2017 в 23:31. |
Метки |
dump, hex-editor, redboot, программатор |
Здесь присутствуют: 3 (пользователей: 0 , гостей: 3) | |
|
|