Bluetooth: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K -Sy in -S gewandelt gemäß Diskussion hier: https://bbs.archlinux.de/viewtopic.php?id=17347
Boenki (Diskussion | Beiträge)
K einmal verlinken reicht
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Dieser Artikel lehnt sich an den Artikel [http://wiki.archlinux.org/index.php/Bluetooth Bluetooth] aus der englischen Archlinux-Wiki an, behandelt in erster Linie jedoch den Dateitransfer zwischen Mobiltelefonen und Computern mittels {{wikipedia|OBEX|OBEX}}.
Dieser Artikel lehnt sich an den Artikel [[:en:Bluetooth|Bluetooth]] aus der englischen Archlinux-Wiki an, behandelt in erster Linie jedoch den Dateitransfer zwischen Mobiltelefonen und Computern mittels {{wikipedia|OBEX}}.
 
==Installation==
Als erstes benötigt ihr die [http://www.bluez.org/ bluez-utils], welche den Bluetooth-Daemon und einige Hilfsprogramme enthält:
 
  $ pacman -S bluez
 
Nun muss der bluetooth-Daemon gestartet werden. Aus verschiedenen Gründen muss der dbus-Daemon laufen, und das noch bevor der bluetooth-Daemon aktiviert wird.
 
  $ /etc/rc.d/dbus start
  $ /etc/rc.d/bluetooth start
 
Um zu sehen, ob das Bluetooth-Gerät richtig erkannt wurde, benutzt man den Befehl hcitool aus den bluez-utils:
 
  $ hcitool dev
  Devices:
          hci0    xx:xx:xx:xx:xx:xx
 
Ausgegeben werden alle verfügbaren Geräte mit ihren zugehörigen MAC-Adressen. Um detaillierte Informationen über ein Gerät zu erhalten, kann man das Tool hciconfig verwenden.
 
  $ hciconfig -a hci0
  hci0:  Type: USB
          BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 384:8 SCO MTU: 64:8
          UP RUNNING PSCAN
          RX bytes:6245132 acl:18111 sco:0 events:6806 errors:0
          TX bytes:102529 acl:6568 sco:0 commands:128 errors:0
          Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
          Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
          Link policy: RSWITCH HOLD SNIFF PARK
          Link mode: SLAVE ACCEPT
          Name: 'xxx'
          Class: 0x08010c
          Service Classes: Capturing
          Device Class: Computer, Laptop
          HCI Ver: 2.0 (0x3) HCI Rev: 0x7a6 LMP Ver: 2.0 (0x3) LMP Subver: 0x7a6
          Manufacturer: Cambridge Silicon Radio (10)


==Geräte koppeln==
==Geräte koppeln==
Zeile 79: Zeile 44:
Wenn der Key richtig eingegeben wurde, so ist das Gerät nun gekoppelt (evtl. muss die Kopplung auf einem Mobiltelefon noch gespeichert werden).
Wenn der Key richtig eingegeben wurde, so ist das Gerät nun gekoppelt (evtl. muss die Kopplung auf einem Mobiltelefon noch gespeichert werden).


Für die zweite Möglichkeit, der Kopplung durch Verbindungsanfrage, benutzt man einfach beispielsweise ein Tool wie [http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp obexftp], um sich mit dem Server (Mobiltelefon) mittles [http://de.wikipedia.org/wiki/Obex OBEX] zu verbinden. Wenn beim Mobiltelefon Bluetooth aktiviert ist, sollte das Gerät selbst nach der Kopplung fragen. Nach der Eingabe des Keys wird die Verbindung hergestellt und das Gerät ist gekoppelt.  
Für die zweite Möglichkeit, der Kopplung durch Verbindungsanfrage, benutzt man einfach beispielsweise ein Tool wie [http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp obexftp], um sich mit dem Server (Mobiltelefon) mittels OBEX zu verbinden. Wenn beim Mobiltelefon Bluetooth aktiviert ist, sollte das Gerät selbst nach der Kopplung fragen. Nach der Eingabe des Keys wird die Verbindung hergestellt und das Gerät ist gekoppelt.  
 
Ist das Gerät einmal gekoppelt worden, so muss man den passkey-agent nichtmehr extra starten. Dessen Aufgabe übernimmt von nun an der dbus-Daemon.
 
===Beispiel für Methode mit automatischer Kopplung===
Bei diesem Beispiel wurde ein Motorola RAZR V8 verwendet.
 
  $ obexftp -b xx:xx:xx:xx:xx:xx -l
  Browsing xx:xx:xx:xx:xx:xx ...
  Connecting...done
  Receiving "/"... Sending ""... done
  --- <content> ---
  Disconnecting...done
 
Dieser Befehl baut eine OBEX-Datenverbindung mit der unter der Option -b angegebenen MAC-Adresse auf und gibt den Inhalt des Rootverzeichnisses des Mobiltelefons aus. Wenn das Mobiltelefon noch nicht gekoppelt wurde, so wird nach dem Passkey gefragt, der zuvor mittels passkey-agent angegeben wurde (hier muss passkey-agent unbedingt noch laufen!). Ist das Gerät dann gekoppelt, so wird am Mobiltelefon nachgefragt, ob eine Verbindung aufgebaut werden darf - akzeptiert man dies, so fährt obexftp nach der Connecting-Phase mit dem Transfer fort und beendet nach dessen Abschluss die Verbindung.
 
==Ein Gerät in das lokale Dateisystem einbinden==
Mit dem auf FUSE basierenden Tool [http://dev.zuckschwerdt.org/openobex/wiki/ObexFs obexfs] kann ein Dateisystem über Bluetooth in das lokale Linuxdateisystem gemountet werden. Dazu installiert man es sich einfach mittels
 
  # pacman -S obexfs
 
Nun erstellt man sich noch einen beliebigen Mountpoint (sofern man noch keinen zur Verfügung hat):
 
  # mkdir /mnt/bluetooth
 
Damit man als User mounten kann muss man Schreibzugriff auf den Mountpoint besitzen. Also führt ihr obexfs entweder als root aus, oder ihr erstellt am Besten eine eigene Gruppe namens "bluetooth", welche Lese- und Schreibrechte auf den Mountpoint besitzen:
 
  # chown root /mnt/bluetooth
  # chmod 775 /mnt/bluetooth
  # groupadd bluetooth
  # usermod -a -G bluetooth USERNAME


Nun kann man das Dateisystem mounten:
Ist das Gerät einmal gekoppelt worden, so muss man den passkey-agent nicht mehr extra starten. Dessen Aufgabe übernimmt von nun an der dbus-Daemon.


  $ obexfs -b xx:xx:xx:xx:xx:xx /mnt/bluetooth/
[[en:Bluetooth]]


[[Kategorie:Multimedia]]
[[Kategorie:Konfiguration]]

Aktuelle Version vom 22. Juni 2017, 21:45 Uhr

Dieser Artikel lehnt sich an den Artikel Bluetooth aus der englischen Archlinux-Wiki an, behandelt in erster Linie jedoch den Dateitransfer zwischen Mobiltelefonen und Computern mittels OBEX.

Geräte koppeln

Damit eine Verbindung nicht von jedem einfach so aufgebaut werden kann, müssen Bluetooth-Geräte oft mit einem Passkey gekoppelt werden. Der Vorgang läuft in etwa so ab:

  • Der Client will eine Verbindung zum Server aufbauen (zum Beispiel Computer->Mobiltelefon)
  • Der Client und der Server bitten um die Eingabe des Passkeys
  • Diese werden verglichen - wenn sie gleich sind, so wird das Gerät gekoppelt, ansonsten wird die Verbindung abgebrochen

Das bluez-utils Paket stellt uns wieder ein praktisches Tool namens passkey-agent für die Übermittlung des Passkeys zur Verfügung.

Nutzeranmerkung: Anscheinend ist passkey-agent derzeit nicht in bluez enthalten, es klappt auch mit bluez-simple-agent, siehe englische Anleitung.

 $ passkey-agent
 Bluetooth passkey agent ver 3.32
 Usage:
         passkey-agent [--default] [--path agent-path] <passkey> [address]

Um einen default Key für alle Geräte zu verwenden benutzt man einfach folgenden Befehl:

 $ passkey-agent --default xxx &

Wenn man nur mit einem speziellen Gerät koppeln will kann man auch die jeweilige MAC-Adresse verwenden

 $ passkey-agent --default xxx MAC &

Wenn man ein Mobiltelefon benutzt, so kann man auf zwei Arten koppeln:

  • Entweder man sucht den Computer direkt mit dem Mobiltelefon und koppelt manuell
  • oder man versucht vom Computer aus eine Verbindung zum Mobiltelefon aufzubauen.

Für die erste Möglichkeit muss die Option ISCAN (Inquiry scan) für das Bluetooth-Device aktiviert sein. Überprüfen könnt ihr das mit folgendem Befehl:

 $ hciconfig <dev> | grep ISCAN
        UP RUNNING PSCAN ISCAN

<dev> ersetzt ihr mit dem jeweiligen Bluetooth-Gerät (z.B.: hci0). Sollte ISCAN nicht aktiviert sein, so aktiviert man es manuell mittels hciconfig:

 $ hciconfig <dev> piscan

Dieser Befehl aktiviert PSCAN (Page scan) und ISCAN - das Gerät bleibt aber nur eine bestimmte Zeit sichtbar. (Beide Optionen findet man auch in der /etc/bluetooth/hcid.conf, leider scheint keine der Defaulteinstellungen darin eine unmittelbare Wirkung zu zeigen) Nun kann der Computer von anderen Bluetooth-Geräten gefunden werden und man kann versuchen manuell zu koppeln. Der passkey-agent gibt bei der Anfrage dann folgende Meldung aus:

 Passkey request for device xx:xx:xx:xx:xx:xx

Wenn der Key richtig eingegeben wurde, so ist das Gerät nun gekoppelt (evtl. muss die Kopplung auf einem Mobiltelefon noch gespeichert werden).

Für die zweite Möglichkeit, der Kopplung durch Verbindungsanfrage, benutzt man einfach beispielsweise ein Tool wie obexftp, um sich mit dem Server (Mobiltelefon) mittels OBEX zu verbinden. Wenn beim Mobiltelefon Bluetooth aktiviert ist, sollte das Gerät selbst nach der Kopplung fragen. Nach der Eingabe des Keys wird die Verbindung hergestellt und das Gerät ist gekoppelt.

Ist das Gerät einmal gekoppelt worden, so muss man den passkey-agent nicht mehr extra starten. Dessen Aufgabe übernimmt von nun an der dbus-Daemon.