┌vod
Hledat
OvladaΦe
Hardware
Software
AbφΦko
O nßs

TuΦ≥ßk mß ostrΘ modrΘ zuby!

TuΦ≥ßk mß ostrΘ modrΘ zuby!

6. 6. 2002 15:08 | CIJOML

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

Datum: 6. 6. 2002 14:19
Od: CIJOML
Titulek: Adapter :)

Kdyby nekdo chtel ten Mitsumi adapter, tak jej rad prodam :) Omylem jsem si objednal po netu 2 :) Cena je 2450 Kc :)

Datum: 6. 6. 2002 16:56
Od: Jozef Vondrßk
Titulek: Adapter :)

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.

Datum: 6. 6. 2002 17:07
Od: CIJOML
Titulek: Adapter :)

Na oboje zni odpoved ano...o tom, jak z toho udelat sit budu psat clanek pro roota, takze cekejte :)

Datum: 7. 6. 2002 15:14
Od: CIJOML
Titulek: Adapter :)

Adapter prodan. Dekuji za nabidky :)

Datum: 7. 6. 2002 08:17
Od: Pepe
Titulek: HOWTO Bluetooth

Howto jiz existuje http://bluez.sourceforge.net/howto/index.html

Pepe

Datum: 7. 6. 2002 09:54
Od: Petr Ferschmann
Titulek: Bezpecnost

Rad bych opravil nepresnost: Bezpecnost: 128 bitove kodovani

kodovani - tim se nic moc nezabezpeci.

Spravne slovo ma byt sifrovani :-)

Datum: 14. 6. 2002 10:55
Od: Jimak
Titulek: Alternativni cesta (replesk z roota)

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

Datum: 16. 6. 2002 08:49
Od: CIJOML
Titulek: Alternativni cesta (replesk z roota)

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

Datum: 22. 1. 2003 15:31
Od: Pantani
Titulek: Alternativni cesta (replesk z roota)

m∞ se nepoda°ilo affix v∙bec zkompilovat a to jsem zkou╣el r∙znΘ verze (i betaberze)


(c) AbcLinuxu s.r.o.   Grafika: megadesign