Bluetooth PAN и GNU/Linux
Материал из PDA Prime_wiki
По мотивам
Дома я использую PC под управлением Debian/GNU Linux, работающий 24 часа в сутки, вполне логично использовать "несчастного" для обновления информации о погоде и курсе валют на своем PPC (FS Loox 718), ну и естественно диванного серфинга. =)
В качестве транспорта я решил использовать технологию bluetooth, для моей скромной квартиры этого более чем достаточно, да и usb-bluetooth адаптор от Tekram - [TM-304] был уже давно заготовлен.
Как я и говорил моей каждодневной OS является Debian/GNU Linux, релиз, скажу коротко Unstable. Я использую ядро ветки 2.6 с www.kernel.org собранное с mh2 патчем, поддержкой bluetooth (bnep), USB, фильтрации ip-пакетов (network packet filtering), маршрутизации.
В случае с Debian последовательность действий примерно такова:
- Устанавливаем пакеты hotplug, bluez-utils и dhcpd, если предполагается использовать динамическое распределение ip-адресов.
apt-get install hotplug bluez-utils (and dhcpd if you want autoconfiguration). - Подключаем usb-bluetooth адаптор.
- Выполняем hciconfig -a, вывод команды будет примерно таким:
root@ssh2:/home/al# hciconfig -a
hci0: Type: USB
BD Address: 00:0B:0D:05:FD:92 ACL MTU: 120:20 SCO MTU: 64:0
UP RUNNING PSCAN ISCAN
RX bytes:379 acl:0 sco:0 events:17 errors:0
TX bytes:319 acl:0 sco:0 commands:17 errors:0
Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'ssh2.usernet'
Class: 0x3e0100
Service Classes: Networking, Rendering, Capturing
Device Class: Computer, Uncategorized
HCI Ver: 1.2 (0x2) HCI Rev: 0x0 LMP Ver: 1.2 (0x2) LMP Subver: 0x757
Manufacturer: Silicon Wave (11)
- Попробуем найти BlueTooth устройства, hcitool scan:
root@ssh2:/home/al# hcitool scan
Scanning ...
00:09:2D:23:1E:3A Pocket LOOX
00:13:FD:6D:E4:0A Nokia 8800
В первом столбце указан mac-адрес устройства, а во втором, его имя заданное пользователем.
- Отредактируем /etc/default/bluetooth,
опцию PAND_ENABLED установим в 1,
определим следующие опции для PAND_OPTIONS: “--listen --role NAP --encrypt --auth”
- Добавим в /etc/network/interfaces:
allow-hotplug bnep0 iface bnep0 inet static address 192.168.126.1 netmask 255.255.255.0 up /etc/init.d/dhcp restart up /sbin/iptables -t nat -A POSTROUTING -s 192.168.126.0/24 -d 0.0.0.0/0 -j MASQUERADE down /sbin/iptables -t nat -D POSTROUTING -s 192.168.126.0/24 -d 0.0.0.0/0 -j MASQUERADE
- Изменим /etc/defaults/dhcp, добавив в директиву “INTERFACES”, bluetooth интерфейс - bnep0:
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="bnep0"
"Поправим" /etc/dhcpd.conf:
subnet 192.168.126.0 netmask 255.255.255.0 {
server-identifier 192.168.126.1;
server-name “ssh2”;
range 192.168.126.100 192.168.126.200;
option domain-name-servers insert-your-ns-here;
option routers 192.168.126.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.126.255;
default-lease-time 600;
max-lease-time 7200;
}
- В /etc/bluetooth/hcid.conf, раскомментировав директивы “auth enable;" и “encrypt enable;"
# Authentication and Encryption (Security Mode 3) auth enable; encrypt enable;
- В файл /etc/bluetooth/pin необходимо внести pin-код, который в дальнейшем будет использован для сопряжения с другими устройствами:
echo -n "553399" > /etc/bluetooth/pin
- Перезапустим сервис /etc/init.d/blues-utils restart
- Выполним:
echo 1 > /proc/sys/net/ipv4/ip_forward
И отредактируем /etc/sysctl.conf, для автоматической установки этого параметра при загрузке.
##############################################################3 # Functions previously found in netbase # ... # Uncomment the next line to enable packet forwarding for IPv4 #net/ipv4/ip_forward=1
- Осуществим сопряжение устройств, создадим подключение и начнем работать!
Bobr
del.icio.us
digg
facebook
Furl
Google
Memori
Mister Wong
News2
reddit
Slashdot
StumbleUpon