Après l'échec de ma Hauppage WinTV, j'ai investi dans une Pinnacle PCTV Stéréo (sans radio malheureusement), qui fonctionne parfaitement. La carte et le tuner sont autodétecté, mais au cas où, les options sont :

options saa7134 card=26 tuner=33

Et puis le week-end dernier je me décide à mettre à jour mon 2.6.12.2 vers un 2.6.16.18 tout beau tout neuf. Et là, c'est le drame : plus de son ! Enfin si, j'ai du son environ 3 secondes à chaque changement de chaine et puis pouf, plus rien.

En chargeant le module saa7134 avec l'option audio_debug=1, il est possible de voir les logs de la partie audio dans /var/log/syslog. Avec ce nouveau noyau :

kernel: saa7134[0]/audio: found SECAM main sound carrier @ 6.500 MHz [12345/0]
kernel: saa7134[0]/audio: ctl_mute=0 automute=0 input=Television => mute=0 input=Television
kernel: saa7134[0]/audio: tvaudio_setmode: trying SECAM-L NICAM [6.500/5.850 MHz] acpf=122880+0
kernel: saa7134[0]/audio: getstereo: nicam=0x2
kernel: saa7134[0]/audio: tvaudio_setmode: trying SECAM-D/K [6.500/0.-01 MHz] acpf=122880+0
kernel: saa7134[0]/audio: tvaudio_setmode: using SECAM-D/K [6.500/0.-01 MHz] acpf=122880+0

Voici le même log avec le noyau 2.6.12 :

kernel: saa7134[0]/audio: found SECAM main sound carrier @ 6.500 MHz [12345/0]
kernel: saa7134[0]/audio: ctl_mute=0 automute=0 input=Television => mute=0 input=Television
kernel: saa7134[0]/audio: tvaudio_setmode: trying SECAM-L NICAM [6.500/5.850 MHz] acpf=122880+0
kernel: saa7134[0]/audio: getstereo: nicam=0x0
kernel: saa7134[0]/audio: found audio subchannels: mono
kernel: saa7134[0]/audio: tvaudio_setmode: using SECAM-L NICAM [6.500/5.850 MHz] acpf=122880+0

En gras, on constate que le code de retour de getstereo n'est pas le même, et qu'avant il utilisait SECAM-L NICAM (qui fonctionne), alors que maintenant il ne le retient pas et passe au suivant (SECAM-D/K) qui ne fonctionne pas, ce qui explique le son pendant quelques secondes...

N'ayant rien trouvé sur Internet concernant ce problème, j'ai fini par patcher à la va-comme-je-te-pousse le driver, en commantant le test sur le code de retour qui pose problème.

--- drivers/media/video/saa7134/saa7134-tvaudio.old     2006-06-04 20:33:44.000000000 +0200
+++ drivers/media/video/saa7134/saa7134-tvaudio.c 2006-06-04 20:34:20.000000000 +0200
@@ -433,7 +433,7 @@
case TVAUDIO_NICAM_AM:
nicam = saa_readb(SAA7134_AUDIO_STATUS);
dprintk("getstereo: nicam=0x%x
",nicam);
- if (nicam & 0x1) {
+ //if (nicam & 0x1) {
nicam_status = saa_readb(SAA7134_NICAM_STATUS);
dprintk("getstereo: nicam_status=0x%x
", nicam_status);

@@ -447,9 +447,9 @@
default:
retval = V4L2_TUNER_SUB_MONO;
}
- } else {
+ //} else {
/* No nicam detected */
- }
+ //}
break;
}
if (retval != -1)

Après recompilation (make modules) et installation (make modules_install), le son ne disparait plus au bout de quelques secondes ! Yaha !

Malheureusement, entre temps un autre problème a fait son apparition... Après une mise à jour de la distribution, le son est devenu très faible, avec un effet de "souffle" énorme, comme si le son était très lointain. D'où vient le problème ? Est-ce ALSA ou bien un effet de bord de la modif du driver ?

Pour l'instant, je n'en sais rien, et je n'ai pas vraiment envie de chercher. Quel interet puisqu'à la prochaine version c'est autre chose qui va cesser de fonctionner correctement ? J'ai parfois l'impression d'être revenu au temps de Windows 95, avec son « Windows Update » où chaque utilisation relevait de la roulette russe... Je ne compte plus les fois où j'ai du réinstaller Windows après l'installation d'un patch qui ajoutait des bugs au lieu d'en corriger ! Alors, Linux est-il en train de devenir comme son aïeul ? Va-t-on devoir choisir entre un desktop multimédia fonctionnel sous Windows ou une super console sous Linux ?