Bluetooth

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Bluetooth

Beitrag von scientific » 15.03.2017 19:30:03

Ich beginne einmal mit einer Schilderung.
Bluetooth ist ja unter Linux eine Baustelle, seit ich Linux benutze. Und das sind mittlerweile doch schon 12 oder mehr Jahre.

Die Jungs von bluez glänzen nicht unbedingt durch die Freude an guter Dokumentation und die Anleitungen im Netz beziehen sich oft auf veraltete Versionen von bluez und dessen Werkzeuge.

Mein Problem ist, dass mein Laptop weder Bluetooth-Lautsprecher noch mein Smartphone erkennt.
Einzig ein BT-Keyboard von Apple wird ziemlich anstandslos erkannt und funktioniert... Etwas verzögert.

Das selbe Problem hab ich auch auf einem sehr alten Thinkpad T400.

Die Begriffsvielfalt ist extrem verwirrend, die bei Bluetooth vorherrscht.
Ich habe letzten Sommer ein klein wenig Licht ins Dunkel nach einer Woche intensiver Recherche bringen können. Aber mehr als ein Streichholz im finsteren Keller war das auch nicht... Und meine Bluetooth-Peripherie ist nach wie vor unbeeindruckt von meinem Linux-Laptop.

Die Informationen zu Linux und bt sind wie gesagt weit verstreut und alles andere als up2date geschweige denn vollständig.
Zu meinen Fehlermeldungen finden sich die ewig gleichen, wenig aussagekräftigen Postings ohne Lösung oder gar Erklärung der Begriffe.
Was ist ein SDP-Server, und brauch ich sowas überhaupt? Oder verursacht sowas nur Probleme.
Kann ofono Soundprobleme lösen, oder ist das ausschließlich für Telefondevices gedacht?
Was ist A2DP oder das andere (Name vergessen) Profil, das ich in der Soundkonfiguration wählen kann, und wozu brauch ich was? Und warum ist das in Debian nicht standardmäßig installiert?
Wie finde ich raus, ob sich mein Smartphone und mein Laptop bluetoothmäßig überhaupt finden können (Protokol?) und warum sie es dennoch nicht tun?

Ich würde das gerne systematisieren und in ein Wiki packen. Selbst Arch und *buntu geben da nicht viel aktuell brauchbares her...

Allein schaffe ich das aber nicht. Möchte mich dabei jemand unterstützen?

Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Bluetooth

Beitrag von MSfree » 15.03.2017 20:32:52

Naja, ich weiß nicht, ob du das schon probiert hast, aber bei mir hat folgendes von der Kommandozeile eigentlich bisher immer funktioniert:

Code: Alles auswählen

bluetoothctl
pairable on
scan on
agent on
pair xx:xx:xx
trust xx:xx:xx
connect xx:xx:xx
info xx:xx:xx
list
devices.
exit

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Bluetooth

Beitrag von scientific » 15.03.2017 20:42:13

Du kannst davon ausgehen... ;-)
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Bluetooth

Beitrag von scientific » 19.03.2017 22:28:55

Die Dokumentation von bluez ist ja wirklich mangelhaft...

In der Manpage von bluetoothd steht, dass die Datei /etc/bluetooth/main.conf eingelesen wird.

Wird sie aber nicht. Ich habe dort über den Parameter Class = einen anderen Gerätetyp für den Laptop festgelegt.

Code: Alles auswählen

hciconfig hci0 class
aber bringt immer den ursprünglich vorhandenen.

Dann habe ich nochmal in /etc/bluetooth/audio.conf alle "Disabled"-Einträge auskommentiert und einen eingefügt:

Code: Alles auswählen

[General]
Enable=Source,Sink,Media,Socket
Auf einmal erkennen sich Handy und Laptop gegenseitig und ich kann am externen Bluetooth-Lautsprecher Musik klar und deutlich hören... Der Gerätetyp ist aber immer noch

Code: Alles auswählen

# hciconfig hci0 class
hci0:	Type: Primary  Bus: USB
	BD Address: F8:16:54:F8:27:4D  ACL MTU: 1021:5  SCO MTU: 96:6
	Class: 0x1c010c
	Service Classes: Rendering, Capturing, Object Transfer
	Device Class: Computer, Laptop
