[zum HOWTO s. PS, PPS und Fussnoten] On Sat, 22 Dec 2001, Arne-Erik Martin wrote:
Am Freitag 21 Dezember 2001 04:44 schrieb Michael Raab:
installieren. Korrigiert mich bitte einer wenn ich da falsch liege. Aber neue Treiber kann man aber erst nach einem Neustart installieren. Weil sie sonst ins falsche Modulesverzeichnis kopiert
IIRC NACK. [..] "Biegst" Du den Link /usr/src/linux auf /usr/src/linux-2.4.14 um, dann wird nach /lib/modules/2.4.14 installiert ... Und es vollkommen egal welcher Kernel nun zur Zeit läuft Oder liege ich da falsch???
Du liegst fast richtig. Wichtig ist nicht, auf was /usr/src/linux zeigt, wichtig ist, welches Makefile verwendet wird. Ein (ungefaehrliches) Beispiel, wenn man weiss, wie man das menuconfig des Kernels ohne Aenderungen abbricht ;) # make -C /usr/src/linux menuconfig # make -C /usr/src/linux-2.2.20 menuconfig # make -C /usr/src/linux-2.4.16 menuconfig Bei jedem menuconfig wird ja u.a. im Dialog auch die jew. Kernel- Version angezeigt... Die eben im jew. Makefile festgelegt wird. (siehe dazu auch [1] und weiter unten) Ein (u.U. mit unangenehmen Konsequenzen behaftetes, also NICHT unbedingt nachmachen, bitte!): # make -C /usr/src/linux modules_install # make -C /usr/src/linux-2.2.20 modules_install # make -C /usr/src/linux-2.4.16 modules_install befolgt genau die gleichen Mechanismen, wie oben beim "menuconfig". Und da ein "make -C DIRECTORY <TARGET>" den gleichen Effekt hat, wie ein "cd DIRECTORY && make <TARGET>"... Es ist also _natuerlich_ relevant, auf was /usr/src/linux zeigt, _wenn man denn in dieses Verzeichnis wechselt_. Und das geschieht eben auch bei einem "make -C /usr/src/linux <TARGET>" Und wie man selbst im Makefile des Kernels nachlesen kann, werden von einem "make modules_install" die Module nicht in das Verz. des aktuell laufenden Kernels (`uname -r`) installiert, sondern in das Verzeichnis "$(MODLIB)", das wiederum als MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) definiert ist. INSTALL_MOD_PATH ist dabei wohl fast _immer_ leer, und KERNELRELEASE wird als: KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) definiert, und die hier verwendeten Variablen werden wiederum weiter oben im Makefile, genauer, direkt daruber, definiert: VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 16 EXTRAVERSION = (siehe wiederum [1]) Entscheidend ist also das verwendete Makefile! Ob via cd <VERZ> && make modules_install oder per make -C <VERZ> modules_install ist irrelevant. Die Version des aktuell laufenden Kernels spielt in beiden Faellen KEINE Rolle! Wo der laufende Kernel eine Rolle spielt, ist das dann faellige "depmod", aber das geht ueber die Optionen von depmod, und zweitens wird das (AFAIK) automatisch beim ersten booten des neuen Kernels ausgefuehrt, wobei ein explizites 'depmod -a' nach dem booten des neuen Kernels nicht schadet. Aber siehe auch hierzu [1] (ja, manchmal nervt's mich auch, so oft drauf verweisen zu "muessen" ;) -dnh PS: Ich will die Seite[1] aktualisieren, und das HOWTO ergaenzen[2], aber: "don't hold your breath"... ;) PPS: Ich denke fast, es ist an der Zeit das HOWTO zu "submitten"... Koennten sich bitte diejenigen, die [1] schon kennen (und evtl. sogar (gar erfolgreich?) befolgt haben), bitte kurz bei mir melden? Ein simples echo "OK" | mail -s "multikernel-HOWTO" david@dhalller.de bzw. echo "NOK" | mail -s "multikernel-HOWTO" david@dhalller.de reicht... (und das subject muss nicht so "eng" sein)... Wobei das "OK/NOK" bitte nur auf die "Korrektheit" bezogen ist, fuer Korrekturen/Ergaenzungen bin ich generell dankbar... Achso: In der jetzigen Form ist es _explizit_ nur als Luecken- fueller bisheriger Doku gedacht, ich bin bewusst nicht auf z.B. die initrd eingegangen. Ich setze (leider hab ich's bisher nicht explizit so erwaehnt (s. das "PS")) das "Wissen" ueber eine normale Kernel Kompilation / Installation voraus! Danke schonmal an alle! [1] http://www.dhaller.de/linux/multikernel.html [2] Und noch oefter darauf verweisen muessen??? Naja *lol* mal sehen wann und ob ich dazu komme ;) -- Deep in the human unconcious is a pervasive need for a logical universe that makes sense. But the real universe is always one step beyond logic. -- from "The Sayings of Muad'Dib" by the Princess Irulan -- from "Dune" by Frank Herbert