modprobe: can´t locate module char-major-10-135

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Michael Hilgers
Beiträge: 2
Registriert: 13.01.2007 17:42:16

modprobe: can´t locate module char-major-10-135

Beitrag von Michael Hilgers » 06.02.2007 15:19:34

Hallo zusammen,

ich habe die Fehlermeldung nicht, ist nur eine Newbie-Verständnisfrage..;-)

Habe ich das richtig verstanden, dass hierbei RTC als Modul gesetzt ist und der Kernel der entsprechenden Major/Minor kein Modul zuweisen kann? Sprich, es fehlt lediglich der Alias-Eintrag in der /etc/modules.conf?

Oder ist einfach das Modul nicht in /lib/modules/ vorhanden?

Noch ne generelle Frage: Wenn ich aus den Kernelquellen mehrmals einen Kernel bastle, beim 1. Mal als Modul, beim 2. Mal einkompiliert: wird dann das entsprechende Modul in /lib/modules/ gelöscht oder müllt das Verzeichnis mit der Zeit zu?

Wenn es nicht gelöscht wird: wie kann ich das bereinigen? Oder ist das furchtbar egal?

Gruß
Michael
Der Unterschied zwischen Theorie und Praxis ist in der Praxis meist grösser als in der Theorie!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 06.02.2007 16:25:04

Michael Hilgers hat geschrieben:Habe ich das richtig verstanden, dass hierbei RTC als Modul gesetzt ist und der Kernel der entsprechenden Major/Minor kein Modul zuweisen kann? Sprich, es fehlt lediglich der Alias-Eintrag in der /etc/modules.conf?
Ich versuche das mit einem Beispiel zu erklären:
Hinzufügen muß ich noch, daß beim Kernel 2.6, statt der modules.conf das Verzeichnis /etc/modprobe.d verwendet werden sollte

Code: Alles auswählen

root@gms4:/etc/modprobe.d# # es gibt keinen alias für char-major-10-135:
root@gms4:/etc/modprobe.d# grep -R 10-135 *

root@gms4:/etc/modprobe.d# # es gibt zwei Module für das Gerät char-major-10-135:
root@gms4:/etc/modprobe.d# grep 10-135 /lib/modules/`uname -r`/modules*
/lib/modules/2.6.18-3-686/modules.alias:alias char-major-10-135 rtc
/lib/modules/2.6.18-3-686/modules.alias:alias char-major-10-135 genrtc

root@gms4:/etc/modprobe.d# # keines davon wurde geladen:
root@gms4:/etc/modprobe.d#:~# lsmod | grep rtc
root@gms4:/etc/modprobe.d# 

root@gms4:/etc/modprobe.d# modprobe char-major-10-135
WARNING: Error inserting genrtc (/lib/modules/2.6.18-3-686/kernel/drivers/char/genrtc.ko): Device or resource busy
root@gms4:/etc/modprobe.d#:~# lsmod | grep rtc
rtc                    12372  0
root@gms4:/etc/modprobe.d# # es wurde versucht beide Module zu laden, das zweite (genrtc) hat einen Fehler geliefert

root@gms4:/etc/modprobe.d# # wir entladen das Modul
root@gms4:/etc/modprobe.d#:~# rmmod rtc
root@gms4:/etc/modprobe.d# # und vertauschen die zwei Zeilen in module.alias
root@gms4:/etc/modprobe.d# vi /lib/modules/2.6.18-3-686/modules.alias

root@gms4:/etc/modprobe.d# modprobe char-major-10-135
WARNING: Error inserting rtc (/lib/modules/2.6.18-3-686/kernel/drivers/char/rtc.ko): No such device
root@gms4:/etc/modprobe.d#:~# lsmod | grep rtc
genrtc                    8608  0
root@gms4:/etc/modprobe.d# # es wurde versucht beide Module zu laden, das zweite (rtc) hat einen Fehler geliefert

root@gms4:/etc/modprobe.d# # jetzt fügen wir einen alias für ein nicht vorhandenes Modul ein:
root@gms4:/etc/modprobe.d# echo "alias char-major-10-135 xxxx" >local
root@gms4:/etc/modprobe.d# modprobe char-major-10-135
FATAL: Module xxxx not found.
root@gms4:/etc/modprobe.d# # keines davon wurde geladen:
root@gms4:/etc/modprobe.d#:~# lsmod | grep rtc
root@gms4:/etc/modprobe.d# 
Daher wenn deine obige Fehlermeldung auftaucht, müssen beide Bedingungen erfüllt sein. Es darf kein Alias definiert sein und es darf kein Module für dieses Gerät vorhanden sein
Wurde kein Alias definiert und es gibt mehrere Module, werden beide versucht zu laden.
Michael Hilgers hat geschrieben: Noch ne generelle Frage: Wenn ich aus den Kernelquellen mehrmals einen Kernel bastle, beim 1. Mal als Modul, beim 2. Mal einkompiliert: wird dann das entsprechende Modul in /lib/modules/ gelöscht oder müllt das Verzeichnis mit der Zeit zu?
Wenn du dich nicht als Kernelhacker versuchst, solltest du das möglichst vermeiden (EXTRAVERSION im Makefile setzen, oder bei make-kpkg die append-to-version Option verwenden)

Gruß
gms

Michael Hilgers
Beiträge: 2
Registriert: 13.01.2007 17:42:16

Beitrag von Michael Hilgers » 06.02.2007 17:23:43

Hallo,
vielen Dank für diese ausführliche Antwort.
root@gms4:/etc/modprobe.d# echo "alias char-major-10-135 xxxx" >local
Wohin leitest Du das echo um?

wird dann das entsprechende Modul in /lib/modules/ gelöscht oder müllt das Verzeichnis mit der Zeit zu?

Wenn du dich nicht als Kernelhacker versuchst, solltest du das möglichst vermeiden (EXTRAVERSION im Makefile setzen, oder bei make-kpkg die append-to-version Option verwenden)
Huch, ich hab mind. 20x einen Kernel kompiliert ohne die EXTRAVERSION-Option mit "make && make modules_install". Aber es läuft noch alles...;-)

Gruß
Michael
Der Unterschied zwischen Theorie und Praxis ist in der Praxis meist grösser als in der Theorie!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 06.02.2007 19:22:43

Michael Hilgers hat geschrieben:
root@gms4:/etc/modprobe.d# echo "alias char-major-10-135 xxxx" >local

Wohin leitest Du das echo um?
kann eine beliebige Datei im /etc/modprobe.d Verzeichnis sein. "local" habe ich gewählt, weil dieser Name von Standard-Debianpaketen nicht verwendet werden sollte.

Michael Hilgers hat geschrieben:
wird dann das entsprechende Modul in /lib/modules/ gelöscht oder müllt das Verzeichnis mit der Zeit zu?

Wenn du dich nicht als Kernelhacker versuchst, solltest du das möglichst vermeiden (EXTRAVERSION im Makefile setzen, oder bei make-kpkg die append-to-version Option verwenden)
Huch, ich hab mind. 20x einen Kernel kompiliert ohne die EXTRAVERSION-Option mit "make && make modules_install". Aber es läuft noch alles...;-)
Das ist auch nicht verwunderlich, in sehr vielen Fällen wird das auch gut gehen. Nachdem das aber nicht auf alle Fälle zutrifft, habe ich es auch versucht diplomatisch auszudrücken: "solltest du möglichst vermeiden"

Gruß
gms

Antworten