Dateien aufs Smartphone lassen sich nicht übertragen...

Nach einem Suspend to RAM lässt sich aber das Handy wieder nicht pairen.

Wie ich an anderer Stelle fand, ist /etc/bluetooth/audio.conf und im Besonderen die Zeile von oben mit "Enabled=" obsolet... die soeben gemachte Erfahrung widerspricht dem aber...

Langsam aber sicher manifestiert sich in mir der Gedanke, dass Bluetooth unter Linux wirklich ein Dreck ist... Keine Doku, nur irgendwelche Mutmaßungen über veraltete Versionen und irgendwelche Hinweise, die dann doch wieder nicht stimmen... und seit 12 Jahren (in denen ich jetzt Linux nutze) hat das noch nie dauerhaft oder stabil funktioniert...

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: Bluetooth

Beitrag von pferdefreund » 20.03.2017 09:22:58

Bluetooth ist generell Dreck. Wenn ich sehe, wie oft die Fitnessuhr nicht mit ihrem Handy will - 1000 x probieren und dann irgendwann,
da kann man nur sagen - vergiss es. Wie es bei Windows ist - keine Ahnung - habe set 1999 keins mehr.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Bluetooth

Beitrag von scientific » 20.03.2017 09:44:46

Mir fehlen die Erfahrungswerte mit Windows ebenso...
Einzelne Bilder von Smartphone zu Smartphone übertragen klappt gut.
Ton vom Smartphone zum BT-Lautsprecher klappt gut.
Bilder zur Entwicklungsstation im Drogeriemarkt übertragen klappt gut. (ob dort ein Windows oder Linux drauf läuft, kann ich nicht feststellen).

Einzig BT am Linux-Laptop ist ausgemachter Mist.

Mittlerweile krieg ich wieder gar keine Verbindung mehr zustande...
Es muss irgendeine aus den 1000en möglichen Kombinationen aller Kernelmoduloptionen und bluez-Optionen sein, die ein gegenseitiges Erkennen und dann eine Verbindung ermöglicht.

Das ist wie Lottospielen... Ein Systemfreeze dur einen Kernel-oops beim Umschalten auf BT-Audio inclusive... (ein Bug auf ARM bekannt, ich hatte ihn gestern auch auf amd64...)

Und dann hat man ein Werkzeug (hciconfig) das wenigstens ein paar nette Einstellungen erlaubt, die bluetoothd vornehmen sollte, aber nicht tut (setzen der Class) und schon liest man, es wäre deprecated... Wie alle anderen funktionierenden Bluetooth-Werkzeuge auch...
Man hat echt den Eindruck, "die" wollen nicht, dass der Dreck funktioniert...

Ist die Implementation in Android eine andere?
Kann man die nicht auf den "Desktop" portieren und bluez auf den Müll kippen, wo es hingehört?

Liebe frustrierte Grüße

Scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

guennid

Re: Bluetooth

Beitrag von guennid » 20.03.2017 10:22:12

Das ist aber außerordentlich blöd, was du da berichtest. Eigentlich wollte ich mich gerade intensiver mit einer Kombination von guten Bluetooth-Lautsprechern, Internet-Radio und Debian beschäftigen (pfiffige Telefone sind hier uninteressant) und befürchte nun, Zeit zu verschwenden.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Bluetooth

Beitrag von scientific » 20.03.2017 10:55:23

Mich fasziniert die Technologie schon, seit ich das erste Mal davon gehört habe... Vielleicht ärgert es mich deswegen so, dass der Krempel nicht ordentlich tut... :)

Und ich geb auch nicht auf. Deshalb ja auch meine Idee, eines systematischen Wikis, wo alles erklärt wird, was so rund um Bluetooth schwirrt. A2DP, HFP, ofono, Socket, Source, Kernelmodule, bt_coexist...

Und fein wäre natürlich auch eine Auflistung bekannter funktionierender Modul- und Service-Optionen für die diversen gängigen BT-Chips...

