Bluetooth-Tipps: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
 
=== Erste Schritte ===
 
=== Erste Schritte ===
  
 +
* [https://kofler.info/bluetooth-konfiguration-im-terminal-mit-bluetoothctl/ kofler.info zu Pairen mit bluetoothctl]
 
* '''Die''' [http://www.holtmann.org/linux/bluetooth/ Übersicht für Howtos für Bluetooth unter Linux]
 
* '''Die''' [http://www.holtmann.org/linux/bluetooth/ Übersicht für Howtos für Bluetooth unter Linux]
 
* Eine ältere [http://www.holtmann.org/papers/bluetooth/uptimes2003.html Anleitung zu Bluetooth unter Linux]
 
* Eine ältere [http://www.holtmann.org/papers/bluetooth/uptimes2003.html Anleitung zu Bluetooth unter Linux]
Zeile 13: Zeile 14:
 
* Eingebaute Bluetooth-Adapter anzeigen
 
* Eingebaute Bluetooth-Adapter anzeigen
 
   hcitool dev
 
   hcitool dev
 +
* Oder mit ''bluetoothctl'' (benötigt Rechte der Gruppe <code>lp</code><ref>Siehe https://wiki.archlinux.org/index.php/bluetooth</ref> und/oder eine Anpassung der Rechte in <code>/etc/dbus-1/system.d/bluetooth.conf </code>)
 +
  sudo adduser USER lp
 +
  bluetoothctl
 +
    list
 +
 
 
* Falls kein Adapter angezeigt wird, ist er möglicherweise geblockt:
 
* Falls kein Adapter angezeigt wird, ist er möglicherweise geblockt:
 
** Anzeige der Funk-Geräte
 
** Anzeige der Funk-Geräte
Zeile 54: Zeile 60:
  
 
durchführen.
 
durchführen.
 +
 +
=== Automatisches Pairen und Vertrauen ===
 +
 +
''Der folgende Tipp kann ein Sicherheitsrisiko darstellen:''
 +
 +
Um andere Geräte automatisch mit dem Linux-Server koppeln zu lassen und ihnen auch noch zu ''vertrauen(!)'', kann folgendes Skript benutzt werden.
 +
 +
 +
  #!/bin/bash
 +
  echo -e "pairable on\ndiscoverable on\nagent on\n" | bluetoothctl
 +
  while true; do
 +
    echo paired-devices | bluetoothctl  \
 +
      | sed -n -e 's/^Device \(..:..:..:..:..:..\).*$/trust \1/p' \
 +
      | xargs -l -dz  echo | bluetoothctl
 +
    sleep 20s
 +
  done
  
 
=== Linux-Server als Audio-Ausgabe ===
 
=== Linux-Server als Audio-Ausgabe ===
 +
 +
Die üblichen Werkzeuge, um den Linux-Server als Audio-Ausgabe für ein Smartphone mit Hilfe der Kommandozeile einzurichten, sind bluetoothctl und [[PulseAudio]].
  
 
Siehe  
 
Siehe  
 +
* https://askubuntu.com/questions/763939/bluetoothctl-what-is-a-bluetooth-agent
 +
* https://pi-buch.info/bluetooth-konfiguration-mit-bluetoothctl/
 +
* https://github.com/ev3dev/ev3dev.github.io/pull/24/files/50787e9fae767f4a8e5e1748c5bb70b40eb9f259?short_path=2545682
 
* https://blog.stevenocchipinti.com/2012/10/bluetooth-audio-streaming-from-phone-to.html/
 
* https://blog.stevenocchipinti.com/2012/10/bluetooth-audio-streaming-from-phone-to.html/
  
Zeile 156: Zeile 183:
 
Siehe
 
Siehe
 
* https://medium.com/@urish/reverse-engineering-a-bluetooth-lightbulb-56580fcb7546
 
* https://medium.com/@urish/reverse-engineering-a-bluetooth-lightbulb-56580fcb7546
 +
* https://learn.adafruit.com/reverse-engineering-a-bluetooth-low-energy-light-bulb/overview
  
 
== Zugang ins Internet vom Handy via Bluetooth-Verbindung zum PC ==
 
== Zugang ins Internet vom Handy via Bluetooth-Verbindung zum PC ==
Zeile 175: Zeile 203:
  
  
 +
 +
== Bluetooth vom Browser ==
 +
 +
In wenigen Browsern gibt es ein experimentelles Feature: die Web-Bluetooth-API.
 +
 +
Im Firefox-Browser soll es diese API aus Sicherheitsgründen nicht geben (dem Nutzer können die Gefahren einer Low-Level-Bluetooth-Verbindung nicht leicht und verständlich genug mitgeteilt werden, was aber für das gefahrlose Browsen im Internet möglich sein muss).
 +
 +
In Chrome und Edge gibt es diese [https://developer.chrome.com/docs/capabilities/bluetooth API] (u.U. freizuschalten in den Flags (about://flags#experimental-web-platform-features)).
 +
 +
Zu Debugging-Zwecken integrieren diese auch ein einfaches Tool:
 +
 +
* about://bluetooth-internals
  
 
== Bluetooth und Java ==
 
== Bluetooth und Java ==

Aktuelle Version vom 15. Mai 2024, 06:52 Uhr

Bluetooth-Tipps

Bluetooth unter Linux

Erste Schritte


  • Eingebaute Bluetooth-Adapter anzeigen
 hcitool dev
  • Oder mit bluetoothctl (benötigt Rechte der Gruppe lp[1] und/oder eine Anpassung der Rechte in /etc/dbus-1/system.d/bluetooth.conf )
 sudo adduser USER lp
 bluetoothctl
   list
 
  • Falls kein Adapter angezeigt wird, ist er möglicherweise geblockt:
    • Anzeige der Funk-Geräte
 rfkill list
    • Entblocken des Bluetooth-Adapters[2]
 rfkill unblock bluetooth
  • Bluetooth-Geräte anzeigen:
 hcitool scan
  • Ping:
 l2ping 11:22:33:44:55:66
  • Dienste anzeigen:
  sdptool browse
  • Bei Symbian-Nokias
    • zuerst gnapplet.sis installieren.
    • Kopieren von ~/.gnokiirc aus /etc/gnokiirc
    • Einfügen folgender Befehle in {{{~./.gnokiirc}}} (Beispiel für Nokia 6600):
   port = 11:22:33:44:55:66
   rfcomm_channel = 2
   model = series60
   connection = bluetooth
    • Nokia-Gerät identifizieren (nach Erstellen von ~/.gnokiirc aus /etc/gnokiirc)
    {{{gnokii --identify}}}, siehe auch den Thread zu N70 unter Linux
  • Zur Fehlerbehebung kann man auch eine serielle Schnittstelle via Bluetooth öffnen:[3]
 rfcomm bind 0 11:22:33:44:55:66 1
 rfcomm show 0


  • Normalerweise wird die Konfiguration von Bluetooth in der Datei {{{/etc/bluetooth/hcid.conf}}} vorgenommen. Nach einer Änderung wird das System am einfachsten über
  /etc/init.d/bluetooth restart 
  

neu gestartet. Ob es geklappt hat kann man mit der Ausgabe von

  hciconfig -a
  sdptool browse local
  

feststellen.

  • Manuelle Änderungen an der Konfiguration lassen sich mit Hilfe von
 hciconfig

durchführen.

Automatisches Pairen und Vertrauen

Der folgende Tipp kann ein Sicherheitsrisiko darstellen:

Um andere Geräte automatisch mit dem Linux-Server koppeln zu lassen und ihnen auch noch zu vertrauen(!), kann folgendes Skript benutzt werden.


 #!/bin/bash
 echo -e "pairable on\ndiscoverable on\nagent on\n" | bluetoothctl
 while true; do 
   echo paired-devices | bluetoothctl  \
     | sed -n -e 's/^Device \(..:..:..:..:..:..\).*$/trust \1/p' \
     | xargs -l -dz  echo | bluetoothctl 
   sleep 20s 
 done 

Linux-Server als Audio-Ausgabe

Die üblichen Werkzeuge, um den Linux-Server als Audio-Ausgabe für ein Smartphone mit Hilfe der Kommandozeile einzurichten, sind bluetoothctl und PulseAudio.

Siehe

Synchronisation mit Handys


PAN-Einrichtung

Ein Personal Area Network (PAN) scheint der sinnvollste Weg, dem Handy über den PC den Zugang zum Internet zu verschaffen. Dazu wird der PC als Network Access Point (NAP) eingerichtet; das Handy stellt dann in der PAN-Terminologie ein PANU (PAN User) dar. Der Linux-PC erreicht das über den pand-Daemon.


Debian Etch und Sony Ericsson K800i

  • Zu Debian Etch und einem SE K800i wird hier ausgeführt, wie man vom Handy via Linux-PC (PAN) auf das WWW zugreifen kann. Ergänzung:
    • Zur Kopplung kann man in der /etc/bluetooth/hcid.conf noch {{{security auto}}} und den {{{passkey}}} auf die gewünschte PIN setzen.
    • Statt {{{ lm accept, master; }}} muss die Zeile in {{{/etc/bluetooth}}} {{{
    lm accept,master; 
    }}} (ohne Leerzeichen nach dem Komma) heißen.
    • Das {{{dev-up}}}-Script wird natürlich nicht mit {{{chmpd}}} sondern mit {{{
    chmod +x /etc/bluetooth/pan/dev-up 
    }}} ausführbar.

Debian Etch und Sony Ericsson W800i

OpenSuse 11.0 und Sony Ericsson K800i - INCOMPLETE

Die einzelnen Schritte unter OpenSuse 11.0 (jeweils als root) Unter OpenSuse 11.1 gibt's da wohl Fehler siehe auch im Opensuse-Forum und im englischen OpenSuse-Wiki: 1. Auf dem OpenSuse-PC in {{{/etc/bluetooth/hcid.conf}}} folgende Zeilen ändern, um 1234 automatisch als PIN für Bluetooth-Verbindungen vorzugeben: {{{

    security auto
    passkey "1234" }}}

Der {{{hcid}}}-Dämon wird mit {{{

    /etc/init.d/bluetooth restart }}}

neu gestartet.

2. Auf dem Sony Ericsson K800i "Pairing" einleiten: Einstellungen -> Verbindungen -> Bluetooth -> Meine Geräte -> Neues Gerät und dann die PIN 1234 (wie oben bei passkey) eingeben (Achtung richtige Tastatureinstellungen).

3. Auf dem PC den pand-Daemon als NAP-Server (listen, Master) starten: {{{

   pand -r NAP --listen -M -n  }}}

Das klappt bei mir nicht (/var/log/messages sagt: {{{bind failed; address already in use}}}). Geholfen hat in /etc/sysconfig/bluetooth {{{

   PAND_START="yes"
   PAND_DAEMON_ARGS="--listen --role NAP --master --devup /etc/bluetooth/pan/dev-up"
 }}}
 zu setzen.

4. Auf dem Handy versuchen die Verbindung aufzubauen: Einstellungen -> Verbindungen -> Bluetooth -> Meine Geräte -> BlueZ (oder anderer Name des PCs) -> Verbinden. Der Verbindungsaufbau scheitert; aber unter Einstellungen -> Verbindungen -> Datenübertragung -> Datenkonten findet sich nun die Adresse des PCs als neues Datenkonto.

5. Auf dem Handy Einstellungen -> Verbindungen -> Interneteinstellungen -> Internetprofile -> Neues Profil, einen Namen geben und bei verbinden mit das neue Datenkonto (siehe oben) angeben. Das Gleiche nochmals bei "Java-Einstellungen" (wie bei "Internetprofile").

6. Auf dem PC die Datei /etc/bluetooth/pan/dev-up erstellen mit folgendem Inhalt:

    #! /bin/sh
    echo $1 ist nun bereit!
    beep
  
  

Sie muss mit

    chmod a+x /etc/bluetooth/pan/dev-up

ausführbar gemacht werden

Sonstige PAN-Versuche



DUN-Versuche zum Zugriff des Handys auf das Internet über Linux-PC

Verbindung mit Sony Ericsson K800i

Verbindung mit Nokia 6600

Verbindungen mit Smart Home

Siehe

Zugang ins Internet vom Handy via Bluetooth-Verbindung zum PC

Für einen Linux-PC als Zugang zum Internet siehe auch [:#PAN:PAN oben]. Der Zugang ins Internet vom Handy via Bluetooth-Verbindung zum PC kann eine Voraussetzung dafür sein, [:Synchronisation Web-PC-Handy:Kalender und Adressbuch zwischen Web, PC und Handy synchronisieren zu können].

  • Um ein Bluetooth-Datenkonto für das K800i zu erstellen, muss zuerst ein PAN vom PC zum Handy erstellt werden (mit Pairing). Im zweiten Schritt dann vom Handy über Einstellungen->Bluetooth->Meine Geräte->PC-Name(+Bluetooth-Symbol)->Verbinden eine Verbindung herstellen versuchen (schlägt fehl). Dann findet sich unter Datenkonten ein Konto Bluetooth-Symbol plus Rechnername. Siehe Anleitung für K800i als Modem.
  • Diese [Anleitung für Windows-PC in Verbindung mit BlueSoleil V 2.3] stellt ein [:#PAN:PAN].

Nutzung des Handys als Modem für den Internetzugang vom PC aus


Bluetooth vom Browser

In wenigen Browsern gibt es ein experimentelles Feature: die Web-Bluetooth-API.

Im Firefox-Browser soll es diese API aus Sicherheitsgründen nicht geben (dem Nutzer können die Gefahren einer Low-Level-Bluetooth-Verbindung nicht leicht und verständlich genug mitgeteilt werden, was aber für das gefahrlose Browsen im Internet möglich sein muss).

In Chrome und Edge gibt es diese API (u.U. freizuschalten in den Flags (about://flags#experimental-web-platform-features)).

Zu Debugging-Zwecken integrieren diese auch ein einfaches Tool:

  • about://bluetooth-internals

Bluetooth und Java

  • Anleitungen für J2ME Bluetooth finden sich auf benhui.net.
  • Personal Area Networks

a. Part 1 - http://developers.sun.com/techtopics/mobility/apis/articles/bluetoothintro/index.html b. Part 2 - http://developers.sun.com/techtopics/mobility/apis/articles/bluetoothcore/index.html


Bluetooth und J2SE

  • BlueCove ist eine freie JSR-82 J2SE Implementation. Inzwischen wird neben Windows auch Linux unterstützt.

Bluetooth-Hardware

Bluetooth-Adapter für serielle Schnittstelle


Bluetooth-Einbaumodule


Siehe auch Debian#Bluetooth