Hallo Liste, ich bin Neuling, was das Gebiet Kernel-compiling angeht. Mein Problem ist folgendes: Ich will den Cisco-vpnclient installieren (kompilieren), das entsprechende Skript braucht aber die Header-Dateien. Jetzt hab ich mir welche gebaut, allerdings mosert vpnclient_init, dass der vpnclient für Kernel 2.4.20 kompiliert ist, der aktuelle aber 2.4.20-4GB ist. Einfaches kopieren der versions.h hilft nix. Jetzt meine eigentliche Frage: Wie kann ich in der Kernel-Konfiguration erreichen dass in den Headers 2.4.20-4GB steht? Danke im Voraus, Christof ... keep on rockin' and always remember: fun is NOT a straight line! mailto:christof@trink-und-schraub.de http://www.trink-und-schraub.de http://www.burningwheels.com http://www.schlund-net.de http://profiseller.de/shop/schlund
Hi, Christof Schlund [mailto:christof@trink-und-schraub.de] schrieb:
Jetzt meine eigentliche Frage: Wie kann ich in der Kernel-Konfiguration erreichen dass in den Headers 2.4.20-4GB steht?
Editiere das Makefile im root von den Kernelsourcen. Dort kannst Du als Extraversion "=-4GB" als Parameter angeben. Michael
Christof Schlund schrieb:
Mein Problem ist folgendes: Ich will den Cisco-vpnclient installieren (kompilieren), das entsprechende Skript braucht aber die Header-Dateien.
"Die" Header-Dateien? Es gibt tausende, was genau meinst Du hier? Die Kernel-Header?
Jetzt hab ich mir welche gebaut, allerdings mosert vpnclient_init, dass der vpnclient für Kernel 2.4.20 kompiliert ist, der aktuelle aber 2.4.20-4GB ist. Einfaches kopieren der versions.h hilft nix. Jetzt meine eigentliche Frage: Wie kann ich in der Kernel-Konfiguration erreichen dass in den Headers 2.4.20-4GB steht?
Was heisst, Du hast Dir Header-Dateien gebaut? Ich blicke da wahrlich nicht durch. Installiere die zum aktuell laufenden Kernel passenden Quellen, gehe in das Verzeichnis (das duerfte dann /usr/src/linux sein), editiere das Makefile und fuege ganz oben bei der Variablen EXTRAVERSION ein -4GB ein, mache ein "make cloneconfig" und ein "make dep", dann sollte es eigentlich gehen. Falls das nicht das ist, was Du suchst, dann musst Du Dein Problem vor allem praeziser beschreiben! Cu, Thomson -- Thomas Hertweck, Dipl.-Geophys., GPI Universitaet Karlsruhe === First they ignore you, then they laugh at you, then === === they fight you, then you win. (M. Ghandi) ===
Am Don, 2003-05-22 um 20.41 schrieb Thomas Hertweck: Hallo, sorry für die undeutliche Ausdrucksweise, aber wie gesagt, ich bin neuwbie was die ganze Kernelkompiliererei angeht. Der Tipp mit der EXTRAVERSION=-4GB war allerdings goldrichtig, ich konnte den cisco vpnclient danach problemlos installieren. Allerdings habe ich jetzt ein neues Problem mit DHCP, das gehört aber denke ich nicht mehr in diesen Thread. Danke auf jeden Fall, Christof ... keep on rockin' and always remember: fun is NOT a straight line! mailto:christof@trink-und-schraub.de http://www.trink-und-schraub.de http://www.burningwheels.com http://www.schlund-net.de http://profiseller.de/shop/schlund
Thomas Hertweck
Kernel passenden Quellen, gehe in das Verzeichnis (das duerfte dann /usr/src/linux sein), editiere das Makefile und fuege ganz oben bei der Variablen EXTRAVERSION ein -4GB ein, mache ein "make cloneconfig" und ein "make dep", dann sollte es eigentlich gehen.
Das Editieren von EXTRAVERSION ist nach einem 'make cloneconfig' nicht nötig, allerdings sollte man anschliessend mindestens ein 'make dep' ausführen. Unser Kernel-Makefile bastelt schon die richtige Version zusammen :) Philipp -- Philipp Thomas Arbeit: pthomas@suse.de Entwicklung, SuSE Linux AG Privat: philipp.thomas@t-link.de
Philipp Thomas wrote:
[...] Das Editieren von EXTRAVERSION ist nach einem 'make cloneconfig' nicht nötig, allerdings sollte man anschliessend mindestens ein 'make dep' ausführen.
Unser Kernel-Makefile bastelt schon die richtige Version zusammen :)
Ach?(tm) thertw@gpiprs4 [linux-2.4.19.SuSE]> uname -r 2.4.19-4GB thertw@gpiprs4 [linux-2.4.19.SuSE]> head -n 4 Makefile VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 19 EXTRAVERSION = thertw@gpiprs4 [linux-2.4.19.SuSE]> make cloneconfig [....] thertw@gpiprs4 [linux-2.4.19.SuSE]> head -n 4 Makefile VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 19 EXTRAVERSION = thertw@gpiprs4 [linux-2.4.19.SuSE]> Das war wohl nichts, wuerde ich mal behaupten... System ist eine SuSE 8.0. Mit einem 2.4.20.SuSE funktioniert es genau so wenig. Und IMHO ist das auch gut so, denn: Wenn ich einen eigenen Kernel compilieren und die Konfi- guration mit den SuSE-Einstellungen starten will, dann sollte da kein -4GB als Extraversion auftauchen, wenn ich ein "make cloneconfig" ausfuehre; ansonsten bekomme ich Konflikte mit dem Module-Verzeichnis, ich sollte da naemlich ein eigenes Verzeichnis benutzen und nicht das zum Standard-Kernel gehoerende Verzeichnis unter /lib/modules/`uname -r`/ verwenden. Das wuerde aber pas- sieren, wenn als Extraversion -4GB eingefuegt wuerde... Gruesse, Thomson PS: Der laufende 2.4.19-4GB ist der Update-Kernel direkt von SuSE, also kein eigener, falls diese Vermutung aufkommen sollte; die entsprechenden Quellen liegen in linux-2.4.19.SuSE und wurden frisch entpackt. -- Thomas Hertweck, Geophysicist Geophysical Institute, Karlsruhe University (TH)
Thomas Hertweck
Philipp Thomas wrote:
Ach?(tm)
Das war wohl nichts, wuerde ich mal behaupten... System ist eine SuSE 8.0. Mit einem 2.4.20.SuSE funktioniert es genau so wenig. Und IMHO ist das auch gut so, denn:
Nicht EXTRAVERSION angucken sondern KERNELRELEASE. Ich beziehe mich auf folgenden Code in linux/Makefile: #### Appendices for extraversion SMPVERSION = MEMVERSION = CPUVERSION = ifndef EXTRAVERSION # Test for SMP ifdef CONFIG_DISCONTIGMEM SMPVERSION=-NUMA else ifdef CONFIG_SMP SMPVERSION=-SMP endif endif # Test for Highmem support ifdef CONFIG_HIGHMEM4G HIGHMEMVERSION=-4GB else ifdef CONFIG_HIGHMEM64G HIGHMEMVERSION=-64GB endif endif ifdef CONFIG_MK7 CPUVERSION=-athlon endif endif # EXTRAVERSION KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(HIGHMEMVERSION)$(SMPVERSION)$(CPUVERSION)
Wenn ich einen eigenen Kernel compilieren und die Konfi- guration mit den SuSE-Einstellungen starten will, dann sollte da kein -4GB als Extraversion auftauchen,
Darum ging es doch aber gar nicht in der ursprünglichen Frage! Ich zitiere noch einmal:
Christof Schlund schrieb: Jetzt meine eigentliche Frage: Wie kann ich in der Kernel-Konfiguration erreichen dass in den Headers 2.4.20-4GB steht?
Thomas Hertweck: Installiere die zum aktuell laufenden Kernel passenden Quellen, gehe in das Verzeichnis (das duerfte dann /usr/src/linux sein), editiere das Makefile und fuege ganz oben bei der Variablen EXTRAVERSION ein -4GB ein,
Und wenn da jemand das 2.4.20-4GB haben will, braucht er EXTRAVERSION nicht zu setzen! Da reicht ein schlichtes 'make cloneconfig dep' und sowohl die Versions-Header als auch KERNELRELEASE passen. Philipp
Hallo, On Sat, 24 May 2003, Philipp Thomas wrote: [bigsnip]
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(HIGHMEMVERSION)$(SMPVERSION)$(CPUVERSION)
*oerks* ;) Das is aber nich "vanilla", oder? Vorschlag: Verwendet "-k7" statt "-athlon". Sonst wird das gar arg lang... Und uebrigens: Warum nur wenn EXTRAVERSION nicht gesetzt ist??? Ihr habt das doch schoen sauber hintendrangehaengt. Was spricht also gegen: 2.4.21-foo-4GB-SMP-athlon -dnh -- Und wer wird sich schon freiwillig der gefaehrlichen Strahlung einer offen brennenden Kernfusion aussetzen wollen. Da wartet man lieber, bis man durch ein paar Tausend Kilometer solide Abschirmung zumindest vor dem Schlimmsten geschuetzt ist. -- Alexander Schreiber
Philipp Thomas schrieb:
Thomas Hertweck
[...] Das war wohl nichts, wuerde ich mal behaupten... System ist eine SuSE 8.0. Mit einem 2.4.20.SuSE funktioniert es genau so wenig. Und IMHO ist das auch gut so, denn:
Nicht EXTRAVERSION angucken sondern KERNELRELEASE.
Na, dann sag das doch ;-) Das war aus Deiner Mail und in dem Zusammenhang nicht herauszulesen, und raten ist halt nicht immer das Beste.
Ich beziehe mich auf folgenden Code in linux/Makefile:
#### Appendices for extraversion [...] ifndef EXTRAVERSION [...] endif # EXTRAVERSION
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(HIGHMEMVERSION)$(SMPVERSION)$(CPUVERSION)
Ich finde das, aus mehreren Gruenden, ein bissl unschoen! Wie vom Vanilla-Kernel gewohnt, schaue ich (und wohl auch andere) bei EXTRAVERSION nach, wenn es um Zusaetze zum Kernel-Namen geht, und nicht irgendwo weiter unten im Makefile, wo SuSE zusaetzliche Variablen definiert. Das ist mal wieder nicht kompatibel zum Vanilla-Kernel. Wa- rum setzt SuSE nicht ihre HIGHMENVERSION etc. in der Variablen EXTRAVERSION ein? Das koennte genau so mit der If-Abfrage gemacht werden, und waere konsistent zum Vanilla-Kernel. Ferner ist das mal wieder nicht dokumen- tiert - warum wird nicht zu Beginn des Makefiles ein Kom- mentar eingefuegt, dass weiter unten zusaetzliche Variab- len fuer die Definition von KERNELRELEASE eingefuehrt werden? Die Dokumentationspolitik von SuSE beim Patchen finde ich nicht gerade gelungen. Aber das haben wir hier ja auch schon oefters diskutiert. Wenn man Vanilla-Kernel gewohnt ist, wundert man sich zunaechst schwer, wo die zusaetzlichen Angaben im Namen (Release) herkommen, wo doch die Variable EXTRAVERSION leer ist.
Wenn ich einen eigenen Kernel compilieren und die Konfi- guration mit den SuSE-Einstellungen starten will, dann sollte da kein -4GB als Extraversion auftauchen,
Darum ging es doch aber gar nicht in der ursprünglichen Frage! Ich zitiere noch einmal: [...]
Du hast Recht, primaer ging es nicht darum. IMHO spielt das aber dennoch eine grosse Rolle, weil viele ein "make cloneconfig" verwenden, um eine grundlegende Ausgangs- konfiguration fuer ihren eigenen Kernel zu schaffen. Und das fuehrt dann zwangslaeufig zu Problemen, denn es kommt zum Konflikt, wenn die Module ins gleiche Verzeichnis wie der Standard-SuSE-Kernel installiert werden.
Und wenn da jemand das 2.4.20-4GB haben will, braucht er EXTRAVERSION nicht zu setzen! Da reicht ein schlichtes 'make cloneconfig dep' und sowohl die Versions-Header als auch KERNELRELEASE passen.
ACK. Aber dummerweise sucht man eben mitunter an der fal- schen Stelle, weil die Zusaetze normalerweise in EXTRA- VERSION stehen und nicht woanders... Gruesse, Thomson -- Thomas Hertweck, Dipl.-Geophys., GPI Universitaet Karlsruhe === First they ignore you, then they laugh at you, then === === they fight you, then you win. (M. Ghandi) ===
Thomas Hertweck
Philipp Thomas schrieb: Nicht EXTRAVERSION angucken sondern KERNELRELEASE.
Na, dann sag das doch ;-)
Sorry, leichte Anzeichen von Betriebsblindheit :)
Makefile, wo SuSE zusaetzliche Variablen definiert. Das ist mal wieder nicht kompatibel zum Vanilla-Kernel.
Warum sollten wir an dieser Stelle kompatibel sein?
Warum setzt SuSE nicht ihre HIGHMENVERSION etc. in der Variablen EXTRAVERSION ein?
Und welche Variable soll dann der Benutzer verwenden, um seine eigene zu definieren?
warum wird nicht zu Beginn des Makefiles ein Kommentar eingefuegt, dass weiter unten zusaetzliche Variablen fuer die Definition von KERNELRELEASE eingefuehrt werden?
Das ist ein berechtigter Einwand, den ich mal weiter reichen werde.
Und das fuehrt dann zwangslaeufig zu Problemen, denn es kommt zum Konflikt, wenn die Module ins gleiche Verzeichnis wie der Standard-SuSE-Kernel installiert werden.
Das wäre aber auch so, wenn wir direkt EXTRAVERSION setzen würden. Philipp
Philipp Thomas schrieb:
Thomas Hertweck
[24 Mai 2003 14:29]: [...] Makefile, wo SuSE zusaetzliche Variablen definiert. Das ist mal wieder nicht kompatibel zum Vanilla-Kernel.
Warum sollten wir an dieser Stelle kompatibel sein?
Muessen muesst ihr nicht, das ist klar. Sollen, hmm, das ist sicher Geschmackssache. Jeder Distributor backt ja (inzwischen) seine eigenen Broetchen - und ich faende es da schon ganz gut, wenn es einen gewissen gemeinsamen kleinsten Nenner gaebe. Beim Vanilla-Kernel werden eben Zusaetze zum Kernel-Release in EXTRAVERSION gepackt. Wenn man das gewohnt ist, dann sucht man bei SuSE erst einmal an der voellig falschen Stelle.
Warum setzt SuSE nicht ihre HIGHMENVERSION etc. in der Variablen EXTRAVERSION ein?
Und welche Variable soll dann der Benutzer verwenden, um seine eigene zu definieren?
Na, EXTRAVERSION :-) Da kann man ja reinpacken, was man will. Im Prinzip ist das ja nur eine Frage des Ortes bzw. der Konvention. Ich kann auch jetzt eine EXTRAVERSION=-4GB definieren, das produziert dann unge- faehr das Gleiche, was auch das SuSE-Makefile auf meinem System finden wuerde, wenn ich EXTRAVERSION leer lasse (denn nur dann werden die zusaetzlichen Variablen ja gesetzt). Ich gehe aber dabei eben davon aus, dass sol- che Dinge eher vom Anwender, nicht durch einen Automa- tismus gesetzt werden sollten. Siehe dazu auch den Kommentar unten...
warum wird nicht zu Beginn des Makefiles ein Kommentar eingefuegt, dass weiter unten zusaetzliche Variablen fuer die Definition von KERNELRELEASE eingefuehrt werden?
Das ist ein berechtigter Einwand, den ich mal weiter reichen werde.
Oh, gut!
Und das fuehrt dann zwangslaeufig zu Problemen, denn es kommt zum Konflikt, wenn die Module ins gleiche Verzeichnis wie der Standard-SuSE-Kernel installiert werden.
Das wäre aber auch so, wenn wir direkt EXTRAVERSION setzen würden.
Da hast Du Recht. Ich habe auch eher gedacht, dass ein "make cloneconfig" die reine Konfiguration klont, nicht aber das komplette KERNELRELEASE (d.h. incl. Namen). Des- wegen bin ich ja auch davon ausgegangen, dass der User eben von Hand das Makefile noch editieren muss. Ich bin da wohl einem kleinen gedanklichen Irrtum aufgesessen. Gruesse, Thomson -- Thomas Hertweck, Dipl.-Geophys., GPI Universitaet Karlsruhe === First they ignore you, then they laugh at you, then === === they fight you, then you win. (M. Ghandi) ===
participants (5)
-
Christof Schlund
-
David Haller
-
Michael Jakscht
-
Philipp Thomas
-
Thomas Hertweck