13 мая, 2007

GPRS соединение в Linux via bluetooth

Вы собрались выехать на природу, дачу, море, на отдых, или в командировку по работе, и Вам необходим беспроводной интернет для общения (e-mail, ICQ, jabber, например), серфинга по www-страницам и прочему.


Итак, настраиваем GPRS-интернет соединение через bluetooth для
БиЛайн, МТС, МегаФон. Предпологается, что GPRS-пакет подключен.
При настройке соединения с интернет-провайдером использовались телефоны Siemens 65 серии и Sony Ericsson k750i, операционные системы Debian GNU/Linux 4.0 "Etch", Ubuntu 7.04 "Feisty Fawn", ASP Linux 11.2, но должно работать и в других Linux-подобных ОС
Проверялось как в консольном режиме (браузер lynx, IM-клиент centericq),
так и в графическом iceWM, Gnome, KDE.


Итак, установливаем следующие пакеты:
[+]ppp
[+]wvdial
[-]libuniconf4.2
[-]libwvstreams4.2-base
[-]libwvstreams4.2-extras
[-]libxplc0.3.13
[+]bluetooth
[-]bluez-utils
[+]bluez-hcidump
[-]libbluetooth2

~$ su или ~$ sudo -s // получаем права суперпользователя

~# apt-get install ppp wvdial bluetooth bluez-hcidump
или выбираем предложенные пакеты в synaptic

После установки пакетов производим следующие настройки:
~# nano /etc/wvdial.conf
[Dialer Defaults]
Modem = /dev/rfcomm0
Baud = 115200
Init1 = ATZ
Init2 = AT+CGDCONT=1,"IP","internet.beeline.ru"
Phone = *99***1#
Username = beeline
Password = beeline

для пользователей МТС изменяем beeline на mts

~# nano /etc/resolv.conf
nameserver 217.118.66.243 # один из DNS Би Лайн
nameserver 213.87.0.1 # один из DNS МТС

~$ hciconfig // подцепляем bluetooth адаптер на ноуте

~$ hcitool scan // сканируем девайсы с синим зубом

~# rfcomm bind 0 [полученный мак-адрес] 1


update (triklozoid)

rfcomm bind 0 [полученный мак-адрес] 1
не всегда имеет такой вид.
Нужно сначала выполнить "sdptool browse MAC-адрес" и посмотресть параметр channel у службы Dialup-Networking.
В моем случае канал оказался второй, а не первый. Таким образом команда имеет вид
rfcomm bind 0 MAC-адрес CHANNEL


соединяемся...
~$ wvdial
--> WvDial: Internet dialer version 1.56
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT+CGDCONT=1,"IP","internet.beeline.ru"
AT+CGDCONT=1,"IP","internet.beeline.ru"
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!}!} }8}#}$@#}(}"}'}"}"}&} } } } }%}&[1f]R.hx5~
--> Carrier detected. Waiting for prompt.
~[7f]}#@!}!}"} }8}#}$@#}(}"}'}"}"}&} } } } }%}&[1f]R.h2'~
--> PPP negotiation detected.
--> Starting pppd at Sat May 12 00:45:04 2007
--> Pid of pppd: 12892
--> Using interface ppp0
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> local IP address 10.1.***.***
--> pppd: H[08][07][06][08]@
--> [06][08]
--> remote IP address 217.118.***.***
--> pppd: H[08][07][06][08]@
--> [06][08]
--> primary DNS address 217.118.66.243
--> pppd: H[08][07][06][08]@
--> [06][08]
--> secondary DNS address 217.118.66.244
--> pppd: H[08][07][06][08]@
--> [06][08]
Всё готово, Вы во всемирной паутине :-)
жмем ctrl-c для завершения сеанса
Caught signal 2: Attempting to exit gracefully...
--> Terminating on signal 15
--> pppd: H[08][07][06][08]@
--> [06][08]
--> Connect time 10.7 minutes.
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> Disconnecting at Sat May 12 00:55:43 2007

сейчас играет: Fatum - Russian Night

Update:
Пишем скрипт для подключения в Убунту Debian/Ubuntu GRPS/EDGE, а также USB EVDO модем