Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
FIXED: ALSA Device Blockade
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Mon Jan 02, 2023 10:18 am    Post subject: FIXED: ALSA Device Blockade Reply with quote

Moin moin und ein frohes neues Jahr,

ich spiele seit einiger Zeit "Wolfenstein II New Order" über Steam. Das funktioniert auch soweit gut. Allerdings wenn ich das Spiel beende, ist der Sound über ALSA stumm. (Anmerkung: Kein Pulseaudio installiert).

jetzt wollte ich das analysieren und wenn ich unter root mit aplay etwas abspielen möchte:

Code:

aplay -D /home/martin/Recording/VM_Sound/alien-ship-idle.wav
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.7.2/work/alsa-lib-1.2.7.2/src/pcm/pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM /home/martin/Recording/VM_Sound/alien-ship-idle.wav
aplay: main:867: Fehler beim Öffnen des Gerätes: Datei oder Verzeichnis nicht gefunden




.. dann scheint das Device belegt zu sein. Nach dem Reboot funktioniert das wieder. Auch hier eine Anmerkung: Steam läut unter einem separaten user namens "steam". Das hatte ich damals so eingereichtet weil es mal hieß, Steam würde die Userdaten ausschnüffeln.

Mein Frage ist nun folgende: Wie kann ich herausfinden, wodurch das Device blockiert wird? Also sowas wie "fuser" nur für Sounddevices. Gibt es das? Oder könnte ich einfach alles stoppen, was unter dem user "steam" läuft?


Anmerkuing: Das Prooblem trat noch bei keinem anderen Spiel auf ausser bei diesem.
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W


Last edited by Erdie on Wed Jan 04, 2023 5:13 pm; edited 1 time in total
Back to top
View user's profile Send private message
mike155
Advocate
Advocate


Joined: 17 Sep 2010
Posts: 4438
Location: Frankfurt, Germany

PostPosted: Mon Jan 02, 2023 12:15 pm    Post subject: Reply with quote

Quote:
Steam läuft unter einem separaten user namens "steam".

Gut gemacht! Das mache ich auch so bei Software, der ich nicht traue, die ich aber nicht in einer VM laufen lassen möchte.
Quote:
dann scheint das Device belegt zu sein.

Hmm. Na ja, wenn man folgenden Befehl ausführt:
Code:
aplay -D wav-Datei

dann gibt es natürlich eine Fehlermeldung, weil der notwendige Parameter für Option -D fehlt. Probiere den Befehl ohne Parameter "-D".

Wenn es dann immer noch nicht geht, schaue mit 'ps -fe', ob noch Prozesse von steam am Laufen sind
Code:
ps -fe

Wenn ja, dann stoppe diese mit 'kill -9' - und schaue, ob aplay dann wieder funktioniert.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Mon Jan 02, 2023 12:34 pm    Post subject: Reply with quote

Ach das mit dem -D hatte ich aus der Manpage falsch verstanden. Ohne -D scheint er etwas zu tun aber man hört nichts.

ps -fe | grep steam liefert:

Code:

ps -fe | grep steam
steam    31120     1  0 13:27 ?        00:00:00 dbus-daemon --session --print-address --fork
root     32262  5417  0 13:31 pts/1    00:00:00 grep --colour=auto steam



Wenn ich den Prozess 31120 dann töte, funktioniert der Sound wieder (das hatte ich schon mal probiert und da funktionierte es anschließend nicht) Diesmal hat es geholfen.


Ich verstehe jetzt warum es unter root mit aplay nicht geht, meine Soundkarte ist device 2 und das steht in einer lokalen .asoundrc. Root hat das nicht und versucht infolgedessen auf die NVidia HDMI Schnittstelle zuzugreifen. Das hat also nichts mit dem Problem zu tun. Das töten den dbus-daemons hat stattdessen gehofen.
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
mike155
Advocate
Advocate


Joined: 17 Sep 2010
Posts: 4438
Location: Frankfurt, Germany

PostPosted: Mon Jan 02, 2023 2:07 pm    Post subject: Reply with quote

Sofern man nicht eine Soundkarte mit mehreren D/A-Konvertern und Hardware-Mixer hat, kann immer nur ein Programm auf den D/A-Konverter schreiben. Der Vorteil ist, dass dieses Programm die Sample-Rate des D/A-Konverters konfigurieren kann - und man so eine optimale Konvertierung ohne Resampling bekommt. Zumindest bei gängigen Sample-Rates wie 44,1 kHz oder 48 kHz.

