вторник, 17 июня 2014 г.

Борьба с HUAWEI E3531 в Kubuntu 14.04

В данной статье хочу рассказать вам, как я завел USB-модем Huawei E3531 в Kubuntu 14.04, так же известный, как МТС 423S и Мегафон M21-4...




Модем изначально определялся в системе как CD-Rom:
12d1:15e7
Естественно, намученный опытом я начал экспериментировать с usb-modeswitch. Но некоторое время спустя я не нашел данные VID и PID в базе usb-modeswitch.
На форуме usb-modeswitch появился вариант перевода в режим модема, который я и опробовал.
Создаем файл настроек:
sudo kate /etc/usb_modeswitch.d/12d1:15e7
# Huawei E3531
TargetVendor=0x12d1
TargetProduct=0x1506
MessageContent="55534243123456780000000000000011062000000101000100000000000000"
 

Но радоваться было рано, потому что в udev не прописаны правила для этого модема, которые нужно предварительно добавить.
Добавляем правила:
sudo kate /lib/udev/rules.d/40-usb_modeswitch.rules
# Huawei E3531
ATTR{idVendor}=="12d1", ATTR{idProduct}=="15e7", RUN+="usb_modeswitch '%b/%k'"


Перезапускаем правила udev и передергиваем модем:
sudo udevadm control --reload-rules
Для верности вручную переводим модем:
sudo usb_modeswitch -v 12d1 -p 15e7 -c /etc/usb_modeswitch.d/12d1:15e7
После этих манипуляций модем должен переключиться в режим модема и сменит свой VID и PID на:
12d1:1506

И вроде бы все хорошо, модем определился и виден в системе, работает в режиме модема, а не флешки или CD-Rom...
Но вот незадача - подключение создается, но не выполняется. Модем не хочет подключаться через NetworkManager и пишет нам: "Connection Deactivated". Дальнейшие манипуляции с обновлением ядра, usb_modeswitch не принесли результатов. И было принято решение установить родной Connect Manager, который шел в комплекте.
Но и он не устанавливался, а точнее не компилировался драйвер NDIS. Вот дела, думаю я - купил модемчик :-)
Но мы не сдадимся, будем биться до последнего! Что интересно, сам установщик  на диске не является выполняемым, что несомненно удивило, а потому для удобства я перенес установочные файлы в домашний каталог и сделал их исполняемыми.
Переходим в директорию установщика и устанавливаем:
cd ~/'Connect Manager/Linux'
sudo ./install
Сам Connect Manager установится, но в процессе компиляции драйвера появится ошибка: Install NDIS driver failed. Установщик нас предупреждает об зависимостях build-essential, make и gcc. С зависимостями все в порядке, случайно нашел решение по компиляции:
Открываем каталог с установщиком драйвера, который был создан при компиляции Connect Manager:
sudo kate /usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src/hw_cdc_driver.c
Нажимаем F11 и ищем строчку 2718:
dbg ("can't kmalloc dev");
И закомментируем ее, поставив два слэша:
//dbg ("can't kmalloc dev");
Сохраним изменения и переустановим драйвер:
cd /usr/local/Mobile_Partner/driver/
sudo ./install
После этого драйвер установится и вы можете спокойно запускать Connect Manager и подключиться к всемирной паутине.




Также возможно вам пригодятся АТ-команды, которые можно выполнить через minicom:
sudo minicom --device=/dev/ttyUSB0
AT – проверка работоспособности команд
AT^SYSCFG=13,1,3fffffff,0,0 – режим только 2G
AT^SYSCFG=2,1,3fffffff,0,0 – режим предпочтительно 2G
AT^SYSCFG=14,2,3fffffff,0,1 – режим только 3G
AT^SYSCFG=2,2,3fffffff,0,1 – режим предпочтительно 3G
AT^SYSCFG=2,2,3fffff ff,0,2 – режим включение 2G и 3G
AT^SETPORT="A1,A2;1,16,3,2,A1,A2" - (Установить конфигурацию по умолчанию)
AT^SETPORT="A1,A2;1,2,3,16,A1,A2" -
(режим для работы модема с Android 4.0 (иногда работает))
AT^SETPORT="A1,A2;1,16,3,2" -
(девайс в режиме "модем + сетевая карта")
AT^SETPORT="A1,A2;1,3,2,A2" -
(девайс в режиме "модем + Card Reader")
AT^SETPORT="A1,A2;1,3,2" -
(девайс в режиме "только модем")

AT^SETPORT="FF;1,2" (девайс в режиме "модем + пользовательский интерфейс")
AT^SETPORT="A1,A2;2,16" -
(девайс в режиме "сетевая карта")
AT^SETPORT="A1,A2;2,16,A1" -
(девайс в режиме "сетевая карта + CD-ROM")


