LinuxForum.Fans
Тема

Настройка инета через 3G модем (pppd)

Автор: Dmitry543 8 сообщений 4302 просмотров
#198887

Задача: настроить резервный канал через 3G модем на Altlinux Master 4.0.
Обновили ядро...
# uname -a
Linux localhost.localdomain 2.6.30-std-def-alt15 #1 SMP Mon Dec 14 08:45:48 UTC 2009 i686 GNU/Linux

Достигнуто: на Ubuntu 10.04 (с данным дистрибутивом я больше работал) все настроено — работает — и модем подключается, и маршрут переключается...

Проблема: на Altlinux Master модем не подключается к инету.

Как это выглядит:
[console]
# dmesg
[ 2562.104021] usb 5-1: new high speed USB device using ehci_hcd and address 3
[ 2562.249192] usb 5-1: New USB device found, idVendor=19d2, idProduct=2000
[ 2562.249197] usb 5-1: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[ 2562.249201] usb 5-1: Product: ZTE WCDMA Technologies MSM
[ 2562.249204] usb 5-1: Manufacturer: ZTE,Incorporated
[ 2562.249207] usb 5-1: SerialNumber: P673A4MTSD010000
[ 2562.249404] usb 5-1: configuration #1 chosen from 1 choice
[ 2562.250693] option 5-1:1.0: GSM modem (1-port) converter detected
[ 2562.251090] usb 5-1: GSM modem (1-port) converter now attached to ttyUSB0

[root@localhost ppp]# ls /dev/ttyUSB*
/dev/ttyUSB0

[root@localhost ppp]# pppd call mts
[root@localhost ppp]# tail -f /var/log/messages
Oct 12 00:41:36 localhost pppd[9152]: pppd 2.4.4 started by root, uid 0
Oct 12 00:41:37 localhost chat[9153]: abort on (BUSY)
Oct 12 00:41:37 localhost chat[9153]: abort on (NO CARRIER)
Oct 12 00:41:37 localhost chat[9153]: abort on (VOICE)
Oct 12 00:41:37 localhost chat[9153]: abort on (NO DIALTONE)
Oct 12 00:41:37 localhost chat[9153]: abort on (NO DIAL TONE)
Oct 12 00:41:37 localhost chat[9153]: abort on (NO ANSWER)
Oct 12 00:41:37 localhost chat[9153]: abort on (DELAYED)
Oct 12 00:41:37 localhost chat[9153]: send (ATZ^M)
Oct 12 00:41:37 localhost chat[9153]: expect (OK)
Oct 12 00:42:22 localhost chat[9153]: alarm
Oct 12 00:42:22 localhost chat[9153]: Failed
Oct 12 00:42:22 localhost pppd[9152]: Connect script failed
Oct 12 00:42:23 localhost pppd[9152]: Modem hangup
Oct 12 00:42:23 localhost pppd[9152]: Connection terminated.
Oct 12 00:42:23 localhost pppd[9152]: Exit.
[/console]

Полагаю что
Oct 12 00:41:37 localhost chat[9153]: expect (OK)
означает «жду ответа от модема»
Oct 12 00:42:22 localhost chat[9153]: alarm
«ответа нет»

Есть два USB модема:
1. ZTE MF627 от МТС (его и настраиваем)
2. Novacom GNS-60CR http://www.novacom-wireless.ru/catalogue/?id=38&c=9 (этот для эксперимента использую)


Оба модема под win работают.

Под Ubuntu desktop LiveCD загружался:
ZTE определился и заработал (через network manager настраивал или как его там... в GUI ранее не работал — не особо ориентируюсь).
Novacom не определился в GUI. Но в dmesg было написано что устройство подключено к ttyUSB0.

Ubuntu 10.04 сервер установил:
ZTE работает. Причем при подключении модема к ПК появляется четыре ttyUSB – от 0 до 3. В настройках pppd указываю ttyUSB3 (подглядел в /var/log/messages на Ubuntu desktop LiveCD).

Novacom не подключается к инету — аналогично как на Alt (см. выше)
Oct 12 00:41:37 localhost chat[9153]: expect (OK)
Oct 12 00:42:22 localhost chat[9153]: alarm
Возможно из-за того что я настраивал CHAP авторизацию, а на http://www.novacom-wireless.ru/catalogue/?id=38&c=9 про модем написано «PAP-Password Authentication Protocol используется для PPP-соединения». Как заставить его PAP использовать? Пароль в pap-secrets написал, а что еще нужно сделать. В общем не заработал он.

Еще момент:
На http://lug.hdd1.ru/?q=node/13 прочитал:
«наступил на вторые грабли - переключение в режим модема не включает симку. Для того, чтобы симка зарегистрировалась в сети, требуется утилитка comgt».

