Alsa prête le flanc à la critique

  • OSS4 est le dernier avatar de la lignée presque éteinte OSS. Comme quoi, tout arrive.
  • Alsa rêgne en maître incontesté sur nos cartes sons depuis quelques années.
  • Pourquoi remplacer Alsa par OSS4 ?
    • Alsa n'est pas exempt de bugs.
    • Je dirais même plus, mon cher Dupont, de bugs Alsa n'est pas exempt.
    • De curieux comportements après une hibernation (plantage de la couche son pour moi).
    • D'autres comportements non moins étranges lors d'un shutdown. (cf bugs.gentoo.org)
  • Bref, Alsa peut vous laisser comme deux ronds de flan.
    • Il est temps de passer à la concurrence. Cela stimule l'innovation et l'inventivité, comme disent les adeptes de la concurrence (chez les autres).


Installation

  • Tout ce qui suit est pour Gentoo.
  • Vous aurez peut être besoin d'installer mercurial (layman vous le signalera, si c'est le cas)
Overlay
  • Pour les décideurs pressés, voici le résumé du résumé:
    • installer: layman -a oss-overlay
    • juste pour voir: ls /usr/local/portage/layman/oss-overlay/


package.keywords
  • C'est encore assez expérimental, donc:
    • media-sound/oss ~amd64 (ou ~x86 ou ...)


Emerge
  • Rien de spécial
    • emerge -va oss


Kernel
  • Enlevez les références à Alsa dans le noyau.
    • Ou au minimum, le support Alsa devra être sous forme de modules.
    • J'ai tout viré.
  • Pas la peine d'activer OSS dans le kernel, cela ne sert à rien.


make.conf
  • ajouter à USE oss et oss4, laisser alsa (on n'est pas des sauvages, et on ne sait jamais).
    • Voici mon USE:
    • USE="-qt3 -qt4 -gnome -kde -ipv6 gtk unicode opengl jpeg truetype type1 oss oss4 alsa"



Lancer OSS4

Initialiser
  • /etc/init.d/oss start
    • C'est super long. Vous pouvez faire un modprobe à la main également.
  • N'oubliez pas de baisser le son, par défaut, ça explose les enceintes.

~$ ossmix vol 15
Value of mixer control vol set to 15.0:15.0
~$ ossmix pcm.main 15
Value of mixer control pcm.main set to 15.0


Tester
  • osstest
    • Vous devez entendre un piano à droite, à gauche, en stéréo.
    • Voire ailleurs si vous avez un système 5.1
    • Moi, j'en suis resté là en tant que salaud de pauvre.



Utilitaires amusants

  • ossxmix
    • Un mixer très complet. Enfin complet. Enfin y'a plein de boutons qui doivent servir à quelque chose.


Et maintenant ?

  • Haha! Vous croyiez vous en tirer à si bon compte ?
    • Il faut recompiler maintenant!
  • Soit emerge -DuvaN world (bon courage)
  • Soit y aller petit à petit: dosbox, sdl, mplayer, mpd, xine, audacious, wine ...
    • Il ne faudra pas oublier de modifier les fichiers de configuration des programmes recompilés pour utiliser OSS si vous compilez avec le support OSS et Alsa.
    • Certains programmes feront automatiquement le bon choix, d'autres auront besoin d'être un peu aidés.
    • Comment savoir ? Lancez le programme, et si il n'y a pas de son, c'est qu'il a besoin d'être un peu aidé. Muhahhaaahaa!
  • Bon d'accord, arrêtez les tomates. Je vous aide un peu avec mpd.
    • Si après compilation avec le double support alsa et oss, vous obtenez cette erreur au lancement:

jseb # /etc/init.d/mpd start
 * Loading ALSA modules ...
 *   Could not detect custom ALSA settings.  Loading all detected alsa drivers.
 *   Unable to find any ALSA drivers. Have you compiled alsa-drivers correctly?
 *   ERROR: Failed to load necessary drivers                              [ ok ]
 * ALSA failed to load.                                                   [ !! ]
 * ERROR:  cannot start mpd as alsasound could not start

  • Dans ce cas, éditez le fichier suivant /etc/init.d/mpd
    • Et enlevez la référence à alsasound à la ligne need
    • Crade ? Of course. N'oubliez pas de remettre la référence si vous réinstallez Alsa.


OSS et l'hibernation

  • hibernation, le mot qui fait trembler tout linuxien qui se respecte.
    • Comme on n'est pas sous Windows, ça ne fait pas partie du cahier des charges.
  • Pas de bol, OSS a un peu de mal à sortir du caisson cryogénique.
    • Remarquez, Alsa, c'était pas tellement mieux.
  • La bonne nouvelle, c'est qu'un simple restart de la couche OSS suffit.
    • /etc/init.d/mpd restart
  • La mauvaise nouvelle, c'est qu'avant, il faudra tuer tous les programmes qui dépendent de OSS.
    • Oui, y compris gkrellm et son mixer magique.
    • OSS étant sympa, il prévient des applications qui le gênent.

jseb # /etc/init.d/oss restart
 * Stopping OSS ...
Some applications are still using OSS - cannot unload

3311 gkrellm
5591 /usr/bin/mpd --no-create-db /home/jseb/.mpd/mpd.conf

Please stop these applications and run soundoff again
 * Failed to stop OSS                                                     [ !! ]

  • Si vous avez compilé le noyau avec CONFIG_MODULE_FORCE_UNLOAD, vous pouvez peut être procéder autrement...
    • ... mais je ne vous ai rien dit!



Un peu de lecture pour finir

  • Mes années de fac m'ont appris de multiples choses, comme par exemple qu'il ne faut pas mettre les pieds en fac.
    • J'ai également appris qu'une bonne bibliographie, ça vous pose son homme.
    • Normalement, on colle des pages et des pages de bouquins poussiéreux que personne n'a lu.
  • Comme nous sommes entre gens de bonne compagnie, voici l'essentiel.
  • N'hésitez pas à repasser, il y aura surement des mises à jour au fur et à mesure de mes découvertes.