34.2. Bluetooth

Bluetooth je technologie, která umožňuje propojovat různá zařízení jako mobilní telefony, PDA, notebooky nebo připojovat periférie (např. myši a klávesnice). Své jméno tato technologie získala podle dánského krále Haralda Modrozubého (Bluetooth). Logo Bluetooth je odvozeno od run pro písmena „H“ (podobá se hvězdě) a „B“.

Na rozdíl od IrDA není nutné, aby na sebe zařízení viděla a lze propojovat navzájem více zařízení. Pomocí této technologie je možné dosáhnout přenosové rychlosti 720 Kb/s (v aktuální verzi 1.2). Čistě teoreticky lze tento způsob připojení používat i v případě takových překážek, jakou je zeď. V praxi samozřejmě záleží na tloušťce a materiálu, ze kterého je zeď postavena, a třídě zařízení. Maximální dosah této technologie je podle třídy 10 až 100 metrů.

34.2.1. Základy

V následující části najdete informace o pincipech Bluetooth. Seznámíte se s potřebným softwarem a způsobem komunikace Bluetooth rozhraní s vaším systémem a samozřejmě i s Bluetooth profily.

34.2.1.1. Software

Abyste mohli využívat Bluetooth, potřebujete Bluetooth adaptér (nejčastěji je integrovaný přímo v zařízení), ovladač a Bluetooth Protocol Stack.

Linuxové jádro již základní podporu Bluetooth obsahuje. Jako Protocol Stack slouží Bluez systém. Balíčky potřebné k používání Bluetooth:

  • bluez-libs

  • bluez-bluefw

  • bluez-pan

  • bluez-sdp

  • bluez-utils

34.2.1.2. Základní informace

Systém Bluetooth se skládá ze čtyř propojených vrstev:

Hardware

Adaptér a příslušný ovladač v linuxovém jádře.

Konfigurační soubory

Používané pro nastavení Bluetooth systému.

Démoni

Služby nastavené v konfiguračním souborech a poskytující služby.

Aplikace

Aplikace využívající služby démonů a ovládané uživateli.

Po vložení Bluetooth adaptéru systém hotplug zavede odpovídající ovladač. Po zavedení ovladače systém překontroluje konfigurační soubory, zda může Bluetooth spustit. Pokud ano, dojde ke spuštění služby a s ní spojených démonů. Z bezpečnostních důvodů je ve výchozím nastavení služba Bluetooth vypnuta.

34.2.1.3. Profily

V Bluetooth jsou služby definovány pomocí profilů jako např.. transportní profil nebo základní tiskový profil. Aby zařízení mohlo používat službu jiného zařízení, musí rozumět stejnému profilu — informace, která často chybí v balíčku zařízení a v manuálu. někteří výrobci se však nedrží definic profilů, což vede k tomu, že je komunikace mezi jednotlivými zařízeními často velmi problematická.

34.2.2. Nastavení

V následující části se dozvíte, jak nastavit Bluetooth na vašem počítači.

34.2.2.1. Nastavení Bluetooth pomocí programu YaST

Podporu Bluetooth nastavíte pomocí Bluetooth modulu programu YaST viz. obr. 34.2 – „YaST konfigurace Bluetooth“. Pokud je pak systémem hotplug detekován Bluetooth adaptér, je Bluetooth automaticky spuštěn s nastaveními provedenými v tomto modulu.

Obrázek 34.2. YaST konfigurace Bluetooth

YaST konfigurace Bluetooth

První krok nastavení v programu YaST představuje povolení spuštění služby Bluetooth. Po povolení služby Bluetooth na nutné provést dvě nastavení. První nastavení se týká položky Jméno stanice. Jde o jméno, které se zobrazí při připojení k systému (počítači) na zařízení. Použít můžete dvě proměnné—%h pro jméno počítače (užitečné, např. pokud je jméno přiřazováno dynamicky přes DHCP) a %d vracející číslo rozhraní (užitečné, pokud připojujete více Bluetooth zařízení najednou). Pokud do tohoto pole nastavíte Laptop %h a přes DHCP získá stanice jméno unit123, budou k počítači všechna vzdálená zařízení přistupovat jako k Laptop unit123.

