Hallo Zusammen,
nach einem Firmware-Update läuft unser neuer LSI SAS MegaRAID Controller nicht mehr richtig. Ich stehe also nun vor der schweren Aufgabe das Kernel-Modul neu zu compilieren. (laut Hersteller die einzige Lösung, da das Modul im Kernel zu alt sei!) Mit Linux arbeite ich seit längerem, Kernel habe ich schon mal kompiliert, aber noch nie ein einzelnes Modul im laufenden Betrieb!
Wie gehe ich da am besten vor?
Vom Hersteller habe ich nur "Makefile", "megaraid_sas.c" und "megaraid_sas.h" sowie ein paar ".patch" files für redhat und SLES. Wir nutzen auf dem System aber Suse 10.2 64 Bit, so das ich vermutlich mit diesen nichts anfangen kann....
Das System ist zur Zeit kaum lauffähig (2GB Fehlermeldungen pro stunde in /var/log/warn)! Trotzdem würde ich es mir ungern komplett zerschiessen. Daher google ich seid stunden nach einer guten Anleitung...
Hat jemand einen Link für mich, oder ein paar hilfreiche Tips?
Brauche ich so ein .patch file? oder kann ich es selbst erstellen? Das how-To vom Hersteller (LSI) fordert explizit das richtige .patch-file zu nutzen. - An die compile optionen müsste man doch auch so kommen, oder?
Kernel-Sourcen liegen schon bereit - wir nutzen Version 2.6.18.8-0.9-default compiliert mit gcc vers. 4.1.2
Bin für jede Hilfe bzw. Tip dankbar! :-)
Gruß
der Flat-Jack
kernel modul im laufenden betrieb compilieren und austausche
-
- Posts: 36
- Joined: 2002-10-22 23:18
-
- Project Manager
- Posts: 11190
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: kernel modul im laufenden betrieb compilieren und austausche
SLES-Patch anwenden und den Anweisungen des Herstellers folgen.
Das alte Modul kannst Du dann mittels rmmod entfernen und das neue Modul mit insmod laden.
Das alte Modul kannst Du dann mittels rmmod entfernen und das neue Modul mit insmod laden.
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
-
- Posts: 36
- Joined: 2002-10-22 23:18
Re: kernel modul im laufenden betrieb compilieren und austausche
wow - Danke für die schnelle Antwort. Nach einigem hin und her (es fehlten noch ein paar .config files) komme ich jetzt aber nicht mehr weiter:
wie vom Hersteller gefordert versuche ich (nach anwenden des SLES10-Patches, der keine Fehlermeldung brachte!):
$> make -C /usr/src/linux SUBDIRS=$PWD modules
die ausgabe ist aber:
daher versuchte ich:
Warum gefällt ihm hier die -m option nicht?
Nun weiss ich nicht mehr weiter... ;-)
Hast Du vielleicht nochmal einen Tip?
Danke schon mal vorab
der Flat-Jack
wie vom Hersteller gefordert versuche ich (nach anwenden des SLES10-Patches, der keine Fehlermeldung brachte!):
$> make -C /usr/src/linux SUBDIRS=$PWD modules
die ausgabe ist aber:
Code: Select all
85:/usr/src/linux/drivers/scsi/megaraid # make -C /usr/src/linux SUBDIRS=$PWD modules
make: Entering directory `/usr/src/linux-2.6.18.8-0.9'
CC [M] /usr/src/linux/drivers/scsi/megaraid/megaraid_sas.o
Building modules, stage 2.
MODPOST
/bin/sh: scripts/mod/modpost: No such file or directory
make[1]: *** [__modpost] Error 127
make: *** [modules] Error 2
make: Leaving directory `/usr/src/linux-2.6.18.8-0.9'
Code: Select all
85:/usr/src/linux # make scripts/mod/modpost
gcc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -Werror-implicit-function-declaration -fno-strict-aliasing -fno-common -Os -mtune=generic -m64 -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks -Wno-sign-compare -funit-at-a-time -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fomit-frame-pointer -fasynchronous-unwind-tables -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -m elf_x86_64 scripts/mod/modpost.c -o scripts/mod/modpost
cc1: error: unrecognized command line option "-m"
make: *** [scripts/mod/modpost] Error 1
Nun weiss ich nicht mehr weiter... ;-)
Hast Du vielleicht nochmal einen Tip?
Danke schon mal vorab
der Flat-Jack
-
- Posts: 2138
- Joined: 2002-12-15 00:10
- Location: Bergheim
Re: kernel modul im laufenden betrieb compilieren und austausche
Versuch mal vorher in /usr/src/linux:
make prepare
bzw.
make bzlilo
im übrigen kannst du das module nicht unloaden, solange es in Benutzung ist. Also auch nicht das neue laden. Es bleibt also nur:
Neues Modul bauen
neue initrd bauen
hoffen
rebooten
make prepare
bzw.
make bzlilo
im übrigen kannst du das module nicht unloaden, solange es in Benutzung ist. Also auch nicht das neue laden. Es bleibt also nur:
Neues Modul bauen
neue initrd bauen
hoffen
rebooten
-
- Posts: 36
- Joined: 2002-10-22 23:18
Re: kernel modul im laufenden betrieb compilieren und austausche
"make scripts" in /usr/src/linux hatte gefehlt - danach liefs fehlerfrei durch!
Nach kopieren des moduls und neuem initrd sowie reboot schnurrt unser server wieder wie ein kätzchen... 300MB/sec beim plattenzugriff reicht... ;-)
Auch wenn mir der bootvorgang so lang vor kam, wie noch nie!
Vielen Dank für die tolle Hilfe!
Gruß
Flat-Jack
Nach kopieren des moduls und neuem initrd sowie reboot schnurrt unser server wieder wie ein kätzchen... 300MB/sec beim plattenzugriff reicht... ;-)
Auch wenn mir der bootvorgang so lang vor kam, wie noch nie!
Vielen Dank für die tolle Hilfe!
Gruß
Flat-Jack