Nachdem ich mit meinem gestern tatsächlich erfolgreich eine Erkennung, Pairing und Wiedergabe mit Lautsprecher bzw. Smartphone geschafft habe (die jetzt schon wieder nicht mehr geht), hab ich den Biss dazu, die genaue Konfiguration herauszufinden... und dann zu dokumentieren...

Und wenn das jede/r mit dem eigenen Chip macht, könnt ma da eine schöne Datenbank an Konfigurationen zusammenbringen.

Ich habe z.B. schon herausgefallen, dass die häufigen Fehlermeldungen im Log über den SAP-Server unnötig sind, da man normalerweise* diesen Dienst nicht benötigt. Der ist nur in einem ganz speziellen Umfeld notwendig und kann mit der Option

Code: Alles auswählen

 --noplugin=sap
im Aufruf von bluetoothd unterbunden werden.

* https://de.wikipedia.org/wiki/SIM-Access-Profile
SAP = Sim Access Protocol - Damit ist es möglich, dass ein in einem Kraftfahrzeug eingebautes Mobiltelefon mittels Bluetooth eine Verbindung mit der SIM-Karte eines Bluetooth-fähigen Mobiltelefons herstellt.
Für mich heißt das, ich hab im Auto ein Mobiltelefon ohne SIM-Karte eingebaut (embedded device) und dieses nutzt per Bluetooth die SIM-Karte meines Mobiltelefons, wenn ich in der Nähe des Autos bin.
Das bedeutet, dass mein Laptop - so er ein Mobilfunk-Device eingebaut hat, die SIM-Karte meines Handys per Bluetooth nützen könnte... Und welcher Laptop hat so etwas verbaut? -> Ergo, es wird im "Normalfall" nicht benötigt.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Bluetooth

Beitrag von scientific » 20.03.2017 13:16:27

Einen scofix in Linux zu finden ist ja im Angesicht von https://de.wikipedia.org/wiki/SCO_gegen_Linux recht lustig.

Aber was macht dieser Kernel-Modul-Parameter? Und brauch ich den? Ich finde da nix brauchbares oder für mich verwertbares dafür...

Das Modul btusb hat:

Code: Alles auswählen

parm:           disable_scofix:Disable fixup of wrong SCO buffer size (bool)
parm:           force_scofix:Force fixup of wrong SCO buffers size (bool)
parm:           reset:Send HCI reset command on initialization (bool)
Mit deaktiviertem reset ist bluetooth mit dem Intel 7260-Kombi-PCI-Gerät nicht funktionsfähig.
Die beiden scofix-Optionen ergeben zusammen schon 4 Möglichkeiten der Kombination (Von denen meiner Logik nach nur 2 sinnvoll sind), die man testen muss...
bt_coex_activate von iwlwifi vergrößert diese Menge schon auf 8 (4 sinnvolle)...

Und das alles ohne sinnvolle Doku. Das ist richtig mühsam.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Bluetooth

Beitrag von scientific » 05.04.2017 22:11:56

Also ich habe es mittlerweile einmal geschafft, dass sich Handy und Computer gegenseitig erkannten und sogar pairen konnten.

Seitdem wieder nicht. Findet nix.

Auf einem anderen Laptop mit anderem Bluetooth-Chip klappt das finden und Pairen auf Anhieb. Sogar Dateiübertragungen klappten dort.

Auf meinem Laptop tut sich überhaupt nix in der Standardkonfiguration. Ich habe eine Linux-Welt-CD vom letzten Dezember/Jänner mit verschiedenen aktuellen Linux-Distributionen drauf. Ubuntu, Lubuntu, ElementaryOS, eine Rescue-CD... Alle diese Distributionen erkennen den Bluetooth-Adapter am Laptop, aber sonst finden sie das Smartphone nicht.

Wenn ich es nicht unlängst einmal sogar geschafft hätte, die beiden zu pairen, hätt ich es ja schon längst aufgegeben...
Das hier ist das Bluetooth-Device

Code: Alles auswählen

$ lsusb
...
Bus 001 Device 003: ID 8087:07dc Intel Corp. 
...
Das ist ein Kombi-Chip mit WLAN, nämlich dieser hier:

Code: Alles auswählen

