Bluetooth kasutamine Debian Lennyga

Allikas: Kuutõrvaja
Redaktsioon seisuga 17. august 2009, kell 17:28 kasutajalt Imre (arutelu | kaastöö) (Gnome keskkonnas)

Sissejuhatus

Bluetooth (ingl. k. sinihammas) tehnoloogia võimaldab raadioside abil seadmetel omavahel suhelda. 2009 aastal on levinud mitmete standardite implementatsioone, mis kasutavad raadioside kanalit andmeedastuseks, nt

  • WiFi - suhteliselt kallis realiseerida, seadmed tarvitavad suhteliselt palju energiat, möödukas tegevusraadius (sajad meetrid), peamiselt andmesideks, suhteliselt suur andmevahtuskiirus, otsenähtavus on abiks, aga ei ole tingimata vajalik
  • Bluetooth - odav realiseerida, seadmed tarvitavad vähe energiat, suhteliselt väike tegevusraadius (tavaliselt kümmekond meetrit), sobiv heli, pildi ja andmeedastuseks; seadmete vahel ei ole oluline otsenähtavus, mõõdukas andmevahetuskiirus; andmevahetus kuni kahekse osalise vahel
  • IrDA - seadmete vahel on vajalik otsenähtavus, väike tegevuskaugus (kümneid sentimeetreid kuni mõned meetrid) ja andmevahetuskiirus; andmevahetus kuni kahe osalise vahel
  • Zigbee - industriaalseks kasutamiseks, seadmete juhtimine
  • RFID - ühel seadmel ei olegi energiaallikat, saab energia nö RFID lugejalt, äärmiselt odavad

Oluline on siinjuures mõista, et kui Bluetooth mingis osas kipub mõnda muud raadiosidet kasutavat tehnoloogiat asendama (nt IrDA) on üldiselt erinevad tehnoloogiad mõeldud erinevate vajaduste rahuldamiseks. Nt WiFi ja Bluetooth ei ole selles mõttes otseselt üksteisele konkurendid.

Bluetooth lahendusele on iseloomulik

  • avatud spetsifikatsioon
  • lühike tegevusraadius, nö kaablite asendamiseks
  • heli ja andmeedastus
  • kasutatakse üldtunnustatult sarnaseks kasutuseks sobivat 2.4 GHz sagedusvahemikku (Industrial, Scientific, and Medical, ISM vahemik)

Tüüpilised Bluetooth kasutusalad on

  • telefoni ja kõrva juurde kinnitatava peakomplekti (ingl. k. headset) ühendus heli ülekandmiseks
  • telefoni ja arvuti ühendamine telefoni arvutist juhtimiseks ja arvuti internetti ühendamiseks
  • mitmesuguse koduelektroonika (nt fotoaparaat) ja kontoriseadmete (nt printer) ühendamiseks
  • nn ad-hoc arvutivõrgu moodustamine üle Bluetoothi

Bluetooth initsiatiiv on algatatud Rootsi päritolu firma Ericsson poolt, tänapäeval juhib Bluetooth arengut Bluetooth SIG (Special Interest Group) http://www.bluetooth.com/.

Sinihammas nimi pärineb Skandinaaviast, mida kandis Taani kuningas Harald I, kes ühendas oma tegevusperioodil Taani ja Norra; kuna Skandinaaviast on ka alguse saanud Bluetooth tehnoloogia initsiatiiv, siis selle nimega tähistatakse sümboolselt sidetehnoloogia ja arvutustehnoloogia maailmade ühendamise initsiatiivi ehk lihtsustatult, telefonide ja arvutite kokkuühendamist; ning asjaolu, et selles osalevad erinevate maade tootjad. Bluetooth logo kujutab samuti kuninga nime esitähti, H ja B (Harald Bluetooth). Kusjuures folkloor kõneleb, et kuninga hambad oli sinised tema armastuse tõttu mustikate vastu.

Tööpõhimõte

TODO

  • Bluetooth protokolli pinu (ingl. k. stack) realiseerib kõik kihid alates raadiost kuni rakenduseni välja.
  • töötab litsentseerimata 2.4 GHz ümbruses
  • HCI - Host Controller Interface
  • SDP - Service Discovery Protocol

Sinihamba tarkvara paigaldamine arvutisse

Debian Lenny tuum sisaldab sinihamba tuge, kuid sinihamba kasutamiseks arvutist, tuleb arvutisse lisada veel sinihamba tarkvara, küige põhilisemate tarvarakomponentide paigaldamiseks tuleb öelda, mis paigaldab sõltuvusena bluez-utils paketi

# apt-get install bluetooth

