Hlavní navigace

Linux a Bluetooth klávesnice a myšky

CIJOML

Dnes si povíme o nových klávesnicích a myškách vybavených Bluetooth technologií a o tom, co na to říká náš tučňáček s modrými zuby.

Samozřejmě, že si Tuxík s touto technologií tyká, a my si povíme, jak to naučit i vašeho Tuxíka.

Základem je mít podporu projektu BlueZ v jádře, Bluetooth-enabled klávesnici a myšku a modrozubý adaptér. Dnes jsou k dostání výrobky od tří hlavních hráčů na trhu – Logitech a jeho diNovo desktop a MX900 myška, klávesnice a myš od Apple a v České republice se neprodávající Microsoft Wireless Optical Desktop for Bluetooth. Já si pro tento set dojel do Německa. Hlavním důvodem byla cena, která za set myši, klávesnice a BT adaptéru vyjde po refundaci DPH na 3500 Kč. Pro zajímavost Logitech na českém trhu prodává svůj set za téměř 10000 Kč.

V Linuxu se tato podpora teprve tvoří, takže je dnes k dispozici pouze implementace Petera Klauslera s několika mými patchi, oficiální implementace od Marcela Holtmanna, která bude nakonec v linuxovém jádře, ještě není uvolněna. Bude to kompletní převod HID standardu do Bluetooth stacku, takže se je na co těšit :-)

Jak tedy postupovat? Nejprve stáhneme balíček BTHID obsahující jaderný modul fake a démona bthid z Peterovy stránky.

Následuje rozbalení a kompilace démona bthid příkazem make, pro kompilaci jaderného modulu je ještě třeba vyeditovat jeho makefile make.fake a vložit do cesty správnou verzi vašeho jádra. Zkopírujeme modul fake.o do vašeho adresáře s moduly: cp fake.o /lib/modules/ uname -r/kernel/driver­s/input, zavoláme depmod -a, aby se modul načetl, a následně vložíme modul do jádra příkazem modprobe fake. Proč má modul tak divný název? Jedná se o virtuální klávesnici, která převádí signály od bthid démona do podoby čitelné pro jádro jako úhozy klávesnice.

Vytoříme zařízení ve filesystému, kam bude bthid démon posílat informace a kde bude také připojen modul fake k jádru: mknod -m 200 /dev/input/blu­etooth-in c 250 0

Následně do souboru /etc/modules.conf vložíme několik nových řádek do sekce k modulům pro BlueZ, aby bylo zajištěno autoloadování modulů:

#modrozub
alias net-pf-31 bluez
alias bt-proto-0 l2cap
alias bt-proto-2 sco
alias bt-proto-4 bnep
alias tty-ldisc-15 hci_uart
alias char-major-10-250 hci_vhci
alias bt-proto-3 rfcomm
alias char-major-250 fake
above fake mousedev keybdev
above bluez hci_usb
post-install hci_usb modprobe -k usb-uhci; /sbin/hciconfig hci0 lm master 

Zbývá v souboru hcid.conf změnit sekce šifrování a autentifikace na zakázáno, tedy:

auth disable;
encrypt disable;

Teď je vše hotové a můžeme směle připojit naši myš a klávesnici. Do Xek vložíme novou sekci pro myš v tomto tvaru:

Section "InputDevice"
  Identifier "Bluetooth Mouse"
  Driver     "mouse"
  Option     "SendCoreEvents"   "true"
  Option     "Device"           "/dev/input/mice"
  Option     "Protocol"         "ExplorerPS/2"
  Option     "ZAxisMapping"     "4 5"
  Option     "Buttons"          "5"
  Option     "Name"             "AutoDetected"
  Option     "Vendor"           "AutoDetected"
EndSection

Následně jen zabijte Xka a Vaše myška začne fungovat.

S klávesnicí je to těžší. Ta využívá právě démona bthid. Spustíme ho tedy s následujícími parametry:

/usr/local/bin/bthid -m -s -p 600 -l
SEZNAM_BD_ADRES_VSECH_BT_ZARIZENI_STANDARTU_HID

Máte-li myš i klávesnici, vložte obě jejich BD adresy oddělené mezerami.

Parametr -p udává počet vteřin, za které se má zařízení přes příkaz l2ping pingnout, aby nepřestalo komunikovat. To právě potřebují zařízení od Microsoftu, která se jinak odpojí po deseti minutách nečinnosti. Zařízení jiných výrobců to údajně nepotřebují. Tento parametr je také mým příspěvkem do rozvoje celého projektu.

Po spuštění démona je potřeba vyčkat cca dvě vteřiny, než se zařízení spojí (celou dobu hýbejte myškou a držte stisklou klávesu na klávesnici), poté můžete již směle psát :-)

A kdyby to nepomohlo ke spojení? Potom má každé zařízení tlačítko CONNECT a vždy pomůže vyndat baterie :-)

Užijte si to, bezdrátová technologie je úžasná věc a v modrozubém provedení má i svou nezaměnitelnou eleganci :-)

Našli jste v článku chybu?