Linux: Pi3 Bluetooth Audio ruckelt mit aktiviertem Wifi

Erstellt am 11. Apr. 2016  ·  143Kommentare  ·  Quelle: raspberrypi/linux

Hallo,

Ich teste mit Streaming-Musik mit a2dp über Bluetooth auf dem Pi3. Wenn Wifi aktiviert ist, bekomme ich mit Pulseaudio konstante Pufferunterläufe (Blueman zeigt einen Downstream von ungefähr 34 kB / s). Sobald ich die Wifi-Schnittstelle deaktiviere (ifdown wlan0), beginnt die Audiowiedergabe normal und der Downstream liegt bei etwa 42 kB / s (was korrektes Stereo-Audio in hoher Qualität ist, wenn ich http://soundexpert.org/news/-/ sehe). Blogs / Bluetooth-Audio-Qualität-a2dp).
Ich habe auch versucht, den Puffer viel größer zu machen, den Resampling-Typ, die Echtzeitplanung usw. zu ändern. Ich habe auch das neueste Pulseaudio ausprobiert, kein Unterschied. Scheint, als wäre es ein Himbeerproblem.

Zuerst dachte ich, es liegt daran, dass sowohl Wifi als auch Bluetooth UART verwenden, aber das ist nicht wahr (und wäre zu langsam, wenn Wifi über dem 921600 Baud wäre, wenn ich es richtig sehe). Sie teilen sich immer noch den gleichen Chip (BCM43438). Gibt es einen bekannten Grund, warum ich (und auch andere gehört) dieses Problem habe?

Bluetooth Issue Bug Waiting for internal comment Wifi Issue

Hilfreichster Kommentar

Ich beschloss, mich ein wenig mit den Fahrern zu beschäftigen. Das Lesen des Codes gab mir einen Einblick in einige der unterstützten Modulparameter, und mit einigen Experimenten und einem Shotgun-Ansatz habe ich anscheinend Bluetooth + Wifi perfekt in Verbindung miteinander gebracht.

Ich konnte einen Geschwindigkeitstest vom Pi über WLAN durchführen, während mein Telefon A2DP-Audio über den Pi abspielte, und ich bekam keinen einzigen Fehler.

Ich habe eine Datei /etc/modules.d/bt-wifi-fix.conf

options brcmfmac fcmode=2
options brcmfmac feature_disable=0x96
#options brcmfmac debug=0x00000004

debug=0x00000004 aktiviert die Protokollierung auf Informationsebene, was nicht wirklich notwendig ist.

fcmode=2 scheint eine Art Hardware-Flusskontrolle zu ermöglichen, die die Dinge ein wenig besser zu machen schien, aber immer noch nicht großartig.

feature_disable=0x96 ist die Option, die es wirklich zu beheben schien. Ich bin mir nicht sicher, aber ich denke, 0x96 versucht, alle optionalen Funktionen zu deaktivieren, weshalb ich oben 'Shotgun Approach' gesagt habe. Mit etwas Geduld ist es wahrscheinlich möglich, dies auf eine kleine Teilmenge von Funktionen zu beschränken.

Bisher hat das bei mir perfekt funktioniert - ich melde mich zurück, wenn ich die Dinge weiter eingrenzen kann.

EDIT: Ich bekomme ein bisschen Pannen, wenn ich zum ersten Mal einen Stream starte, aber absolut nichts, was davon abhängt, ob ich WLAN benutze oder nicht.

Alle 143 Kommentare

Ich habe genau das gleiche Problem gehabt. Durch Deaktivieren von WLAN0 wurden die Audioprobleme behoben. Ich würde jedoch sehr gerne das WLAN nutzen können ...

Gleiches ist hier. Ich habe 3 Tage gebraucht, 2 Distributionen, um herauszufinden, dass es sich um den eingebauten WiFi handelt. Der gleiche Fehler tritt auf, wenn ich einen WiFi-Stick direkt an den USB-Anschlüssen verwende. Wenn ich ein USB-Verbindungskabel mit dem USB-Stick verwende, funktioniert alles einwandfrei. Ich denke einfach, dass die beiden 2,4-GHz-Dienste sich gegenseitig stören, weil die Antenne eingebaut ist. : - /

Ich konnte A2DP zum Laufen bringen, indem ich das integrierte WLAN deaktivierte und einen Wi-Pi-USB-Adapter ohne Verlängerungskabel verwendete.

Dies wirft eine interessante Frage auf: Unterstützt der integrierte WiFi-Chip die Bluetooth-Koexistenz, unterstützt der Treiber dies und funktioniert er ordnungsgemäß? Basierend auf dem, was ich aus mehreren Quellen gesehen habe, gibt es eine erheblich bessere Latenz, wenn Sie entweder das integrierte WLAN deaktivieren oder das integrierte Bluetooth deaktivieren und stattdessen einen USB-Adapter verwenden, und das klingt für mich entweder nach dem integrierten Chip implementiert die BT-Koexistenz nicht richtig oder der Treiber unterstützt sie nicht richtig.

Das BCM43438 verfügt über eine Koexistenzschnittstelle zwischen den WLAN- und Bluetooth-Schnittstellen - es ist keine Softwareunterstützung erforderlich.

@Ferroin Aus meiner Erfahrung würde ich sagen / grundsätzlich / ja, obwohl ich keine maßgebliche Quelle bin und auf der Bluetooth-Seite nicht viel verlange .... Während der Entwicklung von zentralen und peripheren Bluetooth LE-Anwendungen auf einem Pi 3 I. Führen Sie eine VNC X-Sitzung und 2x SSH-Sitzungen aus und lassen Sie die NFS-Freigabe alle über WLAN bereitstellen. Alle sind in Ordnung.

+1 dazu, wie ich gerade heute Abend entdeckt habe. Wlan0 wurde heruntergenommen und der Ton wurde einwandfrei abgespielt. Hat jemand seit August ein neues Wort darüber bekommen, was hier los ist und ob es eine Lösung gibt?

+1 ich auch, "ifdown wlan0" und pulseaudio Streams gut über a2dp

+1, heute aktualisiert, mit einem Anker Sound Core Bluetooth-Lautsprecher. Spielt sich wunderbar, wenn ich WLAN ausschalte, aber das ist eine ziemlich große Problemumgehung. Es ist nervig, aber für dieses Projekt praktikabel (OKAY FINE, ich werde eine Verbindung über HDMI anstelle von VNCServer herstellen, denke ich ), aber auch ich warte auf eine Lösung, da dies meine Fähigkeit, meine Projekte mobil zu machen, ernsthaft einschränkt. VNCserver ist ein Muss.

+1, das mir Kopfschmerzen bereitete, als ich dieses Problem herausfand!

Ich brauchte WiFi, also habe ich nur:
1) Verwenden Sie einen USB-Dongle als WLAN-Adapter
2) Deaktivieren Sie den integrierten WLAN-Adapter in / etc / network / interfaces

Keine Soundprobleme mehr.

Ich freue mich über Fortschritte in diesem Bereich, aber zur Erinnerung können Sie diesen Thread abonnieren und dem ursprünglichen Beitrag eine Reaktion hinzufügen. Es wird nicht empfohlen, eine Antwort von +1 zu posten.

