Използване на 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 устройствата.
Преглед на услугите предлагани от отдалечено Bluetooth устройство (в случая моят телефон).
Питането за PIN код, при опит за достъп до OBEX File Transfer.
Директориите в телефона.
Освен 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:
- Make your Arch Linux a Bluetooth Access Point
- Bluetooth file transfer between KDE 3.2 in Slackware Linux 9.1 and SonyEricsson P900
- Sony Ericsson P900 and Linux
- Nokia 7650 & Bluetooth & Linux
- SonyEricsson z600 and Linux
- Bluetooth and Linux
- KDE Bluetooth
- Of Linux, GPRS Phones, Serial Cable, Irda, Bluetooth and USB
- Tom's attempts to get GPRS working over bluetooth with his laptop
За автора
Този документ е написан от Георги Чорбаджийски. Документът се разпространява под GNU FDL лиценз. За корекции и допълнения пишете на следният емайл georgi@unixsol.org.