qualcomm gobi 2000 - 3G modem

Запарился с сабжем. Перепробовал несколько исходников qcserial2k и qcusbnet2k, перечитал кучу руководств для убунт. Фирмвари не заливается в линуксе.
Симптомы:
[deem@elitebook ~]$ cat ~/.sh/fwloader.sh 
#!/bin/bash
THREEGDEV=`dmesg | grep -i -o -e ttyUSB[0-9] | tail -1`
/lib/udev/gobi_loader /dev/$THREEGDEV /lib/firmware/gobi/6
exit
[deem@elitebook ~]$ sudo ~/.sh/fwloader.sh 
Password: 
QDL protocol server request sent
01 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 64 
20 70 72 6f 74 6f 63 6f 6c 20 68 73 74 00 00 00 
00 04 04 30 03 0b 
QDL protocol server response received
7e 02 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 
64 20 70 72 6f 74 6f 63 6f 6c 20 74 67 74 04 00 
f0 cb 04 04 00 00 00 00 00 00 00 00 00 00 00 00 
00 30 64 7a 7e 
QDL protocol server request sent
25 05 10 52 91 00 01 00 00 00 04 00 00 59 c9 
QDL protocol server response received
7e 26 00 00 01 00 00 00 04 52 65 7e 
QDL protocol server request sent
27 00 00 00 00 00 00 10 52 91 00 c7 b8 
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 86544 bytes of image
QDL protocol server response received
7e 28 00 00 00 00 00 00 00 00 14 39 7e 
QDL protocol server request sent
25 06 cc 6e 36 00 01 00 00 00 04 00 00 4d ff 
QDL protocol server response received
7e 26 00 00 01 00 00 00 04 52 65 7e 
QDL protocol server request sent
27 00 00 00 00 00 00 cc 6e 36 00 71 16 
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 421580 bytes of image
QDL protocol server response received
7e 28 00 00 00 00 00 00 00 00 14 39 7e 
UQCN Firmware not file, assuming not Gobi2000...QDL protocol server request sent
25 0d cc 6e 36 00 01 00 00 00 04 00 00 4f 72 
QDL protocol server response received
7e 26 02 00 01 00 00 00 04 e9 52 7e 
QDL protocol server request sent
27 00 00 00 00 00 00 cc 6e 36 00 71 16 
QDL protocol server sent -1 bytes of image
На этом процесс останавливается и висит. Изменений в работе модема не происходит.


В винде все работает. Если модем использовать в винде, то он отлично работает и в линуксе после перезагрузки (в нем остается прошивка до следующего отключения питания), в системе появляются /dev/ttyUSB{0-2}, один из которых, ко всему прочему, должен быть GPS приемником. После включения ноута в линуксе появляется только /dev/ttyUSB0(он первоначально нужен для заливки прошивки, затем модем (в идеале) меняет свой тип и этот порт остается как сервисный), да и то за счет модуля qcserial, который был в ядре по умолчанию. Если этот модуль отключить, но подгрузить указанные выше два, то никаких тебе ttyUSB нет.
Просьба не отправлять меня больше на заграничные убунтофорумы с подробным описанием этой проблемы. Глаза уже от них болят, да и не понимаю ничерта. Может кто на своем опыте сталкивался и победил?

