Установка и настройка модемов 3G USB: различия между версиями

Материал из ALT Linux Wiki
м (→‎Общее: переформулировка)
(не показано 35 промежуточных версий 16 участников)
Строка 4: Строка 4:
# использовать штатные средства {{pkg|NetworkManager}}
# использовать штатные средства {{pkg|NetworkManager}}
# настраивать дозвон через {{cmd|wvdial}}, {{cmd|kppp}} или что вам нравится самостоятельно
# настраивать дозвон через {{cmd|wvdial}}, {{cmd|kppp}} или что вам нравится самостоятельно
# использовать [http://narod.ru/disk/16287583000/MobilePartner.zip программу], поставляемую Мегафоном со своими модемами. Использование этого пути позволяет избежать ненужных телодвижений для проверки баланса счета. Решение тестировалось на Simply Linux
# использовать [http://narod.ru/disk/16287583000/MobilePartner.zip программу], поставляемую Мегафоном со своими модемами. Использование этого пути позволяет избежать ненужных телодвижений для проверки баланса счета. Решение тестировалось на Simply Linux. '''Внимание'''! Установочный скрипт программы MobilePartner добавляет строку "ALL ALL=(ALL) NOPASSWD:/usr/local/MegaFon Internet/MobilePartner.sh" в /etc/sudoers и изменяет некоторые другие файлы /etc/.
# использовать [[etcnet|/etc/net]]
# использовать [[etcnet|/etc/net]]


В большинстве случаев ничего настраивать не надо — достаточно установить пакет {{pkg|usb-modeswitch}} и зависимые от него, в некоторых дистрибутивах также {{pkg|udev-extras}}.
В большинстве случаев ничего настраивать не надо — достаточно установить пакет {{pkg|usb-modeswitch}} и зависимые от него (например, {{pkg|usb-modeswitch-data}}), в некоторых дистрибутивах также {{pkg|udev-extras}}.


Чаще всего и их устанавливать не надо, т.к. всё необходимое уже установлено и работает из коробки.  Достаточно настроить работу модема через NetworkManager.
Чаще всего и их устанавливать не надо, т.к. всё необходимое уже установлено и работает из коробки.  Достаточно настроить работу модема через NetworkManager.


В данной статье описаны примеры настройки на случай, если что-то не работает — или если требуется более тонкая настройка/автоматизация при помощи {{pkg|etcnet}}.
В данной статье описаны примеры настройки на случай, если что-то не работает — или если требуется более тонкая настройка/автоматизация при помощи {{pkg|etcnet}}.
=== Megafon M150-1 (он же Huawei E3276)===
Данный модем является 4g модемом со встроенной сетевой картой. Но данная сетевая карта хоть и видится в системе, но не живёт. После подключения модема в системе определяется как
Bus 002 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd.
Modem/Networkcard
При этом появляется интерфейс
wwp0s29u1u2i1
Но попытка сделать его up ни к чему не приводит -  после ip link set up
dev wwp0s29u1u2i1
он всё равно остаётся wwp0s29u1u2i1: <NO-CARRIER,BROADCAST,MULTICAST,UP>
mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
Помогает в режиме сетевой карты внести
<pre>
echo -en 'AT^NDISDUP=1,1,"internet"\r\n' > /dev/ttyUSB0
dhcpcd -i wwp0s29u1u2i1
</pre>
При необходимости можно от отключить в нём сетевую карту и включить режим обычного модема:
<pre>AT^SETPORT="A1,A2;10,12,3"</pre>
Вернуть всё обратно:
<pre>AT^SETPORT="A1,A2;12,16,A1,A2"</pre>


=== Huawei E1550 ===
=== Huawei E1550 ===
Нам потребуется установить два пакета (оба присутствуют в репозитариях Пятой платформы):
Для Пятой платформы нам потребуется установить два пакета (оба присутствуют в репозитариях Пятой платформы):
* {{pkg|udev-extras}}
* {{pkg|udev-extras}}
* {{pkg|usb-modeswitch}}
* {{pkg|usb-modeswitch}}


