On se retrouve dès maintenant pour l'unboxing de cette carte PCI-E dont je viens de me porter acquéreur, alors la boite est en carton glacé de très haute qualité avec un rabat sur le dessus mais ne s'ouvre que sur les cotés, très douce au touché ce qui témoigne de la précieusité du composant qu'elle transporte, à l'intérieur, j'y découvre soigneusement emballée la fameuse Xonar DSX. Elle est juste magnifique, et ça sent le neuf.

Niveau technique, on se rapproche toujours plus de l'excellence, avec une distorsion harmoniques de 0,0017% ce qui est 3 fois mieux que la moyenne du marché (affirme la marque ASUS), la résolution audio est de seulement 192KHz/24bits pour une qualité sonore Haute Définition, et bien évidemment la carte intègre nativement toutes les technologies DTS Connect, DTS Neo, DTS Interactive et DTS Surround qui permettent l'utilisation de Home Cinéma 5.1.

L'interface numérique fourni en temps-réel l'encodage multi-canal en une sortie unique DTS de 1,5Mbits/s via le port S/PDIF, à noter que ce port optique permet également de raccorder tous les équipements électroniques de prise de son de nos amis musiciens. Autre gros point positif, le processeur Op-Amp est monté sur un socket pour permettre son remplacement sans effort par un processeur plus performant dans les années à venir.

Je n'évoquerais pas ici les caractèristiques système requises à l'installation de la carte, vous avec un PC avec Fedora dessus, vous avez tout bon. Un casque audio jack de qualité supérieur n'est pas une mauvaise idée non-plus (d'ailleurs j'ai rendez-vous dans un magasin de musique cet après-midi). Le pilote pour Windows XP/Vista/Seven est livré avec la carte sur un CD-ROM, une fois encore ASUS n'a rien laissé au hasard.

Je vous retrouve après une courte page de publicité :)

<musique_de_jingle ♫ ♪ >[...]</musique_de_jingle ♫ ♪ >

On enchaine sur ce plateau pour parler de cette nouvelle carte son, au niveau logiciel cette fois, la carte est reconnue par GNU/Linux avec l'appellation suivante :

# lspci -s 0c:00.0 -b
0c:00.0 Multimedia audio controller: C-Media Electronics Inc CMI8788 [Oxygen HD Audio]

Le module du noyau, à savoir le pilote de la carte :

# lspci -s 0c:00.0 -k
0c:00.0 Multimedia audio controller: C-Media Electronics Inc CMI8788 [Oxygen HD Audio]
        Subsystem: ASUSTeK Computer Inc. Device 8522
        Kernel driver in use: snd_virtuoso
        Kernel modules: snd_virtuoso

Le module snd_virtuoso est au bout d'une petite chaine de modules noyau, en effet il dépend du module snd_oxygen_lib qui dépend lui-même du module snd_mpu401_uart et snd_pcm, qui dépendent respectivement de snd_rawmidi et snd pour le premier et de snd_timer et snd pour le second. Bref, vous l'aurais compris, il y a un très joli arbre de dépendances à contempler.

# lsmod | grep snd_virtuoso
snd_virtuoso           49152  5
snd_oxygen_lib         40960  1 snd_virtuoso
snd                    77824  36 [output_tronqué][...]

# lsmod | grep snd_oxygen_lib
snd_oxygen_lib         40960  1 snd_virtuoso
snd_mpu401_uart        16384  1 snd_oxygen_lib
snd_pcm               102400  11 snd_oxygen_lib,[output_tronqué][...]
snd                    77824  36 snd_oxygen_lib,[output_tronqué][...]

Comme le démontre la commande lsmod.

Le noyau GNU/Linux reconnait parfaitement la carte dès le démarrage du système et charge automatiquement en mémoire les modules associés :

# journalctl -b|grep kernel|grep 0c:00 
mai 31 18:34:09 falcon kernel: pci 0000:0c:00.0: [13f6:8788] type 00 class 0x040100
mai 31 18:34:09 falcon kernel: pci 0000:0c:00.0: reg 0x10: [io  0xc000-0xc0ff]
mai 31 18:34:09 falcon kernel: pci 0000:0c:00.0: supports D1 D2
mai 31 18:34:25 falcon kernel: input: Xonar DSX Headphone as /devices/pci0000:00/0000:00:1c.3/0000:07:00.0/0000:08:03.0/0000:0b:00.0/0000:0c:00.0/sound/card2/input11

Comme le montre le journal du démarrage, ce qui est normal, vu que ce module et toutes ses dépendances sont présents dans le paquet RPM kernel-modules :

# modinfo snd_virtuoso | grep filename
filename:       /lib/modules/4.11.3-200.fc25.x86_64/kernel/sound/pci/oxygen/snd-virtuoso.ko.xz

# rpm -qf /lib/modules/4.11.3-200.fc25.x86_64/kernel/sound/pci/oxygen/snd-virtuoso.ko.xz
kernel-modules-4.11.3-200.fc25.x86_64

Passons maintenant au niveau d'abstraction juste au dessus, le service de gestion du son sur GNU/Linux s'appelle ALSA, il permet notament pour une carte donnée de configurer le codec et le pilote dans le cadre de l'administration normal du système, et aussi configurer les entrées/sorties avec les mixeurs dans le cadre d'une action utilisateur simple. Ce sont deux services systemd nommé alsa-state et alsa-restore fourni par le paquet RPM alsa-utils.

mai 31 18:34:33 falcon alsactl[1484]: Found hardware: "AV200" "AV200" "WM8776 WM8766 AV200" "0x1043" "0x8522"
mai 31 18:34:33 falcon alsactl[1484]: Hardware is initialized using a generic method
mai 31 18:34:33 falcon alsactl[1484]: No state is present for card DSX
mai 31 18:34:32 falcon alsactl[1484]: alsactl 1.1.1 daemon started

Dans cet extrait du journal, on peut voir que le codec utlisé par le pilote se nomme AV200, cette information est également stockée dans un fichier système :

# tail -2 /proc/asound/cards
 2 [DSX            ]: AV200 - Xonar DSX
                      Asus Virtuoso 66 at 0xc000, irq 18

Pour l'interface numérique on se retrouve avec le très répendu codec IEC958, comme en témoigne le fichier de configuration livré avec la bibliothèque ALSA (paquet RPM alsa-lib) /usr/share/alsa/cards/CMI8788.conf. Cependant, même si la bibliothèque permet de les configurer, ces 2 codecs sont bien localisés dans les modules noyau snd-virtuoso et snd_pcm, aucun microcode supplémentaire n'a besoin d'être installé (donc on peut virer le paquet RPM alsa-firmware...)

À partir d'ici, les bibliothèques libasound.so.2 et autres, fournies par le paquet RPM alsa-lib, permettent non-seulement d'intéragir avec la carte au niveau utilisateur avec les outils ALSA, mais aussi d'intéragir au niveau système avec le service pulseaudio :

# rpm -q -R pulseaudio
libasound.so.2()(64bit)
libasound.so.2(ALSA_0.9)(64bit)
libasound.so.2(ALSA_0.9.0rc4)(64bit)
libasound.so.2(ALSA_0.9.0rc8)(64bit)

Et nous voici arrivés au service pulseaudio qui fourni une interface utilisateur confortable pour pouvoir profiter pleinement des fonctionnalités de la carte son. Plop !

En conclusion

J'ai acheté cette carte son, je l'ai monté, et ça marche.

#happy ^^

Remerciements

J'aimerais dire merci à tous les développeurs du Projet ALSA pour leur travail formidable. On peut dire que cette carte son est nativement supportée par le noyau Linux, et qu'elle est supportée à 100% (je n'ai pas toujours eu cette chance-là). De ce que j'ai pu voir en écumant le web, le son sous GNU/Linux n'est pas un sujet facile, n'est pas un petit domaine, ne pose pas des problèmes que l'on peut résoudre tout seul dans son coin. Par contre c'est une grande histoire d'amour, ça c'est sûr...