![]() |
So nachdem ich derzeit zwei aktuelle Linux Systeme als Proxy und Backup-Firewall Systeme konfigurieren muss und dabei auf meinem Debian System den aktuellsten Kernel haben will, dachte ich mir, ich versuch es mal mit einer richtigen Kernel Installation, nach Debian Art. Bisher habe ich das ganze eigentlich immer in selbst Arbeit mit kopieren des Kernels gemacht. Da ich in diesem Fall aber sogar zwei identische Systeme habe, hab ich den Vorteil, dass ich das komplette deb Package auf den zweiten rüber schieben kann und mit einem verträumten dpkg -i alles schon geschehen ist
Auch wenn es zu dem Thema schon einiges gibt. Ich mag es quick und dirty und vor allem soll die Befehlabfolge funktionieren, darum folgt jetzt das kurze HowToAls Basisverzeichnis wähle ich eigentlich immer /usr/src. Wer das ganze also wo anders macht muss entsprechend abändern.
Vorab sollte man erstmal sicherstellen, dass man die notwendigen Debian Pakete installiert hat:
- kernel-package
- debhelper
- dpkg-dev
- libncurses5-dev
Am einfachsten geschieht dieses mit einem:
aptitude install kernel-package debhelper dpkg-dev libncurses5-dev
Wir beginnen mit den Sourcen, zum Zeitpunkt der Erstellung war die aktuellste Stable die 2.6.18.2.
cd /usr/usr
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.2.tar.bz2
tar xfj linux-2.6.18.2.tar.bz2
Da ich immer lieber direkt im Verzeichnis linux arbeite, noch ein schnelles.
ln -s linux-2.6.18.2 linux
cd /usr/src/linux
Da wir ja nicht von 0 anfangen wollen, nehmen wir am besten die originale Konfiguration des Debian Kernels und kopieren sie.
cp /boot/config-2.4.27-3-386 /usr/src/linux/.config
Nun überlasse ich euch die Wahl, ob ihr erst einen
make oldconfig
macht und dadurch einmal alle neuen Einträge durchgeht, die noch nicht in der Config enthalten sind. Oder ob ich gleich mit
make menuconfig
in die Konfiguration des Kernels geht. Da unter Linux das initrd standardmäßig als cramfs gepackt wird, wofür ein Kernel Patch notwendig ist. Verzichte ich auf die Erstellung eines initrd. Ich berücksichtige also bei der Komponentenauswahl immer, das alle zum booten notwendigen Module fest in den Kernel einkompiliert sind. Wenn ihr so vorgehen wollt wie ich, solltet ihr das also auch tun.
Nachdem die Konfiguration dann vollständig ist wird der Kernel backen wir uns einen Kernel mit folgendem Kommando:
make-kpkg kernel_image
wer möchte kann hier noch Argumente anhängen, um den z.B. die Subversion des Kernel Namens noch anzupassen. Dieses geschieht mit:
–append-to-version meinversionsname
Um das deb Packet noch mit einer spezifischen Nummer zu versehen. Kann auch noch folgendes Argument angehängt werden:
–revision meinkernel1.0
Nun kommt ein langes “make Kaffeepause” ihr habt jetzt erstmal gut Zeit bis der Kernel kompiliert wurde. Wer genau wissen will, wie lange es dauert, kann mit einem voran gesetzten time beim make-kpkg danach sehen wie lange es gedauert hat um evlt. auch für weitere Kernel Compiles genauere Zeitangaben zu haben. In diesem Falls also time make-kpkg kernel_image.
Nachdem der Kernel nun gebacken wurde, müssen wir ein Verzeichnis nach unten gehen, da das Kernel Package standardmäßig unter /usr/src abgelegt wurde. Hier solltet ihr nun eurer Kernel Packe finden welches ihr mit
dpkg -i meinkerpackage.dev
installieren könnt. Debian entpackt nun den Kernel und passt auch gleich die Einträge zum Start in grub oder lilo an. Nun sollte nach einem reboot der Maschine der neu Kernel Hallo sagen. Soltle eine Kernel Panic zum vorschein kommen, keine Angst Debian lässt den alten Kernel auch drin, so könnt ihr diesen im Startmenü nochmal booten und erneut kompilieren. Meistens fehlt dann ein fest einkompilierter Treiber fürs Filesystem eurer Bootpartition. Falls ihr Anmerkungen oder Fragen zu dem HowTo habt, freu ich mich über einen Kommentar.
- A2DP Bluetooth Stereo Audio auf XDA mini S
- Adobe Photoshop CS3 auf Windows Server 2003 installieren
- Dynamischen Datenträger in Basisdatenträger konvertieren/umwandeln ohne Volumes zu löschen
- Mit ASP Windows Benutzer Daten über Windows Kennung (UserID) aus Active Directory/LDAP lesen
- MDAC 2.8 unter Windows XP mit SP2 neu installieren / reparieren
Kommentare bisher »
Hinterlasse einen Kommentar
|















