[Mandriva 2007] Patch ALSA

Fermé
tedori Messages postés 24 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 30 septembre 2010 - 8 août 2007 à 16:44
tedori Messages postés 24 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 30 septembre 2010 - 8 août 2007 à 21:07
Bonjour,
je viens de installer Mandriva sur un nouveau pc et je n'ai aucun son.

Après plusieurs essais infructeux j'ais trouvé un site concernant l'installation de linux sur mon portable (T61) : www.thinkwiki.org

La solution proposée est d'appliquer un "patch" pour alsa mais le lien pointe vers un fichier .c

Est-ce que quelqu'un peut me dire comment l'utiliser?
A voir également:

6 réponses

tedori Messages postés 24 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 30 septembre 2010 2
8 août 2007 à 20:13
En comparant avec d'autres patchs je me suis rendu compte que le contenu du fichier "patch_anolog.c" ressemble aux fichiers avec l'extension .patch
Je l'ais donc renommé en patch_analog.patch

puis j'ais vérifié qu'il s'execute comme un patch :

$ patch -p1 < patch_analog.patch

Cela fonctionne mais je ne sais pas à quel fichier appliquer le patch!!!

Pour info il s'agit du patch proposé à cette adresse :
http://hg.alsa-project.org/alsa-kernel/rev/ca37aeeeb0ea
0
Bonjour,

Je pense que tu n'a pas compris quelquechose...

Le lien vers le .c, désigne le fichier sur lequel s'applique le patch.

Le code en bas de la page est le patch en question, donc a copier dans un fichier .patch.

Le patch s'applique donc sur "pci/hda/patch_analog.c"


En espèrant t'avoir aidé.
Bonne soirée
0
tedori Messages postés 24 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 30 septembre 2010 2
8 août 2007 à 20:33
En effet je n'avais pas compris ca comme ca :)
Merci pour ton aide!!

J'ai essayé mais je n'ais pas de fichier patch_analog.c dans le répertoire pci/hda
J'ai en revanche un répertoire /sys/bus/pci/drivers/HDA Intel/

Est-ce que je dois juste copier coller le vrai fichier patch_analog.c (donné par le lien) ou est-ce que j'ais oublié d'installer quelque chose?
0
Euh...

Tu n'as encore pas dû comprendre quelque chose...

Ce patch sers a modifier une source de ton noyau.
Tu est ensuite censé recompiler ton noyau avec cette modification pour que ce soit pris en compte.

As-tu les sources de ton noyau ??? sinon, c'est mal parti...

Logiquement, tu dois trouver ce fichier dans :
/usr/src/linux/sound/pci/hda/patch_analog.c
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tedori Messages postés 24 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 30 septembre 2010 2
8 août 2007 à 20:54
Tu as encore vu juste : je partais pas dans la bonne direction
J'ais bien les sources du noyau et j'ais trouvé le fichier à patcher.

J'ais essayé de patcher mais il m'a retourné l'erreur suivante :

patching file /usr/src/linux/sound/pci/hda/patch_analog.c
Hunk #1 FAILED at 2982.
Hunk #2 FAILED at 3013.
2 out of 2 hunks FAILED -- saving rejects to file /usr/src/linux/sound/pci/hda/patch_analog.c.rej

Et pour ce qui est de recompiler le noyau je ne suis pas encore au point et je vais donc chercher un peu car je sais qu'il y a déjà pas mal de tutorials sur ce sujet.
0
Le fichier ".c " en lien dans la page est déjà patché, mais je ne te conseille pas de le prendre... ca pourrais poser des problèmes..

Je te conseille de le patcher 'manuellement', il n'y a que deux modifs..... je t'explique...

Dans le fichier tu devrait trouver ces lignes :
HDA_CODEC_VOLUME("Mic Boost", 0x14, 0x0, HDA_INPUT),
HDA_CODEC_VOLUME("Internal Mic Boost", 0x15, 0x0, HDA_INPUT),
HDA_CODEC_VOLUME("Docking Mic Boost", 0x25, 0x0, HDA_OUTPUT),
HDA_CODEC_VOLUME("Capture Volume", 0x0c, 0x0, HDA_OUTPUT),
HDA_CODEC_MUTE("Capture Switch", 0x0c, 0x0, HDA_OUTPUT),
HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x0d, 0x0, HDA_OUTPUT),

entre la 3eme et la quatrieme, tu insere ces deux lignes :
HDA_CODEC_VOLUME("Beep Playback Volume", 0x20, 0x03, HDA_INPUT),
HDA_CODEC_MUTE("Beep Playback Switch", 0x20, 0x03, HDA_INPUT),

---

Idem pour la seconde modif, tu recherche ces lignes :
{0x25, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
/* Analog mixer - docking mic; mute as default */
{0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
{ } /* end */

Et entre la 3 et la 4, tu insère :
/* enable EAPD bit */
{0x12, AC_VERB_SET_EAPD_BTLENABLE, 0x02},

---

Certain dirons que je suis 'bourrin', mais y'a pas de raison... c'est ce que la commande 'patch' est censé faire.

Bon courage :)
0
tedori Messages postés 24 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 30 septembre 2010 2
8 août 2007 à 21:07
Merci beaucoup pour ces conseils!!

Je vais donc faire ce que tu me propose et dès que j'aurais appris et réussi à recompiler mon noyau avec ces modifs je mettrai les résultats sur le forum.
0