3G модем от МТС под OpenSolaris

3G модем от МТС под OpenSolaris

Все подобные модемы используют технологию ZeroCD, т.е. модем определяется как CD-ROM, на котором в автозапуске прописано приложение, проверяющее наличие драйверов в системе и либо запускающее специальную программу связи, либо ставящее ее вместе с драйверами.

Для перевода устройства из режима накопителя в режим модема надо из контекстного меню его иконки на рабочем столе выбрать «Извлечь том». Однако иногда этого бывает не достаточно. Для проверки выполнилось ли переключение следует использовать команду echo «::prtusb «|pfexec mdb -k. Если в выводе команды до и после извлечение нет отличий, то следует ввести pfexec cfgadm -y -x usb_reset usb7/5. Числа после «usb», соответствующие разъему, к которому подключено устройство, можно определить по выводу команды cfgadm без параметров. В каталоге устройств вместо /dev/usb/19d2.2000/0/ появится подкаталог /dev/usb/19d2.2003/0/ с множеством символических ссылок на файлы устройств на моем компе из /devices/pci@0,0/pci1458,5004@2,2/.

$ ls -l /devices/pci@0,0/pci1458,5004@2,2/
total 12
drwxr-xr-x 2 root sys 3 2010-04-18 21:40 device@5
crw------- 1 keremet staff 39, 3074 2010-12-09 09:14 device@5:19d2.2003.cntrl0
crw------- 1 keremet staff 39, 3075 2010-12-09 09:13 device@5:19d2.2003.cntrl0stat
crw------- 1 keremet staff 39, 3073 2010-12-09 09:13 device@5:19d2.2003.devstat
crw------- 1 keremet staff 39, 3076 2010-12-09 09:13 device@5:19d2.2003.if0in1
crw------- 1 keremet staff 39, 3077 2010-12-09 09:13 device@5:19d2.2003.if0in1stat
crw------- 1 keremet staff 39, 3078 2010-12-09 09:13 device@5:19d2.2003.if0out1
crw------- 1 keremet staff 39, 3079 2010-12-09 09:13 device@5:19d2.2003.if0out1stat
crw------- 1 keremet staff 39, 3080 2010-12-09 09:13 device@5:19d2.2003.if1in2
crw------- 1 keremet staff 39, 3081 2010-12-09 09:13 device@5:19d2.2003.if1in2stat
crw------- 1 keremet staff 39, 3082 2010-12-09 09:13 device@5:19d2.2003.if1out2
crw------- 1 keremet staff 39, 3083 2010-12-09 09:13 device@5:19d2.2003.if1out2stat
crw------- 1 keremet staff 39, 3084 2010-12-09 09:13 device@5:19d2.2003.if2in3
crw------- 1 keremet staff 39, 3085 2010-12-09 09:13 device@5:19d2.2003.if2in3stat
crw------- 1 keremet staff 39, 3086 2010-12-09 09:13 device@5:19d2.2003.if2out3
crw------- 1 keremet staff 39, 3087 2010-12-09 09:13 device@5:19d2.2003.if2out3stat
crw------- 1 keremet staff 39, 3088 2010-12-09 09:13 device@5:19d2.2003.if3in4
crw------- 1 keremet staff 39, 3089 2010-12-09 09:13 device@5:19d2.2003.if3in4stat
crw------- 1 keremet staff 39, 3090 2010-12-09 09:13 device@5:19d2.2003.if3in5
crw------- 1 keremet staff 39, 3091 2010-12-09 09:13 device@5:19d2.2003.if3in5stat
crw------- 1 keremet staff 39, 3092 2010-12-09 09:13 device@5:19d2.2003.if3out4
crw------- 1 keremet staff 39, 3093 2010-12-09 09:13 device@5:19d2.2003.if3out4stat
crw------- 1 root sys 39, 3072 2010-12-09 09:13 device@5:usb_mid

Назначаем драйвер для появившегося на шине usb устройства: $ pfexec update_drv -a -i ‘»usb19d2,2003″‘ usbsacm

Строка о новой связи драйвера и устройства добавляется в /etc/driver_aliases

Появляются ожидаемые файлы устройств

$ ls -l /devices/pci@0,0/pci1458,5004@2,2/
total 2
drwxr-xr-x 2 root sys 3 2010-04-18 21:40 device@5
crw-rw-rw- 1 root sys 133, 96 2010-12-09 09:22 device@5:0
crw-rw-rw- 1 root sys 133, 131168 2010-12-09 09:22 device@5:0,cu
crw-rw-rw- 1 root sys 133, 97 2010-12-09 09:22 device@5:1
crw-rw-rw- 1 root sys 133, 131169 2010-12-09 09:22 device@5:1,cu
crw-rw-rw- 1 root sys 133, 98 2010-12-09 09:22 device@5:2
crw-rw-rw- 1 root sys 133, 131170 2010-12-09 09:22 device@5:2,cu
crw-rw-rw- 1 root sys 133, 99 2010-12-09 09:22 device@5:3
crw-rw-rw- 1 root sys 133, 131171 2010-12-09 09:22 device@5:3,cu

$ ls -l /dev/term/
total 9
lrwxrwxrwx 1 root root 49 2010-12-09 09:22 6 -> ../../devices/pci@0,0/pci1458,5004@2,2/device@5:0
lrwxrwxrwx 1 root root 49 2010-12-09 09:22 7 -> ../../devices/pci@0,0/pci1458,5004@2,2/device@5:1
lrwxrwxrwx 1 root root 49 2010-12-09 09:22 8 -> ../../devices/pci@0,0/pci1458,5004@2,2/device@5:2
lrwxrwxrwx 1 root root 49 2010-12-09 09:22 9 -> ../../devices/pci@0,0/pci1458,5004@2,2/device@5:3

Интерфейс модема на MF180 имеет номер 3, следовательно цепляемся к /dev/term/9 и для проверки работоспособности модема выполняем команды установки соединения (выделены жирным).

$ tip /dev/term/9
connected
ATZ
OK
ATI
Manufacturer: ZTE CORPORATION
Model: MF180
Revision: BD_P671A1V1.0.3B12
IMEI: 351941042819920
+GCAP: +CGSM,+DS,+ES
OK
AT+CGDCONT=1,"ip","internet.mts.ru"
OK
ATD*99#
CONNECT 3600000

Теперь требуется настроить pppd созданием двух файлов

$ cat /etc/ppp/peers/mts3g
nodetach
230400
noauth
passive
defaultroute
usepeerdns
ipcp-accept-remote
ipcp-accept-local
noipdefault
noccp
novj
user "mts"
password "mts"
show-password
crtscts
connect '/usr/bin/chat -V -t15 -f /etc/ppp/mts3g-chat'

$ cat /etc/ppp/mts3g-chat
'' 'ATZ'
'OK' 'AT+CGDCONT=1,"ip","internet.mts.ru"'
'OK' 'ATD*99#'
CONNECT ''

Запускаем pppd

$ pfexec pppd /dev/term/9 call mts3g debug
serial speed set to 230400 bps
connect option: '/usr/bin/chat -V -t15 -f /etc/ppp/mts3g-chat' started (pid 1406)
ATZ
OK
AT+CGDCONT=1,"ip","internet.mts.ru"
OK
ATD*99#
CONNECTSerial connection established.
serial speed set to 230400 bps
Using interface sppp0
Connect: sppp0 <--> /dev/term/9
sent [LCP ConfReq id=0x2b]
rcvd [LCP ConfReq id=0x18]
sent [LCP ConfAck id=0x18]
rcvd [LCP ConfAck id=0x2b]
sent [LCP Ident id=0x2c magic=0x53568fe3 "ppp-2.4.0b1 (Sun Microsystems, Inc.)"]
Authenticating to peer with standard CHAP
rcvd [LCP DiscReq id=0x19 magic=0x15806cb]
rcvd [CHAP Challenge id=0x1 , name = "UMTS_CHAP_SRVR"]
sent [CHAP Response id=0x1 , name = "mts"]
rcvd [CHAP Success id=0x1 ""]
sent [IPCP ConfReq id=0xa1 ]
rcvd [IPCP ConfNak id=0xa1 ]
sent [IPCP ConfReq id=0xa2 ]
rcvd [IPCP ConfNak id=0xa2 ]
sent [IPCP ConfReq id=0xa3 ]
rcvd [IPCP ConfNak id=0xa3 ]
sent [IPCP ConfReq id=0xa4 ]
rcvd [IPCP ConfReq id=0x8]
sent [IPCP ConfNak id=0x8 ]
rcvd [IPCP ConfNak id=0xa4 ]
sent [IPCP ConfReq id=0xa5 ]
rcvd [IPCP ConfReq id=0x9]
sent [IPCP ConfAck id=0x9]
rcvd [IPCP ConfAck id=0xa5 ]
Peer refused to provide his address; assuming 192.168.1.1
Can't add default route: File exists
local IP address 10.20.26.247
remote IP address 192.168.1.1
primary DNS address 213.87.0.1
secondary DNS address 213.87.1.1

Устройство поднялось.

$ ifconfig sppp0
sppp0: flags=10010008d1 mtu 1500 index 8
inet 10.20.26.247 --> 192.168.1.1 netmask ff000000

Пингуем DNS-сервер.

$ ping 213.87.0.1
213.87.0.1 is alive

Проверяем работоспособность DNS-сервера.

$ nslookup ya.ru 213.87.0.1
Server: 213.87.0.1
Address: 213.87.0.1#53
Non-authoritative answer:
Name: ya.ru
Address: 87.250.250.3
Name: ya.ru
Address: 87.250.251.3
Name: ya.ru
Address: 93.158.134.3
Name: ya.ru
Address: 213.180.204.3
Name: ya.ru
Address: 77.88.21.3

Пингуем ya.ru по его IP.

$ ping 87.250.250.3
87.250.250.3 is alive

Добавляем в /etc/resolv.conf строки

nameserver 213.87.0.1
nameserver 213.87.1.1

Теперь ya.ru пингуется обычным способом

$ ping ya.ru
ya.ru is alive

P.S. Полезные команды для изучения привязки драйвера к устройству:

cfgadm
echo "::prtusb"|pfexec mdb -k
prtconf -D

Speak Your Mind