Aller au contenu

Debian - Comment modifier un module déjà chargé


ggbce

Messages recommandés

Salut,

J,ai une carte TV Tuner avec chipset Philips saa7134. Cette carte est détectée sans problème par Linux... même peut être trop car je ne sais pas où est chargé le module associé (saa7134).

Normallement les modules chargés sont listés dans /etc/modules, enfin je crois :chinois:

Si je fais un 'lsmod' je vois bien que saa7134 est bien chargé !

Bon vous allez me demander pourquoi je me pose la question de savoir comment il est chargé... puisqu'il est chargé ! Ce qui se produit c'est que plusieurs fabricants utilisant ce chipset Philips saa7134 avec variation de configuration. Si je charge le module saa7134 par défaut (comme c'est la cas) la carte TV Tuner ne fonctionne pas avec TVTIME (ou tout autre logiciel de capture TV se basant sur le module chargé). Je dois passer l'option card=21 au chargement du module pour fonctionner correctement.

Le seul moyen que j'ai trouvé pour le moment c'est après le chargement, faire "rmmod saa7134" et "modprobe saa7134 card=21". Si j'ajoute "saa7134 card=21" dan /etc/modules ça ne marche pas puisque le module est déjà chargé par le noyau autrement.

Alors comment passer le paramètre card=21 à saa7134 ?

ou

où peux se trouver le chargement automatique de saa7134 pour que je puisse l'éliminer et le lancer depuis /etc/modules à la place ?

Lien vers le commentaire
Partager sur d’autres sites

Je vais essayer cela,

Avec Sarge j'ai:

/etc/modules

/etc/modules.conf

/etc/modules.conf.old

et les dossiers:

/etc/modprobe.d/

/etc/modutils/

Pas de modprobe.conf, donc probablement c'est modules.conf.

-------------------------------------

J'ai passé le contenu entier de ceux-ci pour voir où était chargé le module saa7134 actuel et aucune trace null part... mais si je comprend bien ton explication Tuxxx, si j'utilise /etc/modules.conf pour charger le module comme je le veux (options saa7134 card=21), ceci écrasera le chargement automatique avec ces options ?

En passant, le module "tuner" ne se chargeait pas par défaut. En l'ajoutant à /etc/modules ça fonctionnait pour celui-ci sans problème ! Mais pas pour saa7134. Là je sais pas si c'est à cause de l'option à passer ou à cause qu'il était déjà chargé. dmesg ne retourne pas d'erreur ou de 2e tentative de chargement.

Lien vers le commentaire
Partager sur d’autres sites

Bon,

Je crois avoir trouvé comment ce module ce charge automatiquement. C'est udev et/ou hotplug.

si je lis dmesg:

...

shpchp: Standard Hot Plug PCI Controller Driver version: 0.4

Linux video capture interface: v1.00

saa7130/34: v4l2 driver version 0.2.12 loaded

...

Comment faire pour empêcher hotplug de charger un module ? Bah... d'après les infos c'est un fichier /etc/hotplug/blacklist qui contient les noms des modules à ne pas charger. J'ai alors ajouté les modules:

tuner

saa7134

v4l2

v4l2_common

Mais rien n'y change... c'est toujours chargé automatiquement. :fou:

-----------------------------

Ça serait tellement simple si ce module n'aurait pas été chargé automatiquement, un simple:

saa7134 card=21

tuner

dans /etc/modules et ça fonctionnerait ! Il me reste quand même la solution de faire un rmmod et modprobe avec les nouveaux paramètres dans rc.local, mais ça ne fait pas très propre. Je voudrais savoir comment bien utiliser les modules/hotplug/udev/...

Si vous avez quelques trucs je suis preneur !

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Utilises tu un initrd?

As tu autorisé le noyau à chargé lui même les modules?

$zcat /proc/config.gz | grep CONFIG_KMOD

Y a t'il un référence à saa7134 dans les fichiers de conf?

je t'invite à utiliser ce script en commande:

#cat string_query.sh

#!/bin/bash

#Syntax

#principe #./string_query.sh chemin string

#ex: #./string_query.sh /etc saa7134

/usr/bin/find "$1" -type f >> /tmp/recherche_string.txt

while read ligne

do

cat $ligne | grep "$2" 1>/dev/null 2>/dev/null

if [ $? == 0 ];

then

echo $ligne

fi

done < /tmp/recherche_string.txt

rm /tmp/recherche_string.txt

à lancer en root:

un petit

#./string_query.sh /etc saa7134

Lien vers le commentaire
Partager sur d’autres sites

J'imagine que j'ai effectivement autorisé le kernel à charger automatiquement les modules puisque j'utilise Debian Sarge 3.1 avec le kernel 2.6.8-3-686 et celui-ci en paquet apt Debian est dépendant de udev... et udev est un système de détection automatique des périphériques qui fonctionne en symbiose avec hotplug (en tout cas c'est ce qui est écrit dans les pages d'aide sur le site de Debian).

Pour le moment, je n'ai trouvé aucun fichier contenant une référence au chargement du module saa7134. Je vais une recherche complète dans /etc comme vous m'avez proposé avec igrep.

Le seul endroit où je retrouve une référence du chargement de saa7134 c'est en lisant dmesg (comme écrit précédemment) et avec un lsmod...

Par contre, rien de trouvé dans un fichier (module, module.conf, modutils, modprobe.d, hotplug,...) quelconque.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...