Нетобзор - форум про интернет

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Автор Тема: qtools-набор инструментов для работы с flash модемов на чипсете qualcomm  (Прочитано 216681 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

forth32

  • Гость

А можно переделать файл загрузчика для 6085 из hex в bin для данной утилиты...
Переделать-то можно, но  совместим ли в этом чипсете nand-контроллер с тем, что поддерживается утилитой?
Записан

test

  • Гость

forth32, можешь, кстати, не только qcommand, а и другие ехе-шники подрихтовать на предмет ругани при вводе пустого порта.
Записан

forth32

  • Гость

другие ехе-шники подрихтовать на предмет ругани при вводе пустого порта

К сожалению, не могу. Это противоречит логике функции getopt(). Собственно, под линуксом программа просто выдаст сообщение о невозможности открытия порта и завершится. А винда - то еще говно, там поведение функции open() с неправильным именем файла вообще непредсказуемо, как я понимаю.  Но даже проверить не могу - винды у меня нет.
Записан

test

  • Гость

наверное, ты просто не хочешь)... qcommand же сделал. сейчас точно такая же картинка, но с qdload, например.
а если в готовом скрипте-последовательности тебе нужно перейти к следующему шагу - очень удобно клацать на клавишу энтер - вводить пустой порт.
на картинке - модем уже с запущенным загрузчиком. соответственно этап 3а и загрузку я пропускаю.
Записан

forth32

  • Гость

наверное, ты просто не хочешь)... qcommand же сделал.

Да не делал я там ничего. Серьезно - сам посмотри на changelog. Видимо, так звезды сошлись в галактике, что поведение винды изменилось.
Попробую еще раз объяснить ситуацию. Ключ -p в строке описания ключей имеет за собой двоеточие. Это означает, что ключ требует парамтр. Параметр - это любая последовательность байт, оканчивающаяся пробелом. При этом между -p и параметром может быть сколько угодно пробелов или не быть ни одного. То есть все это:
-p /dev/ttyUSB0
-p/dev/ttyUSB0
-p     /dev/ttyUSB0
одно и то же. Теперь возьмем ситуацию, когда параметр ключа -р не указан, например так:

qdload -p -a100500 -i file.bin

В этом случае, очевидно, в качестве параметра будет выбрано "-a100500", и программа попытается выполнить открытие порта (в варианте для винды) так:

open("com-a100500")

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

qdload  -a100500 -i -p file.bin

то open будет уже формироваться из имени файла-загрузчика, то есть

open("comfile.bin")

В результате система просто не найдет указанного файла и программа тихо завершит свою работу. Я думаю, это и есть объяснение причины такого нестабильного поведения винды.
Поскольку getopt физически не может проверить отсутствия параметра - чем параметр отличается от следующих элементов командной строки? - то ситуация грамотного решения  не имеет.

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

test

  • Гость

forth32, извини, протормозил)... я ж много страниц назад сам ответил на свой вопрос.

нашел.
если в qdload есть ключ - отрабатывает правильно, как раньше:
Download mode port #:

 - Последовательный порт COM-k2 не открывается
Bootloader port #:
тоесть, в команде qdload есть ключ -k2, например, и есть путь к загрузчику - nloader\ENPRG9x00p.bin.

но так как в новой версии процик автоопределяется, то в команде я уже не указываю k, а указываю только путь к загрузчику. и вот в этом случае - висяк и авар. окошко винды, как на картинке выше.
..
Записан

flyko

  • Новичок
  • *
  • Благодарность: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 22
  • Город: -
  • Модем: EC5321
  • Провайдер: Интертелеком
  • Тариф: СБ120

как по мне очень GUI не хватает, читал, читал, но как пользоваться до сих пор не понял, где полный мануал взять? как допустим снять дамп с EC5321 и залить его в другой модем
Записан

Energizer

  • Гость

