Пример настройки выхода через Bluetooth - GPRS в Интернет под Linux
Сначала нужно кое-что скачать. Идем на bluez.sourceforge.net и скачиваем патч, соответствующий версии ядра, и вот этот софт:
bluez-hcidump
bluez-sdp
bluez-utils
bluez-lib
На машине должны быть уже установлены исходники ядра и набор development для компиляции.
После этого запускаем патч и идем в настройки ядра:
в разделе Bluetooth Support включаем:
Bluetooth subsystem support
L2CAP protocol support
SCO links support
RFCOMM protocol
RFCOMM tty support
BNEP protocol support
Bluetooth device drivers:
HCI USB driver
HCI VHCI (Virtual HCI device) driver
В разделе USB support ничего не трогаем. Собираем ядро и инсталлируем 4 скаченных софта. После перезагрузки система готова к работе.
Далее настраиваем адаптер.
#hciconfig hci0 up
#hciconfig
hci0: Type: USB
BD Address: 00:08:F4:00:15:63 ACL MTU: 192:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:575364 acl:25941 sco:0 events:2068 errors:0
TX bytes:124500 acl:1742 sco:0 commands:336 errors:0
Это значит, что адаптер виден и работает.
Поиск работающих Bluetooth устройств выглядит так:
# hcitool scan
Scanning ...
00:0A:D9:3E:2D:20 T610
00:02:C7:11:44:1E iPAQ PocketPC
Перед именем устройства показан его адрес.
Можно еще проверить связь с каждым устройством -
# l2ping 00:0A:D9:3E:2D:20
Ping: 00:0A:D9:3E:2D:20 from 00:08:F4:00:15:63 (data size 20) ...
0 bytes from 00:0A:D9:3E:2D:20 id 200 time 58.86ms
0 bytes from 00:0A:D9:3E:2D:20 id 201 time 48.36ms
0 bytes from 00:0A:D9:3E:2D:20 id 202 time 42.20ms
0 bytes from 00:0A:D9:3E:2D:20 id 203 time 39.05ms
0 bytes from 00:0A:D9:3E:2D:20 id 204 time 35.90ms
0 bytes from 00:0A:D9:3E:2D:20 id 205 time 40.75ms
6 sent, 6 received, 0% loss
Далее настраиваем работу с телефоном.
Имя устройства (компьютера, в котором стоит Bluetooth-адаптер) находится в файле /etc/bluetooth/hcid.conf в разделе device.
Код для pairing записываем в /etc/bluetooth/pin, при этом инициализируется сопряжение устройств со стороны телефона.
После редактирования этих двух файлов выполняем:
#hcid restart
Далее выполняем:
#mknod /dev/rfcomm0 c 216 0
Теперь можно работать с GPRS!
# rfcomm connect /dev/rfcom0 00:0A:D9:3E:2D:20 1
Connected /dev/rfcomm0 to 00:0A:D9:3E:2D:20 on channel 1
Press CTRL-C for hangup
00:0A:D9:3E:2D:20 - это в данном случае адрес телефона, он получается после выполнения сканирования устройств.
А в другой консоли запускаем стандартную программу работы с модемом - в моем случае это был wvdial.
# wvdial
--> WvDial: Internet dialer version 1.42
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Modem initialized.
--> Idle Seconds = 3000, disabling automatic reconnect.
--> Sending: ATDT*99***2#
--> Waiting for carrier.
ATDT*99***2#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Aug 28 11:55:57 2003
--> pid of pppd: 12634
--> pppd: Using interface ppp0
--> pppd: local IP address 213.87.11.165
--> pppd: remote IP address 213.87.11.164
--> pppd: primary DNS address 213.87.0.1
--> pppd: secondary DNS address 213.87.1.1
--> pppd: Script /etc/ppp/ip-up run successful
--> Default route Ok.
--> Connected... Press Ctrl-C to disconnect
В конфигурации файла работы с модемом в качестве порта указываем /dev/rfcomm0, все остальное - стандартные настройки.
У меня конфиг примерно такой:
[Dialer Defaults]
Modem = /dev/rfcomm0
Baud = 57600
Area Code =
Phone = *99***2#
Username =mts
Password =mts
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Force Address =
Idle Seconds = 3000
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1
Автор: dEaTh KnIgHt
|