Насколько я понял, эта программа посылает некоторые команды модему.

У меня
[console]
# comgt -d /dev/ttyUSB0
***SIM ERROR***
Check device port configuration.
Check SIM is inserted
Test SIM in a mobile phone?
[root@localhost comgt]#
[/console]

Выходит что не может она «пообщаться» с модемом.

Вопросы:
Что можете посоветовать для настройки подключения в Altlinux?
Как можно послать команду модему и узнать ответ (чтобы проверить отвечает он или нет «в принципе»)?
Как еще можно проверить определен ли модем в ОС? Подозреваю что у меня не определился на самом деле. Или что-то мешает обмениваться данными с ним.

P.S. Сейчас minicom изучаю...
[console]
[root@localhost etc]# minicom

Welcome to minicom 2.4-rc1

OPTIONS: I18n
Compiled on Nov 18 2009, 05:55:54.
Port /dev/ttyUSB0

Press CTRL-A Z for help on special keys
[/console]
Команду пытаюсь набрать - никакой реакции.
Меню по нажатии CTRL-A выводится.

Вот один файл настройки (в peers)

text

hide-password 
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/mts"
debug
/dev/ttyUSB0
115200
defaultroute
noipdefault 
user "mts"
ipparam mts
usepeerdns

А вот второй (/etc/chatscripts/mts)

text

ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
'' ATZ
OK AT+CGDCONT=1,"IP","internet.mts.ru"
OK ATDT*99#
CONNECT \d\c
#198890

Зачем новые темы создавать, если уже есть ваша в Alt.

#198925

/dev/ttyUSB0 на модемах ZTE не отвечает, зато откликаются /dev/ttyUSB1 и /dev/ttyUSB2, но у вас их нет. Похоже, что отсутствует usb_modeswitch. Вот /etc/usb_modeswitch.conf для вашего модема

text
# ZTE devices

DefaultVendor= 0x19d2 DefaultProduct= 0x2000

TargetVendor= 0x19d2 TargetProductList="0001,0002,0015,0016,0017,0031,0037,0052,0055,0063,0064,0066,0091,0108,0117,0128"

MessageContent="5553424312345678000000000000061e000000000000000000000000000000" MessageContent2="5553424312345679000000000000061b000000020000000000000000000000" MessageContent3="55534243123456702000000080000c85010101180101010101000000000000"

NeedResponse=1

CheckSuccess=20

#198990

А что, кстати, означают несколько /dev/ttyUSBx?
А то я втыкаю модем - у меня появляются три устройства, два из них работают, а зачем их три?

#199093
DdShurick написал:
Вот /etc/usb_modeswitch.conf для вашего модема
text
# ZTE devices

DefaultVendor= 0x19d2 DefaultProduct= 0x2000 ...

С такими настройками вот что получается:

Показать

[console]
# usb_modeswitch

* usb_modeswitch: tool for controlling "flip flop" mode USB devices
* Version 1.0.2 (C) Josua Dietze 2009
* Works with libusb 0.1.12 and probably other versions

Note: target parameter missing; success check limited
Looking for default devices ...
Found default devices (1)
Accessing device 005 on bus 005 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
OK, driver found ("dummy")
OK, driver "dummy" detached

Received inquiry data (detailed identification)
-------------------------
Vendor String: ZTE
Product String: USB SCSI CD-ROM
Revision String: 2.31
-------------------------

Device description data (identification)
-------------------------
Manufacturer: ZTE,Incorporated
Product: ZTE WCDMA Technologies MSM
Serial No.: P673A4MTSD010000
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
OK, message successfully sent
Reading the response to the message ...
OK, response successfully read (13 bytes).
Checking for mode switch after 32 seconds settling time ...
Original device can still be accessed. Hmm.
For a better success check provide target IDs or class. Bye.

# ls /dev/ttyUSB*
ls: cannot access /dev/ttyUSB*: No such file or directory
[/console]
#199369

Ubuntu 10.04
usb-modeswitch не устанавливал

Показать

[console]
# dmesg
usb 1-2: new high speed USB device using ehci_hcd and address 4
usb 1-2: configuration #1 chosen from 1 choice
scsi6 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 4
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 6:0:0:0: CD-ROM ZTE USB SCSI CD-ROM 2.31 PQ: 0 ANSI: 2
sr1: scsi-1 drive
sr 6:0:0:0: Attached scsi CD-ROM sr1
sr 6:0:0:0: Attached scsi generic sg2 type 5
usb 1-2: USB disconnect, address 4
usb 1-2: new high speed USB device using ehci_hcd and address 5
usb 1-2: configuration #1 chosen from 1 choice
option 1-2:1.0: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
option 1-2:1.1: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
option 1-2:1.2: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
option 1-2:1.3: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3
scsi7 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 7:0:0:0: Direct-Access ZTE MMC Storage 2.31 PQ: 0 ANSI: 2
sd 7:0:0:0: Attached scsi generic sg2 type 0
sd 7:0:0:0: [sdb] Attached SCSI removable disk
# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3
#
[/console]
Показать