А можно переделать файл загрузчика для 6085 из hex в bin для данной утилиты...
Переделать-то можно, но  совместим ли в этом чипсете nand-контроллер с тем, что поддерживается утилитой?
Qsc контроллеры являют собой самых первых предшественников mdm - по этой причине очень много похожего -расположение регистров относительно базы например схожее принципы адресации могут отличаться для нандов меньше 128 метров ( часто ставились 64 и возможно меньше могут попасться) на счет версии протокола загрузчиков  не уверен но возможно тоже пойдет- у меня есть только один мопед на базе qsc 6240/70  +128 mb билайновский mf170 -   Помню что когда делал флешер для него под вигглер то чуть позже добавлял в него qsc6055/85 по просьбе одного индуса - сделал для него директ режим который работал ( читал писал в том числе мелкую флешк 64 mb)
Fort32 если решит поморочиться я вполне возможно отрою свои исходники и конфиги что бы помочь добавить эти контроллеры в кутулс.
Записан

sand_rey

  • Модератор
  • *
  • Благодарность: +165/-0
  • Оффлайн Оффлайн
  • Сообщений: 575
  • Модем: MiFi8000
  • Провайдер: lifecell
  • Тариф: Гаджет роутер
  • Антенна: Antex ZETA-F mimo

как по мне очень GUI не хватает, читал, читал, но как пользоваться до сих пор не понял,
для этого есть ключ -help для каждой утилиты
можно работать как батником,так и вызывать консоль из папки,например:
qcommand.exe -help
C:\qtools_new\qtools-master>qcommand.exe -help

Интерактивная оболочка для ввода команд в загрузчик

Допустимы следующие ключи:

-p <tty>       - указывает имя устройства последовательного порта для общения с загру
зчиком
-i             - запускает процедуру HELLO для инициализации загрузчика
-e             - запрещает передачу префикса 7E перед командой
-k #           - код чипсета (-kl - получить список кодов)
-c "<команда>" - запускает указанную команду и завершает работу

C:\qtools_new\qtools-master>
Записан

geoworld

  • Гость

Есть  анахронизм на базе MSM6246. Под него есть в наличии загрузчик? Узнать бы еще как его заставить определяться.
Записан

forth32

  • Гость

Под него есть в наличии загрузчик?

Если найдешь обновление под него, то загрузчик можно выковырять прямо из EXE-файла обновлений. А вот адрес NAND-контроллера простым путем не узнаешь.
Записан

sand_rey

  • Модератор
  • *
  • Благодарность: +165/-0
  • Оффлайн Оффлайн
  • Сообщений: 575
  • Модем: MiFi8000
  • Провайдер: lifecell
  • Тариф: Гаджет роутер
  • Антенна: Antex ZETA-F mimo

Есть  анахронизм на базе MSM6246. Под него есть в наличии загрузчик? Узнать бы еще как его заставить определяться.
в апдейтере MF626 есть загрузчик nprg6246
Записан

geoworld

  • Гость

Под него есть в наличии загрузчик?

Если найдешь обновление под него, то загрузчик можно выковырять прямо из EXE-файла обновлений. А вот адрес NAND-контроллера простым путем не узнаешь.

Так его надо специальным образом патчить для работы qtools? Какие способы существуют узнать адрес NAND? Можно посмотреть в бинарниках где то по WinHEX в прошивальщике?
Записан

Energizer

  • Гость

адрес NAND-контроллера простым путем не узнаешь.
в почту направил кое что .. но смысл примерно такой - это совсем другой контроллер - старый и чудесный на столько что логика работы совсем другая- отличная от логики поколений которые уже добавлены в кутулс.. сделать конечно можно - я расскажу что куда и как писать -потому как флешер для вигглер и джилинк житага под него сделал лет несколько назад успешно.
Записан

forth32

  • Гость

Чтобы добавить в qtools поддержку чипсетов с другой логикой nand-кнтроллера, надо аккуратно причесать весь код - заменить прямые обращения к регистрам контроллера на интерфейсные подпрограммы, специфичные для каждого чипсета.
В принципе, я мгу попробовать этим заняться. Я нашел у себя в помойке древнючий модем ZTE MF180, сделанный на чипсете MSM6246. Загрузчик под него я сделал, код чипсету присвоил и добавил в программу. Чтение-запись памяти работает. Теперь можно попробовать сделать поддержку NAND-контроллера. Доки именно на этот чипсет у меня нет, но есть дока на MSM6280, в котором, похоже, испльзуется контроллер такого же типа. Осталсь разобраться, как этот контроллер работает и как его правильно программировать.
Записан