После установки пакетов правим файл {{path|/etc/usb_modeswitch.conf}}.  Добавляем, если ещё нет:
Для Шестой и выше:
* {{pkg|usb-modeswitch}}
* {{pkg|usb-modeswitch-data}}
 
 
После установки пакетов в Пятой платформе смотрим файл {{path|/etc/usb_modeswitch.conf}}.  Добавляем, если ещё нет:


<pre>########################################################  
<pre>########################################################  
Строка 31: Строка 62:
MessageEndpoint=0x01
MessageEndpoint=0x01
CheckSuccess=5</pre>
CheckSuccess=5</pre>
Здесь DefaultVendor= 0x12d1 и DefaultProduct= 0x1446 должны соответствовать выдаваемым командой {{cmd|lsusb}}


Все другие подобные строки необходимо закомментировать, используя символ «;»
Все другие подобные строки необходимо закомментировать, используя символ «;»
Строка 38: Строка 71:
<pre>ACTION=="add" SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch"</pre>
<pre>ACTION=="add" SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch"</pre>


Модем определяется {{cmd|lsusb}} как:
После этого модем определяется {{cmd|lsusb}} как:
<pre>Bus 005 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem</pre>
<pre>Bus 005 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem</pre>
Для Шестой и выше платформы, ваш модем должен присутствовать в файле {{path|/lib/udev/rules.d/40-modeswitch.rules}}


'''Важно!''' В строке определения должно быть именно 1001 — это код собственно модема, а не виртуального CD с софтом под Win&Mac OS
'''Важно!''' В строке определения должно быть именно 1001 — это код собственно модема, а не виртуального CD с софтом под Win&Mac OS
Строка 59: Строка 95:


=== ZTE MF-180 ===
=== ZTE MF-180 ===
Применительно к модему ZTE mf-180 от МТС: прежде всего надо отучить устройство представляться как CD-ROM — например, с помощью {{pkg|minicom}} (от имени root):
Применительно к модему ZTE mf-180 от Билайн: прежде всего надо отучить устройство представляться как CD-ROM — например, с помощью {{pkg|minicom}} (от имени root):


* {{cmd|minicom -s}}
* {{cmd|minicom -s}}
Строка 76: Строка 112:


