Translate

четвер, 12 серпня 2010 р.

Використання мобільного телефону у якості модему в Ubuntu 10.04

Всім привіт. Ось виявилась чудова нагода, вирішив поділитись досвідом. До створення статті мене підштовхнула відсутність як такого звичайного провідного інтернету, а дивитись "Криве дзеркало" по телевізору - це є зовсім не добра альтернатива. Але потім, згадавши, що таки маю телефон з можливістю використовувати його як модем, вирішив використати GSM-мережу для коннекту зі світом. Дана робота була пророблена з операційною системою Ubuntu Linux 10.04, але, я думаю, працюватиме на будь-якому пінгвіні.
Тож до діла! Перш за все, встановимо допоміжний софт, для убунти/дебіана це робиться так:

sudo aptitude install wvdial

Це PPTP-дзвонилка, man wvdial розповість вам про неї більше. Підключивши телефон, далі робимо наступне:

sudo wvdialconf /etc/wvdial.conf

Система має видати у відповідь щось схоже на це:

Scanning your serial ports for a modem.


ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S1 S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyACM0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyACM0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
WvModem<*1>: Cannot get information for serial port.
ttyACM1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyACM1<*1>: ATQ0 V1 E1 -- OK
ttyACM1<*1>: ATQ0 V1 E1 Z -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyACM1<*1>: Modem Identifier: ATI -- Sony Ericsson W302
ttyACM1<*1>: Speed 19200: AT -- OK
ttyACM1<*1>: Speed 38400: AT -- OK
ttyACM1<*1>: Speed 57600: AT -- OK
ttyACM1<*1>: Speed 115200: AT -- OK
ttyACM1<*1>: Speed 230400: AT -- OK
ttyACM1<*1>: Speed 460800: AT -- OK
ttyACM1<*1>: Max speed is 460800; that should be safe.
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyACM2<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyACM2<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyACM2<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.


Found an USB modem on /dev/ttyACM1.
Modem configuration written to /etc/wvdial.conf.
ttyACM1: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

Як бачимо, wvdial просканував систему на наявність модемів, і виявив його як /dev/ttyACM1 та обрахував максимальну швидкість його роботи. Результи програма записала в свій файл конфігурації /etc/wvdial.conf. Проте його потрібно відредагувати, для чого необхідно використати попередні налаштування (тобто те що команда згенерувала після команди sudo wvdialconf /etc/wvdial.conf). Мій робочий конфіг виглядає так:

[Dialer Defaults]
Modem = /dev/ttyACM1
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","freenet.beeline.ua"
Area Code =
Phone = *99#
Username = bee
Password = bee
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Force Address =
Idle Seconds = 300
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1
Modem Type = USB Modem

Це конфігураційний файл для підконекчування мобільного телефону Sony Erricson W302, що працює в мережі оператора Beeline. Зазначу, що рядки Init3 = AT+CGDCONT=1,"IP","freenet.beeline.ua" (для деяких тарифних планів точка доступу може бути internet.beeline.ua) та Phone = *99# взято з веб-сторінки оператора. Юзернейм та пароль, говориться на сайті, не потрібні, проте я записав bee, бо на порожні рядки програма матюкається.=) При вірному зазначенні параметрів, думаю, працюватиме з будь-яким оператором стільникового зв’язку. Коли все зробили правильно, підключаємось до веб-павутини:

sudo wvdial

--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","freenet.beeline.ua"
AT+CGDCONT=1,"IP","freenet.beeline.ua"
OK
--> Modem initialized.
--> Idle Seconds = 300, disabling automatic reconnect.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
~[7f]}#@!}!} } }2}!}$}%\}"}&} }*} } }#}$@#kZ~
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Aug 12 00:06:13 2010
--> Pid of pppd: 15406
--> Using interface ppp0
--> pppd: <
--> pppd: <
--> pppd: <
--> pppd: <
--> local IP address 10.200.0.162
--> pppd: <
--> remote IP address 192.168.254.254
--> pppd: <
--> primary DNS address 77.247.218.227
--> pppd: <
--> secondary DNS address 77.247.218.226
--> pppd: <

Програма має видати певні дані з отриманими днс-серверами і тд. Також зазначу, що в результаті конекту з’яляється додатковий мережевий інтерфейс модему (ppp0). Це ніби все, що необхідно знати, що не зрозуміло - запитання ставте в коментарях.

ПС. Не забудьте перевірити вартість передачі інформації вашого оператора. У Білайна при звичайних тарифах мегабайт переданих чи прийнятих даних коштує біля 8-9 грн. Раджу замовляти інтернет пакети (5 Гб - 100 грн) чи міняти тарифі плани.

5 коментарів:

  1. Гілка по темі на ЛОУ (для BT з’єднання) — http://linux.org.ua/cgi-bin/yabb/YaBB.pl?num=1265632880
    І ще невеличка хитрість з /etc/wvdial.conf:
    Username = /n
    Password = /n
    якщо оператор вимагає залишати ці поля пустими.

    Взагалі нет на 10.04 налаштовується дуже просто через Network Manager В мене це зайняло біля двох хвилин.

    ВідповістиВидалити
  2. підключався з телефоном без wvdial’а (принаймні не тицяючи його руцями) — ось допис і відеопідказка.

    ВідповістиВидалити
  3. ну в мене кубунта і там відпвідна вкладка не працювала...

    та і через консоль - то ж на всі випадки життя.)

    ВідповістиВидалити
  4. от тепер і мені довелося скористатися wvdial`ом — бо network manager у linux mint 8 не хоче з модемом нормально працювать.

    p.s. якщо pidgin не конектиться через ppp0 — є фікс.

    ВідповістиВидалити