$ lspci
...
09:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)
...
Ich hab das Teil ersetzt, weil der Originale Realtek-Baustein im Laptop nicht nur mit BT gezickt hat, sondern auch WLAN ziemlich instabil damit war. Und den Intel-Baustein hat HP als alternatives Ersatzteil für meinen Laptop gelistet.

Ich habe auch SuSE Leap in einer Virtualbox installiert und das USB-Gerät durchgereicht. Auch hier erkennt das OS den Adapter, aber ein Scan nach anderen Devices findet nichts.

Und wenn ich schreibe "findet nichts", dann ist das Ergebnis von "hcitool scan" leer.
bluetoothctl mit power on, discoverable on, agent on, default-agent und dann scan on liefert ebenso eine leere Liste.

ich habs getestet mit den Kerneln
4.9.0-2-amd64
4.10.0-trunk-amd64

Die Datei /etc/bluetooth/main.config wird scheinbar ignoriert. Denn ein setzten eines anderen "Class="-Wertes wird ignoriert.
hciconfig hci0 class liefert immer die selbe Class, egal was ich dort reinschreibe.

Code: Alles auswählen

 $ hciconfig hci0 class
hci0:	Type: Primary  Bus: USB
	BD Address: F8:16:54:F8:27:4D  ACL MTU: 1021:5  SCO MTU: 96:6
	Class: 0x1e010c
	Service Classes: Networking, Rendering, Capturing, Object Transfer
	Device Class: Computer, Laptop
Zu diesem Baustein finde ich auch keine vernünftigen Anleitungen oder Einstellungen. Sehr lästig das ganze.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Bluetooth

Beitrag von scientific » 06.04.2017 01:21:03

Wie funktioniert eigentlich die Class-Festlegung?

Code: Alles auswählen

# bluetoothctl 
[NEW] Controller F8:16:54:F8:27:4D aldebaran [default]
[bluetooth]# show
Controller F8:16:54:F8:27:4D
	Name: aldebaran
	Alias: aldebaran
	Class: 0x0c010c
	Powered: yes
	Discoverable: yes
	Pairable: yes
	UUID: Headset AG                (00001112-0000-1000-8000-00805f9b34fb)
	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
	UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
	UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v8087p07DCd0000
	Discovering: no
[bluetooth]# scan on
Discovery started
[CHG] Controller F8:16:54:F8:27:4D Discovering: yes
Diese UUID-Werte liefert der Controller selbst und bluetoothctl baut sich daraus dann die Class?
Und könnte es sein, dass sich mein Smartphone und der Laptop deswegen nicht erkenne, weil hier

Code: Alles auswählen

CoD Bit 20: Object Transfer (v-Inbox, v-Folder, ...)
nicht gesetzt ist?

Oder wie setzt man so eine UUID?

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Sinacarlo
Beiträge: 39
Registriert: 13.10.2016 14:23:47

Re: Bluetooth

Beitrag von Sinacarlo » 12.04.2017 22:44:04

Moin,

also ich hatte ja einige Probleme mit meinem Netzwerk unter Debian 8.xx, jetzt nutze ich ich Debian 9 und selbst mein BT funktioniert wunderbar, alle Daten vom Androit Smartphone ( Motorola G4 ) kann ich lesen und auch verschieben. Das schöne ist daran das der BT-Treiber bei der Installertion schon mit installiert wurde, was ich nachträglich einbinden musste war der iwlwifi-Treiber, leider bekomme ich beim starten des Laptop immer noch eine Fehlermeldung kommt, weil wohl noch Teile des Treibers fehlen, aber die Funktion ist gegeben. Ich nutze ein ein ACER TM P259-M-33TK mit einem i3 6006 Processor ( Intel ), also ein sehr aktuelles Laptop, ist im August 2016 auf den Markt gekommen. Also vielleicht über den Tellerrand zu Debian 9 sehen.

Gruß
Uwe

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Bluetooth

Beitrag von scientific » 13.04.2017 01:28:12

Es läuft das aktuelle Testing mit täglichen Updates...

Selbst andere Distributionen bringen bluetooth mit dem Baustein nicht zusammen. Obwohl es eigentlich damit funktionieren müsste... Ich befürchte schon fast defekte Hardware...
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten