Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Linux a Bluetooth? Žádný problém! (návod)

aktualizováno 
Přinášíme vám detailní návod na zprovoznění Bluetooth komunikace pod operačním systémem Linux. Pokud se v problematice alespoň trochu orientujete, dokážete na svém počítači zprovoznit libovolné Bluetooth zařízení.

Naprostá většina odborných periodik až dosud řešila technologii Bluetooth spíše z teoretické stránky. Zabývala se jejím provedením, přednostmi nebo dostupnými zařízeními. - Všechny tyto informace si můžete podrobně přečíst ve specializované příloze. - Ovšem pokaždé se uvažovala relativně bezproblémová komunikace mezi samotnými mobilními zařízeními popřípadě s počítači používajícími operační systém MS Windows. Mnohem složitější je však zprovoznění Bluetooth pod Linuxem.

Oficiálně se o podpoře Linuxu u většiny Bluetooth produktů nedozvíte. Všichni mají na svých zařízeních většinou jen označení, že fungují pod operačním systémem MS Windows a o dalších platformách takticky mlčí. Musíte tedy oželet oficiálně podporované postupy i pohodlné utility. Protože ale existuje jen několik dodavatelů základních čipů, podle následujícího postupu dokážete pod Linuxem zprovoznit prakticky jakýkoliv Bluetooth hardware. A navíc bez nejmenších problémů se stabilitou.

Co budeme potřebovat?

Poslední stabilní jádro 2.4.19, popřípadě 2.4.20-pre1, soubory z BlueZ projektu

Řekněme si rovnou, že v jádru 2.4.19 není poslední verze jádra projektu BlueZ, který je jedinným oficiálním linuxovým BlueTooth stackem pod linux. Existují ještě i jiné projekty, jako je Affix a OpenBT, které ovšem nemají oficiální charakter, a v dnešní době neposkytují nic, co by BlueZ neposkytovalo také. Poslední jádro BlueZ má číslo verze 2.2 a je plně obsaženo v kernelu 2.4.20-pre1. Je možno využít buď soubor bluez-kernel-2.2.tar.gz ze sekce download na stránkách projektu BlueZ, nebo využít tento můj a Marcel Holtmannův patch, který je backportem celého jádra 2.2 z kernelu 2.4.20-pre1. patch-2.4.19-bluez-2.2.bz2

Co budeme dále potřebovat? Jsou to tyto soubory, které musíme stáhnout:

bluez-bluefw-0.4.tar.gz
bluez-hcidump-1.3.tar.gz
bluez-libs-2.0.tar.gz
bluez-sdp-0.7.tar.gz
bluez-utils-2.0.tar.gz

a v případě, že chceme využívat i síť složenou s BlueTooth zařízení i soubor bluez-pan-1.0.tar.gz

Dále potom buď ze stránek projektu BlueZ rfcommd-1.1.tar.gz s tímto patchem pro funkčnost se zařízeními s PalmOs patch-rfcommd-1.1.bz2, nebo ze stránky http://www.holtmann.org/linux/bluetooth/rfcomm.html stáhnout verzi rfcomm-0.8.tar.gz

My se budeme zabývat rfcommd-1.1 i když to dnes není již plně podporovaná záležitost. Tou je dnes rfcomm-0.8 ze stránek holtmann.org. Na druhou stranu o rfcommd-1.1 bylo napsáno tolik, že podle množství HowTo musí nastavit BlueZ každý.

Začněme. Jádro budeme překládat pro USB dongle využívající CSR čip - to je většina zařízení typu USB. Druhé zařízení, se kterým budeme komunikovat je mobilní telefon Nokia 6310.

Nejdříve patchneme naše stabilní jádro 2.4.19:

cd /usr/src;bzip2 -cd patch-2.4.19-bluez-2.2.bz2|patch -p0;cd linux-2.4.19;make menuconfig

Zaškrtneme tyto položky:

Bluetooth subsystem support
L2CAP protocol support
SCO links support
HCI USB driver
[*] Firmware download support