[console]
# lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 010: ID 19d2:2000 ONDA Communication S.p.A. ZTE MF627/MF628/MF628+ HSDPA
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 011: ID 19d2:2003 ONDA Communication S.p.A.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[/console]

Идентификатор меняется с "19d2:2000" на "19d2:2003".

В win посмотрел идентификатор модема - тоже "19d2:2003".

Выходит Ubuntu его знает что ли?

Какая прога переключает?
Оказывается там какая-то "modem-modeswitch" есть.

/etc/udev/rules.d/61-mobile-action.rules

Показать
text

ACTION!="add", GOTO="mobile_action_end"

SUBSYSTEM=="usb", ATTR{bDeviceClass}=="00|ff", ATTR{bDeviceSubClass}=="00|ff", ENV{DEVTYPE}=="usb_device", GOTO="mobile_action_switch" GOTO="mobile_action_end"

LABEL="mobile_action_switch" ATTRS{idVendor}=="0df7", ATTRS{idProduct}=="0800", RUN+="modem-modeswitch -v 0x%s{idVendor} -p 0x%s{idProduct} -t mobile-action-8280p"

LABEL="mobile_action_end"

# modem-modeswitch does not work with these devices, the fake CD-ROM needs to be ejected

# ZTE MF6xx ACTION=="add", ENV{ID_CDROM}=="1", ENV{ID_VENDOR_ID}=="19d2", ENV{ID_MODEL_ID}=="2000", RUN+="/usr/bin/eject %k"

text
ACTION=="add", ENV{ID_CDROM}=="1", ENV{ID_VENDOR_ID}=="19d2", ENV{ID_MODEL_ID}=="2000", RUN+="/usr/bin/eject %k"

Что это? Отключение CDROM?
А где бы посмотреть чего он в устройство посылает чтобы переключить на режим модема?

#199387

Насколько я понял

text
TargetVendor
TargetProduct

это только для контроля.
usb-modeswitch потом просто проверит через CheckSuccess секунд "появилось то что хотели/нет".

Вся суть в MessageContent...
напишем "хрю" - будет кардридер
напишем "му" - будет модем

Со значением

text

MessageContent="55534243123456782000000080000c85010101180101010101000000000000"

Вот что получается

Показать
[console]
# usb_modeswitch

* usb_modeswitch: tool for controlling "flip flop" mode USB devices
* Version 1.0.2 (C) Josua Dietze 2009
* Works with libusb 0.1.12 and probably other versions

Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found default devices (1)
Accessing device 035 on bus 001 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
OK, driver found ("dummy")
OK, driver "dummy" detached

Received inquiry data (detailed identification)
-------------------------
Vendor String: ZTE
Product String: USB SCSI CD-ROM
Revision String: 2.31
-------------------------

Device description data (identification)
-------------------------
Manufacturer: ZTE,Incorporated
Product: ZTE WCDMA Technologies MSM
Serial No.: P673A4MTSD010000
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
OK, message successfully sent
Checking for mode switch after 16 seconds settling time ...
Segmentation fault
# dmesg
option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
option 1-1:1.0: device disconnected
usb 1-1: USB disconnect, address 37
usb 1-1: new high speed USB device using ehci_hcd and address 38
usb 1-1: New USB device found, idVendor=19d2, idProduct=2003
usb 1-1: New USB device strings: Mfr=2, Product=1, SerialNumber=3
usb 1-1: Product: ZTE WCDMA Technologies MSM
usb 1-1: Manufacturer: ZTE,Incorporated
usb 1-1: SerialNumber: P673A4MTSD010000
usb 1-1: configuration #1 chosen from 1 choice
scsi14 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 38
usb-storage: waiting for device to settle before scanning
scsi 14:0:0:0: Direct-Access ZTE MMC Storage 2.31 PQ: 0 ANSI: 2
sd 14:0:0:0: Attached scsi generic sg2 type 0
sd 14:0:0:0: [sdb] Attached SCSI removable disk
usb-storage: device scan complete
usb_modeswitch[12727]: segfault at 0 ip b803d924 sp bfca6220 error 4 in libusb-0.1.so.4.4.4[b803c000+3000]

[/console]

[console]OK, message successfully sent[/console]
Уже лучше...

Войдите или зарегистрируйтесь, чтобы ответить.