GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Audio - nur Lautsprecher oder Mikrofon verfügbar, nicht beides

Hier ist ein ziemlich interessantes Problem, auf das ich kürzlich gestoßen bin. Ich habe mir einen neuen Laptop gekauft, Lenovo IdeaPad 3, hauptsächlich zum Testen verschiedener Linux-Distributionen. Als Teil meiner anfänglichen Einrichtung stieß ich auf ein seltsames Problem mit dem Audiosystem in Kubuntu. Nämlich, ich könnte Ton abspielen, aber es gab kein Mikrofon - oder ich könnte Ton mit dem Mikrofon aufnehmen, aber es würde keine Ausgabe geben, weder über Lautsprecher noch über Kopfhörer.

Das hat mich ziemlich wütend gemacht - weil es in Windows 10 in der temporären Triple-Boot-Konfiguration des Laptops kein solches Problem gab. Also begann ich eine lange und scheinbar wilde Jagd, um das Problem zu lösen. Die Jagd führte mich in Dutzende von Foren, in denen ähnliche und verwandte Probleme diskutiert wurden. Die meisten von ihnen scheinen sich auf neuere Lenovo-Laptop-Modelle zu konzentrieren. Ich wollte diese Gelegenheit nutzen, um ein kleines Tutorial zu schreiben, das Ihnen hoffentlich helfen wird, sollten Sie auf dieses Problem stoßen, gleichzeitige Wiedergabe und Mikrofon in Ihren Linux-Desktop-Sitzungen zu erhalten. Nach mir Tuxers.

Problem im Detail

Ohnehin. Ich hatte Kubuntu am Laufen, soweit so gut. Ich konnte auch Musik und Videos abspielen, kein Problem. Dann klickte ich auf das Lautstärkesymbol im Systembereich und bemerkte, dass nur ein Gerät aufgelistet war – Lautsprecher. Es gab keinen Mikrofon-Schieberegler, wie ich es normalerweise von diesem oder jenem Linux-Desktop gewohnt bin, unabhängig von der konkreten Wahl der Arbeitsumgebung.

Das war in der Tat kein Zufall. Es gab (scheinbar) kein Mikrofon. Ich habe Audacity installiert und gestartet und dann versucht, mich selbst aufzunehmen. Da war nichts. Auf den ersten Blick hatte der Laptop entweder kein Mikrofon, die Hardware war kaputt oder die Linux-Distribution verwendete einen falschen Treiber, der nicht alle notwendigen Soundkartenfunktionen unterstützte.

Es stellte sich heraus, dass nichts davon richtig war.

PulseAudio-Konfiguration

Ich habe die Hardwareprobleme sofort beseitigt - Audio war in Windows 10 alles gut. Also hatte ich das Gefühl, dass der Treiber vielleicht falsch ist. Um dies zu überprüfen, habe ich das PulseAudio-Dienstprogramm gestartet und die Konfiguration überprüft. Und dann bemerkte ich etwas ziemlich Interessantes. Für die aufgelistete Hardware waren nur zwei Profile verfügbar:Stereo Output und Analogue Stereo Input. Wenn ich sie vertauschen würde, hätte ich entweder Wiedergabe oder Mikrofon, aber nicht beides gleichzeitig.

Was nicht funktioniert hat

An diesem Punkt verbrachte ich die ganze Zeit damit, zu suchen und noch mehr zu suchen. Hier ist für Sie eine Liste mit mehreren Dingen, die ich ausprobiert habe - damit Sie sie in Betracht ziehen und gegebenenfalls verwerfen können:

  • Ich habe versucht, die Boot-Parameter des Audiotreibers zu ändern (über die Konfigurationsdateien von modprobe.d).
  • Ich habe versucht, die Lautstärke in verschiedenen PulseAudio/ALSA-Konfigurationsdateien zu ändern.

Lösung

Die Erfahrung über mir hat mich vor allem eines gelehrt – wie wild und komplex das Audio-Subsystem in Linux ist, und das ohne guten Grund. Es gibt unzählige Konfigurationsdateien und Optionen, und sie sind alle von Natur aus absolut nerdig. Schließlich fand ich im Archlinux-Wiki eine großartige Ressource, die mir endlich dabei half, mein Problem zu lösen. Also in gewisser Weise ein riesiges Lob an die Forumbenutzer für ihre Arbeit.

Die Idee ist, ein neues PulseAudio-Profil zu erstellen, das eine gleichzeitige Ein- und Ausgabe ermöglicht.

Schritt 1:Überprüfen Sie die Liste Ihrer Audiogeräte

Es gibt mehrere Möglichkeiten, wie Sie dies tun können. Sie können Ihre Hardware mit lspci auflisten und auch das PulseAudio-Befehlszeilendienstprogramm pacmd:

verwenden

sudo lspci -knn | grep Audio -A3
03:00.1 Audiogerät [0403]:Advanced Micro Devices, Inc. [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP Audio Controller [1002:15de]
Subsystem:Lenovo Raven/Raven2/Fenghuang HDMI/DP Audio Controller [17aa:3805]
Verwendeter Kerneltreiber:snd_hda_intel
Kernelmodule:snd_hda_intel
03:00.2 Verschlüsselungscontroller [1080]:Advanced Micro Devices, Inc. [AMD] Familie 17h (Modelle 10h-1fh) Plattformsicherheitsprozessor [1022:15df]
--
03:00.5 Multimedia-Controller [0480]:Advanced Micro Devices, Inc. [AMD] Raven /Raven2/FireFlight/Renoir Audio Processor [1022:15e2]
Subsystem:Lenovo Raven/Raven2/FireFlight/Renoir Audio Processor [17aa:3807]
Kernel-Module:snd_pci_acp3x, snd_rn_pci_acp3x
03:00.6 Audiogerät [0403]:Advanced Micro Devices, Inc. [AMD] Familie 17h (Modelle 10h-1fh) HD Audio Controller [1022:15e3]
Subsystem:Lenovo Familie 17h (Modelle 10h-1fh) HD Audio Controller [1 7aa:3809]
Verwendeter Kernel-Treiber:snd_hda_intel
Kernel-Module:snd_hda_intel

pacmd Listensenken | grep -e 'name:' -e 'alsa.device' -e 'alsa.subdevice'
name:
alsa.subdevice ="0 "
alsa.device ="0"

Die beiden Befehle können Ihnen helfen, die genaue PCI-Busnummer und die Gerätenummer zu identifizieren, die auf den Bus angegriffen wird. Wir benötigen diese Informationen für das neue PulseAudio-Profil. Auf meinem Laptop befindet sich das gewünschte Audiogerät – der HD Audio Controller (nicht der HDMI/DP Audio Controller) – in Domäne 0000, Bus 03, Steckplatz 00, Funktion 6.

Schritt 2:Audiokonfiguration ändern

Öffnen Sie /etc/pulse/default.pa in einem Texteditor als root oder sudo. Erstellen Sie zuerst eine Sicherungskopie dieser Datei. Fügen Sie am Anfang der Datei unter den allgemeinen Dateibeschreibungskommentaren das folgende Code-Snippet ein, sodass es über den anderen Konfigurationsanweisungen steht:

### Analoges Gerät laden
load-module module-alsa-sink device=hw:X,Y
load-module module-combine-sink sink_name=combined
set-default-sink kombiniert

Wobei X die Karte und Y das Gerät ist. In meinem Fall entspricht dies X =0, Y =3.

### Analoges Gerät laden
load-module module-alsa-sink device=hw:0,3
load-module module-combine-sink sink_name=combined
set-default-sink kombiniert

An dieser Stelle ist es am einfachsten, das System einfach neu zu starten.

Schritt 3:Konfiguration prüfen und neues Profil auswählen

Starten Sie nach dem Neustart des Computers in Ihrer Linux-Distribution das PulseAudio-Konfigurationstool und wählen Sie die letzte Registerkarte (Konfiguration) aus. Erweitern Sie die Dropdown-Liste der Profile. Sie werden nun feststellen, dass es neben den beiden Standardprofilen noch viele weitere verfügbare Profile gibt. Wählen Sie Stereoausgang + analoger Stereoeingang.

Starten Sie eine Anwendung, die sowohl Sound abspielen als auch Audio aufnehmen kann – Audacity ist ein gutes Beispiel. Und jetzt werden Sie feststellen, dass Ihnen beide Funktionen gleichzeitig zur Verfügung stehen, und Ihr Problem ist gelöst.

Schlussfolgerung

Auf geht's. Ich bin froh, das Problem behoben zu haben, aber ich bin furchtbar enttäuscht, dass diese Art von Problem im Jahr 2021 auftreten kann oder sollte. Möglicherweise neigen Sie dazu, der Hardware die Schuld zu geben, und suchen möglicherweise sogar nach bestimmten Audioproblemen mit dem AMD Raven/Raven2 Audio Prozessor, was ein guter Anhaltspunkt sein könnte. Aber am Ende ist es nicht die Hardware, die wir beschuldigen sollten. Ich weiß nicht, warum die PulseAudio-Konfiguration für diese bestimmte Karte in dieser Distribution anders sein sollte, aber auf jeden Fall haben Sie dieses Tutorial, also wird hoffentlich von nun an alles gut laufen.

Wenn auf Ihrem Linux-Laptop Audioprobleme auftreten, versuchen Sie, Ihr Problem methodisch zu beheben. Funktioniert der Ton in anderen Betriebssystemen richtig? Funktioniert das Audio selektiv in Ihrer Distribution? Wenn ja, haben Sie die richtige Art von Konfiguration an Ort und Stelle? Verwenden Sie die Befehle lspci und pacmd, um herauszufinden, was falsch ist, und dann ist es viel wahrscheinlicher, dass Sie sich auf die richtigen Konfigurationsänderungen für das Audio-Subsystem konzentrieren. In meinem Fall war es die "einfache" Angelegenheit, ein neues PulseAudio-Profil zu erstellen. Nochmals vielen Dank an die ArchLinux-Wiki-Leute. Party an, Jungs.


Linux
  1. Linux-Befehlsgrundlagen:printf

  2. So kopieren Sie Bilder in großen Mengen nur mit einer bestimmten Größe unter Linux

  3. Microsoft Teams ist jetzt unter Linux verfügbar

  4. Der Linux-Befehl „ll“ funktioniert nicht

  5. In welchen Fällen ist CLOCK_MONOTONIC möglicherweise nicht verfügbar

Das Jahr der Linux-Unzufriedenheit

Linux Mint 20 Ulyana Cinnamon - Vernünftig, aber nicht flotter

Linux Mint 20 Ulyana Xfce - Nicht ganz da

Notepad++ unter Linux optimieren

Top 10 Linux-Distributionen

Linux-Pipe-Audiodatei zum Mikrofoneingang