16 комментариев:

  1. Добавлю отдельным комментарием следующие приключения с поделием от МТС.
    После установки Коннект Менеджера (КМ) компилируется NDIS-драйвер и создается специальный активатор - HWactiwator, который в свою очередь призван запускать программу КМ при вставке модема в USB-порт и переводить его в режим можема. Так мало того, что сам КМ выглядит убого (просто нет слов, как можно нарисовать такой некрасивый скин, который смотрится нелепо абсолютно на всех ОС?), так еще и HWactivator начинает поглощать тонны оперативки и за час работы он съедает порядка 1 Gb.
    В общем, как оказалось мой модем оснащен функцией HiLink - это когда модем работает в режиме сетевой карты со своим шлюзом, т.е. ненужно настраивать, ставить драйверы и программы и т.д. У этого интерфейса есть есть свой WebUI, который можно открыть через адрес 192.168.1.1 и глянуть настройки. Вставляешь модем в порт и он сразу подключается автоматически.
    Пришлось разлочить модем, чтобы его прошить универсальной прошивкой и залить WebUI, теперь модем работает превосходно без всяких Коннект Менеджеров и Нетворк Менеджеров.
    Еще нужно установить новую версию usb-modeswitch, чтобы она распознала модем, для этого подойдут пакеты из Debian Sid.
    Если кому нужна точная инструкция по прошивке, то обращайтесь.

    ОтветитьУдалить
    Ответы
    1. буду очень благодарен если вышлешь инструкцию на мыло d01540450 @ gmail . com. После поисков пришел к выводу что у меня e3372s. В виндовс вроде бы работает. По троянчику коннект манагера отписался ниже. Эта поделка иногда ещё и не собирается в x64...

      Удалить
    2. Я уже отписал инструкцию, ниже смотрите.На 4PDA все подробно расписано:
      http://4pda.ru/forum/index.php?showtopic=582284

      Удалить
  2. Добрый день, поимел ту же самую проблему, но под линукс (у меня debian wheezy) так и не смог запустить этот модем. При этом в винде работает нормально. Поэтому если скажете как перепрошить буду благодарен.

    ОтветитьУдалить
    Ответы
    1. Все процедуры выполняются в Windows.
      Для начала нужно разлочить модем. К сожалению, коды разблокировки пока не доступны в паблике. Но вы можете его приобрести:
      http://3ginfo.ru/forum-t1.html
      Получите код для разлочки и прошивки.
      Разлочите модем (вставьте SIM другого оператора), потом шьете его прошивкой HiLink:
      http://3ginfo.ru/downloads947.html
      Заливаете универсальный webUI:
      https://3ginfo.ru/downloads1038.html
      Для заливки WebUI нужно установить другой драйвер. А именно HiLink, мне подошел от Е3131 HiLink:
      http://rghost.ru/50778882
      Модем теперь автоматически будет подключаться в любой ОС, используя свой шлюз. Веб-интерфейс обычно стартует на 192.168.1.1. Бывает иногда модем не сраузу подключается при вставке в USB, но такое случается редко.

      Удалить
  3. Я не пойму, что за беда у меня!? Вообщем есть Билайн модем Huawei E3131 раньше просто и без проблем устанавливалась программа от Билайна на Линукс, но вот переустановил систему и после этого началась такая беда! Ядро то же, что и раньше, система та же, домашний каталог тот же! Делал по инструкции как написана в этом блоге - нифига не получается!!! Модем подключается связь есть, через терминал можно скачивать пакеты, но ни один браузер не хочет работать! Выдает что нет подключения к Интернету!!!! :(
    =Игорь=

    ОтветитьУдалить
    Ответы
    1. Попробуйте прошить модем на HiLink-прошивку, так будет работать в любой ОС Linux и никаких программ и проприетарных драйверов больше не потребуется. Так сказать, сделал и забыл.
      Коды разблокировки и методы уже можно айти в гугле. Вот к примеру:
      http://накачать.рф/553-huawei-e3131-razblokirovka-proshivka-razlochka.html
      Шьете его универсальной прошивкой и заливаете WebUI

      Удалить
  4. после установки этого манагера, мать его за ногу... проверяйте /etc/sudoers... там будет большой сюрприз в виде nopasswd to all. И sudo без пароля будет у вас работать по умолчанию. Как вам такая дыра?

    ОтветитьУдалить
    Ответы
    1. существенной разницы между вариациями этой проги от ОПСоС ов нет. Во всех случаях пихается скрипт runhuawei, или что то вроде того, в /etc/init.d , который, как я понял следит за тем втыкнули ли приблуду или нет. Ну и удобства ради не безопасности для... срёт NOPASSWD в /etc/sudoers

      Удалить
    2. Ну это я исправил! Интересно, а он ещё нигде не нагадил?

      Удалить
  5. Приветствую, ведя данную команду /lib/udev/rules.d/61-option-modem-modeswitch.rules
    где надо вести vid и pid?

    ОтветитьУдалить
  6. спасибо всё получилось,только после мтс конекта сразу установил мегафон модем пошли оба.только получилось что значок мтс связь автоматом,а запускается мегафон прога и пишет мтс....как то смесь,но работает...мегафон модем Huawei М21-1,а мтс Huawei e 171..как то так.А всё остальное ок...теперь два модема с драйвером немного поколдовал как написано выше...и ок

    ОтветитьУдалить
  7. полдня парился, помогла эта статья. только будьте внимательны, когда от одного устройства в dmesg пишется 2 ProductID. один это накопитель, второй - модем. не работало, пока не сравнил внимательно вывод dmesg

    ОтветитьУдалить
  8. E3531s AT команда
    AT^SETPORT="A1,A2;1,3,2"

    Не работает. Возвращает ERROR

    ОтветитьУдалить
    Ответы
    1. Статья 14 года!
      Шейте модем в HiLink прошивку. Потом просто можете ему отключать zeroCD:
      sudo usb_modeswitch -v 12d1 -p 1f01 -J
      Или так же правило для udev добавьте в /lib/udev/rules.d/:
      # Fucking huawei
      ATTR{idVendor}=="12d1", ATTR{idProduct}=="1f01", RUN+="/lib/udev/usb_modeswitch -v 12d1 -p 1f01 -J"

      Удалить
  9. Все новые модемы Huawei сейчас идут с HiLink- прошивкой, у которой свой WebUI, там и смс можно отсылать и трафик проверять и т.д.
    Разлачивайте модемы и шейте в HiLink!!!

    ОтветитьУдалить