Linux Audio


© September 2020, Letzte Änd. 01.10.20

--- Diese Seite befindet sich noch im Aufbau ---

Übersicht

ALSA

Bei Debian 10 ist ALSA - Advanced Linux Sound Architecture
der Software-Treiber zur direkten Ansteuerung der Audio-Hardware.

Jede Sound-Hardware oder ALSA-Card besteht wiederum aus
Ein- und Ausgabe-Geräten (send device, receive device).
z.B.   card 2: J65 Subdevice #0: subdevice #0

Für ALSA ist weder der Vorgänger OSS - Open Sound System,
noch PulseAudio nötig.
Dennoch, wenn es die Hardware zuläßt, wird mittlerweile ALSA
kaum noch 'standalone' betrieben.

Der Grund liegt darin begründet, daß nur eine Anwendung
gleichzeitig auf ein Ein- oder Ausgabegerät zugreifen kann.
Soundquelle   →   ALSA-Treiber  card 0, device 0   →   Hardware
Soundsenke   ←   ALSA-Treiber  card 0, device 1   ←   Hardware

Falls ALSA fehlen sollte, ist es schnell nachinstalliert.

sudo apt install alsa-base        Konfigurations-Dateien

sudo apt install alsa-utils       folgende Tools:  alsactl alsaloop iecset
                                 alsamixer alsaaucm amixer amidi aplay  
                                aplaymidi aconnect asqnet aseqdump speaker-test

ALSA-Pakete

Anbei noch eine kleine Liste an ALSA-Paketen und deren Bedeutung.

Falls Stille herrscht, kann es daran liegen,
daß die Audiodaten an die falsche Hardware geschickt werden
oder die Hardware nicht erkannt wird.
Was erkannt wird, bekomme ich wie folgt heraus.

