<- Страничката на Георги

Използване на Bluetooth под Linux за достъп до Nokia 6230

Версии

Инструкциите са тествани и работят под Slackware-current (post 10.0), ядра 2.4.27 и 2.6.6, включен hotplug, KDE 3.2.3, UpSpeed Bluetooth USB Adapter и телефон Nokia 6230. Би трябвало да работят с всеки стандартен Bluetooth адаптер и телефон, който поддържа OBEX.

Настройки на ядрото

Трябва да имате поддръжка за Bluetooth в ядрото. В стандартното Slackware 10.0 ядро, поддръжката е включена на модули. За тези, които компилират собствени ядра, ето така изглежда конфигурацията на ядрото, отговаряща за bluetooth:

# Kernel 2.4.26 config
CONFIG_BLUEZ=m
CONFIG_BLUEZ_L2CAP=m
CONFIG_BLUEZ_SCO=m
CONFIG_BLUEZ_RFCOMM=m
CONFIG_BLUEZ_RFCOMM_TTY=y
CONFIG_BLUEZ_BNEP=m
CONFIG_BLUEZ_BNEP_MC_FILTER=y
CONFIG_BLUEZ_BNEP_PROTO_FILTER=y
CONFIG_BLUEZ_CMTP=m
CONFIG_BLUEZ_HCIUSB=m
CONFIG_BLUEZ_HCIUSB_SCO=y
CONFIG_BLUEZ_HCIUART=m
CONFIG_BLUEZ_HCIUART_H4=y
CONFIG_BLUEZ_HCIUART_BCSP=y
CONFIG_BLUEZ_HCIUART_BCSP_TXCRC=y
CONFIG_BLUEZ_HCIBFUSB=m
CONFIG_BLUEZ_HCIDTL1=m
CONFIG_BLUEZ_HCIBT3C=m
CONFIG_BLUEZ_HCIBLUECARD=m
CONFIG_BLUEZ_HCIBTUART=m
CONFIG_BLUEZ_HCIVHCI=m

Забележка: В Линукс 2.6 (тествано с 2.6.6 идващо със Slackware-10.0), конфигурацията е същата с една единствена промяна. Навсякъде _BLUEZ_ се заменя с _BT_.

След като ядрото ви има поддръжка на Bluetooth е необходимо да инсталирате библиотеките и помощните програми. Официалната страница на Bluez, Bluetooth стека за Linux е http://www.bluez.org/. От нея трябва да си свалите bluez-libs и bluez-utils (ако ги нямате на пакети във вашата дистрибуция). Освен това ще ви е необходима OpenOBEX библиотеката.

OBEX е протокола, чрез който ще прехвърляте файлове от и към Bluetooth устройството. Това е двоичен протокол, който прилича на HTTP. Официалната страница на OpenOBEX е http://openobex.sourceforge.net/.

Инсталация на библиотеки и помощни програми

Сваляне, конфигуриране и инсталиране на bluez-libs (като потребител)

wget http://bluez.sf.net/download/bluez-libs-2.10.tar.gz
tar xzvf bluez-libs-2.10.tar.gz
cd bluez-libs-2.10
./configure
make
su -c "make install"

Сваляне, конфигуриране и инсталиране на bluez-utils (като потребител)

wget http://bluez.sf.net/download/bluez-utils-2.10.tar.gz
tar xzvf bluez-utils-2.10.tar.gz
cd bluez-utils-2.10
./configure
make
su -c "make install"

Сваляне, конфигуриране и инсталиране на OpenOBEX (като потребител)

wget http://prdownloads.sourceforge.net/openobex/openobex-1.0.1.tar.gz
tar xzvf openobex-1.0.1.tar.gz
cd openobex-1.0.1
./configure
make
su -c "make install"

Активиране на Bluetooth адаптера

Сложете Bluetooth адаптера в някой свободен USB слот. Ако имате активиран hotplug, необходимите модули сами ще се заредят. Ако не ползвате hotplug изпълнете следните команди (като root):

modprobe bluez
modprobe l2cap
modprobe rfcomm
modprobe usb-uhci
modprobe hci_usb

След което проверете дали системата е открила bluetooth адаптера. Това става с командата hciconfig изпълнена като root.

root@gfhome:~# hciconfig
hci0:   Type: USB
        BD Address: 00:XX:XX:XX:XX:XX ACL MTU: 192:8  SCO MTU: 64:8
        DOWN
        RX bytes:388 acl:0 sco:0 events:18 errors:0
        TX bytes:320 acl:0 sco:0 commands:15 errors:0

