OSS4 : Alsa ne répond plus.
Par Jean-Seb le jeudi 17 septembre 2009, 20:17 - Linuxeries - Lien permanent
Plus fort que OSS-117 et Alsa réunis.
Voici ... OSS4 !
Et dire qu'on l'enterrait déja dans l'indifférence générale.
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
- Il faut passer par un overlay Gentoo.
- La question des overlays a déja été discutée sur ce blog
- 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/
- installer:
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.