cat /proc/asound/cards
 0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xfe840000 irq 84
 1 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xfe700000 irq 86
 2 [J65            ]: USB-Audio - Jabra Evolve 65
                      Jabra Evolve 65 at usb-0000:03:00.0-10.3.6, full speed
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1220 Digital [ALC1220 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: J65 [Jabra Evolve 65], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

0 & 1   stammen vom Motherboard
2     wurden über USB gefunden.

Wurde eine bestimmte Hardware nicht erkannt,
fehlt noch der passende Treiber bzw. das Kernelmodul.

ALSA-Treiber

Eine Sound-Karte kann über verschiedenen Schnittstellen angeschlossen sein.
Sollte es eine PCI-Karte sein, bekomme ich wie folgt weitere Details.

lspci | grep -i audio 
26:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio…
28:00.3 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models…

lspci -nnk | grep -iA2 audio           liefert noch mehr Informationen

Sollte es eine USB-Karte sein, muß ich damit rechnen,
nicht sofort brauchbare Details zu bekommen.

lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 04a9:190a Canon, Inc. CanoScan LiDE 210
Bus 001 Device 002: ID 8087:0aa7 Intel Corp. 
Bus 001 Device 106: ID 0b0e:030b GN Netcom 
Bus 001 Device 099: ID 04d9:a052 Holtek Semiconductor, Inc. USB-zyTemp
Bus 001 Device 097: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 096: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 001 Device 095: ID 046d:c050 Logitech, Inc. RX 250 Optical Mouse
Bus 001 Device 094: ID 046a:0011 Cherry GmbH G83 (RS 6000) Keyboard
Bus 001 Device 093: ID 214b:7250  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb -vs 106
…
bInterfaceClass         1 Audio
wTerminalType      0x0301 Speaker
wTerminalType      0x0201 Microphone

Nun kann man gezielt mit alsamixer die Soundcard selektieren.
Gebe ich alsamixer ohne weitere Paramter ein,
habe ich eine art Dialog-geführtes System.
Weitere Informationen, wie die oben genannten,
kann ich mir mit z.B. F2 aufrufen.
Via F6 kann ich die gewünschte Sound Card auswählen.
Komme ich nicht weiter, gibt mir h eine Übersicht der interaktiven Befehle.

Witchtig Sollte PulseAudio bereits laufen, (wie hier im Bild),
macht es keinen Sinn hier etwas zu verstellen.

┌────────────────────────────── AlsaMixer v1.1.8 ──────────────────────────────┐
│ Card: PulseAudio                                     F1:  Help               │
│ Chip: PulseAudio                                     F2:  System information │
│ View: F3:[Playback] F4: Capture  F5: All             F6:  Select sound card  │
│ Item: Master                                         Esc: Exit               │
│                                                                              │
│                                     ┌──┐                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     ├──┤                                     │
│                                     │OO│                                     │
│                                     └──┘                                     │
│                                    60<>60                                    │
│                                  < Master >                                  │
└──────────────────────────────────────────────────────────────────────────────┘

Weis ich was ich will, kann ich auch via Paramter direkt mein Ziel angeben. z.B.

alsamixer -c 2                         hier für das Headset

Sollte man z.B. das Headset eingestellt haben, aber Pulseaudio ist aktiv,
dann hilft nur noch alsamixer direkt aufzurufen und
via F6 die (default) Soundcard = Pulseaudio auszuwählen.

Habe ich nur ALSA im Betrieb, muß ich mich meist entscheiden, welche Quelle ich hören möchte,
da immer nur eine Anwendung ein Gerät oder device verwenden darf.

Soundserver

Spätesten wenn mehrerer Tonquellen vermischt werden sollen, ist ein Soundserver nötig. Z.B. PulseAudio
Soundserver übernehmen also das Zusammenmischen und die Weitergabe an den ALSA-Treiber.

FIR mit Amp sudo systemctl status pulseaudio https://wiki.debianforum.de/Audiokonfiguration https://wiki.ubuntuusers.de/Soundsystem/ https://wiki.debianforum.de/Audiokonfiguration Audio Soundkarte konfigurieren Evtl. beötigte Software: (bei deb 7 xfce schon drauf) apt-get install gstreamer-tools pulseaudio Open-Source-Projekt Advanced Linux Sound Architecture ALSA Darauf setzt der Sound-Server PulseAudio auf. Grundsätzlich gibt es 3 Arten von Distributionen 1. Benutzer müssen Mitglied der Gruppe „audio“ sein z.B. crw-rw--- 1 root audio 2. über ConsoleKit und udev/HAL wird ohne „audio“ Mitgliedschaft der aktive Benutzer ausgegeben z.B. crw-rw---+ 1 root audio 3. Distribution ohne „audio“ Gruppe z.B. crw-rw---+ 1 root ls -l /dev/snd … crw-rw----+ 1 root audio 116, 7 Jan 24 21:03 controlC0 → 2.Fall groups a3 a3 : a vboxusers alles ok (nicht 1. Fall) groups m m : m cdrom floppy audio dip video plugdev scanner bluetooth netdev DEB 7 groups m m : m cdrom floppy audio dip video plugdev netdev lpadmin scanner a b DEB 8 usermod -aG audio a falls a der Gruppe audio hinzugefügt werden sollte 1.Fall deluser m audio m der Gruppe audio entziehen 2.Fall cat /proc/asound/modules 0 snd_hda_intel 1 snd_hda_intel 2 snd_usb_audio weitere Details über den PCI-Bus angeschlossen liefert: grep Codec /proc/asound/card*/codec* /proc/asound/card0/codec#0:Codec: ATI R6xx HDMI /proc/asound/card1/codec#0:Codec: Realtek ALC892 Wiedergabe-Test Eine andere Möglichkeit wäre folgendermaßen aplay -l **** Liste der Hardware-Geräte (PLAYBACK) **** No protocol specified xcb_connection_has_error() returned true Karte 0: Generic [HD-Audio Generic], Gerät 3: HDMI 0 [HDMI 0] Sub-Geräte: 0/1 … Karte 1: Device [Generic USB Audio Device], Gerät 0: USB Audio [USB Audio] Karte 2: Generic_1 [HD-Audio Generic], Gerät 0: ALC892 Analog [ALC892 Analog] Karte 2: Generic_1 [HD-Audio Generic], Gerät 1: ALC892 Digital [ALC892 Digital] oder andere Fehlermeldung mit DEB 8 aplay -l aplay: device_list:268: keine Soundkarten gefunden ... Welche Pakete sind installiert, welche mit audio im Zusammenhang stehen könnten? dpkg -l | grep -i audio dpkg -l | grep -i sound dpkg -l *alsa* cd /usr/share/doc/alsa-base/ weitere Überprüfung pulseaudio --check && echo ok ok journalctl -p7 _EXE=/usr/bin/pulseaudio -- Logs begin at Di 2015-11-10 20:12:52 CET, end at Di 2015-11-10 20:37:49 CET. -- Kernelmeldung? dmesg | grep snd Module geladen? lsmod | grep snd Funktioniert mit externer USB-Soundcard speaker-test Auf Verdacht installiert apt-get install gstreamer0.10-pulseaudio Aufruf über alsamixer m schaltet stumm weg deb 10 pulseaudio-utils -> paplay pacat parec pacmd pactl padsp pax11publish alsa-utils -> alsactl alsaloop alsamixer alsaaucm amixer amidi aplay ... speaker-test https://mysudo.wordpress.com/2015/03/27/unmute-pulseaudio-sound-in-xfce-debian-jessie/ Treiber Download von www.realtek.com unter Downloads/High Definition Audio Codecs → Linux Treiber (3.0) Version 5.18rc8 vom 21. Mai 2014 0001-LinuxPkg_5.18rc8.tar.bz2 alternativ von www.alsa-project.org cd Downloads/ tar -xjf 0001-LinuxPkg_5.18rc8.tar.bz2 cd Rt-Linux-Hdaudio-5.18/ nano Readme.txt Sourcecode Entpacken, Kompilieren und Re-Boot tar -xvjf alsa-driver-RTv5.18.tar.bz2 cd alsa-driver-RTv5.18/ cd alsa/ ./configure --with-cards=hda-intel Fehlermeldung: Please install the package with full kernel sources for your distribution → Version bestimmen; nachladen; entpacken Unter Umständen fehlen noch weitere Komponenten z.B. gcc uname -r 3.16.0-4-amd64 DEB 8 Jessie seit 2015 4.9.0-11-amd64 Deb 9 Strech seit 2017 su apt-get install linux-source-3.16 unter Umständen SW-Quellen änd. Siehe Seite 9 tar jxf /usr/src/linux-source-3.2.tar.bz2 ging bei DEB 7 tar xvfJ linux-source-3.16.tar.xz DEB 8 apt-get install linux-headers-$(uname -r) apt-get install gcc Danach sollte es weiter gehen können. ./configure --with-cards=hda-intel make su make install shutdown -r 0 pactl list modules deb 10 Zu guterletzt kann man den Audio-Ausgang testen. Dies erfolgt mit linker Maustaste auf das Lautsprechersymbol (Xfce – Lautstärkenregelung eingeblendet). Dort kann man dann die entsprechende Sound-Card auswählen (z.B. Internes Audio Analog Stereo) https://www.linuxlinks.com/audio/ https://linuxhint.com/guide_linux_audio/ https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/ https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/ https://maczarr.de/blog/multiroom-sound-chromecast-audio-unter-linux-nutzen-745/ https://wiki.debianforum.de/Audiokonfiguration

Zum Anfang