Forum Linux.redhat modprobe.conf et arrachage de cheveux :s

Posté par  (site web personnel) .
Étiquettes :
0
26
juil.
2004
Bonjour,

Je tourne en rond depuis plusieurs jours.... Mon ami Google ne m'a pas été d'une très grande utilité jusque là, alors je tente ma chance ici en espérant que quelqu'un saura me filer un tuyau pour me dépatouiller de ma galère.

Bon, pour information, j'avais posté un message de le forum Debian ( http://linuxfr.org/forums/15/2511.html(...) ) en vue de la migration de ma vieille Gateway. Finalement, la Debian m'a pris la tête donc j'ai décidé de migrer de RH7.2 => FC2 (Pas de trolls sur Debian et compagnie, je m'en tape et ce n'est pas le but de ce message :p ).

Alors, l'install c'est bien passée et j'ai installé apt4rpm pour pouvoir mettre tout à jour. Comme j'ai repris quasiment toutes les cartes qui se trouvaient dans mon vieux P200 je me retrouve avec une 3C509B et une AWE64 ISA que je comptais réutiliser (par chance la "nouvelle" carte mère possède pile-poil 2 slots ISA).

Problème n°1.... La carte 3C509B n'a pas été détectée lors de l'install et n'est pas détecté par le soft de configuration fournis avec la FC2. Pas de problème, j'ai mis les mains dans le cambouis en paramètrant tout à la moumoune et le réseau fonctionne.... Problème réglé !

Problème n°2 (c'est celui-là qui me saoule). La carte AWE64 n'est pas détectée non plus :-/ .... Là ça semble un peu plus chiant... Je ne sais pas si ça a son importance mais voici les versions du kernel et de modutils installés sur ma machine:

[root@deepcore root]# rpm -q modutils kernel
modutils-2.4.26-16
kernel-2.6.6-1.435.2.3


Dans mon /etc/modprobe.conf j'ai ça concernant le son (récupéré après visites successives de plusieurs site que Google a bien voulu m'indiquer):
# ALSA
alias snd-card-0 snd-sbawe
install snd-card-0 /sbin/modprobe --ignore-install snd-card-0 && \
/usr/sbin/alsactl restore 0 > /dev/null 2>&1 || :
remove snd-card-0 { /usr/sbin/alsactl store 0 > /dev/null 2>&1 || : ; }; \
/sbin/modprobe -r --ignore-remove snd-card-0

# OSS Emulation
alias sound-slot-0 snd-sbawe
install sound-slot-0 /sbin/modprobe --ignore-install sound-slot-0 && \
{ /sbin/modprobe snd-mixer-oss; /sbin/modprobe snd-seq-oss; \
/sbin/modprobe snd-pcm-oss; /usr/sbin/alsactl restore 0; }
remove sound-slot-0 { /usr/sbin/alsactl store 0 > /dev/null 2>&1 || : ; }; \
/sbin/modprobe -r --ignore-remove sound-slot-0


Ensuite, j'ai ajouté dans mon /etc/rc.local la ligne suivante (si vous connaissez d'autres méthodes, je suis preneur):
# SB AWE64
/sbin/modprobe snd-card-0


Reboot... Et !!!! Les drivers sont bien chargés mais pas de son. Je suis obligé de lancer alsamixer pour augmenter le volume des canaux Master & PCM qui sont à 0. Pourtant, il me semblait que la directive "install" de modprobe.conf devait lancer un alsactl restore/store lors du chargement/déchargement des modules ?! C'est quoi ce binz ?!

Problème n°3 j'ai installé lm_sensors puis exécuté le script sensors-detect. Finalement, il m'a donné la liste des modules à charger pour que tout fonctionne. Apparemment, la syntaxe donnée à la fin de l'exécution du script correspond à l'ancien système (avec le /etc/modules.conf) alors j'ai essayé d'adapter le truc à la sauce modprobe.conf et, devinez quoi ?! Ben ça marche pas... Alors je dois merdouiller quelquepart mais je ne pige pas où:

Extrait de /etc/modprobe.conf
# LM Sensors - I2C modules
alias char-major-89-* i2c-dev
alias lm_sensors i2c-dev
install lm_sensors /sbin/modprobe --ignore-install lm_sensors && \
{ /sbin/modprobe i2c-amd756; /sbin/modprobe w83781d; \
/sbin/modprobe eeprom && /usr/bin/sensors -s; }
remove lm_sensors /sbin/modprobe -r --ignore-remove lm_sensors && \
{ /sbin/modprobe -r i2c-amd756; /sbin/modprobe -r w83781d; \
/sbin/modprobe -r eeprom; }


Puis:
[root@deepcore root]# modprobe -v lm_sensors
insmod /lib/modules/2.6.6-1.435.2.3/kernel/drivers/i2c/i2c-core.ko
insmod /lib/modules/2.6.6-1.435.2.3/kernel/drivers/i2c/i2c-dev.ko


Pourquoi ne veut-il pas charger les autres modules et exécuter la commande /usr/bin/sensors -s ?!?!

Evidemment, après ça ne fonctionne pas:
[root@deepcore root]# sensors
No sensors found!


Si je lance les modules à la mimine tout fonctionne... Dois-je mettre cela plutot dans le /etc/rc.local pour être peinard ?

Bref, quelquechose me dit que mon problème de alsamixer et de sensors et identique et que:

  • Soit je m'y prends comme une b*te avec /etc/modprobe.conf

  • Soit j'ai rien pigé et que je fais port'nawak



Voila ça fait pas mal de temps que je tourne en rond avec cette histoire de son et de lm_sensors et je n'arrive pas à faire ce que je veux :-/.

Alors ?! Est-ce moi qui fait n'importe quoi ?! Ou alors est-ce un bug à la c*n qui traine quelquepart ?

Spécialistes du modprobe.conf et/ou de FC2, je fais appelle à vous et à vos compétences pour essayer de m'aider à règler ce(s) problème(s).

Merci à vous...
  • # pb alsa

    Posté par  . Évalué à 1.

    une fois que tu as modifier le pcm et le volume avec alsamixer quitte

    puis fait

    alsactl store

    voila maintenant au demarage tu as charger la bonne config, de rien , oui c'est dans le man alsamixer :)
    • [^] # Re: pb alsa

      Posté par  (site web personnel) . Évalué à 1.

      Ben ouais, merci, je sais bien..... Mais ça marche pas :s
      • [^] # Re: pb alsa

        Posté par  . Évalué à 2.

        Indice : le script qui s'occupe de restaurer les parametres audio s'appelle surrement alsaqqchose et traine surrement dans /etc/init.d/

        Il va te falloir explorer le pourquoi du comment il n'invoque pas alsactl pour restaurer les parametres de mixage au démarrage.
  • # concernant lm_sensors

    Posté par  . Évalué à 1.

    Il me semble que i2c (-core et -dev) ne sont que des interfaces pour les modules, mais il faut aussi charger ces modules i.e, dans ton cas, ajouter un petit aussi
    modprobe w83781d
    ensuite, executer sensors devrait l'affaire.
    Tu pourrais aussi exécuter le démon associé par la commande /etc/init.d/lm_sensors start (peut dépendre de la distrib) avant de lancer la commande sensors (mais il faut qu'il n'y ait pas de malaise dans la configuration, sinon ça foire !

    En espérant que ça puisse t'aider ...
    • [^] # Re: concernant lm_sensors

      Posté par  (site web personnel) . Évalué à 1.

      Merci pour la réponse.... Mais je me demande si ce n'est pas le rôle des directives "install" dans modprobe.conf de faire cela, ou alors je n'ai rien compris ?!

      À quoi "install" et "remove" peuvent-ils bien servir ? D'après la doc ce sont des commandes exécutées à l'install et à la désinstall des modules. Mais alors pourquoi cela ne marche-t-il pas dans mon cas !?
      • [^] # Re: concernant lm_sensors, mais un peu tard

        Posté par  . Évalué à 1.

        je viens de m'en rendre compte, pourquoi as-tu 2 alias sur i2c-dev ?
        à savoir
        alias char-major-89-* i2c-dev
        alias lm_sensors i2c-dev

        à mon avis, le deuxième est un trouble-fête ici !
        Lorsque tu fais un modprobe w83781d, ça te donne quoi après ?
        • [^] # Re: concernant lm_sensors, mais un peu tard

          Posté par  (site web personnel) . Évalué à 1.

          Ben ce n'est plus un problème... Lm_sensors fonctionne à présent. Je me suis aperçu que le script d'init comportait quelques erreurs et c'est à cause de cela que les modules n'étaient pas chargés...

          Il me reste à régler le pbm du son.
  • # Re:

    Posté par  . Évalué à 0.

    > j'ai installé apt4rpm pour pouvoir mettre tout à jour.

    apt ou yum ou (n'importe quoi d'autre basé sur rpm) n'est pas prévu pour les mises à jours d'une release à une autre. Ce n'est pas un problème rpm, c'est simplement car les paquets ne sont pas fait pour ça.

    Par contre anaconda doit le faire (installation depuis les CD-ROM puis demander "mise à jour").

    Donc si ça ne marche pas, c'est presque normal.
    • [^] # Re: Re:

      Posté par  (site web personnel) . Évalué à 1.

      Merci à toi.... Je me suis mal exprimé parce que dans le P200 j'avais 2 X 60 GB en RAID-1 et dans la nouvelle machine je me suis installé 2 X 160GB en RAID-1 avec LVM en prime (que je découvre pour l'occasion et que je trouve vraiment génial :) ).

      Donc, je suis repartit de zéro.... En installant tout sur les nouveaux disques.

      Quand je disais "mettre à jour" j'entendais appliquer les updates. Voila.


      Sinon, ça ne résouds pas mes pbms de modules :'( !
      • [^] # Re: Re:

        Posté par  . Évalué à 1.

        > Quand je disais "mettre à jour" j'entendais appliquer les updates.

        Désolé.

        > Sinon, ça ne résouds pas mes pbms de modules :'( !

        J'ai pas de solution mais la suite va peut-être aider.

        C'est maintenant Linux 2.6 et la gestion des modules a changée. Tu l'as sûrement remarqué.
        Sous FC2, les valeurs par défaut pour modprobe sont dans :
        /etc/modprobe.conf.dist

        Normalement il ne faut pas y toucher.

        > une AWE64 ISA

        Les cartes ISA ne sont pas supportées depuis Fedora Core 2 (le programme dédié au son est 'system-config-sound'). Par contre, les modules sont toujours compilés.

        > Dans mon /etc/modprobe.conf

        Voilà mon modprobe.conf :
        alias snd-card-0 snd-ens1371
        install snd-ens1371 /sbin/modprobe --ignore-install snd-ens1371 && /usr/sbin/alsactl restore >/dev/null 2>&1 || :
        remove snd-ens1371 { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-ens1371

        Notes que je n'ai pas 'install snd-card-0 ...' mais 'install snd-ens1371 ...'

        Fais un essai sans utiliser l'alias snd-card-0 . Je ne sais pas si ça va marcher mais ça ne peut pas faire de mal.

        > # OSS Emulation
        > alias sound-slot-0 snd-sbawe

        Normalement tout est en place dans /etc/modprobe.conf.dist

        > Ensuite, j'ai ajouté dans mon /etc/rc.local la ligne suivante (si vous connaissez d'autres méthodes, je suis preneur):
        > # SB AWE64
        > /sbin/modprobe snd-card-0

        Je n'ai pas ça. Chez moi snd-card-0 est chargé dès que nécessaire. Par contre, vérifies si tu as les droits sur /dev/snd/* . Celui qui a la console (voir /etc/security/console.perms) est propriétaire de ces fichiers. Mais il n'y a qu'un id à la foi qui peut accéder à ces fichiers.


        Pour lm_sensors, j'y connais rien :-)
        • [^] # Re: Re:

          Posté par  (site web personnel) . Évalué à 1.

          Cher Monsieur 007, merci pour ces quelques réponses (c'est marrant, mais j'étais persuadé que tu te manifesterais sur ce post :), bref...


          J'ai pas de solution mais la suite va peut-être aider.

          C'est maintenant Linux 2.6 et la gestion des modules a changée. Tu l'as sûrement remarqué.
          Sous FC2, les valeurs par défaut pour modprobe sont dans :
          /etc/modprobe.conf.dist

          Normalement il ne faut pas y toucher.


          Effectivement, j'ai remarqué ce fichier... Il semble contenir des définitions "passe-partout" valables sur tous les systèmes indépendament du hardware installé dans la machine.



          Voilà mon modprobe.conf :
          alias snd-card-0 snd-ens1371
          install snd-ens1371 /sbin/modprobe --ignore-install snd-ens1371 && /usr/sbin/alsactl restore >/dev/null 2>&1 || :
          remove snd-ens1371 { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-ens1371

          Notes que je n'ai pas 'install snd-card-0 ...' mais 'install snd-ens1371 ...'

          Fais un essai sans utiliser l'alias snd-card-0 . Je ne sais pas si ça va marcher mais ça ne peut pas faire de mal.


          J'ai essayé plusieurs combinaisons (y compris celle que tu m'indiques) mais toujours sans résultats :s.


          Je n'ai pas ça. Chez moi snd-card-0 est chargé dès que nécessaire. Par contre, vérifies si tu as les droits sur /dev/snd/* . Celui qui a la console (voir /etc/security/console.perms) est propriétaire de ces fichiers. Mais il n'y a qu'un id à la foi qui peut accéder à ces fichiers.

          Dès que nécessaire... OK mais quand et par quel script ? J'ai parcouru /etc/init.d/* et, globalement, /etc/* à la recherche du script magique qui s'occupe de cela et je n'ai rien trouvé :s.

          Merci pour ta réponse.
          • [^] # Re: Re:

            Posté par  . Évalué à 0.

            > Dès que nécessaire... OK mais quand et par quel script ?

            Pour le propriétaire de /dev/snd/* c'est fait pas pam. Celui qui obtient la console est le propriétaire des fichiers.
            Exemple :
            - boot
            - login toto => /dev/snd/* apartient à toto
            - login titi => /dev/snd/* reste toujours à toto
            - déconnexion de titi et toto
            - login titi => /dev/snd/* apartient à titi

            Les modules peuvent être chargés à la demande. Ça ne marche pas pour tout. Par exemple, si tu accèdes à /dev/hdc qui est un lecteur de CDROM, le drivers de CDROM est chargé.
            De même, si tu accèdes par exemple à /dev/snd/pcmC0D0p les modules pour le son sont chargés. Bref, pas de script (du moins pour le son). A ma connaissance, le seul fichier qui charge des modules est /etc/rc.d/rc.sysinit .

            Ceci dit, je crois qu'il ne faut plus se prendre la tête avec ça. Avec udev (et déjà avec usb/pcmcia), ce modèle ne marchera plus (ou pas très bien) et tous les modules seront chargés par un script (détection du matériel puis chargement des modèles dès le boot même si les périphériques ne sont pas utilisé).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.