PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem Module zu laden



tazzu
04.10.06, 10:27
Hallo Leute ,

ich habe ein Suse SLES 9 System ( installliert mit SP2 ) . Das ganze wird diskless gebootet ( also das FS liegt auf einem NFS Server ) und der Client hat keine eigene Festlatte.

Wenn ich den Client boote bekomme ich viele Fehlermeldungen das Module nicht geladen werden können. Ich habe mal so ein Modul rausgesucht und ein paar Informationen darüber eingeholt :

linux:/lib/modules/2.6.5-7.191-smp/kernel/drivers/usb/host # ls
. .. ehci-hcd.ko ohci-hcd.ko uhci-hcd.ko
linux:/lib/modules/2.6.5-7.191-smp/kernel/drivers/usb/host # insmod uhci-hcd.ko
insmod: error inserting 'uhci-hcd.ko': -1 Invalid module format
linux:/lib/modules/2.6.5-7.191-smp/kernel/drivers/usb/host # modinfo uhci-hcd.ko
license: GPL
description: USB Universal Host Controller Interface driver
author: Linus 'Frodo Rabbit' Torvalds, Johannes Erdfelt, Randy Dunlap, Georg Acher, Deti Fliegl, Thomas Sailer, Roman Weissgaerber, Alan Stern
parm: debug:Debug level (i)
alias: pci:v*d*sv*sd*bc0Csc03i00*
depends: usbcore
supported: yes
vermagic: 2.6.5-7.191-smp SMP 586 REGPARM gcc-3.3
linux:/lib/modules/2.6.5-7.191-smp/kernel/drivers/usb/host # uname -r
2.6.5-7.191-default
linux:/usr/src/linux #

hier habe ich erst versucht das module via insmod zu laden was nicht funktioniert. Der 2.6.5-7.191-default ist ein softlink auf 2.6.5-7.191-smp.

Ich habe das Gefühl das alle Module die auf .ko enden nicht geladen werden können. Ich weiss allerdings nicht genau warum ( ich habe das System erst ganz normal auf Festplatte installiert und dann auf den NFS Server kopiert ... Den Softlink von 2.6.5-7.191-smp auf 2.6.5-7.191-default habe ich gesetzt da ich gesehen habe, das er beim booten aus diesem ordner sachen laden will, die er aber nicht gefunden hat. ) und komme irgendwie nicht weiter. hat jemand eine idee wieso meine module nicht richtig geladen werden ?

musketaquid
04.10.06, 15:33
Also meine Version von mod-init-tools nimmt nur Modulnamen ohne die Erweiterung .ko

solvejg:/home/musketaquid# modprobe -V
module-init-tools version 3.2.2

z.B.

solvejg:/home/musketaquid# modinfo battery.ko
modinfo: could not find module battery.ko
solvejg:/home/musketaquid# modinfo battery
filename: /lib/modules/2.6.17.1.jb4/kernel/drivers/acpi/battery.ko
author: Paul Diefenbaugh
description: ACPI Battery Driver
license: GPL
vermagic: 2.6.17.1.jb4 preempt mod_unload PENTIUMM gcc-3.3
depends:
srcversion: F276E5947D1DE2B6E63C04F

Rain_maker
04.10.06, 16:10
Ich habe das Gefühl das alle Module die auf .ko enden nicht geladen werden können. Ich weiss allerdings nicht genau warum ( ich habe das System erst ganz normal auf Festplatte installiert und dann auf den NFS Server kopiert ... Den Softlink von 2.6.5-7.191-smp auf 2.6.5-7.191-default habe ich gesetzt da ich gesehen habe, das er beim booten aus diesem ordner sachen laden will, die er aber nicht gefunden hat. ) und komme irgendwie nicht weiter. hat jemand eine idee wieso meine module nicht richtig geladen werden ?

Das wird auch nichts bringen, denn Module müssen AFAIK auch zum Kernelflavor passen. Wenn Du versuchst ein für smp-Kernel gebautes Modul in einen default-kernel zu laden, dann wundert diese Meldung nicht.


insmod: error inserting 'uhci-hcd.ko': -1 Invalid module format

Sagt eigentlich alles, oder?

"insmod" will IIRC den Modulnamen samt Pfad und mit ".ko", während modprobe nur mit dem entsprechenden Modulnamen ohne das ".ko" aufgerufen wird und sich auf eine Art kleine "Datenbank" der verfügbaren Module stützt.

Diese liegt in /lib/modules/kernelversion-kernelflavor und heisst "modules.dep".



modprobe acx_pci
~ # lsmod|grep acx
acx_pci 77696 0
firmware_class 9856 3 acx_pci,ipw2200,pcmcia
~ # rmmod acx_pci
~ # insmod acx_pci
insmod: can't read 'acx_pci': No such file or directory
~ # modprobe acx_pci.ko
FATAL: Module acx_pci.ko not found.
~ # insmod /lib/modules/2.6.13-15.12-default/extra/acx_pci.ko
~ # lsmod|grep acx
acx_pci 77696 0
firmware_class 9856 3 acx_pci,ipw2200,pcmcia

cat /lib/modules/2.6.13-15.12-default/modules.dep | grep acx
/lib/modules/2.6.13-15.12-default/extra/acx_pci.ko: /lib/modules/2.6.13-15.12-default/kernel/drivers/base/firmware_class.ko

Wie man ausserdem sieht, wird eine Abhängigkeit des Moduls acx_pci.ko zum Modul firmware_class.ko angezeigt, so daß dieses beim Laden von acx_pci mit geladen wird.

Die Meldung "invalid Module Format" ergibt sich aber daraus, daß das Modul für den laufenden Kernel ungeeignet ist.

Greetz,

RM

tazzu
04.10.06, 16:14
Also ich habe das Problem beheben können. Ich habe den Link weggenommen und den default kernel nachinstalliert. Bekomme keine Fehlermeldung mehr das die Module nicht geladen werden können. Ich hab nurnoch mit einem Modul Probleme. Ich hoffe das es nurnoch ein kleines Problem ist welches ich fixen kann aber falls nicht werd ich den Log nochmal hochladen. Danke für die Infos !

tazzu
04.10.06, 16:23
6>device-mapper: Allocated new minor_bits array for 1024 devices
<6>device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
<4>scsi_mod: disagrees about version of symbol unregister_sysctl_table
<4>scsi_mod: Unknown symbol unregister_sysctl_table, st_info == 0x1
<4>scsi_mod: disagrees about version of symbol proc_dointvec
<4>scsi_mod: Unknown symbol proc_dointvec, st_info == 0x1
<4>scsi_mod: disagrees about version of symbol register_sysctl_table
<4>scsi_mod: Unknown symbol register_sysctl_table, st_info == 0x1
<7>load_module: err 0xfffffffe (dont worry)
<4>sd_mod: Unknown symbol scsi_device_get, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_wait_req, st_info == 0x1
<4>sd_mod: Unknown symbol scsicam_bios_param, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_block_when_processing_errors, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_register_driver, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_ioctl, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_device_put, st_info == 0x1
<4>sd_mod: Unknown symbol __scsi_mode_sense, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_logging_level, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_release_request, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_allocate_request, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_io_completion, st_info == 0x1
<4>sd_mod: Unknown symbol print_sense, st_info == 0x1
<4>sd_mod: Unknown symbol print_req_sense, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_set_medium_removal, st_info == 0x1
<7>load_module: err 0xfffffffe (dont worry)
<4>scsi_mod: disagrees about version of symbol unregister_sysctl_table
<4>scsi_mod: Unknown symbol unregister_sysctl_table, st_info == 0x1
<4>scsi_mod: disagrees about version of symbol proc_dointvec
<4>scsi_mod: Unknown symbol proc_dointvec, st_info == 0x1
<4>scsi_mod: disagrees about version of symbol register_sysctl_table
<4>scsi_mod: Unknown symbol register_sysctl_table, st_info == 0x1
<7>load_module: err 0xfffffffe (dont worry)
<4>sd_mod: Unknown symbol scsi_device_get, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_wait_req, st_info == 0x1
<4>sd_mod: Unknown symbol scsicam_bios_param, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_block_when_processing_errors, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_register_driver, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_ioctl, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_device_put, st_info == 0x1
<4>sd_mod: Unknown symbol __scsi_mode_sense, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_logging_level, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_release_request, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_allocate_request, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_io_completion, st_info == 0x1
<4>sd_mod: Unknown symbol print_sense, st_info == 0x1
<4>sd_mod: Unknown symbol print_req_sense, st_info == 0x1
<4>sd_mod: Unknown symbol scsi_set_medium_removal, st_info == 0x1
<7>load_module: err 0xfffffffe (dont worry)
Kernel logging (ksyslog) stopped.
Kernel log daemon terminating.



Das habe ich aus der /var/log/boot.msg gezogen

Kann mir wer sagen was ich noch falsch mache ?

musketaquid
04.10.06, 17:58
@Rain maker

"insmod" will IIRC den Modulnamen samt Pfad und mit ".ko", während modprobe nur mit dem entsprechenden Modulnamen ohne das ".ko" aufgerufen wird und sich auf eine Art kleine "Datenbank" der verfügbaren Module stützt.

Das stimmt. Danke für die gute Erklärung.:)