Настройки модема:
Настройки модема:
* имя модема: <tt>motorola</tt>
* имя модема: <tt>zte</tt>
* устройство модема: скорее всего будет <tt>/dev/ttyUSB2</tt>
* устройство модема: скорее всего будет <tt>/dev/ttyUSB2</tt>
* управление потоком: аппаратное
* управление потоком: аппаратное
* окончание строки: <tt>CR/LF</tt>
* окончание строки: <tt>CR/LF</tt>
* команды модема: в строке инициализации 1 пишем <tt>AT+CGDCONT=1,"ip","internet.beeline.ru"</tt>
* команды модема: в строке инициализации 1 пишем <tt>AT+CGDCONT=1,"ip","internet.beeline.ru"</tt>
Примечание: возможно, так же будет работать ZTE mf-170.
Также для разных модемов от ZTE могут использоваться AT-команды (не проверено):
* AT^U2DIAG=0 (девайс в режиме только модем)
* AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
* AT^U2DIAG=255 (девайс в режиме модем + CD-ROM + Card Reader)
* AT^U2DIAG=256 (девайс в режиме модем + Card Reader, можно использывать как обычную флешку, отказавшись от установки драйверов модема)
=== ZTE MF-112 ===
Это модем от МТС, возможно у других компаний тоже есть эта модель
Особенности - бывают двух видов: определяющиеся как
# 19d2:0103
# 19d2:2000 (19d2:2003 - это картридер)
Первый - спокойно обрабатывается modeswitch и спокойно работает
Второй - приходится отключать CD и картридер
Вот некоторые команды, первые 4 проверены на 19d2:2000
* ATE1          # просмотр статуса выполненных команд
* AT+ZCDRUN=8  # отключаем автозагрузку USB CD-ROM
* AT+ZCDRUN=9  # включит автозагрузку USB CD-ROM
* AT+ZCDRUN=E  # только модем, отключить картридер и автозагрузку USB CD-ROM
* AT+ZCDRUN=F  # модем + кардридер + USB CD-ROM
* AT+cfun=0    # выключить модем
* AT+cfun=1    # включить
* AT+CSQ        # уровень сигнала сети
* AT+CGMR      # версия ПО
* AT+CGSN      # IMEI
* AT+CNUM      # ваш номер сим
* AT+zsnt?      # текущий режим поиска сети
* AT+zsnt=0,0,0  # установить режим поиска сети «автоматически, GSM+WCDMA»
* AT+zsnt=0,0,1  # установить «автоматически, GSM+WCDMA, предпочтительно GSM»
* AT+zsnt=0,0,2  # установить «автоматически, GSM+WCDMA, предпочтительно WCDMA»
* AT+zsnt=1,0,0  # установить «автоматически, только GSM»
* AT+zsnt=2,0,0  # установить «автоматически, только WCDMA»
* AT+zsnt=0,1,0  # установить «вручную, GSM+WCDMA»
* AT+zsnt=1,1,0  # установить «вручную. только GSM»
* AT+zsnt=2,1,0  # установить «вручную, только WCDMA»
* AT+COPS=?      # сканируется сеть и выводит список операторов связи
* AT+CPIN?        # узнаём, требуется ли вводить пин-код для разблокировки доступа к мобильной сети.
* AT+CPIN=0000    # пример, ввод PIN кода


