Carte son et haut-parleur du ThinkStation S20 sous Ubuntu

Le 16 avril 2011 par Simon Huet (dernière mise à jour le 24 juin 2012)

L’outil de production que j’utilise actuellement est un PC Lenovo: ThinkStation S20. Si l’installation d’Ubuntu à côté du Windows 7 d’origine est à prendre avec des pincettes, l’ensemble du matériel est bien reconnu et se porte comme un charme sous Ubuntu (versions 10.10 Maverick Meerkat et 11.04 Natty Narwhal beta 2).

Un problème tout de même… car si des enceintes ou un casque audio (Headphones) fonctionnement parfaitement bien, ce n’est pas le cas du haut-parleur interne (internal speaker). Cet article présente un résumé de son activation, ainsi que le moyen de le couper facilement (par exemple si on branche un casque audio).

Informations sur la carte son

Avant toute chose, il serait bon de savoir quelle carte son est dans le ThinStation S20.

simon@YS20:~$ lspci | grep -i audio
00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller

C’est un bon début, mais pour la suite il nous faudrait le numéro identifiant cette carte HDA intel.

simon@YS20:~$ head -n 1 /proc/asound/card0/codec*
Codec: Analog Devices AD1988

Nous voilà donc partis pour configurer la carte son AD1988 récalcitrante.

Modification des paramètres ALSA

Lenovo fournit des informations sur son site officiel pour activer le speaker, mais qui ne sont pas très adaptées à l’utilisation sous linux (chemins différents et script non fonctionnel).

En réalité, il faut modifier le fichier  en exécutant par exemple dans un terminal:

sudo gedit /etc/modprobe.d/alsa-base.conf

On y ajoute à la fin ce que le site de Lenovo indique:

options snd-hda-intel model=6stack-dig enable=1,1 index=0,1
# u1Nb.anterc1hhTF:ICH10 HD Audio Controller
alias snd-card-0 snd-hda-intel
# kEn8.QkTk4uHneXA:ATI Technologies Inc
alias snd-card-1 snd-hda-intel

On peut alors redémarrer l’ordinateur ou forcer le redémarrage d’ALSA dans un terminal:

sudo alsa force-reload

Cette méthode fonctionne, mais si on branche le casque audio, les speakers continuent de fonctionner!

Puisqu’on a récupéré le numéro de la carte, faisons un tour sur la liste des HD Audio Model sur kernel.org et voici ce qu’on y trouve pour notre référence:

AD1988/AD1988B/AD1989A/AD1989B
==============================
  6stack	6-jack
  6stack-dig	ditto with SPDIF
  3stack	3-jack
  3stack-dig	ditto with SPDIF
  laptop	3-jack with hp-jack automute
  laptop-dig	ditto with SPDIF
  auto		auto-config reading BIOS (default)

Ça semble confirmer les informations du site de Lenovo, mais la fonction « automute » ne semble présente que pour le modèle « laptop ». Cependant, avec ce mode là les speakers ne fonctionnent pas.

Désactiver les speakers à la demande

Via une interface graphique

Pour pouvoir mettre les haut-parleurs en position « mute » tout en conservant le son dans les écouteurs, il va falloir faire quelques manipulations supplémentaires. En effet, les options sonores par défaut (via gnome-volume-control) ne permettent pas de différencier haut-parleur interne et casque audio.

Comme j’aime bien avoir une interface graphique, j’ai installé gnome-alsamixer (bien qu’alsamixer puisse se lancer son interface graphique dans un terminal) et en jouant avec tous les réglages, impossible de distinguer les 2 sorties audio en modifiant les volumes.

La solution consiste à jouer sur l’option à cocher « Mono ». En effet, si « Mono » et « Headphones » sont activés alors headphones/speaker sont en route. Si on coupe « Headphones » les deux sont muets. Enfin, si on coupe uniquement « Mono », les écouteurs fonctionnent mais pas le haut-parleur interne!

GUI pour Alsamixer sur Gnome

Une interface de configuration Alsa pour gnome

Via une ligne de commande ou un lanceur

La solution est désormais toute simple, il faut pouvoir couper/relancer « Mono » en un clic, ou en une ligne de commande.

Cette fameuse ligne est:

amixer sset Mono toggle

Si le speaker est déjà actif, on aura cette réponse (qui indique qu’on le coupe):

simon@YS20:~$ amixer sset Mono toggle
Simple mixer control ‘Mono’,0
Capabilities: pswitch penum
Playback channels: Front Left – Front Right
Mono:
Front Left: Playback [off]
Front Right: Playback [off]

Si le speaker est inactif, on aura cette réponse (qui indique qu’on l’allume):

simon@YS20:~$ amixer sset Mono toggle
Simple mixer control ‘Mono’,0
Capabilities: pswitch penum
Playback channels: Front Left – Front Right
Mono:
Front Left: Playback [on]
Front Right: Playback [on]

Il ne reste plus qu’à créer un joli lanceur avec cette commande et le tour est joué! J’ai fait un minimum pour mon script « son.sh » (à ne pas oublier de rendre exécutable!) :

#!/bin/bash
amixer sset Mono toggle

Conclusion sur le son et le ThinkStation S20 de Lenovo sous Ubuntu

Au final, le matériel n’est pas géré nativement si on compte ne pas se servir d’enceintes ou de casque, et je n’ai pas encore de solution pour que le branchement d’une prise Jack coupe automatiquement ce fameux haut-parleur interne. Cette solution de remplacement fera l’affaire dans mon cas car je n’utiliserai que rarement des écouteurs, mais je reste ouvert si vous avez une meilleure idée. 😉

Un commentaire pour “Carte son et haut-parleur du ThinkStation S20 sous Ubuntu”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Apprenez comment les données de vos commentaires sont utilisées.