a přeložíme jádro standartními příkazy: make dep && make bzImage && make modules
a nainstalujeme jej příkazy: make modules_install; make install;lilo; reboot

Nyní rozbalíme naše soubory: gzip -cd bluez-libs-2.0.tar.gz|tar -xvf -
S ostatními soubory postupujeme obdobně.

Přeložíme podporu pro BlueZ - nejprve je potřeba nainstalovat knihovny, potom ostatní soubory. V kompilaci není žádný problém, postupujeme standartní cestou ./configure;make all;make install

Systém máme přípravený pro spuštění Bluetooth.

Začneme inicializací adaptéru:

modprobe hci_usb; modprobe l2cap
hciconfig hci0 up

Zapneme podporu Bluetooth na Nokii (menu 10) a necháme naším zařízením nokii nalézt:

hcitool -i hci0 inq

Dostaneme tuto odpověď:

Inquiring ...
00:02:EE:00:AB:B3 clock offset: 0x54b6 class: 0x502204

Telefon byl tedy nalezen. Zkusíme ho pingnout, zda-li funguje:

l2ping 00:02:EE:00:AB:B3
Ping: 00:02:EE:00:AB:B3 from 00:A0:96:1F:B0:0C (data size 20) ...
0 bytes from 00:02:EE:00:AB:B3 id 200 time 29.46ms
0 bytes from 00:02:EE:00:AB:B3 id 201 time 26.83ms
2 sent, 2 received, 0% loss

I zde je tedy vše v pořádku a přistoupíme k nastavování komunikace. Jako první musíme nastavit hcid, což je démon, starající se o výměnu hesel mezi oběma zařízeními a jejich spárování.

cijoml@notas:~/bluetooth$ cat /etc/bluetooth/hcid.conf
#
# HCI daemon configuration file.
#
# $Id: hcid.conf,v 1.1.1.1 2002/03/08 21:12:35 maxk Exp $
#

# HCId options
options {
# Automaticaly initialize new devices
autoinit yes;

# Security Manager mode
# none - Security manager disabled
# auto - Use local PIN for incomming connections
# user - Always ask user for a PIN

security auto;

# PIN helper
pin_helper /bin/bluepin;
}

# Default settings for HCI devices
device {
# Local device name
# %d - device id
# %h - host name
#name "BlueZ (%d)";
name "Linux";

# Local device class
class 0x100;

# Default packet type
pkt_type DH1,DM1,HV1;

# Inquiry and Page scan
iscan enable; pscan enable;

# Default link mode
# none - no specific policy
# accept - always accept incomming connections
# master - become master on incomming connections,
# deny role switch on outgoint connections
#
#lm accept,master;
lm master;

# Default link policy
# none - no specific policy
# rswitch - allow role switch
# hold - allow hold mode
# sniff - allow sniff mode
# park - allow park mode

#lp hold,sniff;
lp hold,sniff,park;

# Authentication and Encryption
#auth enable;
#encrypt enable;
}

Nyní je nutné nastavit démona, který pro nás obstarává komunikaci přes bluetooth - rfcommd. Démona nastavíme jako slave, master bude telefon (pro snadnější nastavování).

cijoml@notas:~/bluetooth$ cat /etc/bluetooth/rfcommd.conf
options {
psm 3;
ppp /usr/sbin/pppd;
ifconfig /sbin/ifconfig;
route /sbin/route;
firewall /sbin/iptables;
}

na {
channel 1;
up {
ppp "%d call gprsbt";
}
}

Nastavíme komunikaci přes ppp protokol:

cijoml@notas:~$ > cat /etc/ppp/peers/gprsbt
115200
cdtrcts
nodetach
noipx
noauth
connect '/usr/sbin/chat -v -f /etc/chatscripts/gprsbt'
noipdefault
ipcp-accept-local
local
novj
novjccomp
nobsdcomp
lcp-echo-interval 10
disconnect '/usr/sbin/chat -v -f /etc/chatscripts/provider-hang'
defaultroute
#usepeerdns
lock

