Kernel 2.6 + module -- immernoch
Kernel 2.6 + module -- immernoch
hallo zusammen
ich habe seit der umstellung auf den kernel 2.6 probleme mit den modulen. ich habe den kernel korrekt compiliert. der funktioniert ja auch. auch eine make modules (obwohl nicht mehr nötig) gemacht und ein make modules_install. ich habe die mod_init_tools-0.9.15pre 4 installiert. und ich habe die modprobe.conf mit hilfe von generate-modprobe.conf erstellt.
den kernel und die system.map habe ich auch nach /boot mit der richtigen endung kopiert. und lilo neu eingerichtet.
ich kann module von hand laden, das funktioniert, allerdings wird beispielsweise das modul für meine netzwerkkarte nicht beim start geladen. der kernel müsste den doch automatisch beim systemstart laden oder nicht?
ist eine rtl8139 karte und "alias eth0 8139" stand auch in der modules.conf drin. ich nehme an die wird er auch richtig i die modprobe.conf übernommen haben.
wäre sehr dankbar für einene tipp. habe ich irgendwas vergessen?
mfg
ich habe seit der umstellung auf den kernel 2.6 probleme mit den modulen. ich habe den kernel korrekt compiliert. der funktioniert ja auch. auch eine make modules (obwohl nicht mehr nötig) gemacht und ein make modules_install. ich habe die mod_init_tools-0.9.15pre 4 installiert. und ich habe die modprobe.conf mit hilfe von generate-modprobe.conf erstellt.
den kernel und die system.map habe ich auch nach /boot mit der richtigen endung kopiert. und lilo neu eingerichtet.
ich kann module von hand laden, das funktioniert, allerdings wird beispielsweise das modul für meine netzwerkkarte nicht beim start geladen. der kernel müsste den doch automatisch beim systemstart laden oder nicht?
ist eine rtl8139 karte und "alias eth0 8139" stand auch in der modules.conf drin. ich nehme an die wird er auch richtig i die modprobe.conf übernommen haben.
wäre sehr dankbar für einene tipp. habe ich irgendwas vergessen?
mfg
Re: Kernel 2.6 + module -- immernoch
in der modules.conf stand selbstverständlich "alias eth0 8139too". sorry.
Re: Kernel 2.6 + module -- immernoch
Hast Du möglicherweise vergessen, den Kernel-Module-Loader (kmod) in der Kernel-Config zu aktivieren? Der "Loadable Module Support" muss aktiviert sein und die Option "Automatic kernel module loading" natürlich auch.
Jochen
Jochen
Re: Kernel 2.6 + module -- immernoch
muss ich nachschauen um es genau sagen zu können. aber ich habe die default config genommen und nur entsprechend angepasst. in der default config sollten diese dinge doch aktiviert sein, oder?
Re: Kernel 2.6 + module -- immernoch
habe nachgeschaut: sind aktiviert.
Re: Kernel 2.6 + module -- immernoch
Und was gibt ein<pre>cat /proc/sys/kernel/modprobe</pre>aus? Es sollte "/sbin/modprobe" auswerfen; gleichzeit muss diese Datei natürlich auch vorhanden und ausführbar sein.
Jochen
Jochen
Re: Kernel 2.6 + module -- immernoch
erstmal danke für eure antworten. ich bin gerade nicht zuhause, werde es aber dann gleichmal übrprüfen.
die mod_init_tools kann man ja mit ./configure prefix=/ nach /sbin installieren.
das habe ich gemacht. allerdings nicht geprüft ob er das auch so ausgeführt hat.
mfg
die mod_init_tools kann man ja mit ./configure prefix=/ nach /sbin installieren.
das habe ich gemacht. allerdings nicht geprüft ob er das auch so ausgeführt hat.
mfg
Re: Kernel 2.6 + module -- immernoch
mir fällt ein, dass die datei /sbin/modprobe vorhanden sein muss, da ich die module per hand laden kann.
Re: Kernel 2.6 + module -- immernoch
Vielleicht hast Du Dich ja beim ./configure vertan und modprobe liegt woanders, aber immer noch im Suchpfad von root? Das wäre immerhin eine Möglichkeit.
Jochen
Jochen
Re: Kernel 2.6 + module -- immernoch
werde es auf jeden fall prüfen, wenn ich daheim bin. aber jetzt schon mal danke für eure tipps.
mfg
mfg
Re: Kernel 2.6 + module -- immernoch
habe es nochmal geprüft:
Der "Loadable Module Support" muss aktiviert sein und die Option "Automatic kernel module loading" natürlich auch. <-- ist bereits aktiviert gewesen
ein "cat /proc/sys/kernel/modprobe" gibt auch ein /sbin/modprobe aus. die datei ist auch vorhanden. und ausführbar ist sie auch.
bin echt verzweifelt.
Der "Loadable Module Support" muss aktiviert sein und die Option "Automatic kernel module loading" natürlich auch. <-- ist bereits aktiviert gewesen
ein "cat /proc/sys/kernel/modprobe" gibt auch ein /sbin/modprobe aus. die datei ist auch vorhanden. und ausführbar ist sie auch.
bin echt verzweifelt.
Re: Kernel 2.6 + module -- immernoch
Tja, die offensichtlichen Punkte sind abgehakt, dann bleiben nur noch die nickeligen Kleinigkeiten...
<li>Was sagt denn ein "lsmod" nach dem Booten? Werden überhaupt Module geladen? Oder nur das 8139too nicht?
<li>Was sagt ein "ifconfig -a" nach dem Booten? Ist das Device vielleicht da, aber nicht konfiguriert?
<li>Ist das Modul auch gebaut worden? Findest Du es mittels<pre>find /lib/modules/2.6.* -name "8139too.ko"</pre>?
<li>Welche Meldungen wirft der Kernel denn beim Booten aus? Lässt sich aus dem Output von "dmesg" etwas herauslesen, was das Laden bzw. Scheitern des Ladens eines Moduls betrifft?
Jochen
<li>Was sagt denn ein "lsmod" nach dem Booten? Werden überhaupt Module geladen? Oder nur das 8139too nicht?
<li>Was sagt ein "ifconfig -a" nach dem Booten? Ist das Device vielleicht da, aber nicht konfiguriert?
<li>Ist das Modul auch gebaut worden? Findest Du es mittels<pre>find /lib/modules/2.6.* -name "8139too.ko"</pre>?
<li>Welche Meldungen wirft der Kernel denn beim Booten aus? Lässt sich aus dem Output von "dmesg" etwas herauslesen, was das Laden bzw. Scheitern des Ladens eines Moduls betrifft?
Jochen
Re: Kernel 2.6 + module -- immernoch
Ah - jetzt erinner ich mich wieder!
Benutzt Du RedHat bzw. einen Abkömmling wie Mandrake, Aurox, usw.? Bei denen wird in der /etc/rc.d/rc.sysinit geschaut, ob die Datei /proc/ksyms existiert. Falls nicht, wird die Modulunterstützung abgeschaltet. Allerdings macht sie das über das Setzen von kernel.modprobe und kernel.hotplug - das sollte eigentlich in /proc/sys/kernel/modprobe sichtbar sein...
Hier bei meiner alten RH7.3 würde es ausreichen, im rc.sysinit-Skript USEMODULES explizit auf "y" zu setzen und den Test auszukommentieren. Vielleicht hilft Dir das weiter?
Jochen
Benutzt Du RedHat bzw. einen Abkömmling wie Mandrake, Aurox, usw.? Bei denen wird in der /etc/rc.d/rc.sysinit geschaut, ob die Datei /proc/ksyms existiert. Falls nicht, wird die Modulunterstützung abgeschaltet. Allerdings macht sie das über das Setzen von kernel.modprobe und kernel.hotplug - das sollte eigentlich in /proc/sys/kernel/modprobe sichtbar sein...
Hier bei meiner alten RH7.3 würde es ausreichen, im rc.sysinit-Skript USEMODULES explizit auf "y" zu setzen und den Test auszukommentieren. Vielleicht hilft Dir das weiter?
Jochen
Re: Kernel 2.6 + module -- immernoch
Hallo,
Was sagt denn ein "lsmod" nach dem Booten? Werden überhaupt Module geladen? Oder nur das 8139too nicht? <-- Module wurden geladen ipv6 und ein paar andere. aber kein 8139too, das ist definitiv das Modul für meine Netzwerkkarte.
Was sagt ein "ifconfig -a" nach dem Booten? Ist das Device vielleicht da, aber nicht konfiguriert? <-- eth0 nicht vorhanden, hatte ich auch schon nachgeschaut. loop etc ist drin.
Ist das Modul auch gebaut worden? Findest Du es mittels
find /lib/modules/2.6.* -name "8139too.ko"
? <-- wenn es nicht vorhanden wäre, könnte ich es ja nicht mit modprobe 8139too laden, denke ich.
Welche Meldungen wirft der Kernel denn beim Booten aus? Lässt sich aus dem Output von "dmesg" etwas herauslesen, was das Laden bzw. Scheitern des Ladens eines Moduls betrifft? <-- keine Fehler außer eben, dass die eth0 konfigiration von eth0 nicht möglich ist, da eth0 nicht vorhanden ist.
Hier bei meiner alten RH7.3 würde es ausreichen, im rc.sysinit-Skript USEMODULES explizit auf "y" zu setzen und den Test auszukommentieren. Vielleicht hilft Dir das weiter?
<-- ich benutze knoppix 3.3, habe ich aber noch nicht nachgeschaut.
mfg
Was sagt denn ein "lsmod" nach dem Booten? Werden überhaupt Module geladen? Oder nur das 8139too nicht? <-- Module wurden geladen ipv6 und ein paar andere. aber kein 8139too, das ist definitiv das Modul für meine Netzwerkkarte.
Was sagt ein "ifconfig -a" nach dem Booten? Ist das Device vielleicht da, aber nicht konfiguriert? <-- eth0 nicht vorhanden, hatte ich auch schon nachgeschaut. loop etc ist drin.
Ist das Modul auch gebaut worden? Findest Du es mittels
find /lib/modules/2.6.* -name "8139too.ko"
? <-- wenn es nicht vorhanden wäre, könnte ich es ja nicht mit modprobe 8139too laden, denke ich.
Welche Meldungen wirft der Kernel denn beim Booten aus? Lässt sich aus dem Output von "dmesg" etwas herauslesen, was das Laden bzw. Scheitern des Ladens eines Moduls betrifft? <-- keine Fehler außer eben, dass die eth0 konfigiration von eth0 nicht möglich ist, da eth0 nicht vorhanden ist.
Hier bei meiner alten RH7.3 würde es ausreichen, im rc.sysinit-Skript USEMODULES explizit auf "y" zu setzen und den Test auszukommentieren. Vielleicht hilft Dir das weiter?
<-- ich benutze knoppix 3.3, habe ich aber noch nicht nachgeschaut.
mfg
Re: Kernel 2.6 + module -- immernoch
Hi,
knoppix=debian
natuerlich muss das Module fuer ein Geraet (oder die Kernelunterstuetzung aktiv sein), bevor ein Dienst basierend auf dem Geraet mit Erfolg gestartet werden kann.
Bei _allen_ Distributionen _sollte_ daher die Reihenfolge der Initialisierungsscripte in /etc/init.d/ so gesteuert sein, dass die Module so frueh wie moeglich geladen werden. Die Reihenfolge wird z.B. durch links in /etc/rc.d/ geloest, indem durch ein Masterscript die Reihenfolge ausgewertet wird. Hast du vielleicht diese Reihenfolge manipuliert?
Bei meinem Gentoo System sieht der Anfang der /etc/ini.d/modules so aus:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
depend() {
need bootmisc localmount
use logger
}
start() {
[ -f /proc/modules ] || return
[ -x /sbin/depmod ] || return
ebegin "Calculating module dependencies"
/usr/sbin/update-modules &>/dev/null
eend $? "Failed to calculate dependencies"
# Loop over every line in /etc/modules.autoload.
(cat /etc/modules.autoload; echo) | # make sure there is a LF at the end
while read module args
do
case "${module}" in
\#*|"") continue ;;
esac
ebegin " Loading module ${module}"
modprobe ${module} ${args} &>/dev/null
eend $? " Failed to load ${module}"
done
echo
...
</font><hr></pre></blockquote>
Die Funktion depend wird vom Masterscript aufgerufen, um zu kontrollieren, ob notwendige Startscripte bereits ausgefuerht worden sind.
Die Funktion start, auch vom Masterscript aufgerufen, kontrolliert die Existenz der Datei /proc/modules, die vorhangen sein muss, wenn der Kernel modules unterstuetzt - die wird beim mounten des /proc Dateisystems vom Kernel erzeugt (wie alles in /proc), hier durch Ausfuehrung der Startdatei /etc/init.d/localmount. Ausserdem wird auf die Ausfuehrbarkeit der Datei /sbin/depmod getestet, damit die Datei /lib/modules/`uname -r`/modules.dep neu erzeugt werden kann, damit modprobe ueberhaupt funktionieren kann. Schlaegt einer der zwei Tests fehl, wird die Bearbeitung der Startdatei /etc/init.d/modules abgebrochen.
Erst wenn die Tests erfolgreich sind, wird die Datei /etc/modules.autoload ausgewertet. Soweit muessten bei Dir die Init-Scripte auch kommen, sonst wuerden gar keine Module geladen - oder du hast automagically Kernel-Autoload, dann frage ich mich aber, wieso das NIC-Modul nicht geladen wird.
Ich wuerde an deiner Stelle das Startscript /etc/init.d/modules um einige Ausgaben mehr erweitern, um das debugging zu erleichtern.
ratte
PS.: Wie schon angedeutet, ist das Beschriebene eine Gentoo Umgebung, bei Debian ist das wohl etwas anders...
knoppix=debian
natuerlich muss das Module fuer ein Geraet (oder die Kernelunterstuetzung aktiv sein), bevor ein Dienst basierend auf dem Geraet mit Erfolg gestartet werden kann.
Bei _allen_ Distributionen _sollte_ daher die Reihenfolge der Initialisierungsscripte in /etc/init.d/ so gesteuert sein, dass die Module so frueh wie moeglich geladen werden. Die Reihenfolge wird z.B. durch links in /etc/rc.d/ geloest, indem durch ein Masterscript die Reihenfolge ausgewertet wird. Hast du vielleicht diese Reihenfolge manipuliert?
Bei meinem Gentoo System sieht der Anfang der /etc/ini.d/modules so aus:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
depend() {
need bootmisc localmount
use logger
}
start() {
[ -f /proc/modules ] || return
[ -x /sbin/depmod ] || return
ebegin "Calculating module dependencies"
/usr/sbin/update-modules &>/dev/null
eend $? "Failed to calculate dependencies"
# Loop over every line in /etc/modules.autoload.
(cat /etc/modules.autoload; echo) | # make sure there is a LF at the end
while read module args
do
case "${module}" in
\#*|"") continue ;;
esac
ebegin " Loading module ${module}"
modprobe ${module} ${args} &>/dev/null
eend $? " Failed to load ${module}"
done
echo
...
</font><hr></pre></blockquote>
Die Funktion depend wird vom Masterscript aufgerufen, um zu kontrollieren, ob notwendige Startscripte bereits ausgefuerht worden sind.
Die Funktion start, auch vom Masterscript aufgerufen, kontrolliert die Existenz der Datei /proc/modules, die vorhangen sein muss, wenn der Kernel modules unterstuetzt - die wird beim mounten des /proc Dateisystems vom Kernel erzeugt (wie alles in /proc), hier durch Ausfuehrung der Startdatei /etc/init.d/localmount. Ausserdem wird auf die Ausfuehrbarkeit der Datei /sbin/depmod getestet, damit die Datei /lib/modules/`uname -r`/modules.dep neu erzeugt werden kann, damit modprobe ueberhaupt funktionieren kann. Schlaegt einer der zwei Tests fehl, wird die Bearbeitung der Startdatei /etc/init.d/modules abgebrochen.
Erst wenn die Tests erfolgreich sind, wird die Datei /etc/modules.autoload ausgewertet. Soweit muessten bei Dir die Init-Scripte auch kommen, sonst wuerden gar keine Module geladen - oder du hast automagically Kernel-Autoload, dann frage ich mich aber, wieso das NIC-Modul nicht geladen wird.
Ich wuerde an deiner Stelle das Startscript /etc/init.d/modules um einige Ausgaben mehr erweitern, um das debugging zu erleichtern.
ratte
PS.: Wie schon angedeutet, ist das Beschriebene eine Gentoo Umgebung, bei Debian ist das wohl etwas anders...