Návody
-
Rok 2003 rokem BlueTooth?
Rok 2003 rokem BlueTooth?
Vyždímejte ze svého mobilu s BlueTooth maximum. Mimo jiné vás naučíme
z mobilu ovládat xmms. A nejen to.
Úvod
Kdykoliv čteme nějaké články věnující se BlueTooth pod MS Windows,
obvykle se v nich hovoří o roku 2003 jako o roku BlueTooth. My s Linuxem
se těmto řečem můžeme jen smát. Podpora BlueTooth je v Linuxu vyřešena
excelentně už dlouhou dobu a to hned třemi navzájem si konkurujícími
projekty, podporován je veškerý BlueTooth hardware. Uživatelé používající
Linux mohou o roku 2003 hovořit jako o roku s levným BlueTooth. Ceny
USB adaptérů se dostaly k hranici 1000 korun, což už je levnější než
jakýkoliv originální kabel dodávaný výrobcem. Navíc s BlueTooth nám
odpadají problémy s několika kabely a rozdílnými konektory. Veškerá
komunikace probíhá totiž bezdrátově - vzduchem.
Podpora v Linuxu
V Linuxu existují tři (v současné době již jen dva) navzájem si
konkurující BlueTooth implementace. Jedná se o projekt
BlueZ, který je oficiálním
BlueTooth stackem,
Affix, originálně vyvinutý
Nokií, která následně vydala zdrojové kódy veřejně k dispozici, a
OpetBT, který je již v současné době mrtvým, v jádře jej ovšem stále
nalezneme.
Jakožto fanoušek BlueZ se v tomto článku zaměřím právě na tento
stack.
Možnosti
Co nám tedy v současné době BlueTooth umožňuje? Společnost SonyEricsson,
která patent na tuto technologii vlastní a aktivně ji podporuje, vydala
specifikace svých mobilních telefonů. Z tohoto faktu vyplývá i množství
software, které se díky tomu vyrojilo, a tudíž veliká část tohoto článku
bude věnována hlavně spolupráci těchto mobilů s Linuxem.
Můžeme dělat opravdu hodně. Počínaje ovládáním našeho oblíbeného
přehrávače MP3 - xmms, přes stahování a uploadování obrázků z mobilu do
počítače a naopak, přes připojování se k Internetu, psaní na Microsoft
BT klávesnici
a konče třeba ovládáním kurzoru myši přes náš mobil.
Zkusme se tedy na některé z těchto věcí podívat blíž a ukážeme si jak
na to. Doporučuji nainstalovat jádro
2.4.21, které již obsahuje jaderný
modul implementující rfcomm, narozdíl od dřívější implementace skrze
démona. Dále potřebujeme software dodávaný s projektem BlueZ, viz download
site: bluez-libs, bluez-utils, bluez-sdp, bluez-pan, bluez-hcidump,
bluez-bluefw. Celým problémem "rozjetí" BlueTooth pod Linuxem se budu
zabývat znovu v následujícím článku, jelikož nová implementace BlueZ
jako jaderného modulu je zcela odlišná od konfigurace přes démona
rfcommd.
xmms
Zkusme si tedy rozchodit ovládání našeho přehrávače MP3 (pouze pro
mobily SE)
Stáhneme si knihovnu ruby, kterou potřebuje projekt bluexmms, a to
zde.
Dále zdrojové kódy programu bluexmms
tady.
Program xmms a aumix má na disku snad každý .
Přeložíme knihovnu ruby klasickým příkazem make ,
nainstalujeme a spustíme ldconfig . Dále přeložíme program
bluexmms příkazem make a nainstalujeme.
Následně připojíme serial-device našeho mobilu na zařízení příkazem
rfcomm bind 0 MAC_ADDR_CILE 1
a následně spustíme bluexmms - zařízení se spojí a v mobilu
máme v záložce accessories funkční ovládač našeho přehrávače.
Co dodat? Snad jen, že přímo modul do xmms se připravuje, nyní je nutné
spouštět bluexmms, které následně spustí xmms.
Výměna vizitek, melodií a obrázků přes profil OBEX push
Stáhneme knihovny a aplikace projektu openobex
zde.
Stáhneme implementaci obex-push vytvořenou na základě implementace
projektu Affix:
ussp-push.
Přeložíme knihovny a aplikace klasicky via ./configure && make &&
make install .
Rozbalíme ussp-push, a aby chodil se současnou implementací BlueZ, patchneme
těmito řádky:
--- obex_main.c.old Sat Feb 1 14:12:54 2003
+++ obex_main.c Sat Feb 1 14:13:13 2003
@@ -221,7 +221,7 @@
return NULL;
}
- custfunc.userdata = gt->userdata;
+ custfunc.customdata = gt->userdata;
custfunc.connect = cobex_connect;
custfunc.disconnect = cobex_disconnect;
custfunc.write = cobex_write;
Přeložíme příkazem make , nainstalujeme.
Na mobilu SE T68i je OBEX na kanálu 10, proto spojíme linux s tímto
kanálem příkazem
rfcomm bind 1 MAC_ADDR_CILE 10
a následně můžeme již poslat třeba obrázek na plochu jednoduše
příkazem
ussp-push /dev/rfcomm1 cesta_k_obrazku.gif
jmeno_obrazku_v_mobilu.gif
Přenos z mobilu do Linux boxu
Předpokládám, že openobex-apps máme již nainstalované, takže můžeme rovnou
kompilovat obexserver. Postupujeme tímto trikem, jelikož potřebujeme jeden
soubor přímo z openobex-apps.
tar -xzvf openobex-apps-1.0.0.tar.gz
cd openobex-apps-1.0.0
./configure && make
cd src
wget http://www.frasunek.com/sources/unix/obexserver.c
cc -o obexserver obexserver.c libmisc.a -lopenobex
chown root.root obexserver && cp obexserver /usr/local/bin
Následně spustíme sdp daemona jako root příkazem sdpd ,
připojíme na něj OBEX service příkazem
sdptool add --channel=10 OPUSH
a spustíme
obexserver
Jak vidíte, BlueTooth je pod Linuxem velice dobře a jednoduše
implementované, aplikace přibývají každý den, a proto říkám kašlete na
kabel, vždyť bez drátů to jde tak krásně a jednoduše! Jediným problémem
je výdrž baterií u zařízení, které nejsou nastálo připojené k elektrické
síti. :)
Související články
Odkazy a zdroje
Diskuse k tomuto článku
Zrdravim,
moc hezky clanek, ale nejak z toho vypadly Nokie, hromada lidi je pouziva ....
Nokie umej tak maximalne pripojeni k netu pres modrozub - kvuli tomu, ze Nokia neni schopna poradne BT implementovat, tak jsem je opustil - a to jsem byl jejich priznivec a mel vsechny manazerske typy, co vydali od 6110 az do 6310...skoda
Bude mne to chodit na R520m nebo je potrebna T68?
ntw
>Zkusme si tedy rozchodit ovládání našeho přehrávače MP3 (pouze pro mobily SE)
chodi to udajne s T39, tak s R520m by nemel byt problem
OK, diky, tak to bych vyzkousel a poreferuju. Jeste bych chtel vedet, jaky BT USB adapter doporucujes? Cetl jsem si kompatibility list na strankach Bluez
http://www.holtmann.org/linux/bluetooth/devices.html
a pochopil jsem spravne, ze je nejlepsi jakykoliv, kteremu staci hci_usb bez nejakych pridavku? Lisi se nejak moznosti tech adapteru v Linuxu podle chipsetu?
Diky
ntw
ano - zalezi jake profily ten dany adapter podporuje :)
|