TuΦ≥ßk mß ostrΘ modrΘ zuby!
TuΦ≥ßk mß ostrΘ modrΘ zuby!
Dnes se zam∞°φme na Bluetooth pod Linuxem.
┌vod
Doufßm, ╛e jsem vßs nßzvem Φlßnku nezastra╣il. Nebojte se. Na╣i tuΦnßci
nekou╣ou. Prßv∞ naopak. Dal╣φm oborem, kde
nßm tuΦnßΦci d∞lajφ radost, je technologie Bluetooth (modr² zub). Dnes
si povφme n∞co o tom, jak na╣eho tuΦnßΦka vybavit pro cestovßnφ s
notebookem. Samoz°ejm∞ se dß pou╛φt jak²koliv poΦφtaΦ s USB, ale
bezdrßtovß komunikace dostßvß tu sprßvnou ╣tßvu a╛ p°i vyu╛itφ na
cestßch.
Je p°eci ·╛asnΘ si jen tak polo╛it v aut∞ na klφn notebook,
telefon mφt v kapse, nemuset °e╣it kabel, do kterΘho se v lep╣φm
p°φpad∞ zamotßte a v hor╣φm se na n∞m ob∞sφte, ne°kuli infraport, kter²
musφte neustßle p°esv∞dΦovat, ╛e opravdu nenφ dobr² nßpad p°estat se
koukat va╣emu notebooku do ΦervenΘho oΦiΦka prßv∞ v moment∞, kdy ╣Θfovi
odesφlßte nejd∙le╛it∞j╣φ e-mail za p∙l roku. O ╣patnΘ konstalaci hv∞zd,
kdy si zp∙sobφte vypßlenφ v lep╣φm p°φpad∞ jednoho a v hor╣φm p°φpad∞
obou oΦφ, ani nemluv∞ .
Asi se divφte, proΦ zrovna modr² zub. Nejprve si povφme n∞co o vzniku
nßzvu tΘto technologie, proto╛e ten je stejn∞ zajφmav², ne-li zajφmav∞j╣φ,
ne╛ technologie celß.
Nßzev Bluetooth vznikl dle krßle Haralda, zvanΘm Modrozub (Bluetooth),
kter² na p°elomu 10. stoletφ sjednotil Dßnsko a Norsko. Jeho velikou
p°ednostφ byla schopnost komunikace s lidmi. Povedlo se mu do tΘ doby
n∞co nevφdanΘho. P°ipojil ke svΘ °φ╣i ·zemφ bez vßlky jen na zßklad∞
dohody. Nejspφ╣ proto si spoleΦnost Ericsson, kterß tuto technologii
sv∞tu dala, a kterß stojφ v Φele sdru╛enφ prosazujφcφ tento standard,
vzpomn∞la na tohoto velikßna tΘm∞° sv²ch d∞jin (sφdlo spoleΦnosti je o
pßr set kilometr∙ severov²chodn∞ a to ve ⌐vΘdsku).
Vlastnosti
ProΦ tato technologie vznikla? Odpov∞d je nasnad∞ u╛ z prvnφho odstavce.
Prost∞ tato technologie se sna╛φ o tyto v∞ci:
- eliminaci kabel∙ a drßt∙ nutn²ch pro propojenφ s nehybn²mi i mobilnφmi za°φzenφmi
- podporu datovΘ i hlasovΘ komunikace
- vyu╛φvßnφ mo╛nostφ Ad hoc sφtφ za p°edpokladu nejvy╣╣φ synchronizace mezi komunikujφcφmi za°φzenφmi
A jak takovΘ bluetooth za°φzenφ vypadß? Jednß se o mal² Φip,
velikosti 9x9 milimetr∙, komunikujφcφm v rßdiovΘm pßsmu 2.4 GHz.
TechnickΘ detaily Φipu Bluetooth jsou takovΘto:
- Zakladatel: Ericsson
- Cena Φipu: 20 dolar∙
- Rozm∞ry Φipu: 9 x 9 milimetr∙
- Spot°eba: stand-by 0,3 mA; p°i p°enosu 30mA
- Provoznφ pßsmo: 2402 a╛ 2483.5 MHz
- P°enosovß rychlost: 1 Mb/s (mo╛nost komunikace synchronnφ a asynchronnφ)
- asynchronnφ: uplink 721 kb/s, downlink 57,6 kb/s
- synchronnφ: 432,6 kb/s ob∞ma sm∞ry
- uvedenΘ rychlosti jsou ΦistΘ, tj. po zapoΦφtßnφ °φdφcφch a opravn²ch protokol∙
- Dosah: a╛ 100 metr∙ (se zesilovacφm stupn∞m) - bez n∞j 10 metr∙
- Identifikace: 48-bitovß adresa z IEEE 802.11 standardu
- ZabezpeΦenφ: 128bitov²m k≤dovßnφm
- Frequency hopping: 1600 skok∙/s
- Vzdßlenost kanßl∙: 1 MHz => 79 kanßl∙
- Mo╛nΘ stavy za°φzenφ: master, slave
- PoΦet dal╣φch najednou komunikujφcφch za°φzenφ p°es jeden Φip: 7
- Mo╛nost tvo°it pikosφt∞, kdy 1 za°φzenφ ve stavu slave je p°ipojeno ke 2 master∙m
- Spolupracujφcφ firmy: Ericsson, 3Com, Casion, Intel, Toshiba, Nokia, Motorola a stovky dal╣φch
Kolik je na sv∞t∞ za°φzenφ s podporou Bluetooth? V dob∞ psanφ tohoto Φlßnku
bylo dostupn²ch
622 za°φzenφ.
A nynφ se podφvßme na specifikaci za°φzenφ. Ka╛dΘ za°φzenφ podporuje
takzvanΘ profily. To je seznam funkcφ, kterΘ za°φzenφ znß a skrze kterΘ
komunikuje se sv²m okolφm. Profil∙ je n∞kolik desφtek, ale ka╛dΘ za°φzenφ
znß jen n∞kolik. Proto je nutnΘ si nejprve na v²╣e uvedenΘ strßnce
zkontrolovat, zdali va╣e za°φzenφ spolu budou komunikovat. Jinak se
maximßln∞ najdou, ale potΘ ji╛ nebude dal╣φ komunikace mo╛nß.
Jß zvolil tyto 2 za°φzenφ: Mobilnφ telefon
Nokii 6310
a USB adapter
Mitsumi typu WIF-0402C.
Jak vidφte, shodujφ se hned v n∞kolika profilech, tak╛e komunikace bude
velice snadnß. A takΘ byla.
Instalace
Prvnφ, co nßsledovalo, bylo vlo╛enφ USB adaptΘru do portu a nßv╣t∞va
znaΦkovΘho servisu Nokia , kde jsem si nechal nahrßt poslednφ verzi firmware
4.20. PotΘ jsem v∞d∞l, ╛e mu╣ky ze strany telefonu budou minimalizovanΘ a jß
budu moci nadßvat pouze sßm sob∞, kdy╛ n∞co nebude fungovat.
SouΦasnΘ distribuce nemajφ p°φmo v sob∞ moduly pro bluetooth komunikaci,
proto nßsledovalo p°elo╛enφ kernelu poslednφ verze 2.4.19-pre10 s
podporou Bluetooth:
Bluetooth subsystem support
L2CAP protocol support
SCO links support
HCI USB driver
[*] Firmware download support
Dßle jsem se sna╛il najφt v distribuci Debian pot°ebnΘ ovlßdacφ utility. Ty
tam bohu╛el takΘ nebyly, a tak jsem nav╣tφvil strßnku
bluez.sf.net, kde je projekt hostovan²
a stßhnul tyto soubory:
- bluefw-0.3.tar.gz
- bluez-libs-2.0-pre9.tar.gz
- bluez-sdp-0.4.tar.gz
- bluez-utils-2.0-pre9.tar.gz
- hcidump-1.2.tar.gz
- rfcommd-1.1.tar.gz
V╣echny soubory jsem rozbalil a jal se p°eklßdat. Jako prvnφ je
pot°eba p°elo╛it bluez-libs . Pod distribucφ debian nebyla kompilace
mo╛nß. Probφhß ale v po°ßdku pod distribucφ RedHat, na kterΘ je takΘ
primßrn∞ projekt vyvφjen. Proto jsem ze strßnek
bluez.sf.net stßhnul
deb balφΦek a nainstaloval. Kompilace v╣ech ostatnφch aplikacφ
ji╛ potΘ byla bez problΘmu. Je samoz°ejm∞ nutnΘ stßhnout jak knihovny,
tak i jejich devel verze.
Nynφ je u╛ jen t°eba v╣e p°inutit fungovat...co vy na to?
ZaΦneme inicializacφ adaptΘru:
modprobe hci_usb; modprobe l2cap
hciconfig hci0 up
Zapneme podporu Bluetooth na Nokii (menu 10) a nechßme na╣φm za°φzenφm
nokii nalΘzt:
hcitool -i hci0 inq
Dostaneme tuto odpov∞∩:
Inquiring ...
00:02:EE:00:AB:B3 clock offset: 0x54b6 class: 0x502204
Telefon byl tedy nalezen. Zkusφme ho pingnout, zda-li funguje:
l2ping 00:02:EE:00:AB:B3
Ping: 00:02:EE:00:AB:B3 from 00:A0:96:1F:B0:0C (data size 20) ...
0 bytes from 00:02:EE:00:AB:B3 id 200 time 29.46ms
0 bytes from 00:02:EE:00:AB:B3 id 201 time 26.83ms
2 sent, 2 received, 0% loss
I zde je tedy v╣e v po°ßdku a p°istoupφme k nastavovßnφ komunikace. Jako
prvnφ musφme nastavit hcid , co╛ je dΘmon, starajφcφ se o v²m∞nu
hesel mezi ob∞ma za°φzenφmi a jejich spßrovßnφ.
cijoml@notas:~/bluetooth$ cat /etc/bluetooth/hcid.conf
#
# HCI daemon configuration file.
#
# $Id: hcid.conf,v 1.1.1.1 2002/03/08 21:12:35 maxk Exp $
#
# HCId options
options {
# Automaticaly initialize new devices
autoinit yes;
# Security Manager mode
# none - Security manager disabled
# auto - Use local PIN for incomming connections
# user - Always ask user for a PIN
security auto;
# PIN helper
pin_helper /bin/bluepin;
}
# Default settings for HCI devices
device {
# Local device name
# %d - device id
# %h - host name
#name "BlueZ (%d)";
name "Linux";
# Local device class
class 0x100;
# Default packet type
pkt_type DH1,DM1,HV1;
# Inquiry and Page scan
iscan enable; pscan enable;
# Default link mode
# none - no specific policy
# accept - always accept incomming connections
# master - become master on incomming connections,
# deny role switch on outgoint connections
#
#lm accept,master;
lm master;
# Default link policy
# none - no specific policy
# rswitch - allow role switch
# hold - allow hold mode
# sniff - allow sniff mode
# park - allow park mode
#lp hold,sniff;
lp hold,sniff,park;
# Authentication and Encryption
#auth enable;
#encrypt enable;
}
Nynφ je nutnΘ nastavit dΘmona, kter² pro nßs obstarßvß komunikaci p°es
bluetooth - rfcommd . DΘmon bude nastaven jako slave, master bude
telefon (pro snadn∞j╣φ nastavovßnφ).
cijoml@notas:~/bluetooth$ cat /etc/bluetooth/rfcommd.conf
options {
psm 3;
ppp /usr/sbin/pppd;
ifconfig /sbin/ifconfig;
route /sbin/route;
firewall /sbin/iptables;
}
na {
channel 1;
up {
ppp "%d call gprsbt";
}
}
Nastavφme komunikaci p°es ppp protokol. Zde bych upozornil, ╛e nenφ t°eba
cokoliv m∞nit ve va╣ich souborech provider a
chatscripts , jen vyma╛te zmφnku o /dev/tty za°φzenφ.
To pro vßs bude simulovat rfcommd . V╣e ostatnφ ponechte vΦetn∞
rychlosti portu 115200.
Nynφ je v╣e nastavenΘ a komunikace, pakli╛e mßme funkΦnφ ppp protokol,
m∙╛e zaΦφt:
rfcommd -n -f /usr/local/etc/rfcommd.conf na
00:02:EE:00:AB:B3
Nokia oznßmφ p°ipojenΘ za°φzenφ Linux, zvolφme OK, a zadßme Φφslo. Toto
si nemusφme pamatovat, zadßvß se pouze jednou.
Abychom nemuseli °e╣it problΘm, ╛e na nß╣ desktop se nßm p°ipojuje aplikace
b∞╛φcφ pod rootem (hcid ), zadßme xhost + . Vyjede na
nßs okΘnko, kde zadßme to samΘ Φφslo a potvrdφme. Za°φzenφ jsou spßrovßna, co╛
nßm Nokia oznßmφ a zaΦne vytßΦet a nßsledn∞ se spojφ. Je dobrΘ na Nokii vypnout
u spßrovanΘho za°φzenφ po╛adavek autorizace spojenφ, abychom nemuseli toto
potvrzovat p°i ka╛dΘm p°ipojenφ p°es notebook.
Od tΘ doby mß nß╣ tuΦnßk opravdu ostrΘ modrΘ zuby .
Vßs to nebolelo, ale jß strßvil hledßnφm informacφ tΘm∞° 15 hodin ΦistΘho
Φasu Φtenφm specifikace a mailov²ch konferencφ. Bohu╛el k tomuto zp∙sobu
komunikace neexistuje ╛ßdnß dokumentace . Po vyjitφ tohoto Φlßnku
dßvßm na strßnku projektu BlueZ tento Φlßnek uzp∙soben² jako howto. To
vφte. Linuxovß komunita si musφ pomßhat.
U╛ijte si svΘho tuΦnßka s modr²mi zoubky. Je to radost. A bude je╣t∞
v∞t╣φ, a╛ se i u nßs zaΦnou prodßvat tiskßrny nebo chladniΦky s podporou
tΘto technologie.
Napi╣te nßm va╣e nßzory, jsou pro nßs d∙le╛itΘ.
CIJOML
Diskuse k tomuto Φlßnku
Kdyby nekdo chtel ten Mitsumi adapter, tak jej rad prodam :) Omylem jsem si objednal po netu 2 :) Cena je 2450 Kc :)
Zajimalo by me, jestli se ten modrozub propali skrz jednu zed a asi 5 metru vzduchu. A jestli se da udelat ze dvou takovych kousku TCP sitka.
Na oboje zni odpoved ano...o tom, jak z toho udelat sit budu psat clanek pro roota, takze cekejte :)
Adapter prodan. Dekuji za nabidky :)
Howto jiz existuje http://bluez.sourceforge.net/howto/index.html
Pepe
Rad bych opravil nepresnost:
Bezpecnost: 128 bitove kodovani
kodovani - tim se nic moc nezabezpeci.
Spravne slovo ma byt sifrovani ![:-)](/file/23422/Chip_2003-05_cd1.bin/internet/abclinux/images/smile/usmev.gif)
Koho by to zajimalo, BlueZ neni jediny a ani zdaleka nejlepsi Blutooth stack pro Linux.
Kdo se koukne na stranky konkurencniho Affixu tak zjisti ze se s tim da delat jeste mnohem a mnohem vice.
Instalace je totalne bezproblemova (vyvijeno paralelne na Red Hatu a Debianu), k dostani jako jeden tar.gz (deb a prm balicky jsou taky), funguje se vsemi kernely 2.4.x, neni treba nic patchovat.
A uz se to taky cpe na desktop
Affix jsem zkusil a musim rict, ze ten kod je hrozne zpraseny. A co na to vyvojari BlueZ? S jejich nazorem se musim stotoznit.
>BTW what do u think about affix ?
>I compiled it now and it looks worser than BlueZ...only its graphical
>engine looks fine...
Our lower layers are much better, have more features and about 40-30% smaller.
Also their HCI core does not work on SMP.
The only advantage that they currently have is kernel based RFCOMM socket
implementation.
We're working on RFCOMM and once it's ready I see zero reason why would
people want to use Affix.
Some time ago I wrote sort of review (see list archives) where I pointed
out their problems, most of the
important comments are still valid.
I also offered them to work together. They refused without an explanation.
Which does not make any sense to me.
We can easily port most of their apps, if we wanted to.
Max
m∞ se nepoda°ilo affix v∙bec zkompilovat a to jsem zkou╣el r∙znΘ verze (i betaberze)
|