Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Нужен лоадер для Qualcomm MSM7625A #9

Open
ilya-fedin opened this issue Oct 26, 2016 · 21 comments
Open

Нужен лоадер для Qualcomm MSM7625A #9

ilya-fedin opened this issue Oct 26, 2016 · 21 comments

Comments

@ilya-fedin
Copy link

Здравтвуйте! Я так надругался над своим E5830, что, похоже, он ушел в режим аварийной загрузки PBL. Единтсвенное, на что он реагирует, так это на qdload (начинает моргать индикатор модемного соединения). На прошивки он не реагирует. Разве что, после balong_flash он начинает выдавать это:
~¤¤¤Њo~_
Пожалуйста, помогите найти загрузчик и адрес загрузки.

@vvevvevve
Copy link
Collaborator

Различные модификации E5830 построены на разных платформах. В аппаратах E5830u(x) - квалкоммовская платформа, в E5830s - хуавеевская. Вы, для начала, определитесь - с чем Вы имеете дело. Лучше всего просто разобрать аппарат и посмотреть - что там внутри. Заодно, будете точно знать модель платформы. Честно сказать, использование MSM7x25 в такой железке мне представляется нецелесообразным. Но что там - я не знаю.

Предположим, что у Вас Квалкомм. Следующий вопрос: какие идентификаторы на шине USB у аппарата при подключении его к компьютеру? Если это PBL, то VID:PID должны быть равны 05C6:9008. Любые другие идентификаторы - это что-то другое. Возможно, интерфейс SBL (download mode).
Далее, если это действительно PBL, а платформа похожа на 7x25, то имеет смысл попробовать готовый комплектный загрузчик ENPRG7x27Ap.bin. Адрес его загрузки легко определить по коду - 0x600000.

И ещё: для восстановления таких древних хуавеевских железок, при наличии оригинальных прошивальщиков, часто бывает эффективным использование известной утилиты Huawei Flasher (http://vve.su/files/misc/HuaweiFlasher.zip) - в данном случае, в Resurrect Mode.

@ilya-fedin
Copy link
Author

12d1:1003
Huawei Flasher пробовал, обе версии. 1.6 в Normal Mode выдает Firmware Not Response, как и оф. прошивальщик. В Resurrect Mode Ack 0x03, как и balong_flash.
Я бы его давно разобрал, ежели бы у меня была такая отвертка... Постараюсь поискать, но вряд ли наскребу.

@ilya-fedin
Copy link
Author

После заливки загрзучика по 0x600000, модем стал ругаться так:
~¤¤¤¤]~_

@ilya-fedin
Copy link
Author

Мне тут forth32 сказал, что есть еще фирменный huawei'евский download mode, отвечащий hdlc- пакетом - похоже, это он.

@ilya-fedin
Copy link
Author

ilya-fedin commented Oct 27, 2016

СОбственно, вывод balong_flash. ВОзможно, что-то скажет:

ilya@arch ~/balongflash $ ./balong_flash -p /dev/ttyUSB1 e5830.exe

 Программа для прошивки устройств на Balong-чипсете, V2.6.116, (c) forth32, 2015, GNU GPLv3
--------------------------------------------------------------------------------------------------

 Разбираем файл прошивки...
 Версия прошивки: V001:E583XS:946.11.408.02.314SP0�c
 Дата сборки:     2011.10.17 14.17.50
 Заголовок: версия 1,  платформа HWEW11.1
 Найдено 13 разделов
 Модем уже находится в HDLC-режимеok
 Версия протокола: 7625A-13553008-SNCAA
 Идентификатор устройства: UAWEI E5830
----------------------------------------------------
 Записываем раздел 0 - U70000000
 Блок 0 из 3
 Блок 0 раздела не принят, код ошибки = 03 00 07
ilya@arch ~/balongflash $ ./balong_flash -p /dev/ttyUSB1 e5830.exe

 Программа для прошивки устройств на Balong-чипсете, V2.6.116, (c) forth32, 2015, GNU GPLv3
--------------------------------------------------------------------------------------------------

 Разбираем файл прошивки...
 Версия прошивки: V001:E583XS:946.11.408.02.314SP0�c
 Дата сборки:     2011.10.17 14.17.50
 Заголовок: версия 1,  платформа HWEW11.1
 Найдено 13 разделов! Неправильная версия монитора прошивки - [7]
