Bluetooth

Pro zprovoznění Bluetooth (BT) na stroji s Ubuntu je nezbytný Bluetooth adaptér. Nejsnazší je zvolit si USB bluetooth adaptér. Pro svou funkčnost v Linuxu je mezi nimi doporučovaný například známý a testovaný adaptér značky MSI. Vybrala jsem si tedy USB bluetooth adaptér BToes 2.0 EDR Micro Dongle od výrobce MSI.

Kromě BT adaptéru je nutné v Linuxu zprovoznit modul hci_usb. Jeho funkčnost v Ubuntu otestujeme příkazem v terminálu:

sudo modprobe hci_usb

Příklad výstupu, pokud vše běží správně:

frontier@frontier-laptop:~$ sudo modprobe hci_usb
[sudo] password for frontier:
frontier@frontier-laptop:~$

POZOR! Modul hci_usb není v kernelu 2.6.27 a novějších! Byl přejmenovaný na btusb. (Quaker)

Proto i příkaz v terminálu bude znít následovně:

sudo modprobe btusb

Připojte Bluetooth USB adaptér do portu počítače nebo notebooku či laptopu.

Příkaz pro terminál, který ukáže zapojený USB bluetooth adaptér:

lsusb

Příklad výstupu, pokud není žádný problém (USB ve výpisu zde vidíte jako Bluetooth Dongle):

frontier@frontier-laptop:~$ lsusb
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Potřebné balíky pro Linux, distribuci Ubuntu (Ubuntu 8.04, ale stejné by měly být i pro verzi Ubuntu 8.10):

  • bluetooth
  • gnome-bluetooth
  • libgnomebt0
  • nautilus-sendto
  • bluez-audio
  • bluez-utils
  • bluez-cups
  • bluez-gnome
  • libbluetooth2
  • libbtctl4
  • gvfsbackends
  • obexftp (a možná i balík gnome-vfs-obexftp) anebo obex-data-server
  • obexpushd
  • obextool
  • openobex-apps
  • uspp-push
  • libopenobex1

POZOR! Kvůli konfliktu balíku libobexftp1 si je potřeba vybrat buď balík obex-data-server anebo balík obex-ftp! Závislost obou je na balíku libopenobex1.

Pokud v balících máme balík obexftp, je možné, že budeme pro správnou funkci Bluetooth potřebovat i balík gnome-vfs-obexftp (oboje namísto balíku obex-data-server).

Kromě toho si je možné (podle fóra Ubuntu) vybrat balík gnome-bluetooth anebo balík python-bluez.

Nyní již můžeme zapnout Bluetooth příkazem:

/etc/init.d/bluetooth start

Příklad výstupu příkazu pro terminál, startující Bluetooth, pokud je vše OK:

frontier@frontier-laptop:~$ sudo /etc/init.d/bluetooth start
[sudo] password for frontier:
 * Starting bluetooth                                                    [ OK ]

Potom napíšeme do terminálu příkaz pro výpis seznamu všech dostupných zařízení společně s jejich MAC adresami:

hciconfig

Příklad výstupu terminálového příkazu, pokud není s bluetooth žádný problém (BD je ve výpisu MAC adresa Bluetooth Dongle):

frontier@frontier-laptop:~$ hciconfig
hci0:	Type: USB
	BD Address: 00:15:83:12:F2:09 ACL MTU: 310:10 SCO MTU: 64:8
	UP RUNNING PSCAN ISCAN
	RX bytes:981 acl:0 sco:0 events:26 errors:0
	TX bytes:348 acl:0 sco:0 commands:24 errors:0

Zapneme bluetooth na mobilním telefonu a v terminálu naťukáme příkaz, který ukáže všechna zařízení s aktivním a viditelným bluetooth (mobilní telefony) včetně jejich MAC adres:

hcitool scan

Příklad výstupu příkazu pro terminál, když je vše v pořádku (ve výpisu vidíme mobil Nokia 6600):

frontier@frontier-laptop:~$ hcitool scan
Scanning ...
	00:0E:6D:A0:9A:FF	Nokia 6600

Jestliže se Vám nezobrazí žádný konkrétní výstup příkazu hcitool scan (kde je uveden typ mobilního telefonu a jeho MAC adresa), podívejte se, prosím, zda ve svém mobilu máte zapnutou viditelnost Vašeho mobilního telefonu. V případě, že máte (například z bezpečnostních důvodů) viditelnost Vašeho mobilu nastavenou jako skrytý (mobilní telefon), pak Vám ani příkaz hcitool scan neukáže vůbec žádné zařízení (mobil), navzdory tomu, že všechno funguje tak, jak má.

Pokud chceme nastavit PIN nejprve v počítači (ne nejdříve v mobilu), zeditujeme jako root soubor pin v adresáři /etc/bluetooth/pin. Stačí tam dopsat čtyřmístné číslo a uložit jako root. Terminálový příkaz je následující:

sudo gedit /etc/bluetooth/pin

Uvedený PIN slouží k potvrzení připojení mobilu a počítače, a bude ho pak mobilní telefon vyžadovat. Také PC bude potom chtít tento PIN jako „klíč“ pro ověření při spárování mobilu a počítače. Zdali je mobil bezproblémově k dispozici můžeme otestovat následujícím příkazem v syntaxi l2ping MAC adresa mobilu, kterým pingneme na MAC adresu mobilu a hned uvidíme výsledek.

Příklad výstupu příkazu v terminálu pro dosažitelnost mobilu, pokud jede vše tak, jak má:

frontier@frontier-laptop:~$ sudo l2ping 00:0E:6D:A0:9A:FF
Ping: 00:0E:6D:A0:9A:FF from 00:15:83:12:F2:09 (data size 44) ...
0 bytes from 00:0E:6D:A0:9A:FF id 0 time 42.85ms
0 bytes from 00:0E:6D:A0:9A:FF id 1 time 16.91ms
0 bytes from 00:0E:6D:A0:9A:FF id 2 time 16.99ms
0 bytes from 00:0E:6D:A0:9A:FF id 3 time 16.97ms
0 bytes from 00:0E:6D:A0:9A:FF id 4 time 15.98ms
0 bytes from 00:0E:6D:A0:9A:FF id 5 time 16.97ms
0 bytes from 00:0E:6D:A0:9A:FF id 6 time 14.97ms
0 bytes from 00:0E:6D:A0:9A:FF id 7 time 14.98ms
0 bytes from 00:0E:6D:A0:9A:FF id 8 time 14.96ms
0 bytes from 00:0E:6D:A0:9A:FF id 9 time 15.95ms
0 bytes from 00:0E:6D:A0:9A:FF id 10 time 14.97ms
0 bytes from 00:0E:6D:A0:9A:FF id 11 time 16.99ms
0 bytes from 00:0E:6D:A0:9A:FF id 12 time 15.99ms
0 bytes from 00:0E:6D:A0:9A:FF id 13 time 16.96ms
0 bytes from 00:0E:6D:A0:9A:FF id 14 time 15.99ms
15 sent, 15 received, 0% loss

Nejdříve musíme BT nastartovat, což uděláme buď v terminálu (viz výše) anebo ťukneme na ikonku Bluetooth (do panelu si ji přidáme příkazem bluetooth-applet) a po připojení bluetooth k počítači se v oznamovací části panelu objeví ikona signalizující stav (aktivní bluetooth). V případě, že se ikonka nezobrazí, podívat se do SystémVolbySezení, zda tam je aktivovaný Správce Bluetooth (bluetooth-applet). Kromě toho si také zapnout bluetooth v systémových službách, tedy dát SystémSprávaSlužby a jako root zaškrtnout Správa zařízení Bluetooth. Samozřejmě je třeba nezapomenout zapnout Bluetooth připojení i na mobilu.

Nastavení

Nastavení Bluetooth je možné v SystémVolbyBluetooth, případně po kliknutí pravým tlačítkem myši na ikonu BT v panelu (ne v oznamovací oblasti panelu!) a vybráním Nastavení. Obrázek ukazuje již spárované zařízení, návod pro spárování je uveden níže.

První, co musíte udělat, pokud chcete Bluetooth používat, je vytvořit spojení mezi zařízeními, jinými slovy je spárovat.

POZOR!!! Předtím je ale nezbytné spustit též Sdílení souborů přes Bluetooth, jinak žádný soubor nepošlete. Zapnout na počítači toto sdílení souborů pomocí BT můžete buď prostřednictvím kláves Alt+F2 a příkazu gnome-obex-server anebo v AplikacePříslušenstvíSdílení souborů přes Bluetooth. Pak by se v tray (area) panelu měla objevit ikonka bluetooth vysílače.

gnome-obex-server přijímaný soubor ukládá do adresáře /home/user/Desktop. Tento je ovšem u lokalizovaných Ubuntu nahrazen adresářem Plocha, proto se soubor neuloží, ale Ubuntu nezobrazi ani chybovou hlášku. Řešením je např. vytvoření adresáře Desktop a povolením zápisu do něj.

Nejjednodušší je párování začít z jiného přístroje, např. mobilního telefonu. Poté se na počítači zobrazí upozornění a dialog pro zadání hesla (nazývaného také klíč anebo PIN), které jste zvolili na svém telefonu.

Pokud máte problémy se spárováním mobilu a počítače s Ubuntu, ujistěte se, prosím, že jste postupně krok za krokem provedli všechny kroky uvedené výše. Častým problémem je, že bluetooth nefunguje, i když PC mobilní telefon „vidí“ správně (MAC adresa mobilu), což je způsobeno jenom tím, že chybí nějaký výše uvedený krok. (například není zapnuto sdílení souborů přes Bluetooth)

Použití

Odesílání souborů

Po spárování zařízení je již možné jednoduše posílat soubory. Nejjednodušší způsob odesílání souborů je v Nautilu kliknutí pravým tlačítkem na příslušný soubor a vybráním volby Odeslat. V otevřeném okně zvolte, že chcete posílat přes Bluetooth (OBEX Push) a vyberte zařízení, na které chcete soubor odeslat.

Další možnost je kliknout pravým tlačítkem myši na ikonu Bluetooth umístěnou v oznamovací oblasti, tedy tray (area) panelu a zvolit Odeslat soubor…

Testováno v Ubuntu 8.04 s mobilem Nokia 3110 Classic a adaptérem BToes 2.0 EDR Micro Dongle od MSI, není problém. Testovala jsem i mobil Nokia 6600 (Symbian series60), ale tam nefungovalo posílání souborů z mobilního telefonu. Posílání souborů počítač → mobil bylo v pořádku.

Procházení souborů

Přes Bluetooth je také možné prohlížet soubory na vzdáleném zařízení, např. mobilním telefonu. Klikněte pravým tlačítkem myši na ikonu v panelu a zvolte Procházet zařízení… Poté vyberte příslušné zařízení a následně se otevře prohlížeč souborů.

Předpokládá se funkční PulseAudio, pro větší pohodlí i GUI pro jeho ovládání (balíček pavucontrol) a znalost MAC adresy vašeho zařízení. MAC adresu nejsnáze zjistíte tak, že zařízení podle návodu připravíte ke spárování a použijete příkaz

hcitool scan

A2DP (stereo sluchátka)

A2DP (Advanced Audio Distribution Profile) protokol umožňuje jednosměrný přenos stereo zvuku.

Do souboru ~/.asoundrc (osobní nastavení ALSA) přidejte následující:

pcm."BT sluchátka" {
	type bluetooth
	device XX:XX:XX:XX:XX:XX
	profile hifi
}

kde XX:XX:XX:XX:XX:XX je MAC adresa vašich sluchátek.

Pak upravte soubor ~/.pulse/default.pa (osobní default script pro PulseAudio) tak, aby vypadal následovně:

.include /etc/pulse/default.pa

.nofail
load-module module-alsa-sink device="BT sluchátka"

POZOR: sice to není vidět, ale podle mé zkušenosti musí být na konci scriptu volný řádek, jinak PulseAudio selhává!

POZNÁMKA: testováno na sluchátkách Jabra BT620s v Ubuntu 8.04 a až na pár detailů to funguje bezvadně.

Odhlaste se a před opětovným přihlášením zapněte (pokud jste tak již neučinili) jak Bluetooth adaptér počítače, tak headset a spusťte PulseAudio Volume Control. Na záložce s nastavením hlasitosti výstupních zařízení by teď měl být vidět další ovladač hlasitosti pro vaše sluchátka.

HSP (headset)

HSP je protokol používaný mono headsety (hodí se pro VoIP a podobně).

Do souboru ~/.asoundrc (osobní nastavení ALSA) přidejte následující:

pcm."BT headset" {
	type bluetooth
	device XX:XX:XX:XX:XX:XX
	profile voice
}

kde XX:XX:XX:XX:XX:XX je MAC adresa vašeho headsetu.

Pak upravte soubor ~/.pulse/default.pa (osobní default script pro PulseAudio) tak, aby vypadal následovně:

.include /etc/pulse/default.pa

.nofail
load-module module-alsa-sink device="BT headset"
load-module module-alsa-source device="BT headset"

POZOR: sice to není vidět, ale podle mé zkušenosti musí být na konci scriptu volný řádek, jinak PulseAudio selhává!

POZNÁMKA: To co skript provádí automaticky při spouštění PulseAudia se dá dělat i manuálně (případně shell scriptem) pomocí nástroje pactl. Příkaz pak vypadá například takto:

pactl load-module module-alsa-source device="BT headset"

Odhlaste se a před opětovným přihlášením zapněte (pokud jste tak již neučinili) jak Bluetooth adaptér počítače, tak headset a spusťte PulseAudio Volume Control. Na záložce s nastavením hlasitosti vstupních a výstupních zařízení by teď měl být vidět další ovladač hlasitosti pro váš headset.

Odkazy