Al Bogner wrote:
http://www.dhaller.de/linux/multikernel.html
Dazu wechseln wir ins Verzeichnis /usr/src/linux und editieren mit unserem Lieblingseditor das sich dort befindliche Makefile:
Ich verstehe den Sinn in meinem Fall nicht ganz: [...]
Darauf hat David ja ausfuehrlich geantwortet.
[...] On Thursday 22 May 2003 20:56, Thomas Hertweck wrote:
Das haengt davon ab, ob Du einen SuSE-Kernel hast oder nicht: Ein "make cloneconfig" geht nicht, wenn Dein neuer Kernel ein Vanilla-Kernel ist. Dort muss man auf andere Weise vorgehen, wenn man eine bestehende Konfi- guration klonen will (kopieren der .config und ausfueh- ren von "make oldconfig"). Ferner musst Du selbst wis- sen, ob Du Deine Konfiguration "from scratch" starten willst, oder ob Du mit einer funktionierenden Konfigu- ration starten und dann Veraenderungen vornehmen willst.
Der augenblickliche Kernel hat die Standard-Einstellungen von SuSE 8.2. Gibt es da einen Unterschied zu "from scratch"?
Ja, Du kannst es ja einfach selbst mal ausprobieren, wenn Du schon am Rumspielen bist. Entpacke einfach mal die Kernel-Sourcen des Vanilla-Kernel und starte ein "make menuconfig" und schaue, wie es aussieht. Im Prinzip musst Du nun Punkt fuer Punkt durchgehen und ueberlegen, ob Du das Feature im Kernel brauchst oder als Modul oder gar nicht und so entsprechend auswaehlen. Das dauert eine Weile, weil Du wirklich von vorne bis hinten durchgehen musst. Oder Du klonst eben z.B. die SuSE-Konfig, die bei Dir bisher funktioniert hat. Dann hast Du eine Grundlage, und von der aus startend kannst Du nun konfigurieren. Im Prinzip musst Du nun immer noch Punkt fuer Punkt durch- gehen, hast aber bereits sinnvolle Einstellungen und kannst erst einmal Dinge abwaehlen, wo Du absolut _sicher_ bist, diese nicht zu brauchen (ISDN, Firewire, etc.). Beim Konfigurieren "from scratch" sollte man recht gut Bescheid wissen ueber die einzelnen Punkte der Konfiguration, sonst wird es wohl recht muehsam, einen funktionierenden Kernel zu basteln. Wenn Du vergisst, die Unterstuetzung fuer Dein Filesystem in den Kernel zu compilieren oder die Unter- stuetzung fuer die Console, dann wird es schon beim Booten scheitern, es kommt zu einem Kernel Panic. Wenn man von einer funktionierenden Ausgangskonfiguration startet, dann ist die Gefahr solcher Fehlkonfigurationen wohl geringer...
Ich verstehe noch nicht die Auswirkungen für einen Vanilla-Kernel von make oldconfig bzw. warum muß ich die .config kopieren?
Du kopierst eine funktionierende Konfiguration .config in das Verzeichnis der neuen Kernel-Quellen. Diese .config passt aber eventuell nicht zu den neuen Quellen, da der neue Kernel mehr oder andere Feature hat als der alte Kernel. Man muss also die Konfiguration zum Teil uebernehmen, aber auch zum Teil ergaenzen (oder manche Dinge rausschmeissen, die es nicht mehr gibt). Und genau das macht das "make oldconfig". Es liest die .config ein, vergleicht die darin enthaltene Konfiguration mit den Moeglichkeiten, die der neue Kernel bietet (siehe dazu arch/i386/config.in) und uebernimmt alles, was in beiden Kerneln identisch ist. Werden neue Features gefunden, dann wirst Du gefragt werden, ob Du das im Kernel haben willst oder als Modul oder gar nicht. Du musst dann ent- sprechend waehlen. Die neue Konfiguration wird erst ein- mal in .tmpconfig gepseichert. Am Ende des Durchgangs wird dann .config in .config.old umbenannt, und die neue Konfiguration, die geklont und ergaenzt wurde, wird von .tmpconfig in .config umbenannt. Damit hast Du nun eine auf die neuen Kernel-Sourcen passende Konfiguration. Hat die alte Konfiguration nicht funktioniert, so wird wohl auch die neue nicht funktionieren. Hat die alte aber gut funktioniert, und hast Du bei den evtl. auftretenden Fra- gen bei "make coldconfig" keine falsche Auswahl getroffen, dann sollte es Dir nun gelingen, mit "make dep clean", "make bzImage modules modules_install" einen lauffaehigen Kernel zu compilieren. Gruesse, Thomson -- Thomas Hertweck, Geophysicist Geophysical Institute, Karlsruhe University (TH)