Wenn mehrere Programme gleichzeitig Sound ausgeben wollen, braucht man einen Software-Mixer wie dmix, PulseAudio oder PipeWire. Wenn einzelne Soundquellen jedoch Audio-Daten mit einer anderen Sample-Rate schreiben als die Sample-Rate, mit der der Software-Mixer auf den D/A-Konverter schreibt, wird Resampling notwendig. HiFi-Fans sollten das vermeiden, weil die Soundqualität darunter leidet.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Mon Jan 02, 2023 2:19 pm    Post subject: Reply with quote

mike155 wrote:
Sofern man nicht eine Soundkarte mit mehreren D/A-Konvertern und Hardware-Mixer hat, kann immer nur ein Programm auf den D/A-Konverter schreiben. Der Vorteil ist, dass dieses Programm die Sample-Rate des D/A-Konverters konfigurieren kann - und man so eine optimale Konvertierung ohne Resampling bekommt. Zumindest bei gängigen Sample-Rates wie 44,1 kHz oder 48 kHz.

Wenn mehrere Programme gleichzeitig Sound ausgeben wollen, braucht man einen Software-Mixer wie dmix, PulseAudio oder PipeWire. Wenn einzelne Soundquellen jedoch Audio-Daten mit einer anderen Sample-Rate schreiben als die Sample-Rate, mit der der Software-Mixer auf den D/A-Konverter schreibt, wird Resampling notwendig. HiFi-Fans sollten das vermeiden, weil die Soundqualität darunter leidet.


Das ist mir schon soweit klar. Auf meinem Notebook nutze ich pulseaudio, weil es dort Sinn macht. Auf meinem Tower ist pure ALSA (mit dmix für die Wiedergabe) weil ich dort ggf. mit Jack arbeite. Aber die Frage ist doch eine andere: Wieso bleibt in diesem Fall etwas hängen, und zwar nur bei diesem speziellen Spiel, auch wenn es reguär beendet wird. Und worum es mir persönlich geht, ist, wie man das praktisch handeln oder vermeiden kann, dass sowas passiert. Komischerweise hat es 1x gereicht, den dbus prozess zu killen und ein anderes Mal davor hat das nichts gebracht. Da mußte ich rebooten. Wenn ich genau wüßte, was da wirklich passiert, könnte ich den reboot vermeiden. Den Umstand will sicher niemand. Und was dbus mit alsa zu tun hat, ist mir auch nicht ganz transparent.
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Mon Jan 02, 2023 2:54 pm    Post subject: Reply with quote

ich vermute dass es mal geholfen hat durch das abschießen von dbus-daemon ist eine falsche fährte.
Denn falls es wirklich mit dem session dbus process direkt zu tun haben sollte, sollte es immer funktionieren.

