Skip to content

[unfertig] Soundprobleme finden und beseitigen

Thomas edited this page Feb 23, 2015 · 1 revision

Ausgangslage ist, dass ich selbst immer wieder Probleme beim Thema Sound habe (Mic, Lin-In oder Speaker).

Der Raspberry Pi ist selbst mit einem Speaker-Ausgang ausgestattet, jedoch fehlt ein Line-In oder ein Mic Eingang. Deshalb ist man auf Erweiterungen angewiesen, egal ob als USB-Gerät oder per Erweiterungsplatine. Meistens wird es (aktuell) eine USB-Soundkarte sein.

DoorPi selbst kümmert sich weder um Soundgeräte noch um Lautstärke (obwohl das auch möglich wäre, mhhh, vielleicht später mal). Also muss der Sound vorab funktionieren und erst dann kann man ruhigen Gewissens DoorPi nutzen.

interne Soundkarte (snd-bcm2835) deaktivieren

HINWEIS: Dieser Schritt wird im DoorPi.sh Installer automatisch ausgeführt und kann übersprungen werden.

Lösung kommt ursprünglich von hier. Wenn eine USB-Soundkarte genutzt wird, dann ist die interne Soundausgabe (DAC) vom Raspberry nutzlos und sollte deaktiviert werden. Dazu muss die Datei /etc/modules bearbeiten werden, die normalerweise so aussieht:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835

snd-bcm2835 ist das interne Sound-Device, das mit einer # davor deaktiviert wird.

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

#snd-bcm2835

Danach den Pi neu starten mit sudo reboot.

Testen von Speaker / Ton-Ausgabe

Die Lautsprecherausgabe funktioniert in den meisten Fällen sehr gut. Einfach mal einen Lautsprecher anstecken und folgenden Befehl ausführen ``. Wenn das nicht klappt, geht es zur Fehlerklärung.

Ist das Gerät richtig angeschlossen?

Mittels des Tools lsusb kann man sich alle am Computer per USB angeschlossenen Geräte anzeigen lassen. Für die Anzeige durch lsusb ist es nicht wichtig, ob die Hardware von Linux erkannt wird. Quelle

lsusb sollte das Sound-Device anzeigen:

pi@dootpi-test ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 005: ID 0d8c:0102 C-Media Electronics, Inc. CM106 Like Sound Device

Mit lsusb -v -s [[bus]:][devnum] lassen sich alle Parameter des Gerätes auslesen Für das Beispiel bei mir wäre es also lsusb -v -s 001:005 und würde diesen Output ausspucken.

ALSA

Advanced Linux Sound Architecture, ist der grundlegende Baustein des Soundsystems unter Linux, um der Soundkarte Töne zu entlocken. Quelle

ALSA Geräte anzeigen

Mit dem Befehl aplay -L kann man sich alle geladenen ALSA Geräte anzeigen lassen.

pi@dootpi-test ~ $ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=Device
    USB Sound Device, USB Audio
    Default Audio Device
sysdefault:CARD=Device
    USB Sound Device, USB Audio
    Default Audio Device
front:CARD=Device,DEV=0
    USB Sound Device, USB Audio
    Front speakers
surround40:CARD=Device,DEV=0
    USB Sound Device, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Device,DEV=0
    USB Sound Device, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Device,DEV=0
    USB Sound Device, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Device,DEV=0
    USB Sound Device, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Device,DEV=0
    USB Sound Device, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Device,DEV=0
    USB Sound Device, USB Audio
    IEC958 (S/PDIF) Digital Audio Output

Alternativ kann mit cat /proc/asound/cards die direkte Hardware-ID (steht ganz links) aufgelistet werden:

pi@dootpi-test ~ $ cat /proc/asound/cards
 1 [Device         ]: USB-Audio - USB Sound Device
                      USB Sound Device at usb-bcm2708_usb-1.5, full speed

ALSA Test

speaker-test ist ein Tool zum Testen der Soundausgabe.

speaker-test generates a tone that can be used to test the speakers of a computer.

Es muss nur wissen welches ALSA-Gerät getestet werden soll (-c 2 bestimmt, dass es sich um 2 Kanäle handelt).

pi@dootpi-test ~ $ cat /proc/asound/cards
 1 [Device         ]: USB-Audio - USB Sound Device
                      USB Sound Device at usb-bcm2708_usb-1.5, full speed
pi@dootpi-test ~ $ speaker-test -D hw:1 -c 2

speaker-test 1.0.25

Wiedergabe-Gerät ist hw:1
Stream-Parameter sind 48000 Hz, S16_LE, 2 Kanäle
Verwende 16 Oktaven rosa Rauschen
Rate ist 48000 Hz (angefordert: 48000 Hz)
Puffergröße von 96 bis 262144
Periodengröße von 48 bis 131072
Verwende maximale Puffergröße 262144
Perioden = 4
gesetzt: period_size = 65536
gesetzt: buffer_size = 262144
 0 - Vorne links
 1 - Vorne rechts
Zeit pro Periode = 5,543241
 0 - Vorne links