от Георги Чорбаджийски(27-09-2004)

рейтинг (52)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Оригиналният адрес на HOWTO-то: http://georgi.unixsol.org/linux_bluetooth_nokia/

Версии

Инструкциите са тествани и работят под 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.



<< Напълно автономно делегиране на in-addr.arpa | [dyne:bolic] - Мултимедийно студио с отворен код >>