Eher wurde durch das abschießen des session dbus processes ein anderer process mit abgeschossen. Und dieser Process (ich blockierte das sound device.
Da es nicht immer funktioniert könnte daran liegen, dass in dem einem falle der process gerade nicht auf den dbus session bus zugeriffen hat (sound device war weiterhin blockiert) und das andere mal gerade einen zugriff auf den dbus session bus durchgeführt hat aber aufgrund der dbus-daemon process terminierung in einen Fehler lief und sich selbst beendete.

Um den eigendlichen process herauszufinden, welches gerade das alsa device offen funktioniert mit folgenden befehl:

Quote:
fuser -v /dev/snd/*

quelle: https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture/Troubleshooting

Falls das Spiel selbst SDL verwendet kann man via eine ENV variable festlegen welche "driver" SDL verwendet für audio output.
Ich hatte vor der Nutzung von pusleaudio ein wrapper script für steam erstellt in der die SDL ENV variable exportiert wurde um alsa als "driver" festzulegen.
~/bin/steam wrote:

#!/bin/bash
export SDL_AUDIODRIVER=alsa
/usr/bin/steam $@


Wäre ein versuch wert das mal damit zu versuchen (falls das Spiel SDL verwendet)
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.


Last edited by firefly on Mon Jan 02, 2023 3:29 pm; edited 1 time in total
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Mon Jan 02, 2023 3:10 pm    Post subject: Reply with quote

firefly wrote:
ich vermute dass es mal geholfen hat durch das abschießen von dbus-daemon ist eine falsche fährte.


Ja, das vermute ich auch!


Mein Steam starte ich mit folgendem Skript:
Code:

#!/bin/bash
echo $DISPLAY > /home/steam/steam.log
export SDL_AUDIODRIVER=alsa
export DBUS_SESSION_BUS_ADDRESS="$(dbus-daemon --session --print-address --fork)" #workaround wegen langsam UI
cd /home/steam/Steam
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/opengl/nvidia/lib" ./steam.sh $1


Ich werde das jetzt noch ein paar Mal öfter probieren um zu testen ob da was systematischen rauskommt (und dann auch das tun, was Du weiter unten geschrieben hast). Wenn ich mehr weiß, poste ich das hier.


Danke.
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Mon Jan 02, 2023 9:39 pm    Post subject: Reply with quote

Neuer Versuch:

ich habe den dbus Prozess getötet und es funktioniert trotzdem nicht mehr. Wenn ich aplay verwendet, passiert folgendes:

Code:

aplay Recording/VM_Sound/single_bike_bell.wav
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.7.2/work/alsa-lib-1.2.7.2/src/pcm/pcm_direct.c:2175:(_snd_pcm_direct_new) unable to create IPC semaphore
aplay: main:867: Fehler beim Öffnen des Gerätes: Keine Berechtigung


Irgendwas hängt aber es kann keine Prozess vom user "steam" mehr sein. denn die sind alle tot.
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
mike155
Advocate
Advocate


Joined: 17 Sep 2010
Posts: 4438
Location: Frankfurt, Germany

PostPosted: Mon Jan 02, 2023 11:34 pm    Post subject: Reply with quote

Keine Panik: wir werden schon herausfinden, was das ist! :D

Was sagt denn der Befehl von @firefly in dieser Situation:
Code:
fuser -v /dev/snd/*
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Tue Jan 03, 2023 9:10 am    Post subject: Reply with quote

mike155 wrote:
Keine Panik: wir werden schon herausfinden, was das ist! :D

Was sagt denn der Befehl von @firefly in dieser Situation:
Code:
fuser -v /dev/snd/*



Code:

fuser -v /dev/snd/*
                     BEN.        PID ZUGR.  BEFEHL
/dev/snd/controlC0:  martin     3407 F.... kded5
                     martin     3779 F.... kmix
/dev/snd/controlC1:  martin     3407 F.... kded5
                     martin     3779 F.... kmix
/dev/snd/controlC2:  martin     3407 F.... kded5
                     martin     3779 F.... kmix


Code:

ps -fe | grep steam
steam     4740     1  0 09:31 ?        00:00:00 dbus-daemon --session --print-address --fork
root      6649  4616  0 10:08 pts/1    00:00:00 grep --colour=auto steam

_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Tue Jan 03, 2023 9:45 am    Post subject: Reply with quote

Kannst du im Fehlerfall auch als user martin kein audio abspielen?

EDIT: Ansonsten könntest du mal die strace ausgabe von deinem aplay aufruf (wenn er fehlschlägt) hier posten?
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Tue Jan 03, 2023 10:23 am    Post subject: Reply with quote

[quote="firefly"]Kannst du im Fehlerfall auch als user martin kein audio abspielen?

Gerade als user martin kann ich keinen Sound abspielen, alles andere hatte ich gar nicht probiert. Allerdings scheint user steam keine Probleme zu haben, da ich das Spiel schließen und wieder öffenen kann und Sound ist immer da..

strace:

https://dpaste.com/G46JQMXTK
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Tue Jan 03, 2023 11:16 am    Post subject: Reply with quote

Erdie wrote:

Gerade als user martin kann ich keinen Sound abspielen, alles andere hatte ich gar nicht probiert.

Kannst du auch nach einem neustart als martin kein audio abspielen? Oder geht es da?

Ansonste kannst du mal die ausgabe von folgenden befehl hier posten
Einmal wenn das Problem nicht existiert und einmal wenn das Problem existiert

Quote:
ls -l /dev/snd/


Aber da der steam user kein problem hat, wenn das problem für anderen user auftritt (falls das Problem nicht generell für user != steam existiert) muss es ein rechte problem sein
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Tue Jan 03, 2023 12:02 pm    Post subject: Reply with quote

1. Als martin kann ich nach dem Neustart alles machen. martin ist der einzige user als der ich mich anmelde. Steam spiele starte ich in einer x-session von martin mittels xterm als user steam mit der Berechtigung Videoausgabe in der x-session von martin zu machen. Funktionierte bis heute jahrelang tadellos.

Wenn das Problem auftritt, ist der Sound von martin bis zum nächsten Reboot tot. Bei steam läüft es trotdzem nocht, wenn ich z. B. das Spiel ein 2. Mal starte.

Hier die Ausgabe von ls -l /dev/snd/

Code:


Ausgabe wenn kein Problem auftritt:

ls -l /dev/snd
insgesamt 0
drwxr-xr-x  2 root root       60  3. Jan 11:43 by-id
drwxr-xr-x  2 root root      100  3. Jan 11:43 by-path
crw-rw----+ 1 root audio 116,  4  3. Jan 11:43 controlC0
crw-rw----+ 1 root audio 116, 10  3. Jan 11:43 controlC1
crw-rw----+ 1 root audio 116, 13  3. Jan 11:43 controlC2
crw-rw----+ 1 root audio 116,  3  3. Jan 11:43 hwC0D0
crw-rw----+ 1 root audio 116,  9  3. Jan 11:43 hwC1D0
crw-rw----+ 1 root audio 116,  2  3. Jan 11:43 pcmC0D3p
crw-rw----+ 1 root audio 116,  6  3. Jan 11:43 pcmC1D0c
crw-rw----+ 1 root audio 116,  5  3. Jan 12:48 pcmC1D0p
crw-rw----+ 1 root audio 116,  7  3. Jan 11:43 pcmC1D1p
crw-rw----+ 1 root audio 116,  8  3. Jan 11:43 pcmC1D2c
crw-rw----+ 1 root audio 116, 12  3. Jan 11:43 pcmC2D0c
crw-rw----+ 1 root audio 116, 11  3. Jan 11:43 pcmC2D0p
crw-rw----+ 1 root audio 116,  1  3. Jan 11:43 seq
crw-rw----+ 1 root audio 116, 33  3. Jan 11:43 timer

Ausgabe wenn sound nicht funktioniert:


ls -l /dev/snd
insgesamt 0
drwxr-xr-x  2 root root       60  3. Jan 11:43 by-id
drwxr-xr-x  2 root root      100  3. Jan 11:43 by-path
crw-rw----+ 1 root audio 116,  4  3. Jan 11:43 controlC0
crw-rw----+ 1 root audio 116, 10  3. Jan 11:43 controlC1
crw-rw----+ 1 root audio 116, 13  3. Jan 11:43 controlC2
crw-rw----+ 1 root audio 116,  3  3. Jan 11:43 hwC0D0
crw-rw----+ 1 root audio 116,  9  3. Jan 11:43 hwC1D0
crw-rw----+ 1 root audio 116,  2  3. Jan 11:43 pcmC0D3p
crw-rw----+ 1 root audio 116,  6  3. Jan 11:43 pcmC1D0c
crw-rw----+ 1 root audio 116,  5  3. Jan 12:48 pcmC1D0p
crw-rw----+ 1 root audio 116,  7  3. Jan 11:43 pcmC1D1p
crw-rw----+ 1 root audio 116,  8  3. Jan 11:43 pcmC1D2c
crw-rw----+ 1 root audio 116, 12  3. Jan 11:43 pcmC2D0c
crw-rw----+ 1 root audio 116, 11  3. Jan 11:43 pcmC2D0p
crw-rw----+ 1 root audio 116,  1  3. Jan 11:43 seq
crw-rw----+ 1 root audio 116, 33  3. Jan 11:43 timer



Ich sehe da leider keinen Unterschied.


Ach ja und auch ein Neustarten des X-Server löst das Problem nicht. Nur ein kompletter Reboot.
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Tue Jan 03, 2023 12:40 pm    Post subject: Reply with quote

Das Problem ist folgender:
"unable to create IPC semaphore"

Eine suche im internet ergab unter anderem folgenden treffer: https://forums.gentoo.org/viewtopic-t-576701-start-0.html

Laut dem thread ist wohl der wert für "ipc_key" in der /etc/asound.conf /.asoundrc das Problem.
Kann es sein dass bei dir in der /etc/asound.conf bzw. in den ~/.asoundrc datein mehrmals der selbe ipc_key verwendet wird?

Evnetuell muss man für den eintrag wo ipc_key definiert ist (dmix plugin) noch folgende werte ändern/anpassen, damit mehrere nutzer über den selben key kommunizieren können:

https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture/Configuration_examples
bzw.
https://alsa.opensrc.org/Dmix
Quote:
ipc_key_add_uid false # let multiple users share
ipc_perm 0660 # IPC permissions (octal, default 0600)


Durch das default setup schnappt sich der erste nutzer, welcher audio ausgibt den IPC bereich und blockiert damit den zugriff für andere nutzer.
Und scheinbar passiert das bei dir immer mit dem steam nutzer, dass dieser initial audio abspielt.

Aber wieso?
Sicher dass du mit dem nutzer martin überhaupt kein audio abspielen kannst direkt nach einem reboot?
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Tue Jan 03, 2023 12:47 pm    Post subject: Reply with quote

firefly wrote:

Sicher dass du mit dem nutzer martin überhaupt kein audio abspielen kannst direkt nach einem reboot?


Das ist jetzt ein Missverständnis.
Als Nutzer martin funktioniert alles nach dem Reboot. Erst wenn das Spiel "Wolfenstein II" mindestens 1x gestartet wurde, kann martin keinen Sound mehr abspielen. Nach einem Reboot funktioniert es dann wieder.

Ich schau mir das mit den ipc_keys jetzt geanuer an. Gegen die Therorie spricht allerdings, dass ich das Problem 10 Jahre lang nicht hatte. Kein anderes Steam Spiel außer Wolfenstein II verursacht ein solches Problem.
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Tue Jan 03, 2023 1:07 pm    Post subject: Reply with quote

Erdie wrote:
Ich schau mir das mit den ipc_keys jetzt geanuer an. Gegen die Therorie spricht allerdings, dass ich das Problem 10 Jahre lang nicht hatte. Kein anderes Steam Spiel außer Wolfenstein II verursacht ein solches Problem.

Nur weil es 10 Jahre funktioniert hat ist leider kein Argument dass die Theorie falsch ist.
Eventuell hat sich durch ein update die Konfiguration verändert, oder du hast vorher nicht das aktuelle setup gehabt.
Oder das spiel selbst verwendet eine interne alsa konfiguration, welche erst das Problem verursacht.

Grundsätzlich ist wohl die default konfiguration so gestaltet dass es nicht für multiuser ausgerichtet ist.
Das gleich ist auch mit pulseaudio/pipewire. In der default konfiguration blockiert der erste angemeldete nutzer, welcher den pulse/pipewire daemon gestartet hat, das audio device.
Nur durch angepassen der konfiguration funktioniert es mit multiuser, wobei hier sich die nutzer einen pulse/pipewire daemon teilen.

Bei Jack bist du komplett raus. Das unterstützt an sich kein multiuser setup. Da muss man sich wohl dann auf eine korrekte alsa dmix setup für multiuser verlassen.
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Tue Jan 03, 2023 1:13 pm    Post subject: Reply with quote

firefly wrote:

Oder das spiel selbst verwendet eine interne alsa konfiguration, welche erst das Problem verursacht.


Das würde ich jetzt schon eher annehmen, denn wie gesagt, andere Spiele .. selbst den der 1. Teil von Wolfenstein (the new order) rufen keine derartigen Probleme hervor.

Wie kann man sich erklären, dass das Problem weiter besteht auch wenn alle Prozesse des Users steam beendet sind? Es müßte doch dann eigentlich wieder funktionieren?
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Tue Jan 03, 2023 1:19 pm    Post subject: Reply with quote

Erdie wrote:
firefly wrote:

Oder das spiel selbst verwendet eine interne alsa konfiguration, welche erst das Problem verursacht.


Das würde ich jetzt schon eher annehmen, denn wie gesagt, andere Spiele .. selbst den der 1. Teil von Wolfenstein (the new order) rufen keine derartigen Probleme hervor.

Wie kann man sich erklären, dass das Problem weiter besteht auch wenn alle Prozesse des Users steam beendet sind? Es müßte doch dann eigentlich wieder funktionieren?

Das problem ist dass der "semaphore", welche für den IPC verwendet wird, initial angelegt bzw. aktualisiert wird und dann erhalten bleibt. Und in der default einstellung kann nur der selbe nutzer, welcher den IPC "semaphore" durch das abspielen eines audios erstellt hat, dann darüber mit dem dmix plugin/device kommunizieren.

Daher prüf mal genau wo du deine dmix konfiguration hast.
Wenn diese nur in /etc/asound.conf enthalten ist dann passe sie nur an, dass multiuser möglich ist.
Wenn sie aber in der ~/.asoundrc definiert ist, dann muss du die identischen einstellungen für alle nutzer haben (inklusive multiuser setup)
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Tue Jan 03, 2023 3:35 pm    Post subject: Reply with quote

Beide user (steam und martin) hatten eine identische lokale Konfiguration:

Code:

defaults.pcm.card 1
defaults.pcm.device 0
#defaults.pcm.subdevice -1


pcm.!default {
         type asym
         playback.pcm {
                 type plug
                 slave.pcm "dmix"
         }
         capture.pcm {
                 type plug
                 slave.pcm "hw:2,0"
         }
}

# Bluetooth headset
#defaults.bluealsa {
#     interface "hci0"            # host Bluetooth adapter
#     #device "78:44:05:C2:D5:44"  # Bluetooth headset MAC address for Bose
#     device "00:02:3C:2E:33:C3" # Bluetooth headset MAC address for Creative
#     profile "a2dp"
#}


Die habe ich jetzt global gemacht. Das hat zur Folge, dass bei martin alles funktioniert aber das steam Spiel beim Start sofort crashed. Gibt man dem user steam eine lokale .asoundrc, funktioniert es wieder.

Ich habe das Problem jetzt gelöst, indem ich bei user steam das pcm device auf "2" gesetzt habe. Das ist meine 2. USB Soundkarte, die ich eigentlich nur für Input nutze. Da beide Karten über ein Analog Mischpult auf die Monitorlautsprecher geroutet werden. macht das keinen Unterschied - mit Ausnahme, dass ich für Steam Spiele jetzt einen Fader auf dem Mischult für die Lautstärkeregelung betätigen muß anstatt den Master Slider des Kmix. Damit kann ich leben.

Danke und Grüße
Erdie
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Tue Jan 03, 2023 5:43 pm    Post subject: Reply with quote

Wieso immer so schnell aufgeben?

Versuch doch mal folgendes in beiden .asoundrc dateien:

Code:
defaults.pcm.card 1
defaults.pcm.device 0
#defaults.pcm.subdevice -1

pcm.dmix_out {
     type dmix
     ipc_key 63720
     ipc_key_add_uid false # let multiple users share
     ipc_perm 0660 # IPC permissions (octal, default 0600)
     ipc_gid audio # Nur zur sicherheit dass für den ipc audio als group gesetzt, beide Nutzer sind vermutlich eh schon in der gruppe audio
     slave.pcm “hw:1,0” # <--- Meine Vermutung, dass das deine interne soundkarte ist könnte aber auch hw:0,0 sein
}

pcm.!default {
         type asym
         playback.pcm {
                 type plug
                 slave.pcm "dmix_out"
         }
         capture.pcm {
                 type plug
                 slave.pcm "hw:2,0"
         }
}

# Bluetooth headset
#defaults.bluealsa {
#     interface "hci0"            # host Bluetooth adapter
#     #device "78:44:05:C2:D5:44"  # Bluetooth headset MAC address for Bose
#     device "00:02:3C:2E:33:C3" # Bluetooth headset MAC address for Creative
#     profile "a2dp"
#}


EDIT: Bevor du den test mit dem spiel machst prüf vorher ob die Konfiguration überhaupt funktioniert und audio auf dem richtigen device landet
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Wed Jan 04, 2023 7:04 am    Post subject: Reply with quote

Alternativ könnte auch folgende konfiguration funktionieren.
Hier wird für das default dmix device die zusätzlichen ipc werte gesetzt.

Code:
defaults.pcm.card 1
defaults.pcm.device 0
#defaults.pcm.subdevice -1

defaults.pcm.dmix.ipc_key_add_uid false
defaults.pcm.dmix.ipc_perm 0660
defaults.pcm.dmix.ipc_gid audio

pcm.!default {
         type asym
         playback.pcm {
                 type plug
                 slave.pcm "dmix"
         }
         capture.pcm {
                 type plug
                 slave.pcm "hw:2,0"
         }
}

# Bluetooth headset
#defaults.bluealsa {
#     interface "hci0"            # host Bluetooth adapter
#     #device "78:44:05:C2:D5:44"  # Bluetooth headset MAC address for Bose
#     device "00:02:3C:2E:33:C3" # Bluetooth headset MAC address for Creative
#     profile "a2dp"
#}

_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1928
Location: Schweiz

PostPosted: Wed Jan 04, 2023 8:48 am    Post subject: Reply with quote

Ich habe jetzt zwar nicht ganz alles gelesen aber um ehrlich zu sein glaube ich kaum das sich dieses Problem wirklich gut lösen lässt denn manche Programme interessieren sich nicht für die ALSA-Konfiguration.

Siehe zum Beispiel Mednafen: https://mednafen.github.io/documentation/#Section_troubleshooting_nosoundlinux
Dieses Programm benutzt einfach stumpf hw:0 und erst durch den Einsatz der Erweiterung "sexyal-literal-default" ändert sich dieses Verhalten. Und wenn ein Programm sowas macht, welches auch noch dazu neigt sein Device exklusiv in Anspruch zu nehmen, dann haben alle anderen Programme schnell mal ein Problem das sich auch mit noch so vielen Änderungen an der ALSA-Konfiguration nicht lösen lässt.

Da gibt es nichts anderes als das Programm zu finden das das Device exklusiv in Anspruch nimmt und dort dann nach einer individuellen Lösung zu suchen.

Im übrigen scheint genau dieses Problem auch der KDE eigene Notification-Dienst gehabt zu haben, sprich jedesmal wenn ein Notification-Sound abgespielt wurde war die Soundausgabe für alle anderen Programme tot.
Ich hoffe mal das die KDE-Devs dieses Problem inzwischen gelöst haben aber sicher bin ich mir nicht...
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5205

PostPosted: Wed Jan 04, 2023 9:23 am    Post subject: Reply with quote

schmidicom wrote:
Ich habe jetzt zwar nicht ganz alles gelesen aber um ehrlich zu sein glaube ich kaum das sich dieses Problem wirklich gut lösen lässt denn manche Programme interessieren sich nicht für die ALSA-Konfiguration.

Dann solltest du mal komplett lesen. Denn dein Hinweis passt nicht zu diesem Problem.
Es geht hier nicht darum, dass Audio für andere Prozesse komplett blockiert ist, wenn ein process gerade audio abspielt.
Das Problem ist dass das Spiel unter einem anderen Nutzer läuft und durch sein setup die IPC ALSA kommunikation (notwendig für dmix aka software stream mixer) so verändert, dass nur noch dieser nutzer audio abspielen kann.
Und das liegt daran, dass in der standard Einstellung alsa so konfiguriert ist dass multi user nicht gleichzeitig audio abspielen können.
Erdie hätte nicht das Problem würde das Spiel unter seinem Hauptnutzer laufen.
Aber er hat sich für ein multi user setup entschieden.
Und hierfür muss dmix für alle user so konfiguriert werden, dass verschieden Nutzer den selbe IPC Kommunkations kanal nutzen können.

Oder, wie sein aktueller workaround, für jeden Nutzer eine separate Soundkartendevice als standard festlegen.
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2585
Location: Heidelberg - Germany

PostPosted: Wed Jan 04, 2023 10:48 am    Post subject: Reply with quote

Ich habe gerade Variante 1 ausprobiert. Dabei stürzt das Spiel beim Start ab. Ich probiere mal Variante 2 aus ..

Mir leuchtet aber trotzdem nicht ein wenn die alsa Konfiguration grundsätzlich nicht Multiuser fähig ist, warum 20 andere Spiele, die mit der gleichen Konfiguration laufen und die ebenfalls alle als user steam gestartet werden, alle problemlos funktionieren und das sogar parallel mit anderen Sound Applikationen unter dem Desktop - User "martin". Wie gesagt, ich habe mich noch nie im dem user "steam" direkt angemeldet, der ist komplett jungfräulich. Es wird alles auf "martins" Desktop unter "martins" x-server via xterm gestartet.

Das Spiel muß meines Erachtens ein besonderes Setup hart verdrahtet haben, was die Probleme verursacht.

Ich werde jetzt die 2. Variante testen und mich dann wieder melden.



UPDATE:

Bei Variante 2 läuft das Spiel zwar, aber nach Beenden ist wieder der Sound für "martin" tot. Es ist sogar so, dass youtube Videos sich überhaupt nicht abspielen lassen noch nicht mal ohne Ton. Stattdessenj kommt eine Meldung "Fehler in der Soundausgabe" und es wird nichts abgespielt. Da hatte ich vorher allerdings auch schon mal ..
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum