SE k800i Linux Modem Part 2
Sunday, February 22nd, 2009В миналата част си поговорихме как да закачим телефона към компютъра така че да се работи с USB CDC драйвъра. Сега ще стане дума как да си пуснете реален интернет на компютъра. Тук имам само карта към МТЕЛ и съм писал за него, така че всички читатели които ползват услугите на евентуален друг оператор ще трябва леко да си редактират настройките.
PPP
Трябва ви point-to-point protocol поддръжка под някаква форма. Дали вградено в ядрото или на модул - по ваш избор. Нужните отметки в конфигурацията на ядрото са следните:
- Device Drivers --->[*] Network device support --->
PPP (point-to-point protocol) support - Device Drivers --->[*] Network device support --->
PPP support for async serial ports
Ако решите да ги компилирате като модули, първия модул ще се казва ppp_generic, а втория ppp_async. Трябват ви и двете неща, иначе ще получавате странни грешки от рода на:
The PPP daemon has died: Fatal pppd error (exit code = 1)
1 An immediately fatal error of some kind occurred, such as an
essential system call failing, or running out of virtual mem-
ory.
Wvdial
Хубавото на Wvdial е че само си открива поддържаните настройки от модема и само си създава конфигурационен файл. Освен това не е нужно да се мъчите с /etc/ppp/* скриптове и настройки и даже не е нужно да сте прочели и ред от pppd man-страницата ![]()
Създаване на конфигурационен файл:
# wvdialconf
Editing `/etc/wvdial.conf'.Scanning your serial ports for a modem.
WvModem<*1>: Cannot set information for serial port.
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.
WvModem<*1>: Cannot set information for serial port.
ttyS1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 Z -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyACM0<*1>: Modem Identifier: ATI -- Sony Ericsson K810
ttyACM0<*1>: Speed 4800: AT -- OK
ttyACM0<*1>: Speed 9600: AT -- OK
ttyACM0<*1>: Speed 19200: AT -- OK
ttyACM0<*1>: Speed 38400: AT -- OK
ttyACM0<*1>: Speed 57600: AT -- OK
ttyACM0<*1>: Speed 115200: AT -- OK
ttyACM0<*1>: Speed 230400: AT -- OK
ttyACM0<*1>: Speed 460800: AT -- OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
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 -- failed with 9600 baud, next try: 115200 baud
ttyACM1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.Found an USB modem on /dev/ttyACM0.
Отваряме /etc/wvdial.conf и редактираме редовете Phone, Username, Password. Добавяме и ред Init3. Това е крайното състояние при мен (за МТЕЛ) :
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","inet-gprs.mtel.bg"
Modem Type = USB Modem
ISDN = 0
Phone = *99#
Modem = /dev/ttyACM0
Username = dada
Password = dada
Baud = 460800
По принцип интернета на МТЕЛ се използва с каквито и да е Username и Password, но wvdial не ви позволява да оставяте тези полета празни. Из нета на разни места пишат че може и да се сложи следния ред:
Stupid Mode = 1
ако wvdial не може да си комуникира добре с модема ви. За k800i нямаше нужда.
Connect
Стартирането на pppd, което става автоматично от wvdial изисква отново да сте root.
# 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","inet-gprs.mtel.bg"
AT+CGDCONT=1,"IP","inet-gprs.mtel.bg"
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!}!} }9}#}%B#}%}(}"}'}"}"}&} } } } }%}&VKD}1[7f])~
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Sun Feb 22 19:48:09 2009
--> Pid of pppd: 26823
--> Using interface ppp0
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> local IP address 10.161.47.249
--> pppd: 8[07][08]X¢[07][08][07][08]
--> remote IP address 10.64.64.64
--> pppd: 8[07][08]X¢[07][08][07][08]
--> primary DNS address 213.226.7.34
--> pppd: 8[07][08]X¢[07][08][07][08]
--> secondary DNS address 213.226.7.35
--> pppd: 8[07][08]X¢[07][08][07][08]
^CCaught signal 2: Attempting to exit gracefully...
--> Terminating on signal 15
--> pppd: 8[07][08]X¢[07][08][07][08]
--> Connect time 1.5 minutes.
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> pppd: 8[07][08]X¢[07][08][07][08]
--> Disconnecting at Sun Feb 22 19:49:38 2009
CTRL+C спира връзката.
Има няколко важни неща, които трябва да се видят тук. Това че сте свързан към GPRS access point при оператора ви все още не означава че компютъра ви може да ползва интернет. Трябва да се добави default route, със следния gateway:
--> remote IP address 10.64.64.64
Съответно:
# route add default gw 10.64.64.64
Ако преди това сте бил свързан към друг доставчик явно ще трябва да махнете default gw, който ви е от него.
При спирането на връзката може да забележите следния ред, който показва за колко време сте били connected:
--> Connect time 1.5 minutes.
Други статистики може да видите от ifconfig ppp0:
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.161.47.249 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:64 errors:0 dropped:0 overruns:0 frame:0
TX packets:317 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:7125 (6.9 KiB) TX bytes:53884 (52.6 KiB)
Конкретно това което ви интересува е RX и TX bytes, защото те струват пари. Не съм сигурен дали оператора отчита трафика по същия начин, за това не бих приел тези цифри много твърдо.
И финалния най-важен въпрос: колко бърз интернет можете да си пуснете - при мен стигна до четвърт мегабит:
wget http://mirrors.unixsol.org/linuxpackages//Slackware-12.0/ken/google-earth-4.2.205-i486-1kjz.tgz
--19:54:57-- http://mirrors.unixsol.org/linuxpackages//Slackware-12.0/ken/google-earth-4.2.205-i486-1kjz.tgz
=> `google-earth-4.2.205-i486-1kjz.tgz'
Resolving mirrors.unixsol.org... 193.110.159.35
Connecting to mirrors.unixsol.org|193.110.159.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22,863,884 (22M) [application/x-tar]1% [> ] 442,690 37.82K/s ETA 10:23
Това зависи от мрежата, която ви покрива. Максималните скорости са съответно:
- CSD (WAP dial-up) - 9.6 Kbps
- GPRS - 90 Kbps
- EDGE - 236 Kbps
- UMTS - 384 Kbps
- HSDPA - 14.4 Mbps downlink
Внимание: всичко различно от WAP CSD може сериозно да ви бръкне в сметката! MTEL дават 1MB трафик за 2.50 лв. Тарифата за WAP е 11 ст. на минута. Горното howto е писано за всичко от GPRS нагоре. За чист WAP ще експериментирам и тези дни вероятно ще пусна Part 3 на това howto.
Update: Операторката от телефон 1010 ми съобщи че MTEL от една година насам не предлагат CSD достъп, а само GPRS.








