Перепрошивка приставки провайдера Vladlink

Сообщений: 6 / 0 новое
Последнее сообщение
sv_
Не в сети
Зарегистрирован: 02.07.2011
Перепрошивка приставки провайдера Vladlink

Хочу поменять прошивку на приставке, проданной мне провайдером Vladlink (г. Владивосток).Прошивка  провайдера меня не совсем устраивает, хочу попробовать вашу. Не знаю, как это сделать. Перепробовал все описанные способы. Телнет запаролен, по USB не прошивается, сразу перезагружается. По http доходит до 100% и начинает снова, и так три раза подряд, потом перезагружается. Версия, установленная провайдером, 4.09.017, с завода пришла 1.03.003, судя по этикетке. Подключился по UART через Гипертерминал, выдает длинный загрузочный лог, на CTRL+C не реагирует, в CFE войти невозможно. Где то в конце лога предлагает нажать на любую клавишу, если нажимаешь, выводит приглашение ввести логин - пароль. Пароля я не знаю. Думал, глюк Гипертерминала, при вводе  CTRL+C на экране ничего не отображается, тогда, как если ввести CTRL+A и некоторые другие, выводит ^A, как положено. Попробовал через minicom, тоже самое. Если пытаешься перепрошить через http, в логе по UART выдает:


Uncertified
Execute external umount /mnt/ramfs
bcmdriver: rebooting ...


Пробовал другие прошивки от Д-Линка, если в прошивке нет файла sig, в логе указывается на его отсутствие и перезагружается по этой причине.


Распаковал вашу прошивку экстрактором, выложенным на ftp, попробовал прошить по multicast. Тоже ничего не выходит. Доходит примерно до 50%, потом в логе выдает надпись Firmware /mnt/ramfs/a0_rootfs.img captured!   и загрузка останавливается, и так до перезагрузки вручную.


Может я conf не совсем правильно написал, но, как я понимаю, загрузка останавливается на первом же файле. Пробовал залить вашу "пустую" прошивку, тоже самое, с разницей, что файл a-html-cramfs.img останавливается на 0%, в логе та же надпись. Пробовал залить 1.03.004M, взятую с того же ftp, подредактировав версии файлов, результат тот же. Я смотрел, на ftp некоторые Д-Линковские мультикаст прошивки тоже снабжены файлами .sig  Может в этом причина?

skylord
Не в сети
Зарегистрирован: 26.06.2010

Именно в этом. Не зря же она говорит у вас "Uncertified" - судя по всему, ругается на отсутствие цифровой подписи. Наши sig ей могут не нравится только в том случае, если у вашей приставки ключ для подписи не стандартный Длинковский, а какой-то другой, но в этом случае я вам ничем помочь не могу. Скорее всего единственный выход все-таки прошиваться через CFE. Control-C нажимаете сразу же после включения? Если кабель нормальный, то должно в консоль CFE входить без проблем.

sv_
Не в сети
Зарегистрирован: 02.07.2011


Прочитал в вашем блоге "Консольный лог загрузки...":


"Кучу косяков видно сразу, но самый главный – это то, что splash подгружается ДО полной инициализации CFE, когда можно с клавиатуры нажать Ctrl-C и творить что угодно. В итоге, если splash дохлый или не дай Бог – с JPEG, который сохраняли в прогрессиве, – то все. Финита. У меня один такой уже лежит. Очевидно, только JTAG’ом поднимать. Жесть, одним словом. Кто их учил писать загрузчики – неизвестно. "


Сравнил со своим логом:


Terminal log file
Date: 17.07.2011 - 20:14:05
-----------------------------------------------
BCM97401
AB
FFFFFFFF
1s
K1
K2


K3


K4


K5
2
Copy Code...34TUCV


BCM97402 CFE v1.8, CFE core v1.6, Endian Mode: Little
Build Date: Fri Jan 23 21:50:11     2009 (Rance@Rance-AsusU5F)
Copyright (C) Broadcom Corporation.


CPU speed: 297MHz
Total memory: 256MB
Total flash: 32MB


Total memory used by CFE:  0x87000000 - 0x87044890 (280720)
Initialized Data:          0x8703C990 - 0x87044548 (31672)
BSS Area:                  0x87044548 - 0x87044890 (840)
Local Heap:                0x87044910 - 0x87A44910 (10485760)
Stack Area:                0x87A44910 - 0x87A46910 (8192)
Text (code) segment:       0x87000000 - 0x8700F264 (62052)



flash0.splash=1FCC0000
JPEG size=92504, mode=0
JPEG decoding
Decode done
Splash Width = 720 Height = 576
Loader:elf Filesys:raw Dev:flash0.kernel File: Options:root=/dev/mtdblock0 ro
Loading: 0x80001000/3219590 0x80313086/139142 Entry address is 0x802f3000
total=  bytes
Starting program at 0x802f3000
<5>Linux version 2.6.12-4.2-brcmstb build version 2612-4.2 (root@localhost.localdomain) (gcc version 3.4.6) #2 Fri Jan 21 10:13:00 CST 2011
 


ну и так далее...


Возможно, вы именно это имели ввиду...


Будем поднимать JTAG.


У меня вопрос, где находится загрузчик - в памяти процессора или во флешке?


Я думаю, достаточно будет стереть лишнее, чтобы CFE нормально загрузился.


Что порекомендуете стирать?


А как кабель может быть ненормальным?


Лог грузит, выдает список команд по help,


логин root можно ввести и пароль подбирать, пока не надоест :)


 


 

skylord
Не в сети
Зарегистрирован: 26.06.2010

1) Нет, то о чем я писал - ту не при чем. Если бы загрузчик был дохлый - приставка как минимум столько всего не писала. :-) А у вас она нормально ядро грузит и т.п.

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

3) Я имел в виду про кабель, что линк от приставки есть, а к ней - нет. Но если команды по help выдает, то все нормально должно быть.

sv_
Не в сети
Зарегистрирован: 02.07.2011


Я все же поднял JTAG, считал все 32 Мб памяти флешки. Сравнил по содержимому с cfe_32_256.bin из 1.03.004M при помощи Windows Commander 5.11. Обнаружил этот файл в самом начале прошивки, совпадение более 90% с разницей в несколько десятков байт. Потом сравнил с cfe.bin из вашей прошивки. Совпадение 100% !  Странно, что по адресу 1c00000 (на который указывает лог) cfe я не нахожу. 


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


На считывание 32 Мб памяти через LPT уходит более 2-х часов (7396 сек.) На этот раз снимок хуже получился, файлы по содержимому не совпали. Куча несовпадений по всему файлу. С ошибками считан даже  cfe в начале файла. Наверное, причина в моем адаптере LPT-JTAG, собранном на простых резисторах. Попробую спаять на микросхеме и буду добиваться совпадения снимков.


Все же мне не понятно, почему я не могу войти в CFE по CTRL-C. Как я только не нажимал! Конечно же сразу после включения питания, в момент загрузки. Не получалось. Потом стал нажимать последовательно ^ C и ввод. Быстро  их не нажмешь, пока нажимаешь, несколько десятков строчек лога проходит. В итоге доходит до приглашения Press any key to return to linux prompt
и дальше приглашение ввести логин linux. Перепробовал кучу терминалов под Windows, потом перешел на minicom под linux (дистрибутив mandriva-linux-pwp-2010.0-i586.iso, на него minicom пришлось отдельно ставить). А толку нет. Может несовпадение кодировок, или в моей версии CFE вход по другой команде. Но вроде номера версий в моем и ваших логах совпадают. Build Date только другая (Build Date: Fri Jan 23 21:50:11     2009 (Rance@Rance-AsusU5F) ), если сравнивать с логом, который приведен в статье "DIB-120 восстановление прошивки через UART"


По поводу splash.


Провайдер его поменял. В самом начале загрузки - Vladlink красными буквами на белом фоне на весь экран.


Этот самый splash, на который указывает строчка лога:


flash0.splash=1FCC0000


находится в моей прошивке по адресу: С0000


splash по адресу 1cc0000 я также не нахожу.


А с какого адреса стирать ядро?


Если, к примеру стереть все, что ниже адреса 44543, на котором заканчиваестя cfe.bin,


не получится ли так, как в вашем комментарии к логу, что, не найдя splash, CFE зависнет?


И как быть с MAC адресом? Если он в этой флешке зашит, я и его сотру. Как потом восстанавливать?

skylord
Не в сети
Зарегистрирован: 26.06.2010

Ох, я так сходу не готов на все вопросы ответить... Это надо девайс ковырять, а у меня сейчас нет на это времени. Да и вообще - не для форума эти узкоспециализированные дебаты... Я вам в личку сейчас отвечу.