Tulemusena paigaldatakse muu seas sellised programmid ja seadistusfailid

  • hciconfig - arvutis töötavate bluetooth seadmete seadistusutiliit
  • hcid - arvutis töötav nn bluetooth deemon
  • hcitool - arvutis ja võrgus olevate bluetooth seadmete andmete esitamiseks
  • rfcomm - rfcomm seadmete seadistamise utiliit
  • dund - dial-up networking deemon
  • l2ping - L2CAP echo pakettide saatmise programm
  • pand - private arene network (PAN) deemon, mis võimaldab nt ühendada arvuteid ad-hoc bluetooth võrku
  • /etc/bluetooth - Bluetooth tarkvara seadistusfailid

Lisaks sellele on vajalikud sõltuvalt konkreetsest Bluetooth kasutusest veel tõenäoliselt muudki paketid

 # apt-cache search bluez* | grep ^bluez
 bluez-audio - Bluetooth audio support
 bluez-cups - Bluetooth printer driver for CUPS
 bluez-gnome - Bluetooth utilities for GNOME
 bluez-hcidump - Analyses Bluetooth HCI packets
 bluez-pcmcia-support - PCMCIA support files for BlueZ 2.0 Bluetooth tools
 bluez-utils - Bluetooth tools and daemons
 bluez-firmware - Firmware for Bluetooth devices

ja veel üks samuti asjakohane nimekiri

 # apt-cache search bluetooth

Lisaks peab kasutaja kuuluma gruppi netdev, seda maksab igaks juhuks kontrollida peale tarkvara paigaldamist.

Bluetooth tarkvara käivitamine

Üldiselt peab Bluetooth kasutamiseks arvutis töötama hcid deemoni ja tema kontrollib seadistusfail /etc/bluetooht/hcid.conf, käivitamiseks sobib öelda

 # /etc/init.d/bluetooth start

millele vastab protsess

 # ps aux | grep hcid
 root 13871 0.0 0.1 4452 1644 ?  Ss 13:31  /usr/sbin/hcid -x -s

Arvuti sinihamba seadmed

Tavaliselt esineb sinihamba tugi arvutis kas nö sisese või külgeühendatava USB seadme kujul

 # lsusb
 Bus 004 Device 002: ID 044e:3001 Alps Electric Co., Ltd UGTZ4 Bluetooth

Sinihamba tugi muudes seadmetes, nt telefonid, peakomplektid, fotoaparaadid on selline nagu tootja on paremaks pidanud ja kasutajale vast ei ole see ka otseselt oluline.

Arvuti enda USB seadmete nimekirja näeb küsides nt

 # hcitool dev
 Devices:
   hci0  00:0B:5D:A5:76:40

kus on näha, et arvutis on olemas hci0 nimeline Bluetooth seade.

Sinihamba võrgus olevad seadmed ja teenused

Arvutist sinihamba võrgus olevate muude seadmete kasutamiseks on üldiselt tarvis teada nende seadmete bluetooth aadresse (bdaddr), mis esinevad kujul '00:1F:5C:F0:E2:A7'.

Seadmete leidmine võrgust

Üle bluetoothi näha olevaid seadmeid näeb küsides nt

 # hcitool scan
 Scanning ...

00:1F:5C:F0:E2:A7 Nokia 3110c

Teades seadme sinihamba aadressi saab küsida ka detailsemat infot

 # hcitool info 00:1D:6F:C1:CF:FB
 Requesting information ...
       BD Address:  00:1D:6F:C1:CF:FB
       Device Name: Enn
       LMP Version: 2.0 (0x3) LMP Subversion: 0x6cc
       Manufacturer: Cambridge Silicon Radio (10)
       Features: 0xbf 0xee 0x0f 0x46 0x98 0x19 0x00 0x00
       ...

Teenuste leidmine võrgus töötavalt seadmelt

Reeglina pakuvad sinihamba seadmed, nt mobiiltelefon üle sinihamba erinevaid teenuseid, sdptool abil saab küsida telefonilt teenuste nimekirja nt selliselt, kus 00:1F:5C:F0:E2:A7 on eelmises punktis leitud võrgus töötava seadme Bluetooth aadress

# sdptool browse 00:1F:5C:F0:E2:A7
Browsing 00:1F:5C:F0:E2:A7 ...
Service Name: Dial-up networking
   Channel: 1
Service Name: Nokia PC Suite
   Channel: 15
Service Name: COM 1
   Channel: 3
Service Name: Voice Gateway
   Channel: 13
Service Name: Audio Gateway
   Channel: 12
Service Name: Network Access Point Service
Service Description: Personal Ad-hoc Network Service which provides access to a network
...
Service Name: OBEX Object Push
   Channel: 9
Service Name: OBEX File Transfer
   Channel: 10
Service Name: SyncML Client
   Channel: 11
Service Name: SIM ACCESS
   Channel: 4