cijoml@notas:~$ > cat /etc/chatscripts/gprsbt
TIMEOUT 10
ABORT BUSY
ABORT "NO CARRIER"
ABORT VOICE
ABORT "NO DIALTONE"
""
'\rATZ' OK
ATX3 OK
AT+CGDCONT=1,"IP","internet" OK
"ATD*99***1#" CONNECT

cijoml@notas:~$ > cat /etc/chatscripts/provider-hang
ABORT ERROR
''
+++ath0
'NO CARRIER'
ATZ
OK

A to je vše. Zde uvedené nastavení je pro operátora Ceský mobil a.s. a síť Oskar.

Jednoduše se spojíme příkazem

rfcommd -n -f /usr/local/etc/rfcommd.conf na 00:02:EE:00:AB:B3

Nokia oznámí připojené zařízení Linux, zvolíme OK, a zadáme číslo. Toto si nemusíme pamatovat, zadává se pouze jednou.

Abychom nemuseli řešit problém, že na náši plochu připojuje aplikace běžící pod rootem (hcid), zadáme xhost +. Vyjede na nás okénko, kde zadáme to samé číslo a potvrdíme. Zařízení jsou spárována, což nám Nokia oznámí a začne vytáčet a následně se spojí. Je dobré na Nokii vypnout u spárovaného zařízení požadavek autorizace spojení, abychom nemuseli toto potvrzovat při každém připojení přes notebook.

Jestli jste se dostali až sem, máte váš Linux vybaven podporou Bluetooth. Je dobré si ještě na telefonu vypnout u spárovaného zařízení požadavek autorizace spojení, abyste nemuseli toto potvrzovat při každém připojení přes notebook.

Aktualizace (13.8.2002): Opraveno chybné formátování textu

Autor:


Nejčtenější

Apple má tři nové iPhony. Podporují dvě SIM, ale v Česku to nefunguje

iPhone XS/XS Max

Apple letos představil tři nové iPhony, které navazují na loňský model X. Úplně nových smartphonů od Applu se ovšem...

Takto vypadá boj o zákazníky: pětkrát více dat a úhrada smluvní pokuty

Slovenský operátor O2 navýšil základní data u vybraných tarifů

Od revoluce v roce 2013 zažívá český mobilní trh spíše menší otřesy, zákazníci operátorů toužící po neomezeném tarifu s...



Konkurence se trefuje do „předražených“ nových iPhonů

Všechny tyto produkty Xiaomi stojí stejně, jako nový model iPhone XR

Na vysoké ceny novinek od Applu reagovali konkurenti poněkud posměšnými nabídkami. Ukazují v nich, co všechno z jejich...

Feministky kritizují nové iPhony. Jsou moc velké na ženskou ruku

iPhone XS/XS Max

Od doby, kdy Apple upustil od malých smartphonů, úhlopříčka nových modelů prudce narůstá. Nejnovější model ve verzi Max...

Nejnovější hodinky Apple Watch se povedly. Změří i elektrokardiogram

Apple představil Watch Series 4 s většími displeji a senzorem pro měření EKG

Přestože byly hlavními hvězdami tiskové konference Applu nové iPhony, zájem vzbudila i další generace chytrých hodinek....

Další z rubriky

Nejvíce chytrých hodinek prodá Apple. Nejčastěji staré modely

Watch Series 3 jako první hodinky od Applu nabídly LTE modem

Apple vkročil do segmentu chytrých hodinek před čtyřmi lety a dnes mu jednoznačně kraluje. Jeho nadvláda pokračovala i...

Úspornější displeje zajistí delší výdrž iPhonů, jsou však ještě ve vývoji

iPhone X se loni stal prvním telefonem Applu s moderním OLED displejem. Letos...

iPhony nikdy nebyly šampiony ve výdrži baterie, v této disciplíně patří mezi průměrné smartphony. Lepší výsledky by...

Čeští rodiče jsou pro plošný zákaz mobilů ve školách, ukazuje průzkum

Ilustrační snímek

Většina českých rodičů by uvítala plošný zákaz používání mobilů ve školách. Rozptylují prý od výuky, jsou zneužitelné...

Najdete na iDNES.cz