Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 22.09.2019 19:59:09

Es mag auf den ersten Blick unübersichtlich sein, aber eigentlich ist es recht einfach:


Pulseaudio bietet seine eigene Softwareschnittstelle für die Audiowiedergabe an, die Anwendungen nutzen können und vlc beispielsweise kann und macht das, dann steht bei den Audioeinstellungen wahrscheinlich „Pulseaudio“ oä.
Anwendung → Pulseaudio → Treiber (Pulseaudio Bluetooth oder Alsa oder OSS oder ...)

Weil aber sehr viele Programme nach wie vor nur Alsa als Schnittstelle unterstützen, klinkt sich Pulseaudio über ein Alsa-Plugin auch dort ein und wird damit in Alsa zu einer Art virtueller Soundkarte, die dann auch gleich als default-Gerät eingerichtet wird. Wählst du also einfach Alsa statt Pulseaudio aus, sollte sich erst einmal gar nichts ändern, außer dass der Wiedergaberegler in pavucontrol für dieses Programm dann wahrscheinlich anders heißt.
Anwendung → Alsa (Pulseaudio-Plugin) → Pulseaudio → Treiber (Pulseaudio Bluetooth oder Alsa oder OSS oder ...)

Ändern tut sich erst etwas, wenn du außerdem noch bei den Audioeinstellungen ein anderes Alsa-Gerät auswählst. Dann läuft die Wiedergabe an Pulseaudio vorbei nur über Alsa und ohne den Pulseaudio-Umweg stehen dir auch die Bluetoothgeräte nicht mehr zur Verfügung.
In der Vergangenheit habe ich immer empfohlen beim Einsatz von Pulseaudio die Existenz von Alsa sozusagen zu ignorieren. Pulseaudio soll ja von der Hardware und deren Treibern abstrahieren und wenn man sich dann in das darunterliegende Alsa einmischt, kommt man sich schnell ins Gehege. (Ich muss aber auch zugeben, dass ich mich selbst nicht an meine Empfehlungen halte.)
Anwendung → Alsa (möglicherweise irgendwelche Alsa Plugins → Alsa Treiber)


(So nebenbei würde es mich ja ein kleines bisschen interessieren wie leicht es ist, das bluez-alsa-Paket vom Raspberry Pi für amd64 zu bauen. Würde dich Audio mit Bluetooth ohne Pulseaudio interessieren? (das wäre eine mögliche Motivation das zu machen, ich selbst brauche es nicht))

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 22.09.2019 20:12:55

smutbert hat geschrieben:Würde dich Audio mit Bluetooth ohne Pulseaudio interessieren?
Interessieren tät's mich schon. Aber ich habe so vielfältige Interessen, von Waldarbeit über Handwerkern, Singen, Geschichte bis zu Sparring mit Pöttering. Von allem versteh' ich 'n bisschen, aber nix richtig. :wink: Ich weiß nicht, ob ich da noch 'ne Baustelle aufmachen soll. Die erste Hürde wäre, wo kriegt man die Sourcen her?

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 22.09.2019 20:30:10

ich denke von hier: https://github.com/Arkq/bluez-alsa
Allerdings habe ich beim Schreiben dieses Beitrags gerade entdeckt, dass es in Repositories von/für den Raspbery Pi das Paket sogar bereits für amd64 gibt und überraschenderweise für alle Architekturen unter dem Namen bluealsa: http://archive.raspberrypi.org/debian/p ... /bluealsa/

So wie es aussieht genügt
- herunterladen (bluealsa_0.12_amd64.deb)
- installieren
- als Benutzer

Code: Alles auswählen

/usr/bin/bluealsa --disable-hfp
starten
- den letzten Schritt dieser Anleitung https://geeks-r-us.de/2017/08/18/blueto ... pberry-pi/ durchlesen oder sogar befolgen
(die letzten paar Zeilen ab „Nun kann über den Bluetooth LautsprecherSound abgespielt werden.“, den Rest inklusive bluetoothctl kennst du ja schon)