kus näeme, et telefon pakub muu hulgas selliseid teenuseid

  • Dial-up networking
  • Nokia PC Suite
  • OBEX File Transfer

Täielik vastus on toodud aadressil Fail:Sdptool-nokia-3110c.patch.

Võrguanalüüs

Sinihamba võrgu nähtavate seadmete kohta andmete saamiseks sobib kasutada nt btscanner tarkvara, paigaldamiseks tuleb öelda

 # apt-get install btscanner

Ja kasutamisel ta esitab nimekirja avastatud seadmetest

Bluetooth-11.gif

kust on nähe, et on avastatud seade

  • nimi - Nokia 3110c
  • bdaddr - 00:1F:5C:F0:E2:A7

Lisaks saab vaadata konkreetsete seadmete omadusi

Bluetooth-10.gif

kust on näha, et avastatud telefon Nokia 3110c pakub sellised teenuseid

  • Networking
  • Capturing
  • Object Transfer
  • Telephony

Bluetooth liiklust ennast saab jälgida nt paketist bluez-hcidump programmiga hcidump

 # hcidump -i hci0
 HCI sniffer - Bluetooth packet analyzer ver 1.42
 device: hci0 snap_len: 1028 filter: 0xffffffff
 < HCI Command: Create Connection (0x01|0x0005) plen 13
 > HCI Event: Command Status (0x0f) plen 4
 > HCI Event: Connect Complete (0x03) plen 11
 < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
 < ACL data: handle 42 flags 0x02 dlen 10
     L2CAP(s): Info req: type 2
 ...

Arvuti ja telefoni sidumine üle sinihamba

Nagu üldiselt osaliste suhtlemisel on oluline ka sinihamba puhul, et enne andmevahetuse alustamist saaksid osalised üksteist autentida. Nt arvuti ja telefoni sidumisel (ingl. k. pairing) tuleb mõlemal pool sisestada vastavas menüüs samasugune passkey. Seejärel öeldakse, et seadmed on seotud.

Kuigi nö madalal tasemel kasutatakse arvuti ja telefoni vahelise ühenduse pidamiseks ikkagi samu komponente, on erinevates keskkondades erinevad kasutajataseme vahendid. Käesolevas tekstis käsitletakse selliseid

  • Gnome keskkond - soovitatav kasutada
  • nö käsurealt - põhimõtteliselt peaks saama fundamentaaseid asju kontrollida Linuxis käsurealt ja seepärast on see variant samuti esitatud.

Gnome keskkonnas

Eeldame, et Gnome keskkond on paigaldatud ja kasutusel ning seda kasutatakse nö tavakasutajana, kusjuures kasutaja peab kuuluma gruppi netdev. Arvutisse peavad olema paigaldatud paketid bluetooth ning gnome-bluetooth

 # apt-get install bluetooth gnome-bluetooth

Bluetoothi käivitamiseks tuleb öelda

 # /etc/init.d/bluetooth start

Läheduses olevate bluetooth seadmete kasutamiseks tuleb kasutajana Gnome keskkonda sisse logida ning seadmed esmalt omavahel paaritada (ingl. k. pairing). Olgu tegu arvuti ja telefoniga, valige Gnome Bluetooth-appletil, millel on abitekst Bluetooth Manager parem hiireklõpsuga avanevast hüpikmenüüst Browsd Device ning võiks avaneda nt selline pilt

Bluetooth-1.gif

Seejärel ilmub telefonile tekst 'Exchange data with fuji-0?', vastates jaatavalt küsib telefon nn Passkey'd, sisestage nt '1111'. Järgmisena avaneb arvutis sarnane Passkey sisestamise aken

Bluetooth-2.gif

Õnnestumise tunnuseks on avanenud telefoni nö failisüsteemi sisuga aken, nt selline

Bluetooth-3.gif

Õnnestumise tunnuseks on arvuti korpusel signaaltule süttimine ning mõni teade dmesg'is.

Käsurealt

TODO

Kasulikud lisamaterjalid

Vanast tekstist

Nagu üldiselt osaliste suhtlemisel on oluline ka sinihamba puhul, et enne andmevahetuse alustamist saaksid osalised üksteist autentida. Nt arvuti ja telefoni kokkuühendamisel (ingl. k. pairing) tuleb mõlemal pool sisestada vastavas menüüs samasugune passkey. Seejärel öeldakse, et seadmed on ühendatud (ingl. k. bound).

Tavaliselt tuleb seadmete kasutamisel nende sinihamba tugi sisselülitada, telefonidel tuleb leida vastav menüü ning arvutitel tuleb seda teha tõnäoliselt kahes kohas, riistvaraliselt (nt BIOS'is) ning tarkvaraliselt vastava sinihambatoe tarkvara käivitamisega.