Einverstanden, dass kein WiFi die Basis Pi3 lähmt. Das Hinzufügen eines USB-Dongles besiegt einen der großen Vorteile des Pi3 von Onboard WiFi / BT. :-(

Ich habe auch das Verhalten getestet und stehe vor dem gleichen Problem wie hier berichtet. Planen Sie das Hinzufügen eines zusätzlichen USB-WLAN-Adapters, um das Problem zu beheben. Hoffe, pi würde zweites WiFi ohne große Probleme unterstützen.

Ich denke, das Zero W wird unter den gleichen Problemen in Bezug auf Bluetooth und WLAN leiden, wie es den gleichen Chip verwendet?
Die Verwendung von USB-Geräten als Problemumgehung ist mit dem Zero W jedoch nicht so einfach.

Passiert das jedem Raspberry Pi? Wie wird die Musik gespielt? (Pi hat DACs, Soundkarten, BCM?) Wofür verwenden Sie das Wifi?

Weil ich keine Probleme mit meinem Pi3 hatte

Nur ein Problem, wenn beide gehen. WiFi überträgt aktiv und versucht dann, Bluetooth zu verwenden. Bluetooth + LAN ist kein Problem. Daher sehen die meisten Benutzer und Anwendungen das Problem nicht.

Ich habe einen sekundären WiFi-Empfänger hinzugefügt und ihn primär gemacht und eingebettetes WiFi als Bluetooth-Empfänger verwendet. Dies ist der billigste Weg, um dies zum Laufen zu bringen.

Bluetooth + LAN ist kein Problem.

Bitte zeigen Sie mir den LAN-Port am Pi0W.

Hat jemand versucht, pulseaudio neu zu definieren, um eine höhere Priorität zu haben?

Ja, ich habe es mit höherer Priorität ohne erkennbaren Unterschied im Ergebnis versucht.

Hallo,
Können Sie mir bitte eine funktionsfähige Konfiguration mitteilen, wenn Sie eine für haben?
das oben genannte Problem, dh Wifi - benötigt, Bluetooth-Lautsprecher-Pairing in A2DP
Modus.
Aus Ihrem Profil geht hervor, dass Sie darin ausgiebig herumgespielt haben
Bereich.

Vielen Dank.


Prost,
Pradeep
http://pradeepclicks.com/

Am Montag, den 6. März 2017 um 21:29 Uhr, Brett Reinhard [email protected]
schrieb:

Hat jemand versucht, pulseaudio neu zu definieren, um eine höhere Priorität zu haben?

- -
Sie erhalten dies, weil Sie kommentiert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/raspberrypi/linux/issues/1402#issuecomment-284439625 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/ADb1rV3_oFd2_qM8-2yHoDdLGeFK3d5dks5rjC1ngaJpZM4IExoX
.

Ich versuche auch, dieses Problem zu lösen. Die Choppiness scheint sich zwischen verschiedenen BT-Lautsprechern / Kopfhörern etwas zu ändern, aber es wird immer noch ein WiFi-Dongle verwendet und das integrierte WiFi deaktiviert. Selbst wenn Sie einen BT-Dongle verwenden, ist die Choppiness beim Abspielen einer lokalen MP3-Datei oder bei Verwendung von Pithos (Pandora) immer noch vorhanden. Ich habe auch eine MP3-Datei mit niedrigerer Bitrate verwendet, und die Choppiness hat sich verbessert.

Ich habe ein paar Beispieldateien von 16 bis 64 KBit / s heruntergeladen und sie mit VLC auf RPi3 abgespielt. Ich verwende pulseaudio und verbinde mich mit einigen billigen Bluetooth-Ohrhörern.
http://www.digitalprosound.com/Htm/WebAudio/2000/Oct/MP3bitrates3.htm

Mit nur Hintergrund-WiFi-Aktivität wurde jede Datei abgespielt, zeigte jedoch mit zunehmender Bitrate eine gewisse Abgehacktheit. Dann habe ich ein apt-get-Update ausgeführt und während der Ausführung die 16k-Datei abgespielt. Sehr abgehackt. Gleiches gilt für die anderen. Tatsächlich hatte die WLAN-Aktivität mehr Auswirkungen als die Bitrate der Datei.

Schließen Sie nun einen WiFi-Dongle an und deaktivieren Sie das integrierte Wifi (sudo ifdown wlan0). Versuchen Sie es nochmal.
Alle Dateien völlig glatt. Was ist mit einem Download über Wifi? Auch flüssig bei 64kbps.
Pithos (Pandora) ausführen? Glatt. Dies war letzte Nacht nicht der Fall, daher bin ich nicht davon überzeugt, dass ich eine solide Lösung habe.

Ich habe das gleiche Problem.

Ich habe es mit einem Bluetooth-Dongle gelöst, was ein voller Erfolg ist.
Plugable Technologies USB-BT4LE

Immer noch nicht zufrieden damit, was bringt es, Funktionen zu haben, die nicht verwendet werden können?

Eine Sache, die Sie sicherstellen müssen, ist, dass Sie das Bluetooth-Scannen (Scannen aus) deaktivieren, während Sie sich in der Bluetoothctl-Eingabeaufforderung befinden. Damit war mein Problem behoben und ich konnte mit einem Pi Zero W, Pi3, über das integrierte WLAN / BT und Pi Zero + Redbear IoT PiHat gut streamen.

@ Michael : Ich bin mir zu 100% sicher, dass ich es versucht habe, ohne gleichzeitig zu scannen. hatte immer noch das Problem. Ich benutze allerdings rpi3.

+1
Gleich hier ist es definitiv die Kombination von Onboard-WLAN + Bluetooth.
Setup: pi null w + phat dac

Onboard Bluetooth + Wifi aktivieren -> Audio ruckelt sehr schlecht
Onboard-WLAN deaktiviert -> Audio wird perfekt abgespielt, ohne zu stottern

Ich denke, ich muss anfangen zu untersuchen, wie das alles auf einer niedrigen Ebene funktioniert - was eine schöne Herausforderung darstellt, um dies richtig zu lernen

Ich hatte auch schreckliche Soundprobleme beim Versuch, Audio mit a2dp-Tutorials basierend auf pulseaudio zu streamen.
Ich habe versucht, die Puffergröße zu optimieren und das interne WLAN zu deaktivieren.
Die Klangqualität verbesserte sich erheblich, aber immer noch nicht bis zu dem Punkt, an dem ich dies als echtes Hörgerät verwenden würde - bestenfalls würde ich alle paar Sekunden ein Knallen oder Stottern bekommen.

Ich habe ein anderes Github-Projekt gefunden, das das Problem überwindet, indem es pulseaudio vollständig vermeidet:
https://github.com/lukasjapan/bt-speaker
Nach dem Deaktivieren des internen WLAN ist Audio mit dieser Methode durchaus sinnvoll und es ist nicht erforderlich, sich beim Booten anzumelden (ich habe es im Hintergrund meines Retropie-Images ausgeführt).

@maklotski , Wir haben bereits festgestellt, dass das Problem verursacht wird, wenn sowohl Wi-Fi als auch Bluetooth gleichzeitig

Wir haben alle nützlichen Informationen veröffentlicht, die wir haben, dh nicht sehr viele. Cypress (war Broadcom) hat zwei parallele Treiberstacks - dhd und brcmfmac. Sie stehen angeblich kurz vor der Fertigstellung eines aktualisierten dhd-Treibers, der die Koexistenz verbessert, aber a) er wird noch getestet und b) wir verwenden brcmfmac. Sobald es einen verbesserten brcmfmac-Treiber gibt, werden wir ihn herausbringen.

Das einfache Hinzufügen von +1 zu diesem Problem nützt nichts. Dadurch wird die Kommentarliste ohne Grund länger. Sobald wir Informationen haben, werden diese veröffentlicht.

+1, um dies weiterhin auf das Radar zu setzen und hoffentlich die Priorität zu erhöhen
für eine Lösung

Dieser Github-Thread wird aktualisiert, wenn für das Problem relevante Informationen verfügbar sind. Wir sind in gewisser Weise darauf angewiesen, dass Broadcom (jetzt Cypress) Treiberaktualisierungen bereitstellt, da die Koexistenzunterstützung auf dem Chip von der Firmware oder dem Firmware-Setup des Chips abhängt.

Das Signal-Rausch-Verhältnis des Threads mit Spam-Antworten zu verschlechtern, ist nur irritierend. Kommentare, die der Diskussion um die Untersuchung oder Lösung des Problems nichts bieten, werden wahrscheinlich zusammenfassend gelöscht.

Ich habe ein kleines Skript geschrieben, um mit inotify wlan0 ein- und auszuschalten, wenn Bluetooth eine Verbindung herstellt / trennt. Ok ist es
eine Problemumgehung, aber ich kann damit leben.

`#! / bin / bash

während wahr
tun
RES = inotifywait -q -e CREATE,DELETE /dev/input/
Fall "$ RES" in
"/ dev / input / DELETE event1")
ifconfig wlan0 up
;;
"/ dev / input / CREATE event1")
ifconfig wlan0 down
;;
esac
getan &
`

Hier ist also die Arbeit (überall), die ich gerne auf Kosten des Lachens teilen möchte.
Führen Sie pacat /dev/zero im Hintergrund aus
Spielen Sie jetzt etwas Audio ab und nachdem das Knistern + -30 Sekunden aufgehört hat, spielen Sie etwas mehr Audio ab und genießen Sie die klare Wiedergabe, bis Sie pacat stoppen.
Wenn Sie sich Sorgen machen, dass alle Nullen über Bluetooth fliegen, sollten Sie "pv" installieren mit:
sudo apt-get install pv
Führen Sie stattdessen im Hintergrund Folgendes aus: cat /dev/zero | pv -qL 2k | pacat , um die Nullen auf eine bestimmte Bitrate zu beschränken.
Würde gerne wissen, wie das bei dir funktioniert.

Interessant, alle. Ich habe an einem kopflosen Pi Zero / W - No X11 gearbeitet. Und ich kann zwei / drei SSH-Shells über WLAN haben, und Bluetooth ist so sauber wie es nur sein kann. Ich habe festgestellt, dass übermäßiges Abrufen des Bluetooth-Geräts (dh Abrufen von Bluetooth-Informationen) zu Ruckeln führt. Haben Sie versucht, nur zu cli zu booten?

Nun, ich habe gerade festgestellt, dass der folgende Kommentar ohne Kontext nicht wirklich hilfreich ist. Tut mir leid, ich habe die ganze Nacht an der Tastatur herumgeschlagen ----

1 - Pi Zero / W und Pi 3 sind in Bezug auf Bluetooth / Wifi identisch, zumindest was den Kernel betrifft.
2 - Ausführen von Jessie Lite - kürzlich aktualisiert und Kernel 4.9.29+
3 - Ausführen von NetBeans auf dem Desktop und Remote-Debugging auf Pi.
4 - Stresstest Bildraten mit einem TFT-Display - der SPI-Bus wird richtig in Schwung gebracht.
5 - Abfragen von Eingabeereignissen für Touchscreen und Speichern von Ergebnissen an stderr, das an NetBeans weitergeleitet wird - Testen von Jitter auf dem Touchscreen
6 - Ausführen des Beispielprogramms mpg123_to_out123 von mpg123 tarball über Bluetooth, wobei Billy Joels "An Innocent Man" von der SD-Karte abgespielt wird.
7 - Kein X11 in Sicht.

Laufen glatt wie ein Kuchen, Himbeergeschmack. Ich mache das schon so lange, dass ich Billy Joel im Schlaf summe.
Haben bemerkt, dass das Erzwingen einer Abfrage nach dem Bluetooth-Verbindungsstatus die Dinge schlecht gemacht hat.

Schlagen Sie vor, so viel "anderen" Code wie möglich zu entfernen.

Hallo,
Es gibt definitiv ein ernstes Problem mit dem PI (Zero W) Bluetooth.

Ich habe ein Python-Skript verschoben, das Telefone über Bluetooth von einem CHIP auf einen Pi Zero W erkennt.
Das Ergebnis war verrückt, es hat mein gesamtes Heim-WLAN blockiert, als auf Bluetooth zugegriffen wurde :-(

Das Skript verwendet den folgenden Befehl, um festzustellen, ob sich ein Telefon in Reichweite befindet:
Ergebnis = bluetooth.lookup_name (Mac, Timeout = 5)

Ich führe dies in einer Schleife mit zwei Telefonen aus. Die Schleife startet alle 15 Sekunden und testet beide Telefone.
Ich habe zuerst benachrichtigt, dass a) SSH über WLAN manchmal nicht reagierte und b) mein WiFi-LED-Licht manchmal nach dem Einrichten des Pi Zero W nicht reagierte.
Seltsam, also habe ich versucht, die Wifi-Lichter anzupingen. Ergebnis: Timeouts für ca. 5 Sekunden alle 15 Sekunden.
Dann habe ich versucht, die PI Zero W: Ping-Zeiten von etwa 2000-4000 ms während dieser 5-Sekunden-Fenster zu pingen, manchmal auch Zeitüberschreitungen.

Also habe ich das Skript deaktiviert, mit dem die Bluetooth-Erkennung ausgeführt wird: Alles war in Ordnung.
Neustart des Skripts: Die Zeitüberschreitungen sind erneut aufgetreten.

Das ist verrückt! Das Bluetooth-Scannen für die Telefone (es ist im Grunde ein "Bist du da?" Zu einem gekoppelten Bluetooth-Gerät) bricht im Grunde mein gesamtes Heim-WLAN.
Ich weiß, dass Bluetooth und Wifi auf derselben Frequenz sind. Bluetooth ist jedoch standardisiert, um umfangreiche Frequenzsprünge zu verwenden, um solche Störungen zu verhindern. Nicht so beim Pi Zero W?

Es ist definitiv reproduzierbar. Probieren Sie einfach das unten stehende Python-Skript aus.

Meine beste Vermutung über den Grund: Das Bluetooth-Radio stört das Wifi, nicht umgekehrt. Der Grund könnte ein Problem im Bluetooth-Stack bezüglich des Frequenzsprungs sein. Dies würde auch die gemeldeten Bluetooth-Audioprobleme erklären: Wenn Bluetooth auf einer Frequenz bleibt, ist es wahrscheinlicher, dass das WLAN das Signal stört.
Ich könnte mich jedoch irren, ich kenne WiFi ziemlich gut, da ich über ein Thema promoviert habe, das sich mit der Phy-Schicht von Wiifi befasst, aber ich bin kein Experte für Bluetooth Phy.


Ein kurzes Python-Testskript, das das Problem reproduziert. Pingen Sie einfach den Pi an, während Sie ihn ausführen.

Importzeit
Bluetooth importieren
mac = "00: 00: 00: 00: 00: 00"
während wahr:
print ("Bluetooth nach% s durchsuchen ..."% mac)
Versuchen:
Ergebnis = bluetooth.lookup_name (Mac, Timeout = 5)
außer bluetooth.btcommon.BluetoothError als e:
print ("\ nERORR: Bluetooth-Anfrage fehlgeschlagen, Fehler:% s"% e)
print ("Ergebnis:% s ist:% s"% (mac, Ergebnis))
time.sleep (15)

Morgen (Montagabend EST) werde ich, wenn du willst, ein Youtube posten, das zeigt, wie gut es funktioniert. Nur doppelte / dreifache Bestätigung (vor nur 5 Minuten) ---- Die einzigen Probleme treten bei "Erkennbar" und "Scannen" auf. Wenn Sie Ihr Gerät nicht auffindbar machen und WiFi und Bluetooth nicht aktiv scannen (erkennen), funktioniert dies auf einem Pi Zero W einwandfrei. Während der Verbindung über Bluetooth und ssh erhalte ich einen konstanten Ping von 4 bis 5 ms über WiFi. Ich muss herausfinden, wie man Ton für ein Youtube-Video aufzeichnet, aber ich kann es deutlich jitterfrei hören.

FWIW - Ich arbeite an einer Bluetooth-Audioanwendung, daher geht mich das wirklich an. In meiner App habe ich die Informationen des angeschlossenen Geräts abgefragt, um RSSI usw. zu erhalten. Aufgrund der Probleme, die so viele Leute hier bereits bemerkt haben, musste ich die Abfrage beenden.

Wenn Sie nicht die Kontrolle über alle Apps in Ihrer Sitzung haben, die möglicherweise eine Umfrage (D-Bus) über die Bluetooth-Verbindung durchführen, können Sie nicht ausschließen, dass sie an den Problemen beteiligt sind. Ich verwende kein X11 - daher bin ich der Hardware und dem, was passiert, viel näher. Zugegeben, PulseAudio ist immer noch eine "Blackbox", aber abgesehen davon habe ich im Grunde die Kontrolle über den gesamten Deal und es funktioniert ganz gut.

Nun - ich sage nicht, dass die Firmware keine Probleme hat, aber in Wirklichkeit sollten sich die Apps besser verhalten.

Hallo,
Ich würde mich wirklich für ein Youtube-Video interessieren, wenn du Zeit hast :)
Ich benutze auch einen Pi Zero W, aber wenn ich das Wifi deaktiviere, ruckelt es ein wenig ...

Hallo, nur eine Anmerkung - mein Zero W hat das gleiche Problem - das Überspringen von BT-Audio beim Streaming über WLAN - selbst für die Version 9.1 / Stretch von Raspbian

Cypress hofft, die "Koexistenz" zwischen WiFi und BT zu verbessern, hat sich jedoch zunächst auf einige Probleme mit der WiFi-Stabilität konzentriert.

Hallo, irgendwelche Updates dazu?

Führen Sie beginnend mit dem neuesten Raspbian Stretch-Image Folgendes aus:

sudo apt-get update
sudo apt-get install bluez bluez-firmware

Dadurch werden eine neue Bluetooth-Firmware und eine aktualisierte BlueZ eingeführt, die zusammen die Koexistenz von WLAN und Bluetooth verbessern sollen.

Holen Sie sich den neuesten Kernel für eine verbesserte Bluetooth-Zuverlässigkeit, während Sie gerade dabei sind:

sudo apt-get install raspberrypi-bootloader raspberrypi-kernel

Ich würde gerne ein Video nebeneinander über die Leistung von BT / WiFi sehen
zusammen. Wenn jemand noch keinen gemacht hat, muss ich daran arbeiten.

Am 7. November 2017, 12:15 Uhr, schrieb "Phil Elwell" [email protected] :

Holen Sie sich währenddessen den neuesten Kernel für verbessertes Bluetooth
Verlässlichkeit:

sudo apt-get install raspberrypi-bootloader raspberrypi-kernel

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/raspberrypi/linux/issues/1402#issuecomment-342554756 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/AZCYY6u0Q45M19rAdGFM0WP4q6VXP0Zeks5s0JBOgaJpZM4IExoX
.

@pelwell Ich habe bluez bluez-firmware raspberrypi-bootloader raspberrypi-kernel auf die letzte Version aktualisiert, wie von Ihnen empfohlen.

Ich habe jedoch immer noch Probleme mit dem Sound, der über Bluetooth auf die Himbeere Zero W gestreamt wird, wenn WLAN aktiv ist. Wenn ich WLAN herunterfahre ( sudo iwconfig wlan0 txpower off ), funktioniert es gut und es tritt kein Knistern mehr auf.

Bitte lassen Sie mich wissen, ob ich Ihnen weiterhelfen kann.

Ich benutze BT-Lautsprecher. Zugehöriges Problem, das hier gemeldet wird: https://github.com/lukasjapan/bt-speaker/issues/4

Wollen Sie damit sagen, dass Sie keine Verbesserung gesehen haben?