ЗЫ: в АУР есть 2 пакета для этого модема с прошивками и загрузчиком. Я так понял, что прошивки попадают в /lib/firmware/gobi и там пассивно лежат, а загрузчик прописывается в виде правила к udev в /etc/udev/rules. В любом случае, через юдев прошивки тоже не заливаются. Лоадер сейчас у меня стоит патченный для natty (эта бубунта последняя с ядром 38, как у меня)
Всем большое спасибо за исчерпывающие комментарии. Проблема была в ядре. С релизом 2.6.39 вроде бы пофискилась.
По крайней мере, мне удалось вручную залить в модем прошивку и даже подключить модем к нетворкменеджеру. Потом оказалось, что симку я давно вытащил, а при отключении аккумулятора (под которым симка), сам модем натурально исчезает из системы и похоже, что выключается полностью. Ноут при этом работает от сети.
Втыкаю аккумулятор - модем есть (без прошивки, и udev сам почему-то ее не заливает, хотя настроен на это). Вытаскиваю батарею - модема нет. Забавно.
Собираюсь написать четкий мануал для сабжа, но с udev надо разобраться. Он должен бы выполнять свою программу при обнаружении устройства с конкретными vendorid и deviceid, но он это сейчас делает только при загрузке или вообще не делает (надо перезагрузиться и посмотреть).
Вот правило для юдев почти дефолтное из пакета в аур
[deem@laptop ~]$ cat /lib/udev/rules.d/60-gobi.rules
# udev rules for firmware loading on qualcomm gobi devices
ACTION=="add", SUBSYSTEM=="tty" KERNEL=="ttyUSB*" GOTO="gobi_rules"
GOTO="gobi_rules_end"
LABEL="gobi_rules"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9211", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="201d", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi/6"
ATTRS{idVendor}=="04da", ATTRS{idProduct}=="250c", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8171", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="1410", ATTRS{idProduct}=="a008", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="1774", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="fff2", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="1557", ATTRS{idProduct}=="0a80", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9201", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9221", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9231", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="1f45", ATTRS{idProduct}=="0001", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="16d8", ATTRS{idProduct}=="8001", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="1199", ATTRS{idProduct}=="9000", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="241d", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9204", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9214", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9224", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9234", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9244", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9264", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9274", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8185", RUN+="gobi_loader -2000 $env{DEVNAME} /lib/firmware/gobi"
LABEL="gobi_rules_end"
Указал только подпапку “6” для своего девайса. Именно там лежит прошивка.
Nikisch
Всем большое спасибо за исчерпывающие комментарии
Обращайтесь. Сообщество вам поможет, особенно в отсутствии данного девайса у кого-либо.
Может из темы и не понятно, но речь идет о, видимо, самом распространенном ноутбучном внутреннем 3G модеме. Скорее всего, он есть и не у одного арчевода. На западе они популярнее, и там по поводу этого девайса поднялся ощутимый шум, у нас же продают ноутбуки-обрезки.
ЗЫ: я уже спрашиваю не столько о девайсе сколько о правилах юдев и подобных общих вопросах. На данный момент правило работает как надо. Вроде ничего не менял, разве что, поставил 1 запятую.
Наверно мне придется собрать пакет и закинуть в аур, т к самих модулей в репах нет. Да и пакет с загрузчиком нуждается в обновлении (там уже насчитал 2 косяка: не заявлена поддержка x86_64 и запятая в правиле юдев). Общение с англояззыкими я не осилю, пакет тоже не сразу соберу. Возможно понадобится помощь
С пкгбилдом обращайтесь :)
Есть же еще вариант, что люди с таким модемом просто тут не сидят ;)
Итак, пишу мануал. Настраиваем интернет qualcomm gobi 2000 - 3G modem (не только) в archlinux.
Нам понадобятся:
1) Модули ядра QCSerial2k и QCUSBNet (возможно, этот необязателен)
2) Прошивки (firmware), которые мы будем заливать в наш модем
3) gobi_loader - программа для заливки прошивки и правило для udev для автоматизации этого процесса
4) Для удобного подключения к инету через гуй нужен nm-appel и modemmanager

1) Прямой линк на эти модули мне не известен. В сети существует несколько вариантов, некоторые из которых не собираются или подходят только для старых версий модема. На одном убунтуфоруме мной были найдены достаточно свежие исходниками с нужными патчами. НеПрилагаю их во вложении gobifornatty.zip т к форум глючит и говорит, что я уже достиг максимального общего размер вложений, хотя, я ничего не заливал
Для сборки и установки модулей достаточно распаковать архив и запустить от рута installthreeg.sh. Второй скрипт нам (арчеводам) не нужен, но автоматизирует заливку прошивки если та положена в директорию /opt/

2) Пользователям арча достаточно установить aur/gobi-firmware Пакет помечен как устаревший, но вполне работоспособен. Для устновки на x64 систему (как у меня) достаточно отредактировать pkgbuild и добавить свою архитектуру. Я планирую обновить pkgbuild, тем более, HP для моего ноутбука предлагает скачать другой эксешник с прошивками с большим номером. Возможно там и прошивки более новые.
Не пользователям арча можно скачать инсталлятор для винды по адресу ftp://ftp.hp.com/pub/softpaq/sp48501-49000/sp48568.exe
распаковать его с помощью команды cabextract sp48568.exe
Копируем содержимое папки QCImages/Source/Packages/ в /lib/firmware/gobi/
Сами прошивки теперь лежат в поддиректориях /lib/firmware/gobi/{0-10}
Для разблокированного модема непривязанного к операторам (как у меня) нужен каталог /lib/firmware/gobi/6

3) Пользователи арча устанавливают aur/gobi-loader
Не познавшие AUR скачивают архив http://www.codon.org.uk/~mjg59/gobi_loa … 0.7.tar.gz
Собирают загрузчик командой gcc -Wall gobi_loader.c -o gobi_loader
Распехивают содержимое архива по следующим директориям: /lib/udev/gobi_loader и /etc/udev/rules.d/60-gobi.rules (хотя, я лично положил в /lib/udev/rules.d/60-gobi.rules чтобы все было в одном месте и единообразно). /lib/udev/gobi_loader сделать исполняемым
Потом это правило нужно будет поправить руками указав конкретную подпапку как в примере постом выше. Правило может не выпоняться в процессе работы ноутбука от сети. Т е оно выполняется только при загрузке, но не при отключении беспроводных интерфейсов и последующем включении. При работе от батареи все нормально.

Итак. Если модули ядра у нас собраны и установлены, то появляется serial устройство /dev/ttyUSB0 (или с большим номером, если в системе уже были другие последовательные порты)
Если правило 60-gobi.rules сработало правильно, то в системе становится 3 (ноды) устройсва:
/dev/ttyUSB0 -> Diagnostics
/dev/ttyUSB1 -> 3G Modem
/dev/ttyUSB2 -> NMEA GPS port
Да, в модеме есть GPS приемник, но у меня не заработал в т ч в винде. Пробовал по мануалу http://www.thinkwiki.org/wiki/Qualcomm_Gobi_2000
Руками можно залить прошивку так /lib/udev/gobi_loader /dev/ttyUSB0 /lib/firmware/gobi/6 В случае успеха, ничего не выводится в консоль и процесс занимает доли секунды.
Модем нужно “прошивать” каждый раз после его выключения, т е при отключении ноутбука, беспроводных интерфейсов ноутбука специальной кнопкой или при софтварной блокировке модема с помощью rfkill. Для автоматизации этого и придуманы правила udev, которые выпоняются каждый раз когда в системе появляется устройство с конкретным device id. После прошивки device id меняется на другое. Посмотреть можно командой lsusb/

4) Ставим нетворкменеджер с гномовской мордой. КДЕшный вроде тоже поддерживает 3G модемы, но я его не юзаю по другой причине. Чтобы модем подцепился нужно поставить modemmanager и перезагрузиться (перезапуск служб мне не помог). Дальше все просто.
PoZiTPoH
Есть же еще вариант, что люди с таким модемом просто тут не сидят ;)
Или не знают, что в их ноутбуке есть такой модем, или решили, что он в линуксе не заработает и даже не купили тот самый ноут, который понравился, но не присутствовал в списке совместимости с линем на каком-то сайте (это самый клинический и трагичный случай).
Так, краем глаза посмотрел на эти pkgbuild-ы, но так ине понял как мне залить сорцы в аур. Поддерживаются только внешние ссылки? Заливать куда-то на левый хостинг - вариант не лучший. Со временем потрут, а могут и скомпрометировать.
Вот какой-то сайт с исходниками http://westhoffswelt.de/blog/0045_howto … linux.html
Я не знаю, кто они и вообще, чтобы на них ссылки делать. На сорсфорж и гитхаб нету.
Проще выложить готовые пакеты, но в репы мне никто их добавить не даст. Уже собрал пакетик с прошивками. Весит всего 45МБ против 130МБ. pkgbuild с загрузчиком в АУР оказался нормальный. дело было в подсистемах энергосбережения ядра, видимо. Может отголоски того бага, что не давал мне юзать модем ранее.
В ведре v3 модем работает с дефолтными модулями ядра. Т е достаточно поставить gobi-loader и gobi-firmware + modemmanager и networkmanager
Но /etc/udev/rules.d/60-gobi.rules все еще надо реактировать
 
Зарегистрироваться или войдите чтобы оставить сообщение.