Используемое оборудование:

  • Sony VAIO C1F picturebook with RH80 and 2.4.20 kernel (handbuilt) 
  • 3Com Bluetooth card 3CRWB6096 
  • Nokia 6310i GSM

1) Приручаем Ядро

Скачиваем и устанавливаем с сайта www.bluez.sf.net
следующие пакеты:

Bluez-libs-2.3-1
Bluez-utils-2.2-1
Bluez-sdp-1.0rc2-1
Bluez-bluefw-0.9-1

Дописываем к /etc/modules.conf

# bluetooth stuff
alias net-pf-31 bluez
alias bt-proto-0 l2cap
alias bt-proto-2 sco
alias bt-proto-3 rfcomm

2) Работаем с Bluetooth

# /etc/rc.d/init.d/bluetooth start

Вставляем 3Com card. И видим:

cardmgr[602]: socket 0: 3Com Bluetooth PC Card
cardmgr[602]: executing: 'modprobe bt3c_cs'
bluefw[3859]: Loading firmware to pccard device 0101:0040
hcid[3784]: HCI dev 0 registered
cardmgr[602]: executing: './bluetooth start hci0'
/sbin/hotplug: no runnable /etc/hotplug/bluetooth.agent is installed
hcid[3784]: HCI dev 0 up

Далее проверяем работу карты:

# hciconfig
hci0: Type: PCCARD
BD Address: 00:04:76:C8:D3:E3 ACL MTU: 128:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN 
RX bytes:112 acl:0 sco:0 events:12 errors:0
TX bytes:308 acl:0 sco:0 commands:12 errors:0

Активируем Bluetooth на телефоне. 
Потом пишем # hcitool scan.
И видим:

Scanning ...
00:02:EE:60:97:6E

Всё телефон определён.

3) Теперь надо убедиться в том, что телефон поддерживает dial-up networking, что должно быть сделано с помощью команды:

# sdptool search DUN
Inquiring ...
Searching for DUN on 00:02:EE:60:97:6E ...
Service Name: Dial-up networking
Service RecHandle: 0x10031
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

4) Протестируем подключение к телефону с помощью l2ping.

# l2ping 00:02:EE:60:97:6E
Ping: 00:02:EE:60:97:6E from 00:04:76:C8:D3:E3 (data size 20) ...
0 bytes from 00:02:EE:60:97:6E id 200 time 39.76ms
0 bytes from 00:02:EE:60:97:6E id 201 time 35.67ms
0 bytes from 00:02:EE:60:97:6E id 202 time 32.21ms
3 sent, 3 received, 0% loss

Чтобы всё работало без проблем скачиваем по адресу
www.holtmann.org/linux/kernel/
заплатку 2.4.20-mh4 и применяем её:

# cd /usr/src
# patch -p0 < /tmp/patch-2.4.20-mh4

далее пишем

# make dep
# make bzImage && make modules && make modules_install

# rfcomm bind 0 00:02:EE:60:97:6E 1

И получаем

kernel: BlueZ RFCOMM ver 0.4
kernel: Copyright (C) 2002 Maxim Krasnyansky 
kernel: Copyright (C) 2002 Marcel Holtmann

5) Теперь приступаем к настройке pppd

Создаем файл /etc/ppp/peers/gprs следующего содержания:

/dev/rfcomm0 57600
connect '/usr/sbin/chat -v -f /etc/ppp/chat/gprs'
noauth
defaultroute
lock
debug
novjccomp
nopcomp
noaccomp
nodeflate
novj
nobsdcomp
default-asyncmap
ipcp-accept-local
ipcp-accept-remote
usepeerdns
user beeline
nodetach

При этом отключается всякое сжатие, как указано в рекомендациях сервисной службы beeline, и не происходит отключение от управляющего терминала, так что pppd можно остановить с помощью Ctrl-C.
В файл /etc/ppp/chat/gprs записываем команды /usr/sbin/chat:

# TIMEOUT 5
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
TIMEOUT 12
OK ATH
OK ATE1
OK AT+CGDCONT=1,"IP","internet.beeline.ru" #
в последних кавычках надо ввести APN своего оператора
OK ATD*99***1#
CONNECT

Вот и всё.
Теперь прописываем команду #pppd call gprs.
И мы в сети.

Check Also

Как стартовал Nginx. Игорь Сысоев о разработке знаменитого веб-сервера

12 декабря 2019 года в московском офисе разработчиков Nginx прошел неожиданный обыск, о ко…

Оставить мнение