В момента устройството е открито, но не е активно. Трябва да бъде активирано с командата hciconfig hci0 up изпълнена като root.

root@gfhome:~# hciconfig hci0 up
root@gfhome:~# hciconfig
hci0:   Type: USB
        BD Address: 00:XX:XX:XX:XX:XX ACL MTU: 192:8  SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN
        RX bytes:493 acl:0 sco:0 events:32 errors:0
        TX bytes:620 acl:0 sco:0 commands:28 errors:0

Включете Bluetooth-а на телефона си, след което изпълнете командата hcitool scan (като root) за да открите отдалечените устройства. Сканирането отнема около десет секунди.

root@gfhome:~# hcitool scan
Scanning ...
        00:XX:XX:XX:XX:XX       gf

В случая е открито едно устройство, което се казва gf (това е моят телефон).

Инсталация и настройка на приложен софтуер

Ако сте следвали инструкциите до тук и не е имало проблеми, значи вече имате работеща bluetooth връзка с телефона си. Остава да инсталираме приложен софтуер, който говори SDP и OBEX протоколите. SDP е протокола за откриване на услугите предоставяни от bluetooth устройство, а OBEX - протокола за обмен на файлове.

Проекта KDE предоставя необходимият ни софтуер в секцията kdeextragear. Тъй като за kdeextragear обикновенно няма пакети, изходният код трябва да се свали от ftp://ftp.kde.org/pub/kde/unstable/snapshots/ и да се компилира. За компилацията е нужно да имате инсталирани openobex, libogg и libvorbis библиотеките (последните две ги има на Slackware 10 CD в slackware/l/ директорията).

Сваляне, конфигуриране и инсталиране на KDE Extra Gear (като потребител)

wget ftp://ftp.kde.org/pub/kde/unstable/snapshots/kdeextragear-3.tar.bz2
bunzip2 -cd kdeextragear-3.tar.bz2 | tar xv
cd kdeextragear-3-`date +%y%m%d`
./configure --prefix=`kde-config --prefix`
cd kdebluetooth
make
su -c "make install"

След инсталацията трябва да настроим hcid демона да ползва kbluepin, когато е необходимо да пита за PIN код. Тази настройка се прави във файла /etc/bluetooth/hcid.conf, като реда:

pin_helper /usr/bin/bluepin;

се заменя с:

pin_helper /opt/kde/lib/kdebluetooth/kbluepin;

Още една небходима настройка е замяната на реда:

class 0x100;

с

class 0x100100;

След като сте направили промените в конфигурационният файл, стартирайте hcid и sdpd демоните. Те се ползват при комуникацията с bluetooth устройствата.

/usr/sbin/hcid
/usr/sbin/sdpd

Достъп до Bluetooth в KDE

След като сте инсталирали kdeextragear и сте стартирали hcid и sdpd, за да работи KDE Bluetooth модула, трябва или да рестартирате KDE или да убиете, kded и да го стартирате отново (kdekillall kded ; kded).

След това можете да ползвате в konqueror адреса bluetooth:/ за достъп до bluetooth (вижте картинките по-долу):

Bluetooth devices

Преглед на Bluetooth устройствата.

Bluetooth device services

Преглед на услугите предлагани от отдалечено Bluetooth устройство (в случая моят телефон).

PIN code question

Питането за PIN код, при опит за достъп до OBEX File Transfer.

Nokia 6230 directories

Директориите в телефона.

Освен ioslave-а bluetooth:/ в контексното меню на KDE се появява нов action - "Send to Bluetooth", той може да се използва за пращането на файл към телефона чрез OBEX Push.

Автоматично стартиране

За да можете след всеки рестарт да ползвате Bluetooth адаптера в /etc/rc.d/rc.local добавете следните редове:

# Bluetooth
/sbin/modprobe bluez
/sbin/modprobe l2cap
/sbin/modprobe rfcomm
/sbin/modprobe usb-uhci
/sbin/modprobe hci_usb
/usr/sbin/hciconfig hci0 up
/usr/sbin/hcid
/usr/sbin/sdpd
/usr/sbin/hciconfig

Връзки

Още инструкции за ползване на Bluetooth под Linux:

За автора

Този документ е написан от Георги Чорбаджийски. Документът се разпространява под GNU FDL лиценз. За корекции и допълнения пишете на следният емайл georgi@unixsol.org.

Valid XHTML 1.0!