Další povinnou částí je Správce bezpečnosti, kde nastavujete chován svého systému při připojení vzdfáleného zařízení. Správce bezpečnosti můžete zakázat, povolit lokální PIN nebo vyžadovat PIN vždy. Rozdíl mezi posledními dvěma položkami spočívá v tom, že v prvním případě se systém sice na PIN zeptá, ale pokud zařízení PIN neodešle nebo jen PIN chybný, spojení se přesto uskuteční. V druhém případě je PIN vyžadován vždy a spojení bez PINu nebo se zadáním chybného PINu se neprovedou. Z bezpečnostních důvodů vám doporučujeme použít třetí možnost, která navíc umožňuje používat pro různá zařízení různé PINy.

Dostupné služby (v Bluetooth nazývané profily) nastavíte v dialogu Pokročilá konfigurace démona.Služby lze povolit kliknutím na tlačítko Povolit a zakázat kliknutím na tlačítko Zakázat. V případě potřeby přenastavení služby jí upravíte jejím výběrem ze seznamu a kliknutím na tlačítko Upravit. Pokud nejste se službou blíže seznámeni, neměňte nastavení. Po provedení všech nastavení ukončete dialog kliknutím na tlačítko OK.

Dialog bezpečnostních nastavení, kde můžete nastavit šifrování, ověřování a nastavení skenování, vyvoláte v hlavním dialogu kliknutím na tlačítko Bezpečnostní volby. Zpět do hlavního dialogu se po nastavení vrátíte kliknutím na tlačítko OK. Všechna nastavení aktivujete kliknutím na tlačítko Konec.

Z hlavního dialogu je dostupný také dialog Zařízení a třídy služeb. Bluetooth zařízení jsou rozdělena do různých „tříd zařízení“. ZVolte pro svůj počítač správné zařazení jako „pracovní stanice“ nebo „notebook“. Nastavení třídy zařízení není tak důležité jako nastavení „třídy služeb“. Některá zařízení, např. mobilní telefony, totiž při špatně zvolené třídě služeb neumožňují využít všechny služby. Zvolit můžete několi tříd zároveň. Obvykle není vhodné předvolit všechny třídy současně. Ve většině případů je dostačující výchozí nastavení.

Pokud chcete nastavit síť, aktivujte v nabídce Pokročilá konfigurace démona profil PAND a nastavte režim služby pomocí tlačítka Upravit. Aby byla síť funkční, je nutné, aby na jednom počítači byl profil pand nastaven na naslouchací režim a na druhém počítači na vyhledávací. Výchozí nastavení je Listen. Upravte pand podle své potřeby. Dále nastavte rozhraní bnepX (X je číslo pořadí zařízení v systému) v modulu Síťová zařízení+Síťová karta.

34.2.2.2. Ruční konfigurace

Konfigurační soubory jednotlivých komponent Bluez systému se nacházejí v adresáři /etc/bluetooth. Výjimku představuje soubor /etc/sysconfig/bluetooth s nastaveními pro start komponent, který je upravován programem YaST module.

Konfiguraci popsanou v následujícím odstavci můžete provádět pouze jako uživatel root. V současné době zatím neexistuje žádný grafický konfigurační nástroj. Veškerá nastavení se provádějí pomocí editace textových souborů.

Při prvním spojení se nabídne zabezpečení pomocí PIN. PIN je číslo, které slouží např. u mobilních telefonů jako základní ochrana před nepovolanou manipulací s telefonem. Abyste mohli ovládat dva přístroje současně, musí mít oba stejný PIN. Na straně počítače PIN nastavíte v souboru /etc/bluetooth/pin. Bez ohledu na nainstalovaný počet externích zařízení umí Linux v současné době pracovat pouze s jedním PINem. Ovládání několika zařízení s různými PINy najednou není v současné době podporováno. Pokud tedy chcete ovládat více zařízení najednou, musí tato zařízení mít všechna stejný PIN, nebo vypněte ověřování pomocí čísla PIN.

[Important]Bezpečnost Bluetooth spojení

Bez ohledu na to, zda používáte PIN nebo ne, není spojení pomocí Bluetooth naprosto bezpečné!

V konfiguračním souboru /etc/bluetooth/hcid.conf lze provést řadu různých nastavení (např. jméno zařízení nebo režim bezpečnosti). Výchozí nastavení však obvykle není nutné měnit. Soubor obsahuje také popis jednotlivých voleb.

Aktivaci Bluetooth provedete v souboru /etc/bluetooth/hcid.conf. Zde můžete také změnit různá nastavení jako jméno zařízení či bezpečnostní režim. Soubor obsahuje u každé proměnné vysvětlující komentář.

Důležitou proměnnou je security auto. Pomocí této proměnné nastavujete použití PINu. V případě problémů se u tohoto nastavení použití PINu samo vypne. Pokud nechcete PIN používat vůbec, nastavte proměnnou na none. Z bezpečnostních důvodů by výchozí nastavení mělo být user. Uživatel pak bude při každém připojení požádán o PIN.

Zajímavé jsou také proměnné vázající se k zařízení. Pomocí těchto proměnných můžete zadat, pod jakým jménem bude zařízení připojeno k počítači. Dále jsou zde definována také jednotlivé třídy jako notebook, server atd. včetně ověřování a připojení.

34.2.3. Systémové komponenty a programy pro práci s Bluetooth

Bluetooth je možné používat pouze ve spojení s různými službami. Ke spuštění potřebujete minimálně dva démony:

hcid (Host Controller Interface)

-- k vytvoření a rušení spojení.

sdpd (Service Discovery Protocol)

-- k zjištění dostupných služeb.

Pokud nejsou démoni spuštěni automaticky při startu systému, lze je oba aktivovat příkazem rcbluetooth start. Tento příkaz musí být vykonán s právy uživatele root.

Následující text obsahuje stručný popis nejdůležitějších příkazů pro práci s Bluetooth. Ačkoliv je v současnosti pro ovládání Bluetooth dostupná řada grafických programů, může se vám znalost programů příkazové řádky hodit.

Některé příkazy lze vykonat pouze jako uživatel root. Jde například o příkaz l2ping <adresa_zarizeni>, kterou se testuje připojení vzdáleného zařízení.

34.2.3.1. hcitool

Prostřednictvím hcitool lze jednoduše určit, zda jde o lokální nebo vzdálené zařízení. Zařízení zobrazíte příkazem:

hcitool dev

Příkaz vypíše na každou řádku jedno zařízení ve formátu JmenoRozhrani AdresaZarizeni.

Příkazem hcitool AdresaZarizeni zjistíte jméno zařízení vzdáleného zařízení. Může jít například o další počítač, který má potřebné informace o třídě a jménu zařízení uložené v /etc/bluetooth/hcid.conf. V případě lokálních zařízení vám tento příkaz vrátí chybové hlášení.

Vzdálené zařízení se vyhledává pomocí příkazu hcitool inq. U každého zařízení získáte tři údaje: adresu zařízení, offset hodin a třídu zařízení. Adresa je důležitá, protože ji ostatní příkazy používají pro identifikaci cílového zařízení. Offset hodin slouží pouze k technickým účelům. Třída určuje typ zařízení a typ služby ve formě hexadecimálního čísla.

Příkaz hcitool jmeno<adresa-zarizeni> se používá k určení jména vzdáleného zařízení. V případě vzdáleného počítače je jméno stejné s informacemi v /etc/bluetooth/hcid.conf. Zadání lokální adresy povede k chybě výstupu.

34.2.3.2. hciconfig

Příkazem /usr/sbin/hciconfig získáte informace o lokálních zařízeních. Bez argumentů příkaz zobrazí informace o zařízení jako jméno (hciX), fyzickou adresu (dvanácti místné číslo ve formátu 00:12:34:56:78) a informace o přenesených datech.

hciconfig hci0 jmeno zobrazí jméno vrácené systémem po dotazu na vzdálené zařízení. Změnu nastavení lze provést s pomocí údajů získaných příkazem hciconfig. například hciconfig hci0 name TEST nastaví jméno na TEST.

34.2.3.3. sdptool

Informace o tom, jaká služba je pro určité zařízení dostupná, získáte pomocí sdptool.

Příkaz sdptool browse AdresaZarizeni předá všechny služby jednomu zařízení se zadanou adresou.

Naproti tomu příkaz sdptool search Sluzba vyhledá jednu určitou službu.

Příkaz se dotáže na všechna dostupná zařízení a vypíše jejich služby spolu s krátkým popisem těchto služeb. Seznam všech dostupných služeb získáte zadáním příkazu sdptool bez parametrů.

34.2.4. Grafické aplikace

V prohlížeči Konquerorzískáte seznam lokálních a vzdálených Bluetooth zařízení zadáním URL sdp:/. Dvojklikem na zařízení zobrazíte informace o zařízení. Pokud na zařízení umístíte kurzor, zobrazí se na stavové liště prohlížeče informace o profilu služby. Kliknutím na službu vyvoláte dialog nabízející uložení, použití služby (zařízení musí být aktivováno) nebo zrušení akce. Pokud nechcete, aby se dialog příště opět objevil a došlo přímo k vykonání služby, zatrhněte nabídku příště dialog nezobrazovat. Některá zařízení nejsou doposud podporována. Jiná vyžadují doinstalování dodatečných balíčků.

34.2.5. Příklady

Abyste si udělali přehled, co všechno je možné s Bluetooth dělat, připravili jsme pro vás několik příkladů.

34.2.5.1. Propojení počítačů R1 a R2

V prvním příkladě si ukážeme, jak se nastavuje připojení mezi dvěma počítači. Potřebovat k tomu budeme pand (Personal Area Networking)). Všechny příkazy z tohoto příkladu je nutné zadávat jako uživatel root. K nastavení síťového připojení bude potřebný také příkaz (ip).

Na jednom z počítačů spusťte pand (v našem případě označen jako R1) příkazem:

pand -s

Na druhém počítači R2 získejte adresu pomocí příkazu:

hcitool ing

Spojení pak navážete zadáním příkazu:

pand -c AdresaZarizeni

Zjistěte jaké zařízení systém nastavil pro připojení příkazem:

ip link show

získáte výstup v následujícím formátu:

 bnep0: &lt;BROADCAST,MULTICAST>gt; mtu 1500 qdisc noop qlen 1000 
    link/ether 00:12:34:56:89:90 brd ff:ff:ff:ff:ff:ff
    

Zařízení bnep0 byste měli přiřadit IP adresu.

To uděláte např. pomocí následujícím příkazů (na R1):

ip addr add 192.168.1.3/24 dev bnep0
ip link set bnep0 up

a na R2:

ip addr add 192.168.1.4/24 dev bnep0
ip link set bnep0 up

R1 je z R2 viditelný na adrese IP 192.168.1.3. Na počítač R2 se z počítače R1 můžete přihlásit příkazem:

ssh 192.168.1.4.

Příkaz ssh bude fungovat i pod normálním uživatelem.

34.2.5.2. Datový transfer z mobilního telefonu na počítač

V dalším příkladě se ukážeme, jak překopírovat obrázek z fotoaparátu mobilního telefonu (bez dodatečných nákladů např. za MMS) na disk počítače. Prosím uvědomte si, že každý typ telefonu má jinou strukturu nabídky, ale v základech je postup podobný na všech typech telefonů. Aby bylo možné z telefonu na počítač přistupovat , na počítači musí být aktivována služba Obex-Push. O to se stará démon opd z bluez-utils. Službu spustíte příkazem:

opd --mode OBEX --channel 10 --daemonize --path /tmp --sdp

Důležité jsou zde dva parametry. Parametr --sdp aktivuje sdpd. Parametr --path /tmp říká, kam budou data ukládána, v našem příkladu do adresáře /tmp. Samozřejmě si můžete zvolit jiný adresář, do kterého máte práva zápisu.

Nyní je potřebné spustit na telefonu Bluetooth připojení. Postup najdete v manuálu vašeho mobilního telefonu. Nezapomeňte nastavit na počítači v souboru /etc/bluetooth/pin PIN. Po úspěšném připojení pošlete pomocí Bluetooth obrázky na počítač. Postup zasílání obrázků najdete opět v manuálu mobilního telefonu. Mimo obrázků můžete samozřejmě přenášet také např. hudební soubory.

34.2.6. Řešení možných problémů

Pokud máte s nastavením Bluetooth problémy, projděte nejdřív následující seznam postupů. pamatujte, že k chybě může docházet jak na straně počítače, tak na straně zařízení. Pokud máte možnost, otestujte funkčnost zařízení s jiným adaptérem.

Je ve výstupu příkazu hcitool dev uvedeno lokální zařízení?

Pokud ve výstupu není lokální zařízení uvedeno, nespustil se hcid nebo nebylo rozpoznáno Bluetooth zařízení. Příčin může být vícero, zařízení může být porouchané nebo chybí správný ovladač. Notebooky s integrovaným Bluetooth adaptérem mají často pro bezdrátová zařízení vypínač. Zda je nutné zařízení nejdřív fyzicky zapnout zjistíte v manuálu svého notebooku. Restartujte Bluetooth příkazem rcbluetooth restart a podívejte se do souboru /var/log/messages, zda systém nevypisuje chyby.

Nepotřebuje Bluetooth adaptér soubor s firmwarem?

Pokud ano, nainstalujte balíček bluez-bluefw a restartujte Bluetooth příkazem rcbluetooth restart.

Vrací příkaz hcitool inq jiná zařízení?

Proveďte tento test víckrát než jednou. Může docházet k interferenci s jiným zařízením používajícím stejnou frekvenci.

Souhlasí PIN?

Překontrolujte, zda zadaný PIN (v souboru /etc/bluetooth/pin) souhlasí se zařízením.

Vidí“ vzdálené zařízení počítač?

Pokuste se navázat spojení ze vzdáleného zařízení. Překontrolujte, zda zařízení vidí počítač.

Nezdaří se síťové propojení počítačů z příkladu 1. (viz 34.2.5.1 – „Propojení počítačů R1 a R2“)

Příčin může být několik. Jedním může být skutečnost, že jeden nebo oba počítače nerozumí protokolu SSH. Otestujte, zda na sebe počítače vidí příkazy:

ping 192.168.1.3

a

ping 192.168.1.4

Pokud proběhnou příkazy bez problémů, ujistěte se, že běží sshd.

Další příčina může spočívat v tom, že jste nastavili jiné adresy, než jsou uvedeny v příkladu nebo jste pro oba počítače nastavili stejnou IP adresu. Změňte IP adresy.

Nedošlo k rozpoznání počítače jako cíle z propojení počítače a mobilního telefonu z příkladu 2.

Ujistěte se, že mobil rozpoznal službu Obex-Push na počítači. V nabídce mobilu je obvykle pro takové účely položka, která zobrazuje dostupné služby. Návod najdete v manuálu svého mobilního telefonu. Pokud není služba Obex-Push zobrazena, je problém na straně počítače u programu opd. Ujistěte se, že je opd spuštěn a že máte práva zápisu do zadaného adresáře.

Je možné kopírovat také z počítače na mobilní telefon?

Ano, kopírování je možné, pokud nainstalujete program obexftp a použijete příkaz:

obexftp -b AdresaZarizeni -B 10 -p Obrazek.

Tento postup byl testován na telefonech Siemens a Sony Ericsson a u jiných typů nemusí být funkční.

34.2.7. Další informace

Obsáhlý přehled různých návodů na používání a nastavení Bluetooth najdete na stránce http://www.holtmann.org/linux/bluetooth/.