== Настройки для etcnet ==
== Настройки для etcnet ==
Строка 139: Строка 217:
nolog
nolog
</pre>
</pre>
== Известные баги ==
Их всегда можно посмотреть на packages.altlinux.org
[https://packages.altlinux.org/en/Sisyphus/srpms/usb-modeswitch-data/bugs  Баги usb-modeswitch-data]
[https://packages.altlinux.org/en/Sisyphus/srpms/usb-modeswitch/bugs usb-modeswitch]
Наиболее неприятная на сегодня :
https://bugzilla.altlinux.org/show_bug.cgi?id=32060


== Примечания ==
== Примечания ==


# Рецепт годен и для Huawei E150. Эти модели различаются только тем, что у модели E150 нет слота для Micro SD, а у E1550 есть. В остальном модемы аналогичны.
# Рецепт годен и для Huawei E150. Эти модели различаются только тем, что у модели E150 нет слота для Micro SD, а у E1550 есть. В остальном модемы аналогичны.
# Так же работает модем huawei e173 (ID 12d1:1436 Huawei Technologies Co., Ltd.). В network manager заработал из коробки  сразу после втыкания модема без шаманств (usb_modeswitch установлен)
# Рецепт годен и для аналогичных модемов от MTC и Билайна.
# Рецепт годен и для аналогичных модемов от MTC и Билайна.
# С большой вероятностью этот же рецепт годен и для модемов других операторов этих же и близких к ним моделей — например, Huawei E1552, E1750 и т.п.
# С большой вероятностью этот же рецепт годен и для модемов других операторов этих же и близких к ним моделей — например, Huawei E1552, E1750 и т.п.
# Решение тестировалось на модеме Huawei E150 от МТС и E1550 от Мегафон на дистрибутивах Пятой платформы.
# Решение тестировалось на модеме Huawei E150 от МТС и E1550 от Мегафон на дистрибутивах Пятой платформы.
# Решение тестировалось на модеме ZTE MF112 от МТС на дистрибутивах Пятой и Шестой платформы. Особенности на Centaurus и Школьном сервере - не срабатывает usb-modeswitch для модели, которая определяется как 19d2:2000. приходится отключать CD и CardReader. Причем на Slinux 6.0 и KDesktop 6.0 все заработало "из коробки".


== Ссылки ==
== Ссылки ==
* http://rus-linux.net/MyLDP/hard/modeswitch.html
* http://www.openclass.ru/wiki-pages/71852
* http://gentoo-wiki.gentoo.ru/wiki/Модем_Flyer_U12
* http://wiki.gentoo.org/wiki/Huawei_E367
* http://www.draisberghof.de/usb_modeswitch/
* http://lists.altlinux.org/pipermail/hardware/2011-July/016241.html
* http://forum.altlinux.org/index.php/topic,4749.0.html
* http://forum.altlinux.org/index.php/topic,4749.0.html
* http://forum.altlinux.org/index.php/topic,136.msg106617.html#msg106617
* http://forum.altlinux.org/index.php/topic,136.msg106617.html#msg106617
* http://lists.altlinux.org/pipermail/hardware/2011-July/016241.html
* http://www.openclass.ru/wiki-pages/71852
* http://ru.gentoo-wiki.com/wiki/Модем_Flyer_U12
* http://www.draisberghof.de/usb_modeswitch/


[[Категория:Hardware]]
{{Category navigation|title=Модемы|category=Модемы|sortkey={{SUBPAGENAME}}}}

Версия от 05:19, 5 сентября 2017

Общее

Есть несколько путей:

  1. использовать штатные средства NetworkManager
  2. настраивать дозвон через wvdial, kppp или что вам нравится самостоятельно
  3. использовать программу, поставляемую Мегафоном со своими модемами. Использование этого пути позволяет избежать ненужных телодвижений для проверки баланса счета. Решение тестировалось на Simply Linux. Внимание! Установочный скрипт программы MobilePartner добавляет строку "ALL ALL=(ALL) NOPASSWD:/usr/local/MegaFon Internet/MobilePartner.sh" в /etc/sudoers и изменяет некоторые другие файлы /etc/.
  4. использовать /etc/net

В большинстве случаев ничего настраивать не надо — достаточно установить пакет usb-modeswitch и зависимые от него (например, usb-modeswitch-data), в некоторых дистрибутивах также udev-extras.

Чаще всего и их устанавливать не надо, т.к. всё необходимое уже установлено и работает из коробки. Достаточно настроить работу модема через NetworkManager.

В данной статье описаны примеры настройки на случай, если что-то не работает — или если требуется более тонкая настройка/автоматизация при помощи etcnet.

Megafon M150-1 (он же Huawei E3276)

Данный модем является 4g модемом со встроенной сетевой картой. Но данная сетевая карта хоть и видится в системе, но не живёт. После подключения модема в системе определяется как Bus 002 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard

При этом появляется интерфейс wwp0s29u1u2i1

Но попытка сделать его up ни к чему не приводит - после ip link set up dev wwp0s29u1u2i1 он всё равно остаётся wwp0s29u1u2i1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000

Помогает в режиме сетевой карты внести

echo -en 'AT^NDISDUP=1,1,"internet"\r\n' > /dev/ttyUSB0
dhcpcd -i wwp0s29u1u2i1


При необходимости можно от отключить в нём сетевую карту и включить режим обычного модема:

AT^SETPORT="A1,A2;10,12,3"

Вернуть всё обратно:

AT^SETPORT="A1,A2;12,16,A1,A2"

Huawei E1550

Для Пятой платформы нам потребуется установить два пакета (оба присутствуют в репозитариях Пятой платформы):

  • udev-extras
  • usb-modeswitch

Для Шестой и выше:

  • usb-modeswitch
  • usb-modeswitch-data


После установки пакетов в Пятой платформе смотрим файл /etc/usb_modeswitch.conf. Добавляем, если ещё нет:

######################################################## 
# Huawei E1550
# 
# Contributor: Bogomips

DefaultVendor= 0x12d1
DefaultProduct= 0x1446

MessageContent="55534243000000000000000000000011060000000000000000000000000000"
MessageEndpoint=0x01
CheckSuccess=5

Здесь DefaultVendor= 0x12d1 и DefaultProduct= 0x1446 должны соответствовать выдаваемым командой lsusb

Все другие подобные строки необходимо закомментировать, используя символ «;»

Добавляем правило udev, создавая файл /etc/udev/rules.d/45-huawei-e1550.rules с таким содержимым:

ACTION=="add" SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch"

После этого модем определяется lsusb как:

Bus 005 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem

Для Шестой и выше платформы, ваш модем должен присутствовать в файле /lib/udev/rules.d/40-modeswitch.rules


Важно! В строке определения должно быть именно 1001 — это код собственно модема, а не виртуального CD с софтом под Win&Mac OS

Huawei E1750

  1. создаем файл 45-huawei-e1750.rules
    touch /etc/udev/rules.d/45-huawei-e1750.rules
  2. добавляем в него:
    ACTION=="add" SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch"
  3. добавляем данные в файл /etc/usb_modeswitch.conf:
########################################################
DefaultVendor=0x12d1
DefaultProduct=0x1446
TargetVendor=0x12d1
TargetProduct=0x1001
DetachStorageOnly=30
HuaweiMode=3
MessageContent="55534243000000000000000000000011060000000000000000000000000000"

ZTE MF-180

Применительно к модему ZTE mf-180 от Билайн: прежде всего надо отучить устройство представляться как CD-ROM — например, с помощью minicom (от имени root):

  • minicom -s
  • выбираем из списка: Настройка последовательного порта, далее жмём A и прописываем /dev/ttyUSB0 (может быть на USB1, USB2)
  • модем должен инициализироваться, затем командой at+zcdrun=8 выключаем сидиром
  • если нужно вернуть всё как было, то at+zcdrun=9 включает сидиром

Ну а после можно воспользоваться kppp для подключения собственно модема.

Настройки соединения:

  • имя: beeline
  • номер: _*99#_
  • ip: динамический
  • шлюз: по умолчанию
  • DNS-серверы: автоматически

Настройки модема:

  • имя модема: zte
  • устройство модема: скорее всего будет /dev/ttyUSB2
  • управление потоком: аппаратное
  • окончание строки: CR/LF
  • команды модема: в строке инициализации 1 пишем AT+CGDCONT=1,"ip","internet.beeline.ru"

Примечание: возможно, так же будет работать ZTE mf-170.

Также для разных модемов от ZTE могут использоваться AT-команды (не проверено):

  • AT^U2DIAG=0 (девайс в режиме только модем)
  • AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
  • AT^U2DIAG=255 (девайс в режиме модем + CD-ROM + Card Reader)
  • AT^U2DIAG=256 (девайс в режиме модем + Card Reader, можно использывать как обычную флешку, отказавшись от установки драйверов модема)

ZTE MF-112

Это модем от МТС, возможно у других компаний тоже есть эта модель Особенности - бывают двух видов: определяющиеся как

  1. 19d2:0103
  2. 19d2:2000 (19d2:2003 - это картридер)

Первый - спокойно обрабатывается modeswitch и спокойно работает Второй - приходится отключать CD и картридер

Вот некоторые команды, первые 4 проверены на 19d2:2000

  • ATE1 # просмотр статуса выполненных команд
  • AT+ZCDRUN=8 # отключаем автозагрузку USB CD-ROM
  • AT+ZCDRUN=9 # включит автозагрузку USB CD-ROM
  • AT+ZCDRUN=E # только модем, отключить картридер и автозагрузку USB CD-ROM
  • AT+ZCDRUN=F # модем + кардридер + USB CD-ROM
  • AT+cfun=0 # выключить модем
  • AT+cfun=1 # включить
  • AT+CSQ # уровень сигнала сети
  • AT+CGMR # версия ПО
  • AT+CGSN # IMEI
  • AT+CNUM # ваш номер сим
  • AT+zsnt? # текущий режим поиска сети
  • AT+zsnt=0,0,0 # установить режим поиска сети «автоматически, GSM+WCDMA»
  • AT+zsnt=0,0,1 # установить «автоматически, GSM+WCDMA, предпочтительно GSM»
  • AT+zsnt=0,0,2 # установить «автоматически, GSM+WCDMA, предпочтительно WCDMA»
  • AT+zsnt=1,0,0 # установить «автоматически, только GSM»
  • AT+zsnt=2,0,0 # установить «автоматически, только WCDMA»
  • AT+zsnt=0,1,0 # установить «вручную, GSM+WCDMA»
  • AT+zsnt=1,1,0 # установить «вручную. только GSM»
  • AT+zsnt=2,1,0 # установить «вручную, только WCDMA»
  • AT+COPS=? # сканируется сеть и выводит список операторов связи
  • AT+CPIN? # узнаём, требуется ли вводить пин-код для разблокировки доступа к мобильной сети.
  • AT+CPIN=0000 # пример, ввод PIN кода

Настройки для etcnet

в каталоге /etc/net/ifaces/ppp1/: (цифра может меняться в зависимостри от номера интерфейса):

options

TYPE=ppp
ONBOOT=yes
PPPTYPE=dialup
RESTORE_DEFAULTROUTE=yes

pppconnect

TIMEOUT         5
#ECHO            ON
ABORT           '\nBUSY\r'
ABORT           '\nERROR\r'
ABORT           '\nNO ANSWER\r'
ABORT           '\nNO CARRIER\r'
ABORT           '\nNO DIALTONE\r'
ABORT           '\nRINGING\r\n\r\nRINGING\r'
''              \rAT
TIMEOUT         12
SAY             "Press CTRL-C to close the connection at any stage!"
SAY             "\nSetting up...\n"
OK              ATE1
SAY             "\ndefining PDP context...\n"
OK              'AT+CGDCONT=1,"IP","internet.mts.ru"'
OK              ATD*99#
TIMEOUT         22
SAY             "\nwaiting for connect...\n"
CONNECT         ""
SAY             "\nConnected."
SAY             "\nIf the following ppp negotiations fail,\n"
SAY             "try restarting the phone.\n"

pppoptions

lcp-echo-failure 0
lcp-echo-interval 0
/dev/ttyUSB0
debug
noipdefault
ipcp-accept-local
defaultroute
usepeerdns
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
nodeflate
noauth
user "mts"
password "mts"
receive-all
nolog

Известные баги

Их всегда можно посмотреть на packages.altlinux.org

Баги usb-modeswitch-data

usb-modeswitch


Наиболее неприятная на сегодня :

https://bugzilla.altlinux.org/show_bug.cgi?id=32060

Примечания

  1. Рецепт годен и для Huawei E150. Эти модели различаются только тем, что у модели E150 нет слота для Micro SD, а у E1550 есть. В остальном модемы аналогичны.
  2. Так же работает модем huawei e173 (ID 12d1:1436 Huawei Technologies Co., Ltd.). В network manager заработал из коробки сразу после втыкания модема без шаманств (usb_modeswitch установлен)
  3. Рецепт годен и для аналогичных модемов от MTC и Билайна.
  4. С большой вероятностью этот же рецепт годен и для модемов других операторов этих же и близких к ним моделей — например, Huawei E1552, E1750 и т.п.
  5. Решение тестировалось на модеме Huawei E150 от МТС и E1550 от Мегафон на дистрибутивах Пятой платформы.
  6. Решение тестировалось на модеме ZTE MF112 от МТС на дистрибутивах Пятой и Шестой платформы. Особенности на Centaurus и Школьном сервере - не срабатывает usb-modeswitch для модели, которая определяется как 19d2:2000. приходится отключать CD и CardReader. Причем на Slinux 6.0 и KDesktop 6.0 все заработало "из коробки".

Ссылки