ALSA kann auch Gerätenamen

25. Juni 2024 · Anwendungen · andreas · Kein Kommentar

Auf einem Raspberry Pi hatte ich das Problem, daß ALSA bei jedem Neustart des Systems die Reihenfolge der Ausgabegeräte neu sortierte:

$ cat /proc/asound/cards

 0 [Headphones     ]: bcm2835_headpho - bcm2835 Headphones
                      bcm2835 Headphones
 1 [PMA50          ]: USB-Audio - PMA-50
                      D & M Holdings Inc. PMA-50 at usb-3f980000.usb-1.1.3, high speed
 2 [vc4hdmi        ]: vc4-hdmi - vc4-hdmi
                      vc4-hdmi

Mal war der PMA-50 als Karte 1 verfügbar, mal wurde ihm die 2 zugewiesen und als Folge daraus war das in der “alsa.conf” festgelegte Ausgabegerät nicht immer das von mir eigentlich gewünschte und der externe DAC blieb stumm.

$ cat /etc/asound.conf

pcm.!default {
    type hw
    card 1
}

ctl.!default {
    type hw
    card 1
}

ALSA kann statt der Nummer der Karte (wie in gefühlt 99% aller Beispiele zu finden) auch deren Namen verwenden werden. Eine Liste aller gültigen Geräte findet sich unter “/proc/asound/”:

$ ls -l /proc/asound/

dr-xr-xr-x 4 root root 0 25. Jun 08:42 card0
dr-xr-xr-x 4 root root 0 25. Jun 08:42 card1
dr-xr-xr-x 8 root root 0 25. Jun 08:42 card2
...
lrwxrwxrwx 1 root root 5 25. Jun 08:42 Headphones -> card0
...
lrwxrwxrwx 1 root root 5 25. Jun 08:42 PMA50 -> card2
...
lrwxrwxrwx 1 root root 5 25. Jun 08:42 vc4hdmi -> card1
...

Nach einer Anpassung der “alsa.conf” funktioniert der USB-DAC unabhängig von der zugewiesenen Gerätenummer:

$ cat /etc/asound.conf

pcm.!default {
    type hw
    card PMA50
}

ctl.!default {
    type hw
    card PMA50
}