Kernel 2.6 + module -- immernoch

Message
Author
xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Kernel 2.6 + module -- immernoch

#1 Post by xeebowl »

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

xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Re: Kernel 2.6 + module -- immernoch

#2 Post by xeebowl »

in der modules.conf stand selbstverständlich "alias eth0 8139too". sorry.

Jochen

Re: Kernel 2.6 + module -- immernoch

#3 Post by Jochen »

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

xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Re: Kernel 2.6 + module -- immernoch

#4 Post by xeebowl »

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?

xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Re: Kernel 2.6 + module -- immernoch

#5 Post by xeebowl »

habe nachgeschaut: sind aktiviert.

Jochen

Re: Kernel 2.6 + module -- immernoch

#6 Post by Jochen »

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

xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Re: Kernel 2.6 + module -- immernoch

#7 Post by xeebowl »

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

xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Re: Kernel 2.6 + module -- immernoch

#8 Post by xeebowl »

mir fällt ein, dass die datei /sbin/modprobe vorhanden sein muss, da ich die module per hand laden kann.

Jochen

Re: Kernel 2.6 + module -- immernoch

#9 Post by Jochen »

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

xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Re: Kernel 2.6 + module -- immernoch

#10 Post by xeebowl »

werde es auf jeden fall prüfen, wenn ich daheim bin. aber jetzt schon mal danke für eure tipps.

mfg

xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Re: Kernel 2.6 + module -- immernoch

#11 Post by xeebowl »

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.

Jochen

Re: Kernel 2.6 + module -- immernoch

#12 Post by Jochen »

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

Jochen

Re: Kernel 2.6 + module -- immernoch

#13 Post by Jochen »

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

xeebowl
Posts: 21
Joined: 21. Jan 2004 11:15

Re: Kernel 2.6 + module -- immernoch

#14 Post by xeebowl »

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

ratte

Re: Kernel 2.6 + module -- immernoch

#15 Post by ratte »

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...

Post Reply