leider keine verbesserung :(

@pelwell Nur damit Sie wissen, hier sind die installierten Versionen:

bluez              5.43-2+rpt2+deb9u2
bluez-firmware              1.2-3+rpt1
raspberrypi-kernel              1.20171029-1
raspberrypi-bootloader          1.20171029-1

Hat jemand das gleiche Problem mit PS3-Controllern (über Bluetooth), die Retropie mit aktiviertem WLAN auf dem RPI 3 verwenden? Ich habe scheinbar zufällige Interferenzen, bei denen die Controller manchmal gut funktionieren und manchmal ist es so, als hätte ich überhaupt nichts gedrückt. Macht es ein bisschen schwierig, Spiele auf diese Weise zu spielen!

Heute habe ich einen Pi Zero W auf den neuesten Stand gebracht und kann bestätigen, dass das Problem weiterhin besteht.
pi<strong i="6">@raspberrypi</strong>:~ $ dpkg -l | grep -i bluetooth ii bluealsa 0.6 armhf Bluetooth ALSA Audio backend ii bluez 5.43-2+rpt2+deb9u2 armhf Bluetooth tools and daemons ii bluez-firmware 1.2-3+rpt2 all Firmware for Bluetooth devices ii libbluetooth3:armhf 5.43-2+rpt2+deb9u2 armhf Library to use the BlueZ Linux Bluetooth stack ii lxplug-bluetooth 0.4 armhf Bluetooth plugin for lxpanel ii pi-bluetooth 0.1.6 armhf Raspberry Pi 3 bluetooth ii pulseaudio-module-bluetooth 10.0-1+deb9u1 armhf Bluetooth module for PulseAudio sound server

Das BCM43438 scheint Probleme mit mehreren Verbindungen zu haben, entweder mit BT + WiFi oder mit zwei BT-Verbindungen:

Beim Ausschalten von WiFi ( ifconfig wlan0 down oder dtparam=pi3-disable-wifi ) funktioniert Bluetooth A2DP-Audio einwandfrei. Wenn jedoch zwei Geräte angeschlossen sind, beginnt das Audio stark zu stottern.

Mit einem externen USB-Bluetooth-Adapter können mehrere Geräte eine Verbindung über A2DP herstellen und gleichzeitig Audio-Ereignisse streamen.

Ich gehe also davon aus, dass dies eine Einschränkung des Chips ist, keine Software-Sache ... (Aber ich würde gerne bei einem zukünftigen Kernel-Update als falsch erwiesen werden)

Stellen Sie sicher, dass Sie mit der neuesten BT-Firmware ( sudo apt-get update; sudo apt-get install bluez-firmware ) arbeiten - es wurden einige Verbesserungen vorgenommen.

Ich habe das zuletzt vor 2 Tagen gemacht. Hat sich das seitdem geändert?

-Ron


Von: Phil Elwell [email protected]
Gesendet: Mittwoch, 24. Januar 2018, 05:32 Uhr
An: Himbeerpi / Linux
Cc: Ron Kuper; Handbuch
Betreff: [Extern] Betreff: [raspberrypi / linux] Pi3-Bluetooth-Audiostottern mit aktiviertem WLAN (# 1402)

Stellen Sie sicher, dass Sie mit der neuesten BT-Firmware arbeiten (sudo apt-get update; sudo apt-get install bluez-firmware) - es wurden einige Verbesserungen vorgenommen.

- -
Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub an: https://github.com/raspberrypi/linux/issues/1402#issuecomment-360088465 , oder schalten Sie den Thread https://github.com/notifications/unsubscribe-auth/AC8KdHhcuhMFBE5j42nTMhwc5NTxJTxJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTXJTJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ

Nein - das wird das Neueste sein (1.2-3 + rpt1).

Vielen Dank! In der Zwischenzeit habe ich mir einen USB-WLAN-Dongle gekauft, um das Problem zu umgehen.

Weiß jemand zufällig, ob der Chipsatz-Treiber (theoretisch) Schritte unternehmen soll, um HF-Interferenzen zwischen diesen beiden Funkgeräten zu vermeiden?

-Ron


Von: Phil Elwell [email protected]
Gesendet: Mittwoch, 24. Januar 2018, 7:20 Uhr
An: Himbeerpi / Linux
Cc: Ron Kuper; Handbuch
Betreff: [Extern] Betreff: [raspberrypi / linux] Pi3-Bluetooth-Audiostottern mit aktiviertem WLAN (# 1402)

Nein - das wird das Neueste sein (1.2-3 + rpt1).

- -
Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworten Sie auf diese E - Mail direkt, sehen sie auf GitHub https://github.com/raspberrypi/linux/issues/1402#issuecomment-360113610 , oder schalten Sie den Faden https://github.com/notifications/unsubscribe-auth/AC8KdIfVVwDf2lOlcGQTppx5A0jxxzvbks5tNyAWgaJpZM4IExoX .

Es soll (es gibt einen Koexistenzkanal zwischen im Wesentlichen zwei separaten Geräten im selben Paket), und diese Firmware ist eine signifikante Verbesserung gegenüber der ursprünglichen Versand-Firmware, aber das Teilen einer Antenne scheint eine Herausforderung zu sein.

@spalthammer hat ein Skript geschrieben, das als nette

Ich habe ein kleines Skript geschrieben, um mit inotify wlan0 ein- und auszuschalten, wenn Bluetooth eine Verbindung herstellt / trennt. Ok ist es
eine Problemumgehung, aber ich kann damit leben.

`#! / bin / bash

während wahr
tun
RES = inotifywait -q -e CREATE, DELETE / dev / input /
Fall "$ RES" in
"/ dev / input / DELETE event1")
ifconfig wlan0 up
;;
"/ dev / input / CREATE event1")
ifconfig wlan0 down
;;
esac
getan &
`
Kann jemand bitte einem Neuling erklären, wie dieses Skript implementiert wird? Dies würde für mich großartig funktionieren, da ich während der Bluetooth-Wiedergabe kein WLAN benötige. Ich möchte jedoch weiterhin die Möglichkeit haben, ssh / vnc für meinen Pi3 zu verwenden, wenn das BT-Gerät die Verbindung trennt.

@lexanix

installiere inotify
cmd: sudo apt-get installiere inotify-tools
cp inotify.txt in /etc/inet.d/inotify (von inotify.txt in inotify umbenennen!)

inotify.txt

mach es ausführbar
cmd: sudo chmod u + x /etc/init.d/inotify
Erstellen Sie Symlinks, um das Skript beim Booten zu starten
cmd: sudo update-rc.d inotify Standardwerte

Hoffe das hilft.

@spalthammer danke für deine

was ich versucht habe zu tun:
(Ich habe offensichtlich den Tippfehler von "inet.d" in init.d geändert.)
- machte es nur mit chmod + x ausführbar, da u + x nicht funktionierte
-versucht, das Skript direkt vom Terminal aus auszuführen (ohne Neustart), was es tat, da ich eine Zeile hinzugefügt habe, um ein Echo zurückzugeben, und es funktionierte
-machte es beim Start von /etc/rc.local booten
Das WLAN bleibt jedoch weiterhin eingeschaltet, wenn ich mein Telefon über Bluetooth verbinde ...

Ich verwende die neueste Version von Raspbian. Mein Telefon überträgt Musik über BT auf den Pi, der dann als FM-Signal am GPIO ausgegeben wird. Während dieser Zeit muss kein WLAN aktiviert sein, da die Musik zu stottern beginnt. Um jedoch nach dem Deaktivieren des WLANs immer noch eine Verbindung zu meinem Pi mit SSH / VNC herstellen zu können, habe ich ein kleines Skript "sudo ifconfig wlan0 up" erstellt, das es automatisch wieder aktiviert, nachdem ich den Strom abgeschaltet und neu gestartet habe. Dies scheint vorerst zu funktionieren, aber ich möchte, dass das viel elegantere Inotify-Skript ausgeführt wird, bis wir wissen, was mit unserem BT + WiFi-Chipsatz nicht stimmt.

@lexanix ,
Entschuldigung für den Tippfehler.
sudo chmod u+x /etc/init.d/inotify sollte funktionieren. Stellen Sie sicher, dass /etc/init.d/inotify Eigentum von root ist und von diesem ausgeführt werden kann.
Wenn Sie mehr als ein Eingabegerät angeschlossen haben, z. B. Tastatur, Maus und USB-Soundkarte, kann die Nummer für das Eingabegerät unterschiedlich sein. Im Skript warte ich auf Ereignisse auf input1, die zu meinem Setup passen. Bitte stoppen Sie das Skript mit
sudo killall -9 inotify
und Renn
sudo inotifywait -q -e CREATE,DELETE /dev/input
Stellen Sie eine Verbindung zum Bluetooth-Gerät her und notieren Sie die Nummer Ihres Eingabegeräts. Ändern Sie das Skript und starten Sie es neu.
Ich habe das Skript noch einmal überprüft. Auch wenn es nicht perfekt ist, funktioniert es wie erwartet.

Grüße

Die BT-Verbindung ist während der A2DP-Wiedergabe nicht stabil. BT wird häufig getrennt und erfordert einen Systemneustart, um wiederherzustellen.
Kannst du die Lösung geben?

@spalthammer super ! Ihr Skript funktioniert wie erwartet
perfekte Lösung für mich (Zero W mit Lautsprecherfett; jetzt abwechselnd interne Bluetooth- und WiFi-Schnittstellen)
Keine Risse mehr beim Musikspielen :-)

Wird das mit dem neuen Raspberry Pi 3 B + besser?

@spalthammer

Vielen Dank für die großartige Problemumgehung. Es ist genau das, was ich brauche.

Obwohl ich nur eine Bluetooth-Verbindung habe, erhalte ich Folgendes, wenn ich dies tue

root<strong i="9">@Ipad2GMA</strong>:/etc/init.d# sudo inotifywait -q -e CREATE,DELETE /dev/input
/dev/input/ CREATE event0

Wie Sie vorgeschlagen haben, habe ich inotify bearbeitet und von event1 in event0 geändert. Es funktioniert jetzt großartig!

Aber ich mache mir Sorgen, dass sich das ändert. Wenn ich nur eine einzige BT-Verbindung habe, ist es dann immer event0?

Vielen Dank!

@davthomaspilot ,

Die Anzahl X in eventX hängt von der Anzahl der Eingabegeräte ab, nicht von der Anzahl der Bluetooth-Verbindungen. Wenn Sie also Ihr Hardware-Setup nicht ändern, z. B. wenn Sie kein anderes Eingabegerät wie eine USB-Soundkarte oder eine Tastatur hinzufügen, sollte sich die Nummer nicht ändern. Wenn Sie mehr über Ihre angeschlossenen Eingabegeräte erfahren möchten, geben Sie den folgenden Befehl ein:

cat /proc/bus/input/devices

gibt Ihnen einen Überblick.

Ragards.

Diese Problemumgehung hat bei mir hervorragend funktioniert! Aber es scheint, als ob ich es aus irgendeinem Grund nicht mehr brauche ...

Ich habe gerade einen weiteren Pi Zero W bekommen. Das Jessie Stretch Image heruntergeladen und das Update durchgeführt, Upgrade-Sache. Ich verwende einen pHat DAC und die Bluetooth-Setup-Anweisungen von hier:

[https://www.sigmdel.ca/michel/ha/rpi/bluetooth_01_en.html]

Ist es möglich, dass ich beim Upgrade oder Update einen Fix gefunden habe? Oder hat mein neues RPI vielleicht einen Hardware-Fix?

Ich klone das Bild auf meinem Pi, das nicht stottert, und werde es auf dem Bild versuchen, das die Problemumgehung von Spalthammer benötigt. Und ich werde das Image ausprobieren, das sich auf der neuen Hardware im ruckelnden RPI befindet, und die Problemumgehung deaktivieren, um festzustellen, ob die neue Hardware mit diesem Image stottert.

Ich habe festgestellt, dass ich das Problem nur habe, wenn ich Bluetoothctl laufen lasse. Sowohl auf der neuen als auch auf der alten Hardware / "Software" wird der Bluetooth A2DP-Stream nur dann unterbrochen, wenn ich mich in Bluetoothctl befinde.

Dies ist Stretch-Lite ohne Puls-Audio. Vielleicht ist das wichtig.

@StudentSA Scheint nicht so. Zumindest nicht ganz. Ich habe dieses Problem auf einem Zero W, auf dem 2018-04-18-raspbian-strip-lite ausgeführt wird.

bluez                  5.43-2+rpt2+ armhf
bluez-firmware         1.2-3+rpt5   all
raspberrypi-bootloader 1.20180417-1 armhf
raspberrypi-kernel     1.20180417-1 armhf

Möglicherweise eines dieser Probleme, die niemals behoben werden ...

Ich beschloss, mich ein wenig mit den Fahrern zu beschäftigen. Das Lesen des Codes gab mir einen Einblick in einige der unterstützten Modulparameter, und mit einigen Experimenten und einem Shotgun-Ansatz habe ich anscheinend Bluetooth + Wifi perfekt in Verbindung miteinander gebracht.

Ich konnte einen Geschwindigkeitstest vom Pi über WLAN durchführen, während mein Telefon A2DP-Audio über den Pi abspielte, und ich bekam keinen einzigen Fehler.

Ich habe eine Datei /etc/modules.d/bt-wifi-fix.conf

options brcmfmac fcmode=2
options brcmfmac feature_disable=0x96
#options brcmfmac debug=0x00000004

debug=0x00000004 aktiviert die Protokollierung auf Informationsebene, was nicht wirklich notwendig ist.

fcmode=2 scheint eine Art Hardware-Flusskontrolle zu ermöglichen, die die Dinge ein wenig besser zu machen schien, aber immer noch nicht großartig.

feature_disable=0x96 ist die Option, die es wirklich zu beheben schien. Ich bin mir nicht sicher, aber ich denke, 0x96 versucht, alle optionalen Funktionen zu deaktivieren, weshalb ich oben 'Shotgun Approach' gesagt habe. Mit etwas Geduld ist es wahrscheinlich möglich, dies auf eine kleine Teilmenge von Funktionen zu beschränken.

Bisher hat das bei mir perfekt funktioniert - ich melde mich zurück, wenn ich die Dinge weiter eingrenzen kann.

EDIT: Ich bekomme ein bisschen Pannen, wenn ich zum ersten Mal einen Stream starte, aber absolut nichts, was davon abhängt, ob ich WLAN benutze oder nicht.

Das ist ein großartiger Datenpunkt. Vielen Dank, dass Sie sich damit befasst haben. Bitte halten Sie uns über weitere Fortschritte auf dem Laufenden.

@ Pelwell Phil, hast du das gesehen? Könnte es wert sein, Cypress Bericht zu erstatten.

Das scheint sehr einfach zu sein - wenn Cypress damit zufrieden ist und es so effektiv ist, können wir diese als Standardeinstellungen für Pi-Kernel festlegen.

Reicht es aus, einfach /etc/modules.d/bt-wifi-fix.conf mit den von Ihnen angegebenen Inhalten zu erstellen? Oder muss ich etwas anderes ändern, damit es wirksam wird?

Erstellen Sie einfach die Datei wie beschrieben und starten Sie neu.

Ok, ich habe gegoogelt und Sachen für /etc/modules-load.d gefunden, aber nicht für /etc/modules.d

Ich habe die Datei auf einem Pi Zero W hinzugefügt. Ich werde für eine Weile über Bluetooth streamen und sehen, ob ich Ruckler höre, während eine WLAN-Verbindung besteht.

Gibt es eine Möglichkeit zu überprüfen, ob bt-wifi-fix.conf verwendet wurde, außer auf "keine Schluckaufe" zu testen?

Vielen Dank!

Wenn Sie options brcmfmac debug=0x00000004 (ohne den Kommentar # ), sollten Sie im Kernel-Protokoll eine Diagnoseausgabe sehen, die von dmesg angezeigt wird.

Ok, ich habe es versucht:

 dmesg | grep brcmfmac
[   11.083290] brcmfmac: F1 signature read @0x18000000=0x1541a9a6
[   11.103157] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43430-sdio.bin for chip 0x00a9a6(43430) rev 0x000001
[   11.103836] usbcore: registered new interface driver brcmfmac
[   11.563229] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 23 2017 03:55:53 version 7.45.98.38 (r674442 CY) FWID 01-e58d219f
[   11.575677] brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.11.15 Compiler: 1.24.2 ClmImport: 1.24.1 Creation: 2014-05-26 10:53:55 Inc Data: 9.10.39 Inc Compiler: 1.29.4 Inc ClmImport: 1.36.3 Creation: 2017-10-23 03:47:14
[   18.913833] brcmfmac: power management disabled
[   27.484932] brcmfmac: power management disabled

Also mach das

Energieverwaltung deaktiviert

Meldungen zeigen an, dass die .conf abgeholt wird?

Wenn nicht, gibt es noch etwas, nach dem ich suchen kann?

Getestet auf einem ZeroW mit einem 4.14.41-Kernel (benutzerdefiniertes Betriebssystem) Obwohl es um ein Vielfaches besser ist, gibt es immer noch ein Stottern ..... aber fast erträglich.

Ich habe iperf3 auf meinem Server zurückgeführt, während ich einen 2d-Stream abgespielt habe ... das WLAN hat gepusht
ca. 30MBit / s auf iperf3.

Pläne zum Testen auf einem pi3 und pi3b + (Der 3b + kann bereits gut spielen, wenn das WLAN auf einem 5-GHz-Kanal angeschlossen ist)

@davthomaspilot Ich versuche es gerade selbst und der vorgeschlagene Dateiinhalt sieht korrekt aus, aber obwohl der Verzeichnisname bekannt /lib/modprobe.d ist das übliche (und vielleicht _korrekte_) place - also schlage ich vor, den Dateinamen /lib/modprobe.d/bt-wifi-fix.conf .

Beginnen Sie mit den fcmode Zeilen feature_disable und holen Sie sich die Ausgabe von dmesg | cut -c16- | grep brcmfmac . Kommentieren Sie dann eine oder beide aus, starten Sie neu und vergleichen Sie die dmesg-Ausgabe (und die Streaming-Qualität).

Vielen Dank! Ich werde das tun.

Ich hoffe, dies hilft mehr als "iwconfig wlan0 power off" in /etc/rc.local.

Wenn die WLAN-Energieeinsparung deaktiviert ist, ruckelt das Streaming möglicherweise nur einmal alle ein oder zwei Minuten. Dies ist mit nichts als einer SSH-Sitzung über das WLAN.
Es werden einige "Statistiken" benötigt, um festzustellen, ob es eine weitere Verbesserung gibt. Ich werde es mit dem Pi Zero W versuchen.

Hier ist ein Unterschied, der vergleicht, wann die Zeilen kommentiert werden oder nicht (mit /lib/modprobe.d, NICHT /etc/modules.d:

> brcmfmac: brcmf_feat_attach Features: 0x96, disable: 0x96
34c35,36
< brcmfmac: brcmf_fws_attach FWS queueing will be avoided
---
> brcmfmac: brcmf_fws_attach added MAC-OTHER
> brcmfmac: brcmf_fws_attach enabled bdcv2 tlv signaling [4f]
50,51d51
< brcmfmac: brcmf_p2p_add_vif adding vif "p2p-dev-wlan0" (type=10)
< brcmfmac: brcmf_add_if allocate non-netdev interface
54c54
< brcmfmac: brcmf_cfg80211_connect ie (d949d258), ie_len (22)
---
> brcmfmac: brcmf_cfg80211_connect ie (d96ac658), ie_len (22)

Streaming-Qualität jetzt testen ...

Es stottert immer noch. Es ist wirklich schwer zu sagen, ob es wesentlich besser ist als das, was ich habe. Alle ein oder zwei Minuten ein Stottern.

Auch dies ist mit aktiviertem WLAN, aber praktisch ohne WLAN-Verkehr.

Derzeit besteht meine Problemumgehung darin, WLAN zu deaktivieren, während eine Bluetooth-Verbindung besteht. Ich kümmere mich wirklich nicht um Stottern, wenn ich mit WLAN verbunden bin, aber es wäre schön, eine WLAN-Verbindung herzustellen, ohne vorher Bluetooth trennen zu müssen.

Testen mit einem pi3B + auf einem 2,4-GHz-Kanal.

Der Parameter "options brcmfmac fcmode = 2" stürzt den WLAN-Treiber auf einem pi3B + ab, sobald BT Daten über die Bluetooth-Verbindung überträgt. Verwenden eines A2DP-Profils.

Ich verwende nur die Optionen brcmfmac feature_disable = 0x96 auf dem pi3B + und es ist ziemlich stabil, es sei denn, ich drücke die WLAN-Verbindung mit iperf, dann bekomme ich ein deutliches Stottern. Bei einem 5-GHz-Kanal treten bei diesem Parameter keine offensichtlichen Nebenwirkungen auf. Bluetooth ist in diesem Fall sehr stabil und iperf3 drückt 120 Mbit / s

Also, um keinen Schraubenschlüssel in die Werke zu werfen, aber ich kann dieses Problem ehrlich gesagt nicht auf dem neuesten Stretch-Bild mit dem bluez-Firmware-Update und dem Bluetoothctr-Update reproduzieren. Ich habe 2 SD-Karten, eine seit ich ursprünglich im April 2017 mit Jessie und PulseAudio gepostet habe. und ich habe heute eine zweite SD-Karte mit Stretch (9.4) und ALSA blue erstellt.

Auf Stretch sind die Dinge perfekt. Ich spiele einen Online-Stream (dh über WLAN) zu 100% über meinen Bluetooth-Lautsprecher ab. Die alte Karte mit Jessie knistert immer noch schlecht, wenn Wlan0 aktiv ist.

Dank an diesen Typen, der ein paar Tricks im Setup detailliert beschrieben hat:
Michel

Ich habe mit vlc getestet, daher müssen Sie angeben, welches alsa-Gerät wie folgt verwendet werden soll:
--aout = alsa --alsa-audio-device = "bluealsa"

Bitte kann jemand dies von einer Neuinstallation versuchen und beraten.

bluez 5.43-2 + rpt2 + deb9u2 armhf
bluez-firmware 1.2-3 + rpt6 all
bluealsa 0,7 armhf
Bluetoothctl: 5.49
raspberrypi-bootloader 1.20180417-1 armhf
raspberrypi-kernel 1.20180417-1 armhf

Vergessen Sie nicht, bluealsa nach einem Neustart zu starten oder automatisch zu starten: sudo systemctl enable bluealsa)

Wie haben Sie bluetoothctl: 5.49 installiert? Hoffe nicht aus dem Quellcode kompilieren.

Yip, aus der Quelle (gemäß dem geteilten Link), warum die Besorgnis darüber?

Ich möchte nur Updates mithilfe des Repositorys haben, um auch Pakete zu vermeiden, die nur zum Erstellen benötigt werden. Wo befindet sich der Link in Ihrem Beitrag?

Es gibt tatsächlich eine 5.50-Version, die vor 7 Wochen veröffentlicht wurde. Wenn Sie diesen Weg gehen, ist es möglicherweise einen Versuch wert. Aber ja, wir müssen auf 5.49+ warten, um in den offiziellen apt-get-Flow zu gelangen.

Ich kann bestätigen, dass es mit Bluez 5.50 keine Ruckler gibt.

Cool. Ich werde untersuchen, was erforderlich ist, um den Raspbian-Build zu aktualisieren.

Hier sind die Schritte:

  1. Installieren Sie die Abhängigkeiten.
    sudo apt install libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev
  1. Laden Sie die neueste Version des BlueZ-Quellcodes herunter.
    wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz

  2. Dekomprimieren Sie die heruntergeladene Datei.
    tar -xf bluez-5.49.tar.xz && cd bluez-5.50/

  3. Konfigurieren.
    ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-experimental

  4. Kompilieren Sie den Quellcode.
    make -j4

  5. Installieren.
    sudo make install

  6. Der Benutzer muss zur Bluetooth-Gruppe hinzugefügt werden.
    sudo adduser pi bluetooth

  7. Die in der BlueZ-Installation überschriebene Dbus-Bluetooth-Konfigurationsdatei muss wiederhergestellt werden.
    sudo nano /etc/dbus-1/system.d/bluetooth.conf

Fügen Sie dies im Abschnitt <policy user="root"> :
<allow send_interface="org.bluez.AlertAgent1"/>
<allow send_interface="org.bluez.ThermometerWatcher1"/>
<allow send_interface="org.bluez.HeartRateWatcher1"/>
<allow send_interface="org.bluez.CyclingSpeedWatcher1"/>

und das danach:
<!-- allow users of bluetooth group to communicate -->
<policy group="bluetooth">
<allow send_destination="org.bluez"/>
</policy>

  1. Starten Sie Raspberry Pi neu
    sudo reboot

@amilino Arbeitet immer noch nicht für mich. Immer noch stotternd mit eingeschaltetem WLAN und wenn ausgeschaltet. Ich habe so ziemlich alles in diesem Thread ausprobiert, sogar von einem RPI B + mit einem BT-Dongle zu einem RPI 3 B + mit integriertem Bluetooth gewechselt und es gibt immer noch Stottern.

Eigentlich nicht ganz stotternd. Es scheint einen Datenblock zu bekommen, ihn zu schnell wiederzugeben, wobei Teile fehlen, und dann zu sitzen und auf den nächsten Datenblock zu warten.

Ich habe die gleiche Konfiguration wie bei @StudentSA , außer dem neuesten Bluez 5.50. Ich habe auch dieses Tutorial befolgt: https://gist.github.com/mill1000/74c7473ee3b4a5b13f6325e9994ff84c. Ich habe die gleichen Songs gespielt, die vorher gestottert haben und jetzt funktionieren sie ohne Probleme.

@amilino Hat perfekt

Der einzige Nebeneffekt dieses Tutorials ist, dass Audio nicht abgespielt wird, wenn Sie einen Linux-Computer über RPI Bluetooth verbinden. Wenn jemand ein besseres Tutorial kennt, lass es mich wissen.

Cypress hat sich mit WiFi / BT-Störungen befasst und einige neue "NVRAM" -Dateieinstellungen entwickelt, von denen sie behaupten, dass sie "das Audio-Stottern vollständig behoben" haben. Die gleichen Einstellungen können für den 43430 (3B, ZeroW) und den 43455 (3B +) verwendet werden.

  1. Suchen Sie Ihre "NVRAM" -Textdatei - sie befindet sich in /lib/firmware/brcm/brcmfmac<dev>-sdio.txt , wobei <dev> 43430 bzw. 43455 ist. Erstellen Sie eine Sicherungskopie an einem sicheren Ort, um das Rückgängigmachen der Änderungen zu vereinfachen (oder einen Fehler zu beheben).

  2. Öffnen Sie die Datei in einem Texteditor, scrollen Sie nach unten (nur aus Gründen der Übersichtlichkeit - diese Einstellungen können wahrscheinlich überall verwendet werden) und fügen Sie Folgendes hinzu:

    # Experimental Bluetooth coexistence parameters from Cypress
    btc_mode=1
    btc_params8=0x4e20
    btc_params1=0x7530
    
  3. Starten Sie neu.

Wie mir erklärt wurde, ermöglichen diese Einstellungen Bluetooth insgesamt mehr Sendezeit, indem WiFi länger schlafen kann und die maximale Wartezeit von Bluetooth verringert wird.

Bitte melden Sie Ihre positiven oder negativen Ergebnisse zurück, damit wir entscheiden können, ob diese als neue Standardwerte verwendet werden sollen.

Ich habe diesen Thread mit Interesse verfolgt. Ich habe einen Pi ZeroW / Raspbian Lite verwendet, um Internet-Streams über Bluealsa mit Mopidy auf einen Bluetooth-Lautsprecher abzuspielen. Bis heute hat nichts in diesem Thread das Problem des Stotterns gelöst.

bluez 5.50 - kein Unterschied
Deaktivieren von WiFi und Verwenden eines USB-Ethernet-Adapters - einige Änderungen, die jedoch alle paar Minuten stottern

Ändern der NVRAM-Einstellungen - scheint bisher perfekt zu sein. Ich benutze wieder WiFi und es gibt kein Ruckeln im Bluetooth-Audio. Immer noch mit bluez 5.50. Ich melde mich zurück, wenn ich stottere.

Bisher positive Ergebnisse. Ich benutze auch Bluez 5.50. Board - RPi3

Ich habe die vorherigen Modprobe-Parameter entfernt, die als Lösung ausgegeben wurden. Bisher kein Stottern. Mit iperf3 können Sie definitiv sehen, wie es die Zeit vom WLAN-Radio stiehlt. Aber kein Stottern, auch wenn zusätzliche Daten übertragen werden.

Während Sie Bluetooth spielen,

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  22.8 MBytes  19.2 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  22.7 MBytes  19.1 Mbits/sec                  receiver

Unterbrechen der Wiedergabe und Trennen des Lautsprechers.

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  55.3 MBytes  46.4 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  54.9 MBytes  46.0 Mbits/sec                  receiver

Bluetooth über dtoverlay deaktiviert

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  58.1 MBytes  48.8 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  57.0 MBytes  47.8 Mbits/sec                  receiver

Funktioniert für mich Raspi 3B, kein Stottern, sogar das Verschieben einer großen Datei über WLAN während der Audiowiedergabe (a2dp), aber ich sehe Tonnen von
"Bluetooth: hci0: Zusammenbau des Frames fehlgeschlagen (-84)" in Millisekunden!

$ dmesg
[ 2331.758484] Bluetooth: hci0: Frame reassembly failed (-84)
[ 2331.758689] Bluetooth: hci0: Frame reassembly failed (-84)
[ 2331.758750] Bluetooth: hci0: Frame reassembly failed (-84)
[ 2331.758833] Bluetooth: hci0: Frame reassembly failed (-84)

Ich versuche das jetzt schon seit ein paar Stunden. Es ist besser als es war, aber es ist nicht perfekt. Ich bekomme jetzt oft 20 bis 30 Minuten ununterbrochene Wiedergabe, aber dann beginnt das Stottern erneut und verschwindet nicht. Ich stoppe und starte den Audiostream neu. Auch meine SSH-Sitzung bleibt für einen Moment stehen, wenn das Stottern beginnt. Es handelt sich nicht um Audiopufferung, da ich die Protokollierung in meinen Player integriert habe, um mir mitzuteilen, wann die Pufferung erfolgt.

Vielleicht solltest du zu RPi3 b + wechseln, ich habe überhaupt keine Probleme.

Vielleicht solltest du zu RPi3 b + wechseln, ich habe überhaupt keine Probleme.

Nicht genau der Punkt, oder? Die Änderungen sollen das Audio-Stottern "vollständig beheben". Ich berichte nur, dass dies nicht der Fall zu sein scheint. Der 3B + verwendet einen anderen Chipsatz als der W, daher müssen die Einstellungen möglicherweise ein wenig angepasst werden.

Ja, ich stimme zu, aber wenn ich das Thema betrachte, hängt es mit RPi3 zusammen. Diese Diskussion ist sowieso zu lang, vielleicht wäre es gut, eine neue separate Ausgabe im Zusammenhang mit Pi W zu eröffnen.

Diese Lösung funktioniert auch für ein ZeroW. Ich spiele seit mehr als 2 Stunden ohne Probleme.

Ich denke, die Probleme, die ich bei ZeroW hatte, sind wahrscheinlich darauf zurückzuführen, dass Bluetooth nicht die gleiche Reichweite wie Bluetooth auf meinem iMac hat. Wenn ich den Lautsprecher näher an den Pi heranbringe, spiele ich jetzt seit 4 Stunden ohne Probleme Internetradio. Ich muss den Pi neu positionieren, damit das Signal die Küche erreicht :)

Vielen Dank für all das Feedback, das darauf hindeutet, dass diese Einstellungen zumindest eine große Verbesserung ohne Regressionen darstellen. Sie können sich gerne einschalten, wenn Ihre Erfahrungen etwas anderes vermuten lassen, aber ich plane, diese als neue Standardeinstellungen festzulegen.

Ich kann noch eine Beobachtung mit einem positiven Ergebnis hinzufügen. Ich benutze Bluetooth und Wi-Fi auf meinem ZeroW seit ungefähr einer Stunde gleichzeitig ohne Stottern. Auf jeden Fall eine +1, wenn dies der neue Standard ist.

Besprechen Sie hier nur das Problem, wenn rPi als a2dp-Quelle oder auch als a2dp-Senke verwendet wird?

Ich versuche, mein rPi3 als Bluetooth-Senke zu verwenden (dh ich versuche, Audio von meinem Telefon auf mein rPi abzuspielen), und das Stottern ist so intensiv, dass Sie gespielte Songs kaum wiedererkennen. Wi-Fi wird nicht verwendet. Ich habe es mit einem externen BT-Adapter versucht - kein Glück. Bei unterschiedlichen BT-Adaptern war das Stottern jedoch unterschiedlich (z. B. wenn unterschiedliche Puffergrößen verwendet wurden).

Sollte ich ein anderes Problem melden?

@edio Ich habe das RPi ZeroW als Senke verwendet und Audio von meinem Telefon über Bluetooth auf das RPi gestreamt. Bis gestern hatte auch ich schreckliches Stottern, aber die zuletzt vorgeschlagene Lösung scheint es gelöst zu haben.

Die von @ paul-1 vorgestellte Lösung funktioniert für mich auf dem Pi 3+ Board. Ich kann Wi-Fi normal nutzen und einen guten BT-Audiostream genießen

Hallo,
Hat jemand eine Idee, wie man die NVRAM-Lösung auf einem Libreelec-System mit einem schreibgeschützten SquashFS-System verwendet? Soweit ich weiß, ist es schreibgeschützt, da die nächste Distribution die Systemdateien überschreibt.

@ Bwims

RPi3:

mkdir /storage/.config/firmware/brcm
cp /usr/lib/firmware/brcm/brcmfmac43430-sdio.txt /storage/.config/firmware/brcm

RPi3 +:

mkdir /storage/.config/firmware/brcm
cp /usr/lib/firmware/brcm/brcmfmac43455-sdio.txt /storage/.config/firmware/brcm

Bearbeiten Sie nun die Datei in /storage/.config/firmware/brcm und starten Sie neu.

Sie können auch einen aktuellen LibreELEC 9.0-Test mit Kodi 18 verwenden, der diesen Fix bereits enthält: https://forum.kodi.tv/showthread.php?tid=298461

Hat jemand in diesem Thread nach dem Fix noch gelegentliche Aussetzer? Es ist nicht so schrecklich wie das Stottern, das ich anfangs hatte, aber dennoch ist die Bluetooth-Senke für mich ziemlich unbrauchbar, da ich alle paar Sekunden Klicks bekomme, von denen ungefähr jede einer Reihe von Aufzeichnungen in der Pulseudio-Ausgabe entspricht

E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-3)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-3)
E: [bluetooth] module-bluez5-device.c: SBC decoding error (-2)

und von bluez bekomme ich

Aug 26 17:49:07 mu kernel: Bluetooth: hci0: Frame reassembly failed (-84)
Aug 26 17:49:07 mu kernel: Bluetooth: hci0: Frame reassembly failed (-90)
Aug 26 17:49:07 mu kernel: Bluetooth: hci0: Frame reassembly failed (-84)
Aug 26 17:49:07 mu kernel: Bluetooth: hci0: Frame reassembly failed (-84)
Aug 26 17:49:07 mu kernel: Bluetooth: hci0: SCO packet for unknown connection handle 50346

Ich bekomme Perioden von bis zu einer Minute Klicks und Pops, dann verschwindet es, oft für mehrere Stunden. Es ist schlimmer, wenn der Lautsprecher weiter vom Pi entfernt ist.

@MilhouseVH vielen Dank dafür! Es ließ mich hierher kommen, was andere vielleicht nützlich finden.

Zu Ihrer Information auf libreELEC (Rpi 3+) behebt das Update das Stottern, führt jedoch zu einer inakzeptablen Audioverzögerung, wenn der Film über WLAN bereitgestellt wird. Ich denke, es ist eine Einschränkung der Plattform.

Ist die Audioverzögerung behoben? Können Sie dies mithilfe der Audioverzögerung korrigieren?
https://kodi.wiki/view/Video_playback#Audio_and_Subtitle_Settings

Ich habe meine Daten vom eingebauten wlan0 nach eth0 verschoben und Bluetooth-Probleme wurden behoben. Leider können wir unseren Kuchen nicht haben und ihn auch essen :(
Ich muss den obigen NVRAM-Vorschlag ausprobieren, wenn ich die Gelegenheit dazu bekomme.

Ich habe immer noch Stottern, nachdem ich alle möglichen Korrekturen an meinem RPi 3+ versucht habe. Deaktiviert WLAN vollständig und verwendet Kabel. :(

Gut. Ich bin froh, ein weiterer Datenpunkt zu sein. Der NVRAM-Fix hat mein Projekt aus einer Laune heraus völlig verändert, indem ich eine A2DP-Quelle mit meinem Zero-W erstellt habe. Ich habe gestern mit dem Projekt begonnen und bis ich auf diesen Thread stieß, waren sowohl pulseaudio als auch bluez-alsa während der Nutzung von WLAN völlig unbrauchbar. Kein WiFi zu haben wäre auch ein Show-Stopper. Vielen Dank an die Leute, die die Chipquellen durchsucht und das Update gefunden haben.

Ich habe immer noch ein bisschen Knacken und Keuchen, wenn die CPU überlastet wird (z. B. wenn während der Bluetooth-Wiedergabe Updates ausgeführt werden), aber ansonsten ist es ein völlig anderer Computer. Für die Aufzeichnung verwende ich Arch 4.14.90, Bluez 5.50 und Pulseaudio 12.2. Dies bedeutet, dass dies auf absehbare Zeit funktionieren sollte und keine Lösung ist, bei der wirklich alte inkompatible Software ausgeführt wird. <3

Ich habe die Einstellungen in den NVRAM-Dateien bearbeitet:
/usr/lib/firmware/updates/brcm/brcmfmac43430-sdio.txt
/usr/lib/firmware/updates/brcm/brcmfmac43455-sdio.txt

@acegallagher : Ich verstehe deinen Kommentar nicht. Jede Erklärung wäre willkommen.

Wenn Sie eine Lösung haben, welche Schritte sind erforderlich, um sie auf RPI zu haben?

@ Pelwell

Die aktualisierten NVRAM-Dateien befinden sich seit August 2018 in Raspbian-Updates. Alternativ können Sie sie direkt herunterladen:

Kopieren Sie sie in den Ordner / lib / firmware / brcm (Sie müssen sudo cp ... ).

Entschuldigung, aber das funktioniert nicht. Habe immer noch mit Wifi gestottert.

Das ist eine Schande. Haben Sie nach der Installation neu gestartet?

Leider gibt es Grenzen, was mit einer gemeinsam genutzten Antenne erreicht werden kann. Haben Sie versucht, die Entfernung vom Pi zum AP und / oder zum BT-Gerät zu ändern?

Ja, ich habe jetzt seit einigen Monaten damit zu kämpfen. Ich habe auf das Netzwerkkabel umgestellt und keine Probleme mehr.

Hallo,
Mit der aktualisierten Datei /usr/lib/firmware/updates/brcm/brcmfmac43430-sdio.txt und einem Freund und ja, ich habe neu gestartet :-), höre ich immer noch Unterläufe bei USB-Audio, die nicht mit integriertem Audio vorhanden sind (alle 5 Sekunden) oder so).
Ohne WLAN, alles Ethernet.

Wenn ich andererseits zuerst ifconfig wlan0 down mache, dann ist alles in Ordnung ...!
Oh nein, ist es nicht. nur weit weniger

Sie melden stotterndes USB-Audio mit Ethernet in einem Problem mit Bluetooth-Audio mit WiFi?

Hoppla!

Dieses Bluetooth + WiFi-Problem verursacht Probleme mit meiner Tastatur, die mehrere Tastenanschläge für eine Taste nach unten ausführt.

@ pratt-jeremy Ist das eine drahtlose Tastatur?

Ich habe das gleiche Problem. Laufen Arch auf einem Pi B3, B3 + und Zero. Alle zeigen die gleichen Symptome: Abgehacktes Spiel mit a2dp. Arch hat die hier aufgeführte Firmware nicht aktualisiert, aber ich habe das zuerst manuell gemacht. Wenn ich das integrierte BT auf diesen 3 Computern verwende, klagt Bluealsa über Puffer unter Läufen und spielt Musik in Schüben ab. Das Journal zeigt einen Puffer im Lauf. Wenn ich einen USB-Dongle verwende, funktioniert alles wie erwartet. Können wir noch etwas versuchen? fwiw, mein Kernel ist 4.19.32

Mir scheint klar zu sein, dass das Anbringen von Bluetooth und WLAN an einem RPi wie das Herstellen einer Seidenhandtasche aus dem Ohr einer Sau ist.

Das Raspberry Pi-Entwicklungsteam sollte angeben, dass die Wiedergabe von Audio über Bluetooth während der Wiedergabe eines Videos über WLAN aufgrund mangelnder Leistung / Bandbreite einfach nicht unterstützt wird.

Seit dem ersten Tag wird der Pi als aktualisierter Ersatz für das BBC-Mikro angepriesen, um Kinder in Schulen zu unterrichten. Kodi war ein großer Bonus. Ich habe diese Idee gerade aufgegeben. Ich wollte Filme auf einem Pi-Top mit einer Bluetooth-Verbindung zum Audiosystem meines Wohnwagens bereitstellen, aber jetzt stecke ich einfach eine Filmfestplatte in einen USB-Anschluss. Kein Wifi, kein Stottern. Traurig, aber nicht zu unpraktisch.

Ist dies der geeignete Befehl, um das integrierte BT zum Laufen zu bringen?
/ usr / bin / btattach -B / dev / ttyAMA0 -P bcm -S 3000000
Dies ist der Befehl in der Servicedatei für Arch Linux mit der Standardinstallation von Bluez 5.50

Ich habe also Audio-Streaming auf ein B3 + mit aktiviertem und aktivem WLAN (ich bin über ssh angemeldet). Ich verwende Arch Linux. Ich musste bluez-utils-compatible installieren, um den Befehl hciattach zu installieren. Ich glaube Raspian hat das schon ...

cat /proc/asound/card0/pcm0p/sub0/hw_params 
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (352800/8)
period_size: 4410
buffer_size: 22050

Das Standardpaket Bluez 5.50 enthält btattach, mit dem Arch den BT-Adapter einschaltet. Das hat nicht funktioniert. Alles was ich bekam war stotterndes Geräusch. Das Arch pi-bluetooth-Paket fordert den Befehl auf:
ExecStart=/usr/bin/btattach -B /dev/ttyAMA0 -P bcm -S 3000000
Der Befehl, der funktionierte, stammte aus einer älteren Version des Pakets:
ExecStart=/usr/bin/hciattach -n /dev/ttyAMA0 bcm43xx 921600 noflow -
Ich behaupte nicht zu wissen, ob dies "richtig" ist oder was auch immer, nur dass dies das erste Mal ist, dass ich Bluetooth mit dem integrierten Adapter reibungslos spielen kann.

Nur um Verwirrungen zu vermeiden. Broadcom WiFi Tech wurde bereits im Juni 2016 gekauft . Seitdem

  • BCM43438 ist CYW43438
  • BCM43455 ist CYW43455

@ pratt-jeremy Ist das eine drahtlose Tastatur?

@ JamesH65 Ja, es ist eine Bluetooth-Tastatur. Ich sehe, dass dies für Audio war, aber ich dachte, ich würde es erwähnen. Nachdem ich das WLAN ausgeschaltet hatte, funktionierte die Bluetooth-Tastatur einwandfrei. Keine wiederholten Zeichen, die ich nicht gedrückt habe.

Vermutlich ist Ihre Distribution voll auf dem neuesten Stand?

Vermutlich ist Ihre Distribution voll auf dem neuesten Stand?

Es war auf dem neuesten Stand, als ich hier gepostet habe. Es ist wahrscheinlich inzwischen veraltet, da es im März war. Ich werde es aktualisieren und sehen, ob es noch passiert.

Auf einem RPI4 mit WiFi Soft in rfkill blockiert. Immer noch abgehackt auf Pulseaudio A2DP.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen