Sie sind nicht angemeldet.

1

05.12.2012, 00:08

Mehrere Kernel der selben Version

Hallo,

mich beschäftigt zur Zeit die Frage, ob es möglich ist, mehrere Kernel in unterschiedlichen Konfigurationen der selben Version parallel auf einem System zu betreiben. Der aktuelle Anwendungsfall kommt von einem Gentoo System auf einem USB-Stick (Ja, ich hab es nach Jahren endlich hinbekommen ;) ) bei dem ich
  • einen "Allround-Kernel" habe - von Fedora 17 die .config weitgehend übernommen um auf fast jedem Rechner hochzufahren
  • einen "Laptop"-Kernel für meinen T410
  • und einen "Desktop"-Kernel für meinen Desktop-Rechner
habe.

Nun wird beim Kompilieren des Kernels jedes Mal eine Funktion entweder gar nicht, als Modul oder in den Kernel eingebaut. Kann ich hier nun ohne weiteres verschiedene .config Dateien pflegen, diese bauen, nach boot kopieren und booten? Oder wird ein Modul mal so mal so gebaut und daraus folgt dann, dass einer oder mehrere Kernel nicht mehr gebootet werden können, da das Modul für den Laptop-Kernel mit der .configXYZ gebaut wurde?


Danke und schönen Abend!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »curmudgeon« (06.12.2012, 11:14)


2

05.12.2012, 06:52

AFAIK ist das möglich. Probier das doch mit irgendeinem Treiber deiner Wahl mal aus.

Bsp. PC-Speaker (pcspkr). Bau das mal als built-in, module und überhaupt nicht. Erstelle jeweils einen passenden Kernel und boote den. Und dann guck ob du was aus dem PC-Speaker kriegst:

a) built-in: lsmod sollte dabei den pcspkr *nicht* auflisten, aber du hörst den Ton.
b) module: lsmod listet den pcspkr (oder via modprobe in den kernel laden) und du hörst den Ton.
c) lsmod zeigt keinen pcspkr und du hörst keinen Ton.

Probier das doch mal!
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

3

05.12.2012, 09:31

Morgen Dyle,

das heißt also, ein

Quellcode

1
make && make modules_install
löscht dann nicht meine vorher im "Allround"-Kernel gebauten Module?

4

05.12.2012, 09:31

Wenn Du in den Konfigurationen den Parameter CONFIG_LOCALVERSION unterschiedlich setzt (zB. auf "-t410) so wird diese Zeichenkette an die Version drangehängt. Damit kannst Du problemlos die selbe Version mehrfach kompilieren und installieren. Das Module-Verzeichnis wird im og. Beispiel dann "/lib/modules/3.x.x-gentoo-t410" benannt sein und damit wird für jeden Kernel ein eigenes Module-Verzeichnis erzeugt.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

5

05.12.2012, 09:48

löscht dann nicht meine vorher im "Allround"-Kernel gebauten Module?

Nein. "make install" und hier ein module-install sollte IMHO nie und never irgendwelche Teile im Zielsystem löschen. Das wäre fatal. Und woher sollte es auch wissen, welche Module es löschen sollte und welche nicht? Bedenke: du kannst jederzeit von *irgendwoher* einen Treiber da reinstellen.

Wie bell schon angedeutet hat: du findest deine module im Verzeichnis /lib/modules/KERNEL-VERSION/ guck doch da mal rein, wenn du mal zuerst einen Treiber als Modul ebaut hast und dann nicht. Ich schätze das entsprechende *.ko wird da sein ...
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

6

05.12.2012, 09:52

Die frage war ja, dass man aus den selben Sources / aus der selben Version mehrere Kernel backt. In dem Fall würde der "make modules_install" die Module abgleichen und die aktuell nicht konfigurierte löschen. Der Ausweg ist über die LOCALVERSION. Dann sind die Module unter /lib/modules/KERNEL-VERSIONlocalversion/ und damit wird nichts überschrieben/gelöscht, wenn die "localversion" unterschiedlich ist.

Zitat

Bedenke: du kannst jederzeit von *irgendwoher* einen Treiber da reinstellen.
make modules_install installiert und löscht nur im /lib/modules/KERNEL-VERSION/kernel. Die anderen externen Module werden daher woanders installiert, zB: /lib/modules/VERSION/misc/ (vmware) oder /lib/modules/VERSION/video (nvidia).
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

7

05.12.2012, 10:56

Hab jetzt die Methode mit CONFIG_LOCALVERSION ausprobiert:


  1. alte .config nach .config-allround kopiert
  2. mit make localmodconfig einen auf die aktuell geladenen Module passenden Kernel für den t410 erstellt

bootet sauber und alles scheint beim alten zu sein.


Heute Abend probiere ich den Stick mit dem Allround-Kernel dann auf meinem EEE-Netbook zu booten. Sollte ja kein Problem sein, die Module wurden wie bell geschrieben hatte schön mit t410 benamst und die alten sind noch installiert. :)

8

06.12.2012, 11:13

Nachtrag: Hat alles geklappt - zumindest das Booten und nutzen des Systems, solange bis das Netbook beim Erstellen eines stage4 Archives so unsäglich heiß wurde, dass es sich von selbst abgeschaltet hat :rolleyes:

Aber das ist wohl ein anderes Thema, setze den Thread auf gelöst - Danke euch!