GNU/Linux >> Tutoriels Linux >  >> Linux

Audio Linux - seuls les haut-parleurs ou le microphone sont disponibles, pas les deux

Voici un problème assez intéressant que j'ai rencontré récemment. Je me suis acheté un nouvel ordinateur portable, Lenovo IdeaPad 3, principal pour tester différentes distributions Linux. Dans le cadre de ma configuration initiale, j'ai rencontré un problème étrange avec le système audio de Kubuntu. À savoir, je pouvais jouer du son, mais il n'y avait pas de microphone - ou je pouvais enregistrer du son avec le microphone, mais il n'y aurait pas de sortie, que ce soit via des haut-parleurs ou des écouteurs.

Cela m'a un peu exaspéré - car il n'y avait pas un tel problème dans Windows 10 dans la configuration temporaire de triple démarrage de l'ordinateur portable. J'ai donc commencé une poursuite longue et apparemment sauvage, essayant de résoudre ce problème. La chasse m'a conduit dans des dizaines de forums, discutant de problèmes similaires et connexes. La plupart d'entre eux semblent se concentrer sur les nouveaux modèles d'ordinateurs portables Lenovo. Je voulais profiter de cette occasion pour écrire un petit tutoriel, qui, espérons-le, vous aidera, si vous rencontrez ce problème, à obtenir une lecture et un microphone simultanés dans votre ou vos sessions de bureau Linux. Après moi, Tuxers.

Problème plus en détail

En tous cas. J'avais Kubuntu en cours d'exécution, jusqu'ici tout va bien. J'ai pu lire de la musique et des vidéos, pas de problème non plus. Ensuite, j'ai cliqué sur l'icône de volume dans la zone système et j'ai remarqué qu'un seul appareil était répertorié - les haut-parleurs. Il n'y avait pas de curseur de microphone, comme j'ai l'habitude de le voir sur tel ou tel bureau Linux, quel que soit le choix spécifique de l'environnement de travail.

En effet, ce n'était pas un hasard. Il n'y avait pas de microphone (apparemment). J'ai installé et lancé Audacity, puis j'ai essayé de m'enregistrer. Il n'y avait rien. À première vue, l'ordinateur portable n'avait pas de microphone, le matériel était cassé ou la distribution Linux utilisait un mauvais pilote, qui ne prenait pas en charge toutes les fonctionnalités nécessaires de la carte son.

Il s'est avéré qu'aucune de ces réponses n'était correcte.

Configuration PulseAudio

J'ai tout de suite éliminé les problèmes matériels - l'audio était bon dans Windows 10. J'ai donc pensé que le pilote était peut-être faux. Pour vérifier cela, j'ai lancé l'utilitaire PulseAudio, et vérifié la configuration. Et puis j'ai remarqué quelque chose d'assez intéressant. Pour le matériel répertorié, seuls deux profils étaient disponibles :sortie stéréo et entrée stéréo analogique. Si je les changeais, j'aurais soit la lecture, soit le microphone, mais pas les deux en même temps.

Ce qui n'a pas fonctionné

À ce stade, j'ai passé beaucoup de temps à chercher et à chercher encore. Pour votre bien, voici une liste de plusieurs choses que j'ai essayées - afin que vous puissiez les considérer et, si nécessaire, les jeter :

  • J'ai essayé de modifier les paramètres de démarrage du pilote audio (via les fichiers de configuration modprobe.d).
  • J'ai essayé de modifier les niveaux de volume dans différents fichiers de configuration PulseAudio/ALSA.

Solution

L'expérience au-dessus de moi m'a appris une chose essentielle - à quel point le sous-système audio est sauvage et complexe sous Linux, et sans raison valable. Il existe des tonnes de fichiers de configuration et d'options, et ils sont tous de nature totalement ringard. Finalement, j'ai trouvé une excellente ressource sur le wiki Archlinux, qui m'a finalement aidé à débloquer mon problème. Donc, d'une certaine manière, bravo aux utilisateurs du forum pour leur travail.

L'idée est de créer un nouveau profil PulseAudio, qui permet une entrée et une sortie simultanées.

Étape 1 :vérifiez la liste de vos appareils audio

Il existe plusieurs façons de procéder. Vous pouvez répertorier votre matériel avec lspci et également utiliser l'utilitaire de ligne de commande PulseAudio pacmd :

sudo lspci-knn | grep Audio -A3
03:00.1 Périphérique audio [0403] :Advanced Micro Devices, Inc. [AMD/ATI] Contrôleur audio HDMI/DP Raven/Raven2/Fenghuang [1002:15de]
Sous-système :Lenovo Contrôleur audio Raven/Raven2/Fenghuang HDMI/DP [17aa:3805]
Pilote du noyau utilisé :snd_hda_intel
Modules du noyau :snd_hda_intel
03:00.2 Contrôleur de cryptage [1080] : Advanced Micro Devices, Inc. [AMD] Family 17h (Modèles 10h-1fh) Platform Security Processor [1022:15df]
--
03:00.5 Contrôleur multimédia [0480] :Advanced Micro Devices, Inc. [AMD] Raven /Raven2/FireFlight/Renoir Audio Processor [1022:15e2]
Sous-système :Lenovo Raven/Raven2/FireFlight/Renoir Audio Processor [17aa:3807]
Modules du noyau :snd_pci_acp3x, snd_rn_pci_acp3x
03 :00.6 Périphérique audio [0403] :Advanced Micro Devices, Inc. [AMD] Famille 17h (modèles 10h-1fh) Contrôleur audio HD [1022:15e3]
Sous-système :Lenovo Famille 17h (modèles 10h-1fh) Contrôleur audio HD [1 7aa:3809]
Pilote du noyau utilisé :snd_hda_intel
Modules du noyau :snd_hda_intel

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

Les deux commandes peuvent vous aider à identifier le numéro de bus PCI exact et le numéro de périphérique attaqué sur le bus. Nous aurons besoin de ces informations pour le nouveau profil PulseAudio. Sur mon ordinateur portable, le périphérique audio que nous voulons - le contrôleur audio HD (pas le contrôleur audio HDMI/DP) est situé sur le domaine 0000, bus 03, emplacement 00, fonction 6.

Étape 2 :Modifier la configuration audio

Ouvrez /etc/pulse/default.pa dans un éditeur de texte, en tant que root ou sudo. Créez d'abord une sauvegarde de ce fichier. Au début du fichier, sous les commentaires génériques de la description du fichier, collez l'extrait de code suivant, afin qu'il se place au-dessus des autres directives de configuration :

### Load analog device
load-module module-alsa-sink device=hw:X,Y
load-module module-combine-sink sink_name=combiné
set-default-sink combiné

Où X est la carte et Y est le périphérique. Dans mon cas, cela correspond à X =0, Y =3.

### Load analog device
load-module module-alsa-sink device=hw:0,3
load-module module-combine-sink sink_name=combiné
set-default-sink combiné

À ce stade, le plus simple est de simplement redémarrer le système.

Étape 3 :Vérifiez la configuration et sélectionnez un nouveau profil

Une fois la machine redémarrée, dans votre distribution Linux, lancez l'outil de configuration PulseAudio, et sélectionnez le dernier onglet (Configuration). Développez la liste déroulante des profils. Vous remarquerez maintenant qu'il existe de nombreux autres profils disponibles, en plus des deux profils par défaut. Sélectionnez Sortie stéréo + Entrée stéréo analogique.

Lancez une application qui peut à la fois lire du son et enregistrer de l'audio - Audacity en est un bon exemple. Et maintenant, vous remarquerez que vous avez les deux fonctionnalités disponibles en même temps, et votre problème est résolu.

Conclusion

Nous y voilà. Je suis heureux d'avoir résolu le problème, mais je suis terriblement déçu que ce genre de problème puisse ou doive se produire en 2021. Vous pourriez être enclin à blâmer le matériel, et vous pourriez même rechercher des problèmes audio spécifiques avec l'AMD Raven/Raven2 Audio Processeur, ce qui pourrait être un bon point de départ indicatif. Mais en fin de compte, ce n'est pas du matériel que nous devons blâmer. Je ne sais pas pourquoi la configuration PulseAudio devrait être différente pour cette carte particulière sur cette distribution, mais dans tous les cas, vous avez ce tutoriel, alors j'espère que tout ira bien à partir de maintenant.

Si vous rencontrez des problèmes audio sur votre ordinateur portable Linux, essayez de déboguer votre problème méthodiquement. L'audio fonctionne-t-il correctement dans d'autres systèmes d'exploitation ? L'audio fonctionne-t-il de manière sélective dans votre distribution ? Si oui, avez-vous le bon type de configuration en place ? Utilisez les commandes lspci et pacmd pour essayer de comprendre ce qui ne va pas, et ensuite, vous êtes beaucoup plus susceptible de vous concentrer sur les bons changements de configuration pour le sous-système audio. Dans mon cas, il s'agissait de la "simple" question de créer un nouveau profil PulseAudio. Encore une fois, un grand merci aux gens d'ArchLinux Wiki. Faites la fête, les gars.


Linux
  1. Bases de la commande Linux :printf

  2. Le microphone Skype ne fonctionne pas sous Linux Mint 17 [Astuce rapide]

  3. Microsoft Teams est désormais disponible sur Linux

  4. La commande Linux 'll' ne fonctionne pas

  5. Dans quels cas CLOCK_MONOTONIC peut ne pas être disponible

L'année de l'insatisfaction Linux

Linux Mint 20 Ulyana Cinnamon - Raisonnable mais pas déchirant

Linux Mint 20 Ulyana Xfce - Pas tout à fait là

Optimisation de Notepad++ sous Linux

Top 10 des distributions Linux

Fichier audio de tuyau Linux vers l'entrée du microphone