00000000: 7e 03 00 04 8c 6f 7e                             *~....o~         *
ilya@arch ~/balongflash $ 

Я его два раза запускал, второй раз он уже ведет себя по-другому.

@vvevvevve
Copy link
Collaborator

Не страдайте фигнёй: узнайте, наконец - на какой платформе Ваше устройство.
Вы сначала просили загрузчик для квалкоммовской платформы, потом стали запускать утилиту для балонга. А на самом деле, если там хуавеевская платформа, то это не балонг (тогда их ещё не было), а какая-нибудь V5.
Зачем Вы тратите впустую время на (возможно, небезопасные) эксперименты, не имея ключевой информации, от которой нужно отталкиваться при выборе способа восстановления?

@ilya-fedin
Copy link
Author

Мне forth32 говорил, что у них одинаковый протокол... Зачем? Затем, что у меня нет возможности его разобрать...

@vvevvevve
Copy link
Collaborator

Одинаковый протокол у квалкомма и старого хуавея?
А возможности разобрать...неужели Вы сейчас где-то в пустыне, где в радиусе 1000 км негде купить или попросить отвёртку? Наверняка, где-то поблизости есть люди, занимающиеся ремонтом телефонов в том или ином виде. Можно подойти/подъехать к ним и попросить попользоваться отвёрткой 5 минут.

@forth32
Copy link
Owner

forth32 commented Oct 29, 2016

Одинаковый протокол у квалкомма и старого хуавея?
Это фирменный протокол обновления прошивки, используемый хуавеем с незапамятных времен. Обновление идет не под управлением загрузчика, как мы с тобой привыкли, а под управлением внутреннего сервера прошивки, реализующего этот протокол.
В LTE-балонгах V7R2 и R11 этот сервер лежит на втором рамдиске ядра
В LTE-балонгах V7R1 и более старых 3G он является частью VxWorks.
А вот где он находится в квалкоммовских хуавеях - я не разбирался.

Протокол использует те же HDLC-кадры такого же формата, но система команд там совсем другая.

@vvevvevve
Copy link
Collaborator

под управлением внутреннего сервера прошивки, реализующего этот протокол

Значит, этот сервер должен, как минимум, как-то запуститься. Со стёртыми или повреждёнными данными на флешке он работать не сможет, в любом случае. Думаешь, у ilya-fedin этот сервер находится в нормальном. неповреждённом состоянии? Почему тогда у него не работает оригинальный, штатный прошивальщик? Не та версия прошивальщика, не для той платформы? Или всё-таки тот "внутренний сервер прошивки" повреждён?
На мой взгляд, как ни крути, а в таком состоянии информация о платформе, на которой построена железка, нужна в любом случае. Мне представляется, что ему железку всё равно придётся, тем или иным способом, вытаскивать в интерфейс PBL или его хуавеевский аналог.

А вот где он находится в квалкоммовских хуавеях - я не разбирался.

В SBL он находится. Во всяком случае, в прошивке ME906u/909u (они на 9215). Это, наверное, последние из квалкоммовских хуавеев. После них я ничего не знаю.

@forth32
Copy link
Owner

forth32 commented Oct 29, 2016

Значит, этот сервер должен, как минимум, как-то запуститься. Со стёртыми или повреждёнными данными на флешке он работать не сможет, в любом случае. Думаешь, у ilya-fedin этот сервер находится в нормальном. неповреждённом состоянии?

Предполагаю, что да. Он мне показывал, как выглядит попытка прошивки модема с помощью моего прошивальщика balong_flash:

ilya@arch ~/balongflash $ ./balong_flash -p /dev/ttyUSB1 e5830.exe

Программа для прошивки устройств на Balong-чипсете, V2.6.116, (c) forth32, 2015, GNU GPLv3
--------------------------------------------------------------------------------------------------

Разбираем файл прошивки...
Версия прошивки: V001:E583XS:946.11.408.02.314SP0�c
Дата сборки: 2011.10.17 14.17.50
Заголовок: версия 1, платформа HWEW11.1
Найдено 13 разделов
Модем уже находится в HDLC-режимеok
Версия протокола: 7625A-13553008-SNCAA
Идентификатор устройства: UAWEI E5830
----------------------------------------------------
Записываем раздел 0 - U70000000
Блок 0 из 3
Блок 0 раздела не принят, код ошибки = 03 00 07

Заметь, что программа правильно определила версию протокола прошивки и идентификатор устройства, то есть модем правильно ответил на HDLC-команды 0С и 45. Из этого можно сделать вывод, что сервер прошивки как-то все же функционирует. Раз уж он сидит в SBL и работает на процессорном ядре APP, то ему, я думаю, достаточно живых MIBIB, SBL1, SBL2, и, может быть, RPM.

Почему тогда у него не работает оригинальный, штатный прошивальщик? Не та версия прошивальщика, не для той платформы? Или всё-таки тот "внутренний сервер прошивки" повреждён?

Кто ж его знает. Заметь, что вылезла ошибка при передаче блока 0 раздела - заголовок раздела сервер принял без вопросов. Ошибка 07 - это "Operation could not be completed", совершенно бесполезное описание. Ошибка сожет вызываться чем угодно - от переполнения буфера до не учитываемых мной тонкостей протокола прошивки именно этой платформы.

Если бы модем попал ко мне в руки, я, как ты понимаешь, для начала его бы развинтил, посмотрел на чем он сделан, скорее всего нашел бы и запаял уарт - ты же знаешь, как я его люблю. А потом через уарт посмотрел бы процесс прошивки и понял в чем дело. В процессе прошивки в уарт выкатывается толстенный подробный лог.
А так можно гадать бесконечно и бессмысленно. Вполне возможно, что это вообще какой-нибдуь древний балонг. Например, модем Е171 при поврждении некоторых разделов флешки тоже автоматически впадает в такой вот прошивочный режим. И у него тоже код платформы - HWEW11.1.

@vvevvevve
Copy link
Collaborator

Версия протокола: 7625A-13553008-SNCAA

Не обратил внимания на эту строку раньше. Если её выдаёт сервер внутри модема, то её можно считать свидетельством того, что там внутри - квалкомм, 7x25. Разве твоя утилита работает с такими платформами? Или для хуавеевского протокола неважно - какая платформа?
У меня что-то вот эта строка:

Записываем раздел 0 - U70000000

вызывает сомнения. Что такое "U70000000"? Это у тебя такое имя назначается, или оно там где-то в пакете с прошивкой есть? Если второе, то "U7" на квалкомме смотрится странно.

И потом: почему-то здесь не работает Huawei Flasher (HF), который, несмотря на то, что написан на бэйсике, всегда чётко работал со старыми хуавеевскими железками. Сам же говоришь, что этот протокол используется уже давно, и если HF отлично работает и с совсем древними аппартатами на 62xx, и, например, с E392/398 на 9x00, то на "промежуточном" 7x2x должен работать нормально.
Мне почему-то всё-таки кажется, что платформу придётся переводить в PBL.

@forth32
Copy link
Owner

forth32 commented Oct 29, 2016

Если её выдаёт сервер внутри модема, то её можно считать свидетельством того, что там внутри - квалкомм, 7x25

Ну, тебе виднее. На Е3372 здесь выдается 7200B--SKCBADZM, и я всегда считал это бессмысленным набором букв. Похоже, однако, что 7200B - это как раз Blanog V7R2. А я и внимания не обращал. Вот и появился способ выявления платформы хуавеевских устройств.

Разве твоя утилита работает с такими платформами? Или для хуавеевского протокола неважно - какая платформа?

Думаю, что протокол действительно примерно одинаков на разных устройствах. Конечно, протокол я разбирал, исследуя Е3372, но, получается, программа подошла и к другим устройствам.

вызывает сомнения. Что такое "U70000000"? Это у тебя такое имя назначается, или оно там где-то в пакете с прошивкой есть?

Тут вот какая ситуация. Согласно хуавеевскому протоколу, каждый тип раздела имеет свой 32-битный код. У меня в программе есть таблица известных мне типов разделов, примерно такая:

{"M3Boot_R11",0x200000}, {"Ptable",0x10000}, {"Fastboot",0x110000}, {"Logo",0x130000}, {"Kernel",0x30000}, {"Kernel_R11",0x90000}, {"VxWorks",0x40000},

Для всех известных разделов программа выводит символическое имя. Но я, конечно, не знаю многих кодов, особенно для старых квалкоммовских платформ. Для разделов, не указанных в таблице имен, я вывожу букву U и 32-битный код. Так что буква U - это первое что пришло мне в голову, не более того.

И потом: почему-то здесь не работает Huawei Flasher (HF), который, несмотря на то, что написан на бэйсике, всегда чётко работал со старыми хуавеевскими железками

Ну, ты знаешь, что виндовый софт мне даже посмотреть не на чем, так что я с этой программой не знаком. Но предполагаю, что она также налетает на ошибку 7, просто в ней нет таких средств диагностики, как у меня.
Корень проблемы здесь в чем-то другом. Например, прошивка не подходит к устройству, или на устройстве флешка заросла нашими любимыми бедблоками. Кстати, на последних балонгах эта проблема уже встала в полный рост (та самая проблема вечного fastboot). Тут бы для начала qbadblock прогнать. Но для этого, как ты правильно заметил, придется найти пин аварийной загрузки. А человеку даже отвертку лень поискать.

@ilya-fedin
Copy link
Author

Все началось с того, как я говорил, что запустил прошивку с Windows 10 из VirtualBox. Я заведомо знал, что там проблемы с модемами (e3372 даже на at-команды не отвечал, как и e171), но лень-матушка победила, за что и поплатился. А выглядело это так: проги вальщик нормально опознал модем, но прошивка длилась бесконечно медленно, в итоге где-то на половине выдало ошибку.

Попробую спросить у ремонтника. Но я сильно сомневсь, что он открутит. Как-то просил припаять uart-штырьки к tl-mr3020, так он меня мягко послал сказав, что таким не занимается...

@vvevvevve
Copy link
Collaborator

Попробую спросить у ремонтника. Но я сильно сомневсь, что он открутит. Как-то просил припаять uart-штырьки к tl-mr3020, так он меня мягко послал сказав, что таким не занимается...

Не тормозите. Конечно, никто не захочет взять ответственность за пайку каких-то непонятных штырьков на неизвестную плату. Такая бодяга, как правило, заканчивается "разборками": у Вас не заработает это подключение по UART, Вы придёте к тому, кто паял, с претензиями типа "ты припаял не туда/не так", а он вынужден будет отвечать в ключе "куда ты показал - туда и припаял, сам не знаешь, что хочешь". Ну и так далее. Потом вы, оба, успокоитесь и решите перепаять эти штырьки как-то по-другому, Вы пойдёте пробовать ещё раз...и так до полного удовлетворения. Никому из ремонтников подобная галиматья не нужна - разве что только за большие, не соответствующие сложности операции, деньги.

Зачем просить ремонтника отвернуть винты? Нужно попросить у него подходящую отвёртку на 3 минуты и отвернуть самому. Также и со штырьками: я ещё могу себе представить местность, где есть определённые проблемы с приобретением отвёртки, годной для разборки мобильного роутера, и человека, который не способен обойтись, в крайнем случае, для такой разборки "подручными средствами" (например, заточенным соответствующим образом гвоздём).
Но чтобы нигде поблизости совсем не было никакого паяльника...это уж точно где-нибудь в пустыне.

@ilya-fedin
Copy link
Author

При чем тут пустыня? В кошельке не копейки. Мне даже в пустыне не продадут за бесплатно отвертку... А с паяльником история другая - я не умею паять.

@ilya-fedin
Copy link
Author

ilya-fedin commented May 10, 2017

Извиняюсь, что долго не отвечал, но я тут, живой и проблема актуальна :)
Отвертки пришли, вот фото внутренностей. Только какой процессор не понял :(
tmp-2024dtesqis8szzp
tmp-2024jv5ys9fyhelu
Домовой говорит, что MSM7225

@vvevvevve
Copy link
Collaborator

vvevvevve commented May 10, 2017

Только какой процессор не понял

Как же вы поймёте, если он не виден?
Крышки снимите.

@ilya-fedin
Copy link
Author

ilya-fedin commented May 10, 2017

@vvevvevve понять бы еще как... Ножу не поддаются...

@ilya-fedin
Copy link
Author

ilya-fedin commented May 10, 2017

Я вот думаю... Найти бы сначала загрузочный контакт и попробовать хотя бы лоадеры для 7225 и 7625. Не получится, тогда уже открывать процессор. Только вот как найти загрузочный контакт и землю?

@vvevvevve
Copy link
Collaborator

vvevvevve commented Oct 18, 2017

я уже не знаю куда копать.

Точно не сюда. Здесь про qtools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants