• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Suse Kernelmodul qla2xxx in installiertes System ..

Yoss

Newbie
Hallo,

ich habe das Problem das Kernelmodul qla2xxx in ein bestehendes System zu laden. Neuinstallation (dort wird es automatisch mit integriert) ist keine Option. Die Lösung ist wahrscheinlich ziemlich simpel, aber ich bastel da seit 2 Tagen erfolglos dran... :nosmile:

Das System ist ein aktuell gepatchtes OpenSuse 11.1 mit Xen-Kernel (2.6.27.23-0.1-xen).
Kernelsourcen und Compilerwerkzeuge sind installiert.
Der Treiber befindet sich unter /usr/src/linux-obj/x86_64/xen/drivers/scsi/qla2xxx/ und ist auch schon compiliert (qla2xxx.ko) .
Es ist ein Systemtreiber von Suse. Ein Makefile befindet sich nicht in dem Verzeichnis...

Das Modul läßt sich weder laden (modprobe qla2xxx findet das Modul nicht) noch in modules.dep integrieren (depmod -a erneuert zwar die modules.dep, aber ohne Modul qla2xxx).

Wie bekomme ich den Treiber (dauerhaft) geladen?
Was muss ich tun damit Suse beim nächsten Kernelupdate das Module mit berücksichtigt?

Die bisherigen Beiträge habe ich schon durchsucht, auch viel gefunden, aber leider nichts was zu meinem Problem passt... Auch die README.SUSE, welche den Kernelsourcen beiliegt geht immer davon aus, dass ein Makefile in dem Treiberverzeichnis damit ist....

Ich bin für jeden Tipp dankbar....


Viele Grüße

Yoss
 

josef-wien

Ultimate Guru
Yoss schrieb:
Der Treiber befindet sich unter /usr/src/linux-obj/x86_64/xen/drivers/scsi/qla2xxx/
Solange sich das Modul da befindet, wird es depmod nicht finden. Es muß sich unter /lib/modules/[Dein Kernel]/ befinden. Du kannst es zwar irgendwo im Verzeichnisbaum einreihen, sauberer ist aber, Du legst ein Verzeichnis /lib/modules/[Dein Kernel]/updates/ an und speicherst es dort.

Yoss schrieb:
Was muss ich tun damit Suse beim nächsten Kernelupdate das Module mit berücksichtigt?
Du mußt das Modul für den neuen Kernel erzeugen und dem System bekannt machen. Falls aber das Modul so gebaut ist, daß es auch mit ähnlichen Kernelversionen läuft, sollte bei der Installation eines neuen Kernel automatisch eine entsprechende Verknüpfung erstellt werden (das ATI-Modul ist so ein Beispiel).
 
OP
Y

Yoss

Newbie
Hallo,

danke für die Antworten.

@whois


hier die Ausgabe von rpm -qa| grep kernel
Code:
kernel-default-base-2.6.27.23-0.1.1
kernel-xen-extra-2.6.27.23-0.1.1
kernel-xen-base-2.6.27.23-0.1.1
kernel-default-2.6.27.23-0.1.1
kernel-default-extra-2.6.27.23-0.1.1
kernel-source-2.6.27.23-0.1.1
kernel-xen-2.6.27.23-0.1.1
linux-kernel-headers-2.6.27-2.28
kernel-syms-2.6.27.23-0.1.1

@josef-wien
Das Modul hat scheinbar Abhängigkeiten zu anderen Modulen. Hier der Abschnitt aus der modules.dep ( NICHT wie zuerst geschrieben aus der depmod.conf):

Code:
/lib/modules/2.6.27.23-0.1-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko: /lib/modules/2.6.27.23-0.1-xen/kernel/drivers/scsi/scsi_transport_fc.ko /lib/modules/2.6.27.23-0.1-xen/kernel/drivers/scsi/scsi_tgt.ko /lib/modules/2.6.27.23-0.1-xen/kernel/drivers/scsi/scsi_mod.ko

Ich habe das System inzwischen auf einer anderen Partition neu installiert. Leider ist das auf den Produktivmaschinen (wo ich den Controller einsetzen möchte) nur die allerletzte Option (wegen großen Aufwandes)...

Das Modul liegt den Kernelsourcen von Suse bei. Da es bei der Installation so simpel ist, glaube ich, dass es auch nicht so schwer sein kann, dass Modul nachträglich zu laden (und ich mich einfach nur zu dämlich anstelle ;-) ).
Eine Möglichkeit wäre auch, die Dateien aus der erfolgreichen Installation zu kopieren, aber da besteht meines Wissens das Problem der Beständigkeit bei Kernelupdates...
 

josef-wien

Ultimate Guru
Bei meinem 32 Bit-Kernel ist das Modul qla2xxx.ko im Paket kernel-pae-2.6.27.23-0.1.1 enthalten und somit im Verzeichnis /lib/modules/2.6.27.23-0.1-pae/kernel/drivers/scsi/qla2xxx/ gespeichert. Im Paket kernel-source-2.6.27.23-0.1.1 gibt es bei mir kein übersetztes Modul, aber sehr wohl eine Datei "Makefile". Warum das bei Deinem 64 Bit-Kernel anders ist, kann ich nicht sagen.

Yoss schrieb:
Das Modul hat scheinbar Abhängigkeiten zu anderen Modulen.
Das ist gerade bei Festplatten-Modulen der Normalfall. Gibt es die anderen Module bei Dir? Sind sie in /lib/modules/[Dein Kernel]/modules.dep enthalten? Ich kann das Modul problemlos laden, die abhängigen Module werden automatisch mitgeladen.

Yoss schrieb:
Hier der Abschnitt aus der depmod.conf:
Neben einigen Kommentarzeilen einschließlich dem Hinweise "Please don't edit this file" sind in meiner Datei /etc/depmod.conf die beiden Zeilen
Code:
search updates extra weak-updates built-in
include /etc/depmod.d
enthalten, das Verzeichnis /etc/depmod.d ist bei mir leer. Warum es bei Dir im Widerspruch zur "manpage" anders ist, entzieht sich meiner Kenntnis.
 
OP
Y

Yoss

Newbie
@josef-wien
Das Modul ist bei mir nur enthalten, wenn die Controllerkarte bei der Suse Installation schon gesteckt ist... Wird die Karte erst im Nachhinein dazugesteckt, fehlt das Modul.

Im Paket kernel-source-2.6.27.23-0.1.1 gibt es bei mir kein übersetztes Modul, aber sehr wohl eine Datei "Makefile".
In welchem Verzeichnis steht das Makefile bei Dir?

Der Source des Modul liegt bei mir unter /usr/src/linux-2.6.27.23-0.1-obj/x86_64/xen/drivers/scsi/qla2xxx .
Das einzige Makefile was dazu passen könnte, befindet sich unter /usr/src/linux-2.6.27.23-0.1-obj/x86_64/xen/ ...


Das ist gerade bei Festplatten-Modulen der Normalfall. Gibt es die anderen Module bei Dir? Sind sie in /lib/modules/[Dein Kernel]/modules.dep enthalten?

Sorry, Fehler meinerseits. Den Auszug, den ich gepostet habe, stammt aus der modules.dep...
Habe ich verwechselt...
 

josef-wien

Ultimate Guru
Yoss schrieb:
In welchem Verzeichnis steht das Makefile bei Dir?
Code:
ls /usr/src/linux-2.6.27.23-0.1/drivers/scsi/qla2xxx

Kconfig     qla_dbg.h     qla_fw.h    qla_inline.h  qla_mid.c   qla_settings.h
Makefile    qla_def.h     qla_gbl.h   qla_iocb.c    qla_nlnk.c  qla_sup.c
qla_attr.c  qla_devtbl.h  qla_gs.c    qla_isr.c     qla_nlnk.h  qla_version.h
qla_dbg.c   qla_dfs.c     qla_init.c  qla_mbx.c     qla_os.c
Aber das ist ja nicht Dein Problem, denn:
Yoss schrieb:
Das Modul ist bei mir nur enthalten, wenn die Controllerkarte bei der Suse Installation schon gesteckt ist... Wird die Karte erst im Nachhinein dazugesteckt, fehlt das Modul.
Ich schließe daraus, daß Dein Problem nicht nur daraus besteht, das Modul an und für sich zu laden. Du brauchst auch Hilfe, damit es beim Starten des PC geladen wird. Dazu mußt Du es in der Zeile "INITRD_MODULES" in der Datei /etc/sysconfig/kernel eintragen und danach die "initial ram disk" neu erstellen:
Code:
mkinitrd
 
OP
Y

Yoss

Newbie
ls /usr/src/linux-2.6.27.23-0.1/drivers/scsi/qla2xxx

Das war ein wichtiger Hinweis.
Ich schätze, dass ich die ganze Zeit im falschen Verzeichnis gearbeitet habe... :nosmile:
Damit sollte ich jetzt auch die Installation schaffen. Ich mach mich mal ans basteln....

Danke auch für den Tipp mit der Ramdisk. Ich benötige die LW zwar nicht zum booten, werde das aber trotzdem einbauen.

Ich teste das jetzt mal aus und setze den Thread in spätestens zwei Tagen auf [gelöst] oder melde mich wieder.
Erstmal danke an alle, die sich mit dem Problem beschäftigt haben!

Gruß
Yoss
 
OP
Y

Yoss

Newbie
Hallo,

so am Ende war es doch viel einfacher als gedacht. Um das Modul einzubunden ist es nur notwendig das Paket qlogic-firmware zu installieren und den Rechner neu zu starten. Das Modul wird dann automatisch eingebunden....
Nochmal danke für die Hilfe.

Viele Grüße

Yoss
 
Oben