Wenn das wirklich funktioniert wäre es enttäuschend einfach, nur für das Umschalten zwischen Bluetoothgerät und eingebauten Lautsprecher habe ich bei Alsa keine Idee, die ich für bequem und verlässlich halte – das geht mit Pulseaudio schon wesentlich einfacher und das müsstest du wohl komplett deinstallieren um bluealsa ausprobieren zu können.

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 22.09.2019 21:26:08

Hmmm,

einen apt-fähigen Eintrag für die sources.list habe ich gefunden: deb http://archive.raspberrypi.org/debi ... ch main ui Ich sehe bei mir mit apt-get keine zusätzlichen Abhängigkeiten, demzufolge könnte es auch per dpkg funktionieren. Aber wie sieht das aus mit einem Signierschlüssel? Dazu habe ich nichts gefunden.

Grüße Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 22.09.2019 21:43:36

Ja, die Abhängigkeiten habe ich mir angesehen bevor ich meinen letzten Beitrag gepostet habe.

Den öffentlichen Schlüssel gibt es vermutlich im Paket raspberrypi-archive-keyring (aber ich würde einfach das eine Paket so herunterladen).

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 22.09.2019 21:52:43

Danke sehr!

Mal sehen. Wenn ich Zeit finde, probiere ich das auf einer älteren Test-Maschine (T42, ich hab's nun mal mit Thinkpads :wink: ) aus. Ich will mir ja nicht nach einem halben Jahr mühsamer - wenn auch sporadischer - Arbeit die Konfiguration meines schönen T430 wieder versauen. :wink:

Im Übrigen, nachdem das nun funktioniert hat, geh' ich's wahrscheinlich auch auf dem uralten eeepc 4g noch mal an. Und wenn's denn funktioniert, kriegt der einen fetten Bose-Lautsprecher verpasst! :mrgreen:

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 08.10.2019 18:18:17

So, ich versuche das jetzt mal mit bluealsa unter stretch auf eeepc. Ich fürchte, ein upgrade auf buster wird das bluetooth-audio via PA nicht überleben (kein pavucontrol mehr ohne systemd). Dabei stößt mir merkwürdig auf: Die neueste bluealsa-Version ist 0.13. Für amd64 gibt die sich mit stretch-libc6_2.24 zufrieden. i386 verlangt aber 2.28. Auf dem eeepc müsste ich zurückgehen bis bluealsa-0.7. Sollte ich das tun?

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 08.10.2019 21:48:51

Entweder das oder versuchen das Paket aus den Quellen für/mit der älteren libc zu bauen.

Es war zwar meine Idee, aber ich habe nicht ausprobiert ob es überhaupt funktioniert. Als Ausweg bliebe sonst noch die Möglichkeit gleich raspbian zu installieren, das es zu meiner Überraschung auch für PCs gibt. (systemd sollte sich dort jedenfalls ähnlich einfach (oder schwierig) ausbauen lassen wie unter Debian.)

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 08.10.2019 22:35:07

Ist das nicht ein Bug, dass ein Paket in der 64bit-Version mit einer lib zufrieden ist, während das gleiche Paket für eine 32bit-Version eine neuere verlangt? Aber lassen wir das einstweilen.

Ich habe pulseaudio deinstalliert und bluealsa-0.7 installiert. In dem von dir verlinkten Thread arbeitet der Autor ja mit systemd. Ich habe das Kommando

Code: Alles auswählen

/usr/bin/bluealsa --disable-hfp
, das er in eine Unit steckt, zum Testen vor dem Start von bluetoothctl mal händisch ausgeführt. Danach kann ich den Lautsprecher mit bluetoothctl verbinden (connect), aber Töne konnte ich ihm bisher nicht entlocken. Ich teste nach wie vor mit Videos. Die habe ich und nen Springsteen als mp3 hätt' ich auch noch. Aber ob sich in den Tiefen des Systems eine *.wav-Datei zum Testen finden lässt - wie sie überall wie sauer Bier zum Testen propagiert wird, weiß ich nicht und habe ich auch keine Lust zu suchen.

Grüße, Günther

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

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von pferdefreund » 09.10.2019 10:04:39

Dann mach dir doch ne .wav draus. Ffmpeg kann das bestimmt - oder auch andere Tools.

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 10:08:46

Bei Alsa musst du halt auch das Bluetoothgerät als Ausgabeziel angeben. Die .asoundrc in der verlinkten Anleitung sorgt nur für die richtige Konfiguration der Bluetooth-Verbindung, aber nicht dafür, dass die Ausgabe per default beim Bluetoothgerät landet.

Wahrscheinlich hast du bereits genug wav-Dateien am System (du wirst wahrscheinlich Debianalsa-utils installiert haben). Testen würde dann ich fürs erste mit

Code: Alles auswählen

$ aplay -D bluealsa /usr/share/sounds/alsa/Front_Left.wav
Wenn das nicht funktioniert versuch alternativ die Optionen gleich in den Befehl einzubauen (die X stehen wieder für die Mac-Adresse der Bluetoothlautsprecher)

Code: Alles auswählen

$ aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /usr/share/sounds/alsa/Front_Left.wav

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 10:59:38

Code: Alles auswählen

$ aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /usr/share/sounds/alsa/Front_Left.wav
Funktioniert!!!

Ich hatte das Kommando zwischenzeitlich auch hier (1) gefunden und mit meinem Video als Tonquelle versucht, aber da kam nichts als ziemlich lauter Lärm aus dem Lautsprecher, dem Bluetooth-Lautsprecher, immerhin!

Ich habe die Logik dieses bluealsa-Teils noch nicht durchschaut. Trifft zu, dass das Ding als erstes irgendwie gestartet werden muss, bevor man mit bluetoothctl loslegt? Wenn ich recht erinnere, funktionierte das Verbinden des Lautsprechers mit bluetoothctl nicht, ohne vorher das hier aus dem angegebenen Link zu starten:

Code: Alles auswählen

bluealsa --disable-hfp &
. Was ich da getan habe, weiß ich noch nicht so recht.

(1) https://forum.armbian.com/topic/6480-bl ... ulseaudio/

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 11:47:32

Ja, bluealsa musst du irgendwie starten. (Meinem Verständnis nach ist das eine Art Dämon, der die Daten von Alsa entgegennimmt und an den Bluetoothlautsprecher ausgibt.)
Wahrscheinlich läuft es auf ein init-Skript hinaus. Ich habe bis jetzt kein fix-und-fertig-passendes in den Untiefen des Internets gefunden – notfalls müssen wir (bzw. mußt du ) eben selbst kreativ werden. Normalerweise würde ich möglicherweise empfehlen bluealsa mit einer udev-Regel zu starten, damit es für einen gerade erst angesteckten Bluetooth-Stick aktiv wird, aber das ist auf deinem System wohl auch nicht möglich.

Die simpelste Lösung wäre natürlich

Code: Alles auswählen

export LIBASOUND_THREAD_SAFE=0
/usr/bin/bluealsa -S &
an die »/etc/rc.local« anzuhängen – möglicherweise funktioniert das ja bereits gut genug?
guennid hat geschrieben: ↑ zum Beitrag ↑
09.10.2019 10:59:38
. Was ich da getan habe, weiß ich noch nicht so recht.

(1) https://forum.armbian.com/topic/6480-bl ... ulseaudio/
Ich auch nicht, aber ich gehe einmal davon aus, dass du keine systemd-units angelegt hast :wink:
Darüber hinaus glaube und hoffe ich, dass du nicht bluealsa aus den Quellen kompiliert hast, wie in deinem Link beschrieben.
Sonst steht in der Anleitung ja nicht viel Aufregendes, außer vielleicht den Befehlen für die Sprachausgabe (aber die willst du eh nicht, oder?).


Nachdem der BT-Lautsprechers bereits gepairt ist, musst du eigentlich nur bluealsa starten und wir müssen uns noch etwas für die Alsakonfiguration überlegen, damit der Ton auch immer dort landet wo du ihn gerne hättest. (Ich habe es schon erwähnt: ich kenne keinen Weg das ähnlich zu automatisieren wie das mit pulseaudio möglich ist, aber irgendeine Lösung, mit der du dich arrangieren kannst werden wir schon finden.)
Hast jetzt eigentlich schon eine ~/.asoundrc angelegt?

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 13:55:19

smutbert hat geschrieben:Meinem Verständnis nach ist das eine Art Dämon, der die Daten von Alsa entgegennimmt und an den Bluetoothlautsprecher ausgibt.
Das vermute ich auch. Um dessen automatisierten Start kann man sich später kümmern (rc.local, z.B.)
smutbert hat geschrieben:Darüber hinaus glaube und hoffe ich, dass du nicht bluealsa aus den Quellen kompiliert hast, wie in deinem Link beschrieben.
Nein nein. Ich habe wie gesagt, das bluealsa-0.7.deb genommen
smutbert hat geschrieben:Nachdem der BT-Lautsprechers bereits gepairt ist, musst du eigentlich nur bluealsa starten
Ich denke eher umgekehrt. Ich meine bluetoothctl (pairen/connecten) wäre nicht möglich gewesen ohne vorher bluealsa gestartet zu haben - mag mich aber irren, ich probiere mehr oder weniger blind.

Im Moment scheint mir das Hauptproblem, rauszufinden, warum mit dem aplay-Kommando eine dieser skurrilen *.wav-Dateien (skurril für mich deshalb, weil ich die in den vorangegangenen 18 Debian-Jahren noch nie angefasst habe :wink: ) abzuspielen ist, nicht aber der Ton eines mkv-Videos. In dem Zusammenhang habe ich mich noch nicht an die Anlage einer~/.asoundrc gewagt.

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 14:12:02

guennid hat geschrieben: ↑ zum Beitrag ↑
09.10.2019 13:55:19
Ich denke eher umgekehrt. Ich meine bluetoothctl (pairen/connecten) wäre nicht möglich gewesen ohne vorher bluealsa gestartet zu haben - mag mich aber irren,
Nein, du irrst dich nicht. Ich meinte eher die Maßnahmen zur Antriebnahme es BT-Lautsprechers als großes Ganzes, nicht die konkrete zeitliche Abfolge:
- (Automatisches) Starten von bluealsa → noch zu erledigen
- Pairing → erledigt
- Connect → erfolgt nach dem Pairing automatisch (oder sollte es zumindest)
- Konfiguration von Alsa:

Nachdem du mehrere Soundkarte/Audiogeräte hast, ist das Anlegen einer ~/.asoundrc (oder der systemweiten Variante davon /etc/asound.conf) wohl die einfachste Möglichkeit festzulegen worüber du die Ausgabe hören willst oder wie hast du bei der Wiedergabe des Videos festgelegt (oder festzulegen versucht), dass der Ton über die BT-Lautsprecher kommen soll?

Kannst du einmal die Ausgabe von

Code: Alles auswählen

aplay -l
bei verbundenem BT-Lautsprecher posten.

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 15:23:49

wie hast du bei der Wiedergabe des Videos festgelegt (oder festzulegen versucht), dass der Ton über die BT-Lautsprecher kommen soll?
Gar nicht. Ich hatte gehofft, dass der Ton mit

Code: Alles auswählen

$ aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /home/[user]/video.mkv
abgespielt würde, so wie er ja auch bei Verwendung der Front_Left.wav abgespielt wurde.

Hmmm:

Code: Alles auswählen

# aplay -l
bash: aplay -l: Kommando nicht gefunden.
aplay ist Bestandteil von Debianalsa-utils, wenn ich recht sehe. Das ist installiert. :?: :?: :?:

Aha! Der sagt erst was über die Sound-Hardware, wenn eine Ton-Datei offen ist. So sieht's jetzt aus.

Code: Alles auswählen

$ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: Intel [HDA Intel], Gerät 0: Generic Analog [Generic Analog]
  Sub-Geräte: 0/1
  Sub-Gerät #0: subdevice #0

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 16:14:47

aplay ist ein sehr simples Programm, das kann nur mit (unkomprimierten) PCM-Daten umgehen. Deshalb ist es auch bei der Fehlersuche und beim Ausprobieren von Konfigurationen sehr nützlich – es bringt kaum zusätzliche mögliche Fehlerquellen ins Spiel.
aplay -l sollte ohne laufende Wiedergabe dieselben Ergebnisse liefern wie mit und ich habe keine Ahnung was beim ersten aplay -l schief gelaufen ist – ich vermute da ist zwishen aplay und -l irgendetwas anderes als ein normales Leerzeichen gerutscht.


Als minimale ~/.asoundrc für die Bluetooth-Wiedergabe hätte ich mir ungefähr das hier vorgestellt:

Code: Alles auswählen

defaults.bluealsa {
	interface "hci0"
	device "XX:XX:XX:XX:XX:XX"
	profile "a2dp"
}

pcm.!default { 
	type plug
	slave.pcm "bluealsa"
}
Probier zuerst einmal aus, ob ein simples

Code: Alles auswählen

aplay /usr/share/sounds/alsa/Front_Left.wav
funktioniert und wenn ja, kannst du auch gleich die Videowiedergabe testen (nicht mit aplay sondern mit einem Videoplayer).

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 17:02:42

Ich habe keine Ahnung von dem, was du mich in diese .asoundrc schreiben lässt. Ich habe noch nie eine erstellt. Also wenn ich recht sehe, dann stellt die mir in der von dir beschriebene Form die Tonausgabe dauerhaft auf den BT-Lautsprecher um - richtig? - Nicht das, was ich eigentlich will, aber lassen wir's erst mal dabei. Ich kann ja durch Löschen den vorherigen Zustand wiederherstellen - richtig?.

die left_font.wav wird auch nach der Anlage deiner .asoundrc darüber „abgespielt“. Das Video, abgespielt mit smplayer ist jetzt stumm. Versuche ich den Springsteen (mp3) mit aplay abzuspielen kommt das hier:

Code: Alles auswählen

~$ aplay [musik].mp3
Wiedergabe: Rohdaten '[musik].mp3' : Unsigned 8 bit, Rate: 8000 Hz, mono
aplay: set_params:1363: Fehler beim Setzen der Hardware-Parameter:
ACCESS:  RW_INTERLEAVED
FORMAT:  U8
SUBFORMAT:  STD
SAMPLE_BITS: 8
FRAME_BITS: 8
CHANNELS: 1
RATE: 8000
PERIOD_TIME: (85333 85334)
PERIOD_SIZE: (682 683)
PERIOD_BYTES: (682 683)
PERIODS: (5 7)
BUFFER_TIME: 511875
BUFFER_SIZE: NONE
BUFFER_BYTES: 4095
TICK_TIME: 0
ebenfalls kein Ton.

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 17:27:34

Das in der .asoundrc ist nichts geheimnisvolles, im Abschnitt defaults.bluealsa werden die Standardeinstellungen für bluealsa festgelegt und zwar genau dieselben, die wir bei dem Kommando

Code: Alles auswählen

aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /usr/share/sounds/alsa/Front_Left.wav
explizit angegeben haben (der erste Bluetoothadapter hci0, Mac-Adresse des Bluetoothgeräts und das verwendete BT-Profil)

Der zweite Abschnitt pcm.!default legt fest, dass die Wiedergabe per default über bluealsa laufen soll. Das type plug sorgt dafür, dass die Wiedergabe davor noch durch das plug-Plugin von alsa läuft, das sorgt dafür, dass die Audiodaten in ein Format konvertiert werden, mit dem bluealsa etwas anfangen kann.
Nun könnte es sein, dass genau das mit smplayer fehlschlägt, zum Beispiel weil bluealsa behauptet Formate zu verstehen, mit denen es doch nicht läuft oder es ist irgendetwas anderes.

Gibt es von smplayer möglicherweise irgendwelche (Fehler)meldungen?

Das Abspielen einer mp3-Datei könntest du auch mit ffplay (Debianffmpeg) oder play (Debiansox) testen.

Und ja du kannst du .asoundrc einfach löschen, dann ist alles beim Alten. Neustart ist auch keiner notwendig. Damit Änderungen an der .asoundrc wirksam werden, musst du nur das tonausgebende Programm, zum Beispiel smplayer beenden und neu starten.

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 18:43:29

So, es wird Zeit, mich zu bedanken! :THX:

In smplayer habe ich den Ton-Ausgabetreiber auf pcm gestellt. Video-Ton kommt jetzt über den BT-Sprecher.

Den Springsteen habe ich in wav umgewandelt. Wird mit aplay abgespielt. mp3 funktioniert mit aplay nicht.

Ich fass' nochmal den Stand zusammen:
# bluealsa --disable-hfp &
$ bluetoothctl
# export LIBASOUND_THREAD_SAFE=0
$ Ton-Anwendung

richtig?

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 19:28:27

Wahrscheinlich. Bei einem Punkt bin ich mir nicht sicher, ob er so stimmt und bei dem ist mir auch nicht klar, wie aktuell und wie dringend das ist:

Code: Alles auswählen

export LIBASOUND_THREAD_SAFE=0
Das soll ein noch (oder früher) problematisches Feature der Alsa-Bibliothek lahmlegen und ich nehme an es geht darum das Feature für bluealsa lahmzulegen. Dann wäre es richtig bluealsa so zu starten

Code: Alles auswählen

$ export LIBASOUND_THREAD_SAFE=0
$ bluealsa --disable-hfp &
Möglicherweise habe ich das aber auch falsch verstanden und es wäre angesagt dieses Feature für die Alsa-Anwendung zu deaktivieren

Code: Alles auswählen

$ export LIBASOUND_THREAD_SAFE=0
$ aplay /home/guennid/mein-Musikstück.wav
oder wahlweise

Code: Alles auswählen

$ LIBASOUND_THREAD_SAFE=0 aplay /home/guennid/mein-Musikstück.wav
Vielleicht kannst du das LIBASOUND_THREAD_SAFE=0 auch komplett weglassen und es funktioniert trotzdem alles einwandfrei.



Offen bleiben aus meiner Sicht noch zwei Dinge
  1. Momentan ist bei der Wiedergabe über den BT-Lautsprecher kein Software-Mixing aktiv. Es kann also nur eine Anwendung gleichzeitig am Bluetooth-LS spielen. Stört dich das?
  2. Zum Umschalten zwischen Onboardsound und BT-LS hast du momentan nur die Möglichkeit die .asoundrc zu löschen bzw. umzubenennen und dann zum Zurückschalten wieder zurückumzubenennen.
    Das könntest du natürlich mit einem Skript machen, aber wenn ich scharf nachdenke (= im Internet nachschaue wie das geht :mrgreen:) finden wir eine Möglichkeit das mittels einer Umgebungsvariablen zu machen. Also in etwa so, dass

    Code: Alles auswählen

    $ aplay /home/guennid/mein-Musikstück.wav
    
    auf dem internen Sound wiedergibt während

    Code: Alles auswählen

    $ ALSAXY=BT aplay /home/guennid/mein-Musikstück.wav
    
    über den BT-LS wiedergibt (oder umgekehrt, je nachdem was du öfter verwendest).
    Oder hast du dir das mit dem Umschalten anders vorgestellt?

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 21:11:35

smutbert hat geschrieben: Es kann also nur eine Anwendung gleichzeitig am Bluetooth-LS spielen. Stört dich das?
Nicht im geringsten! Zumindest sehe ich momentan nichts. :wink:

Code: Alles auswählen

export LIBASOUND_THREAD_SAFE=0
ist wohl überflüssig.
bluealsa --disable-hfp &
MUSS meines Erachtens mit Root-Rechten ausgeführt werden. Dazu muss ich mir entweder ein init-script überlegen oder ein script von rc.local ausführen lassen.
Im Übrigen, denke ich, können wir's dabei belassen. Dazu, wie ich mit der ~/.asoundrc umgehe, überlege ich mir selbst noch was.
:THX: :THX: :THX:

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8319
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 10.10.2019 17:53:09

guennid hat geschrieben: ↑ zum Beitrag ↑
09.10.2019 21:11:35
[...] oder ein script von rc.local ausführen lassen.
[...]
Du kannst den Befehl direkt in die rc.local eintragen

Code: Alles auswählen

bluealsa --disable-hfp &
nur das & am Ende ist wichtig, damit das System nicht vergeblich darauf wartet, dass sich bluealsa wieder beendet.

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 10.10.2019 18:04:59

Du kannst den Befehl direkt in die rc.local eintragen
Na ja, man könnt's ja auch sysvinit-konform machen. - Denk ich mal! in der Hoffnung mal was Richtiges zu denken. :wink:

Antworten