Bluetooth (Čeština)
Bluetooth je standard pro bezdrátové propojení mobilních telefonů, počítačů a dalších elektronických zařízení krátkého dosahu. V Linuxu je kanonická implementace balíku protokolů Bluetooth BlueZ.
Instalace
Nainstalujte balíčky bluez a bluez-utils. Balíček bluez poskytuje sadu protokolů Bluetooth a balíček, bluez-utils poskytuje nástroj bluetoothctl
.
# pacman -S bluez bluez-utils
Vložte obecný ovladač bluetooth, pokud již nebyl vložen:
# modprobe btusb
Přes systemd nastartujte službu bluetooth.service
.
# systemctl start bluetooth.service
Můžete také povolit automatický start při bootu.
# systemctl enable bluetooth.service
Grafické nadstavby
Následující balíčky vám umožní využívat grafické prostředí k nastavování Bluetooth.
Blueman
blueman je program pro správu Bluetooth. Je naprogramován v GTK a používá se hlavně v GNOME nebo Xfce. Nainstalujte blueman nebo blueman-gitAUR z AUR.
Ujistěte se, že bluetooth daemon běží a spusťte příkaz blueman-applet. Pokud chcete, aby se applet spouštěl automaticky při přihlášení přidejte blueman-applet do System -> Preferences -> Startup Applications (GNOME) nebo v Xfce Menu -> Settings -> Session and Startup (Xfce).
Pozn.: Pokud nepoužíváte nautilus, může vám být užitečné toto:
#!/bin/bash fusermount -u ~/bluetooth obexfs -b $1 ~/bluetooth thunar ~/bluetooth
bez fusermount -u /mountpoint pravděpodobně skončí s chybovou hláškou způsobenou nesprávným odpojením fuse filesystému.
Následně budete muset přesunout skript (obex_thunar.sh) do /usr/bin, a potom spustit:
$ chmod +x /usr/bin/obex_thunar.sh
Jako poslední věc byste měli změnit řádek v Local Services > Transfer > Advanced to obex_thunar.sh %d
gnome-bluetooth
gnome-bluetooth je odnož starého bluez-gnome a je zameřeno na integraci s desktopovým prostředím GNOME. Nejdříve nainstalujte gnome-bluetooth:
# pacman -S gnome-bluetooth gnome-user-share
Spusťte příkaz bluetooth-applet. Měla by se vám objevit malá ikonka bluetooth v tray. Kliknutím pravým tlačítkem na ikonu je možné přidávat a spravovat nová zařízení nebo posílat soubory. Pokud chcete, aby se applet spouštěl po přihlášení, přidejte ho do System -> Preferences -> Startup Applications.
bluedevil
Hlavním nástorojem pro správu Bluetooth v KDE4 je program bluedevil. Pro instalaci spusťte:
# pacman -S bluedevil
Ujistěte se, že vám v pozadí běží daemon pro práci s bluetooth. Po spuštění programu by se měla objevit ikona v Dolphinu a v tray. Odteď pomocí ní můžete konfigurovat bluedevil a spravovat bluetooth zářízení. To můžete také z nastavení systému v KDE.
Fluxbox, openbox a další
Samozřejmě, že můžete používat předchozí aplikace, i když jako svoje grafické nepoužíváte GNOME, Xfce nebo KDE.
Tento seznam by vám měl pomoci porozumět tomu, co jaká aplikace dělá:
- bluetooth-applet -- tray ikona s možností nastavení bluetooth, párováním nových zařízení a správou zařízení zpárovaných
- /usr/lib/gnome-user-share/gnome-user-share -- musí běžet pokud chcete příjímat soubory přes obexBT ze spárovaného zařízení
pokud se v průběhu přenosu ukazuje chyba nebo pokud se žádný soubor nakonec nepřenese, přidejte následující kus kódu do souboru
/etc/dbus-1/system.d/bluetooth.conf
<policy user="vase_uzivatelske_id"> <allow own="org.bluez"/> <allow send_destination="org.bluez"/> <allow send_interface="org.bluez.Agent"/> </policy>
- bluetooth-wizard -- užívá se pro párování nových zařízení
- bluetooth-properties -- je přístupný i přes ikonu bluetooth-appletu
- gnome-file-share-properties -- nastavení oprávnění pro příjímání souborů přes bluetooth
- bluez-sendto -- grafické rozhraní pro posílání souborů vzdáleným bluetooth zařízením
Manuální konfigurace
Pro manuální konfiguraci bluetooth (bluez
), budete potřebovat upravit konfigurační soubory v /etc/bluetooth
. Jedná se o soubory:
audio.conf input.conf main.conf network.conf rfcomm.conf
Defaultní konfigurace by měla fungovat bez problémů. Většina výše zmíněných konfiguračních souborů je velice dobře zdokumentovaná, proto by poupravení parametrů neměl být problém. Hlavní nastavení bluetooth je v souboru main.conf
- tím začněte.
Párování
Většina bluetooth zařízení vyžaduje párování. Způsob párování počítače s mobilním telefonem:
- Počítač pošle telefonu žádost o připojení.
- Pin/Klíč, který určí počítač, se musí zadat na telefonu (telefon si ho sám vyžádá)
- Stejný klíč musí být znovu zadán na počítači
Pro skenování okolních zařízení proveďte příkaz
$ hcitool scan
Pro spárování zařízení bez použití grafického rozhraní balíku gnome-bluez budete muset použít nástroj zvaný bluez-simple-agent, který je součástí balíku bluez. Dále budete potřebovat několik souvisejících python balíčků - python2-dbusAUR a python2-gobject2AUR. Pokud máte vše připraveno, můžete spustit program pro párování (musí být spušten pod uživatelem root).
$ bluez-simple-agent
Pokud se vše zdařilo, měla by se vám v konzoli zobrazit hlaška "Agent registered". Následně můžete začít párování ze svého mobilního telefonu. Skript se vás v konzoli zeptá na tzv. passcode, vložte ho a potvrďte enterem - voalá, povedlo se. Teď už můžete ukončit agenta použitím klávesy Ctrl+C (^C-c). Agenta jsme použili pouze pro párování, nebudeme ho potřebovat při každém připojení zařízení. Pokud váš telefon nemuže naleznout počítač, pokračujte do řešení problémů.
Pro příklad spárování přejděte do sekce příklady.
Použití Obex pro posílání a příjímání souborů
Obexfs vám umožňuje připojit váš telefon jako část vašeho filesystému. Pro použití Obexfs budete potřebovat zařízení, které podporuje službu ObexFTP.
Pro instalaci spusťte:
# pacman -S obexfs
a následně připojte svůj telefon spuštěním (jako root):
# obexfs -b <mac_addresa_zarizeni> /mountpoint
Pro další možnosti připojení filesystému pomocí ObexFS koukněte sem.
Příklady
Siemens S55
Ukázka připojení telefonu S55.
- Kroky po instalaci
$> hcitool scan Scanning ... XX:XX:XX:XX:XX:XX JMENO_ZARIZENI $> B=XX:XX:XX:XX:XX:XX
Spustil jsem simple-agent v dalším terminálu
$> su -c bluez-simple-agent Password: Agent registered
A následně se vrátil k terminálu prvnímu
$> obexftp -b $B -l "Address book" # Telefon se v této části zeptal na pin. Vložil jsem ho a stisknul OK. ... <file name="5F07.adr" size="78712" modified="20030101T001858" user-perm="WD" group-perm="" /> ... $> obexftp -b 00:01:E3:6B:FF:D7 -g "Address book/5F07.adr" Browsing 00:01:E3:6B:FF:D7 ... Channel: 5 Connecting...done Receiving "Address book/5F07.adr"... Sending "Address book"... done Disconnecting...done $> obexftp -b 00:01:E3:6B:FF:D7 -p a ... Sending "a"... done Disconnecting...done
Myš Logitech MX Laser / M555b
Pro rychlé otestování připojení:
$> hidd --connect XX:XX:XX:XX:XX:XX
Pro konfiguraci automatického připojení myši použijte svého desktopového průvodce. Pokud ve vašem prostředí nemáte tuto možnost, koukněte na Bluetooth myš.
Motorola V900
Po instalaci programu blueman a spuštění appletu blueman-applet, klikněte na "find me" pod položkou connections -> bluetooth v zařízení motorola. V programu blueman-applet vyhledejte zařízení, najděte svou motorolu a klikněte na "přidat". Potom kliněte na spárovat a vložte nějaký pin. Až se telefon zeptá, vložte ten samý pin vložte do telefonu motorola. V terminálu:
cd ~/ mkdir bluetooth-temp obexfs -n xx:yy:zz:... ~/bluetooth-temp cd ~/bluetooth-temp
a můžete brouzdat svým filesystémem na telefonu.
Motorola RAZ
> pacman -S obextool obexfs obexftp openobex bluez
> lsusb Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 002: ID 03f0:171d Hewlett-Packard Wireless (Bluetooth + WLAN) Interface [Integrated Module] Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> hciconfig hci0 up
> hciconfig hci0: Type: BR/EDR Bus: USB BD Address: 00:16:41:97:BA:5E ACL MTU: 1017:8 SCO MTU: 64:8 UP RUNNING RX bytes:348 acl:0 sco:0 events:11 errors:0 TX bytes:38 acl:0 sco:0 commands:11 errors:0
> hcitool dev Devices: hci0 00:16:41:97:BA:5E
Upozornění: Ujistěte se, že máte zaplé bluetooh a telefon máte ve viditelném módu!
> hcitool scan Scanning ... 00:1A:1B:82:9B:6D [quirxi]
> hcitool inq Inquiring ... 00:1A:1B:82:9B:6D clock offset: 0x1ee4 class: 0x522204
> l2ping 00:1A:1B:82:9B:6D Ping: 00:1A:1B:82:9B:6D from 00:16:41:97:BA:5E (data size 44) ... 44 bytes from 00:1A:1B:82:9B:6D id 0 time 23.94ms 44 bytes from 00:1A:1B:82:9B:6D id 1 time 18.85ms 44 bytes from 00:1A:1B:82:9B:6D id 2 time 30.88ms 44 bytes from 00:1A:1B:82:9B:6D id 3 time 18.88ms 44 bytes from 00:1A:1B:82:9B:6D id 4 time 17.88ms 44 bytes from 00:1A:1B:82:9B:6D id 5 time 17.88ms 6 sent, 6 received, 0% loss
> hcitool JMENO 00:1A:1B:82:9B:6D [quirxi]
# hciconfig -a hci0 hci0: Type: BR/EDR Bus: USB BD Address: 00:16:41:97:BA:5E ACL MTU: 1017:8 SCO MTU: 64:8 UP RUNNING RX bytes:9740 acl:122 sco:0 events:170 errors:0 TX bytes:2920 acl:125 sco:0 commands:53 errors:0 Features: 0xff 0xff 0x8d 0xfe 0x9b 0xf9 0x00 0x80 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: Link mode: SLAVE ACCEPT Name: 'BCM2045' Class: 0x000000 Service Classes: Unspecified Device Class: Miscellaneous, HCI Version: 2.0 (0x3) Revision: 0x204a LMP Version: 2.0 (0x3) Subversion: 0x4176 Manufacturer: Broadcoml / Corporation (15)
> hcitool info 00:1A:1B:82:9B:6D Requesting information ... BD Address: 00:1A:1B:82:9B:6D Device Name: [quirxi] LMP Version: 1.2 (0x2) LMP Subversion: 0x309 Manufacturer: Broadcom Corporation (15) Features: 0xff 0xfe 0x0d 0x00 0x08 0x08 0x00 0x00 <3-slot packets> <5-slot packets> <encryption> <slot offset> <timing accuracy> <role switch> <hold mode> <sniff mode> <RSSI> <channel quality> <SCO link> <HV2 packets> <HV3 packets> <A-law log> <CVSD> <power control> <transparent SCO> <AFH cap. slave> <AFH cap. master>
Upravte si konfigurační soubor main.conf a vložte novou položku pro váš telefon ( Class = 0x100100 ):
> vim /etc/bluetooth/main.conf
# Default device class. Only the major and minor device class bits are # considered. #Class = 0x000100 Class = 0x100100
> /etc/rc.d/dbus start :: Starting D-BUS system messagebus [DONE]
> /etc/rc.d/bluetooth start :: Stopping bluetooth subsystem: pand dund rfcomm hidd bluetoothd [DONE] :: Starting bluetooth subsystem: bluetoothd
Párování se dělá pouze jednou programem bluez-simple-agent. Jakmile se vaše motorola zeptá na pin, zadejte 0000.
> /usr/bin/bluez-simple-agent hci0 00:1A:1B:82:9B:6D RequestPinCode (/org/bluez/10768/hci0/dev_00_1A_1B_82_9B_6D) Enter PIN Code: 0000 Release New device (/org/bluez/10768/hci0/dev_00_1A_1B_82_9B_6D)
Teď můžete brouzdat filesystémem ve svém telefonu pomocí programu obexftp:
> obexftp -v -b 00:1A:1B:82:9B:6D -B 9 -l Connecting..\done Tried to connect for 448ms Receiving "(null)"...-<?xml version="1.0" ?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"> <folder-listing> <parent-folder /> <folder name="audio" size="0" type="folder" modified="20101010T132323Z" user-perm="RW" /> <folder name="video" size="0" type="folder" modified="20101010T132323Z" user-perm="RW" /> <folder name="picture" size="0" type="folder" modified="20101010T132323Z" user-perm="RW" /> </folder-listing> done Disconnecting..\done
Nebo můžete načíst/mountnout svůj telefon do nějakého adresáře na svém počítači a pracovat s ním jako s normálním filesystémem:
> groupadd bluetooth > mkdir /mnt/bluetooth > chown root:bluetooth /mnt/bluetooth > chmod 775 /mnt/bluetooth > usermod -a -G bluetooth arno
> obexfs -b 00:1A:1B:82:9B:6D /mnt/bluetooth/ > l /mnt/bluetooth/ total 6 drwxr-xr-x 1 root root 0 10. Okt 13:25 . drwxr-xr-x 5 root root 4096 10. Okt 10:08 .. drwxr-xr-x 1 root root 0 10. Okt 2010 audio drwxr-xr-x 1 root root 0 10. Okt 2010 picture drwxr-xr-x 1 root root 0 10. Okt 2010 video
Párování iPhone použitím bluez-simple-agenta
Příklad zařízení pojmenovaného jako hci0 a iPhonu, který byl rozpoznán programem hcitool jako '00:00:DE:AD:BE:EF':
# bluez-simple-agent hci0 00:00:DE:AD:BE:EF Passcode:
Řešení problémů
passkey-agent
$> passkey-agent --default 1234 Can't register passkey agent The name org.bluez was not provided by any .service files
Pravděpodobně jste spustili /etc/rc.d/bluetooth
dříve než /etc/rc.d/dbus
$> hciconfig dev # (no listing)
Zkuste spustit hciconfig hc0 up
Blueman
Jeslitliže blueman-applet skončí s chybou, zkuste odstranit veškerý obsah adresáře /var/lib/bluetooth a restartovat systém (nebo pouze daemony hal, dbus a bluetooth).
# rm -rf /var/lib/bluetooth # reboot
gnome-bluetooth
Jesliže se vám ukazuje následující chyba, když příjímate soubory v bluetooth-properties:
Bluetooth OBEX start failed: Invalid path Bluetooth FTP start failed: Invalid path
Pak spusťte příkazy:
# pacman -S xdg-user-dirs $ xdg-user-dirs-update
Můžete také upravit cesty použitím:
$ vi ~/.config/user-dirs.dirs
Bluetooth USB klíčenka
Pokud používáte bluetooth USB klíčenku, měli byste zkontrolovat, jestli ji váš systém rozpoznal. To provedete po zapojení klíčenky do USB prozkoumáním logů v /var/log/messages.log
. Mělo by tam být něco jako toto (Koukejte po hci):
# tail -f /var/log/messages.log May 2 23:36:40 tatooine usb 4-1: new full speed USB device using uhci_hcd and address 9 May 2 23:36:40 tatooine usb 4-1: configuration #1 chosen from 1 choice May 2 23:36:41 tatooine hcid[8109]: HCI dev 0 registered May 2 23:36:41 tatooine hcid[8109]: HCI dev 0 up May 2 23:36:41 tatooine hcid[8109]: Device hci0 has been added May 2 23:36:41 tatooine hcid[8109]: Starting security manager 0 May 2 23:36:41 tatooine hcid[8109]: Device hci0 has been activated
Pro seznam podporovaného hardware pokračujte do sekce zdroje na této stránce. Pokud vidíte pouze dvě první řádky logu výše, znamená to, že zařízení bylo nalezeno, ale musí se ješte zapnout. Příklad:
hciconfig -a hci0 hci0: Type: USB BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0 DOWN RX bytes:0 acl:0 sco:0 events:0 errors:0 TX bytes:0 acl:0 sco:0 commands:0 errors: sudo hciconfig hci0 up hciconfig -a hci0 hci0: Type: USB BD Address: 00:02:72:C4:7C:06 ACL MTU: 377:10 SCO MTU: 64:8 UP RUNNING RX bytes:348 acl:0 sco:0 events:11 errors:0 TX bytes:38 acl:0 sco:0 commands:11 errors:0
Pro kontrolu, jestli bylo zařízení detekováno použijte nástroj hcitool
, který je součástí balíku bluez-utils. Následujícím příkazem dostanete seznam dostupných zařízení, identifikátorů a jejich MAC adres.
$ hcitool dev Devices: hci0 00:1B:DC:0F:DB:40
Pokud byste si přáli zobrazit o zařízení více informací, můžete použít hciconfig
.
$ hciconfig -a hci0 hci0: Type: USB BD Address: 00:1B:DC:0F:DB:40 ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING PSCAN ISCAN RX bytes:1226 acl:0 sco:0 events:27 errors:0 TX bytes:351 acl:0 sco:0 commands:26 errors:0 Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH HOLD SNIFF PARK Link mode: SLAVE ACCEPT Name: 'BlueZ (0)' Class: 0x000100 Service Classes: Unspecified Device Class: Computer, Uncategorized HCI Ver: 2.0 (0x3) HCI Rev: 0xc5c LMP Ver: 2.0 (0x3) LMP Subver: 0xc5c Manufacturer: Cambridge Silicon Radio (10)
hcitool scan: Device not found
- Na některých počítačích Dell (e.g. Studio 15) musíte přepnout mód Bluetooth z HID na HCI použitím
# hid2hci
- Občas může pomoci i tento jednoduchý příkaz:
# hciconfig hci0 up
Nelze nalézt počítač
Stále váš telefon nechce nálezt zařízení počítače? Zapněte PSCAN a ISCAN:
# zapnutí PSCAN a ISCAN $ hciconfig hci0 piscan # mrkněte, jestli se nastavení změnilo $ hciconfig hci0: Type: USB BD Address: 00:12:34:56:78:9A ACL MTU: 192:8 SCO MTU: 64:8 UP RUNNING PSCAN ISCAN RX bytes:20425 acl:115 sco:0 events:526 errors:0 TX bytes:5543 acl:84 sco:0 commands:340 errors:0
Nebo můžete zkusit změnit nastavení Class v souboru /etc/bluetooth/main.conf
následovně
# Default device class. Only the major and minor device class bits are # considered. #Class = 0x000100 (from default config) Class = 0x100100
Nautilus nemůže procházet soubory
Pokud se nautilus neotevře a ukáže tuto chybu:
Nautilus cannot handle obex: locations. Couldn't display "obex://[XX:XX:XX:XX:XX:XX]/".
Nainstalujte balík gvfs-obexftp:
# pacman -S gvfs-obexftp