Robert Redl sagt
am 2007-02-17 um 11.04 pm
Ich konnte noch keinen VMWare Server für Virtualisierung und erleichtertes Backup, verbessertes Monitoring installieren, weil auf den meisten Standard-images von Hosting Providern die Kernel-Headers fehlen, oder ein nachträglich installierter gcc Compiler eine andere Version hat, als der mit dem das Image erstellt wurde.
Da ich nur gemietete LinuxServer in entfernten Rechenzentrum verwende, würde ich mich über einen Tipp freuen worauf ich achten muss, wenn ich Debian remote neu kompilieren will, als Basis aber das Image vom Hoster läuft, bzw. wenn ich keine genaue Kenntnis von der dort verwendeten Hardware habe? War da schon mal in den debootstrap Abgründen, bin aber über erste Gehversuche nicht so recht weitergekommen denn richtigen ‘Weg’ zu finden.
Würden eventuell externe Tools auf einem zweiten LinuxServer helfen, wie z.B. http://nocmonkey.psoft.net/ ?
bof sagt
am 2007-02-18 um 12.32 am
Remote einen Kernel zu compilen. Aber eigentlicht auch nichts dramatisches.
Wie schon in dieser kurzen Anleitung beschrieben, solltest du als Basis die Config von dem derzeit laufenden Kernel nehmen. Wenn du dann alle entsprechenden Module mit drin hast (ich nehme sie lieber immer fest mit rein und arbeite ohne initrd) sollte eigentich alles an Hardware laufen, läuft ja jetzt schließlich auch.
Was ich mal hatte auf Debian war das die SATA Platten beim Umstieg 2.4er auf 2.6er Kernel anders angesprochen wurden, was dann natürlich beim mounten des root devices prompt auf die Nase fiel. Aber wenn du den alten Kernel in grub bzw. lilo drin lässt kannst du ja zu Not auch nochmal jemandem im RZ bemühren, der einmal manuell den alten Kernel wieder startet. Oder du nutzt dazu halt ein Remote Tool wie nocmonkey, kann sicherlich auch nicht schaden. Mit nocmonky speziell hab ich jetzt aber noch keine Erfahrung, für unsere Siemens Server in der Firma haben wir auch so ein Terminal Tool um Remote auf der Hauptkonsole und sogar im BIOS zu arbeiten.
Ansonsten einfach mal kompilieren… so lang du nicht neu bootest bzw. den neuen Kernel nicht auf Standard hast kann dir ja nichts passieren.
Jentec sagt
am 2007-03-12 um 7.54 am
tjo soweit so gut nur ist eine kleine lücke die mich schon nervt
ich hab nach den kernel compilern eine image so dem zu folge muss ich ja rebooten um den kernel zu laden und dann ?
ich hab keine ip drinn etc kein root passwort kein nix wie soll ich dann auf den neuen kernel kommen oder lädt der das auto rein beim boot was im altem kernel war ?
HILFE
weil bei den problem mit vmware bin ich auch
hab mir halt kernel header von einer anderen kernel version besorgt und die install nun hab ich den kernel installed nur mag nich rebooten aus diesem grund
tjo soweit sogut
achja wenn ich einem ausem rz zu rechner schicken lasse kosten das schon pauschal 39euro wenn da was länger dauert dann halt mehr ….
gruß Jentec
bof sagt
am 2007-03-12 um 11.37 am
Hi Jentec, Einstellung von IP und Root Passwort haben nichts mit dem Kernel zu tun. Diese Sachen stehen in Konfigrationsdateien bzw. halt passwd und shadow. Wichtig ist nur das die richtigen Treiber für Partitionen und Netzwerkkarte etc. im Kernel hinterlegt sind. Denn wenn der Kernel natürlich die Partition nicht mounten kann auf der die Config-Dateien liegen, bzw. keinen Treiber für die NW-Karte hat wirst du ihn auch nicht erreichen da es schon beim booten nen “panischen Kernel” geben wird
Wenn aber alle Treiber wie im aktuellen Kernel hinterlegt sind, sollte das System nach dem reboot genau so hallo sagen wie du es runter gefahren hast.