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ší

iPhone X
iPhonů X bude zoufale málo. Vyprodáno může být za pár minut

Uvedení iPhonu X se blíží, předobjednávky Apple spustí za několik dnů a první kusy zamíří ke koncovým zákazníkům už 3. listopadu. Telefonů však bude ve...  celý článek

Navigace testuje majáky v pražskému tunelu
V tunelu se už neztratíte. Pomáhají majáky za 610 korun

Populární navigační aplikace Waze se v Praze možná dočká příjemného vylepšení. V tunelu, kde není dostupný signál z navigačních satelitů GPS, se bude...  celý článek

Vedoucímu hotelové služby explodoval v kapse košile Samsung Galaxy Grand Duos.
V kapse košile ucítil teplo, krátce poté jeho samsung explodoval

Nepříjemné chvilky zažil o poslední zářijové sobotě 47letý hotelový provozní Yulianto, v náprsní kapse jeho košile mu totiž explodoval telefon Samsung Galaxy...  celý článek

Honor 6A
Nenápadný premiant nižší třídy. Vyzkoušeli jsme Honor 6A

Nejlevnější model v nabídce značky Honor je dobrým příkladem toho, jak se mají dělat levné smartphony. Soustředí se na baterii, kvalitu displeje a na systém,...  celý článek

iPhone X
Je to konec mýtické čtečky v displeji? Výrobci sázejí na obličej

Čtečka otisků integrovaná do displeje měla být jednou z hlavních letošních inovací na poli smartphonů. Technologie je ovšem natolik složitá, že výrobci od...  celý článek

Další z rubriky

Nové ovládací centrum umožňuje přidávat další funkce.
Nový Android má extrémně málo smartphonů. U Applu je to úplně jinak

Díky tomu, že Apple si sám vyvíjí software i hardware, je aktualizace iPhonů a iPadů velmi snadná. Naopak Android má roztříštěnou základnu přístrojů od tisíců...  celý článek

Za nový iPhone 8 si nechal na ruku vytetovat logo T-Mobilu
Chtěl iPhone zdarma a tak si nechal vytetoval logo T-Mobilu

Neobvyklý způsob, jak si pořídit nový mobil, zvolil muž z USA. Domluvil se s ředitelem T-Mobilu, že si nechá vytetovat logo tohoto operátora na ruku výměnou za...  celý článek

iPhone X
Je to konec mýtické čtečky v displeji? Výrobci sázejí na obličej

Čtečka otisků integrovaná do displeje měla být jednou z hlavních letošních inovací na poli smartphonů. Technologie je ovšem natolik složitá, že výrobci od...  celý článek

Akční letáky
Akční letáky

Prohlédněte si akční letáky všech obchodů hezky na jednom místě!

Najdete na iDNES.cz



mobilní verze
© 1999–2017 MAFRA, a. s., a dodavatelé Profimedia, Reuters, ČTK, AP. Jakékoliv užití obsahu včetně převzetí, šíření či dalšího zpřístupňování článků a fotografií je bez souhlasu MAFRA, a. s., zakázáno. Provozovatelem serveru iDNES.cz je MAFRA, a. s., se sídlem
Karla Engliše 519/11, 150 00 Praha 5, IČ: 45313351, zapsaná v obchodním rejstříku vedeném Městským soudem v Praze, oddíl B, vložka 1328. Vydavatelství MAFRA, a. s., je členem koncernu AGROFERT.