So passen Sie Ihren Ubuntu-Kern an
Die Kernel-Anpassung ist nicht jedermanns Sache. Bitte beachten Sie, bevor Sie etwas davon versuchen, dass Ihr System beschädigt werden kann.
Es gibt eine Reihe von Gründen, aus denen Sie Ihren Kernel anpassen möchten. Möglicherweise möchten Sie Ihren Kernel auf die erforderlichen Dienste beschränken, insbesondere wenn Sie einen Server oder ein dediziertes Gerät ausführen, für das nur das Nötigste erforderlich ist. Möglicherweise müssen Sie Ihren Kernel auch mit einem Patch versehen, um Hardware zu unterstützen, die derzeit nicht von dem Kernel unterstützt wird, auf dem Sie ausgeführt werden.
In diesem Artikel wird nicht erläutert, wie Sie Ihren Kernel patchen, sondern nur den aktuellen Kernel anpassen. In einem weiteren Artikel wird beschrieben, wie Sie Ihren Kernel aktualisieren, und einige praktische Gründe, warum Sie dies tun möchten.
Um zu beginnen, müssen wir herausfinden, welche Kernel-Version wir derzeit ausführen. Wir werden den uname-Befehl dafür verwenden
$ uname -r
2.6.17-10-generisch
Nun müssen wir die Linux-Quelle für Ihren Kernel installieren. Beachten Sie, dass ich den 2.6.17-10-Kernel verwende. Die Installationszeile zeigt dies an. Für die Zwecke dieses Artikels können Sie die Kernel-Nummer für das, was Sie ausführen, ersetzen. Wir müssen auch die Curses-Bibliothek und einige andere Tools installieren, die uns beim Kompilieren helfen.
sudo apt-get install linux-source-2.6.17 Kernel-Paket libncurses5-dev fakeroot
Wenn Sie wissen möchten, wo die Linux-Quelle installiert wird, können Sie den Befehl dpkg verwenden, um Ihnen die Dateien in einem Paket mitzuteilen. Hier ist die Ausgabe auf meinem System:
$ dpkg -L Linux-Quelle-2.6.17
/.
/ usr
/ usr / src
/usr/src/linux-source-2.6.17.tar.bz2
/ usr / share
/ usr / share / doc
/usr/share/doc/linux-source-2.6.17
(getrimmt)
Wir können sehen, dass die Quelle im Verzeichnis / usr / src in einer komprimierten Datei installiert wurde.
Zur Vereinfachung versetzen wir uns in den Root-Modus, indem wir mit sudo eine neue Shell öffnen. Es gibt andere Wege, dies zu tun, aber ich bevorzuge diesen Weg.
Sudo / bin / bash
Wechseln Sie nun in das Quellverzeichnis, damit wir installieren können. Beachten Sie, dass Sie möglicherweise das Dienstprogramm bunzip installieren müssen, wenn es nicht installiert ist. (es war bei mir)
cd / usr / src
bunzip2 linux-source-2.6.17.tar.bz2
tar xvf linux-source-2.6.17.tar
ls -s linux-source-2.6.17 linux
Erstellen Sie eine Kopie Ihrer vorhandenen Kernelkonfiguration, die für den benutzerdefinierten Kompilierungsprozess verwendet werden soll. Beachten Sie, dass das Zeichen 'das Zeichen unterhalb der Tilde ~ ist
cp / boot / config-'uname -r' /usr/src/linux/.config
Jetzt starten wir das Dienstprogramm, mit dem wir den Kernel anpassen können:
cd / usr / src / linux
menuconfig machen
Gehen Sie zunächst zum Laden einer alternativen Konfigurationsdatei und laden Sie die .config-Datei. (drücken Sie einfach die Eingabetaste)
Jetzt, da wir uns im Dienstprogramm befinden, können wir die Optionen für unseren benutzerdefinierten Kernel festlegen. Die Navigation ist ziemlich einfach, an der Spitze steht eine Legende, wenn man sich verirrt. Ich entschied mich für Networking und drück die Eingabetaste, um in diese Kategorie zu gelangen.
Amateurfunk-Support? Für was ist das installiert? Sie werden am * erkennen, dass es im Kernel integriert ist.
Durch Drücken der? Schlüssel können wir die Hilfe für diesen bestimmten Artikel sehen. Hier ist die Erklärung:
Nun, ich werde das sofort deaktivieren. Warum in aller Welt ist das sowieso in meinem Kernel installiert? Ich drückte Esc, um den Hilfebildschirm zu schließen, und drückte N, um das von meinem Kernel auszuschließen.
Wenn Sie alle gewünschten Entscheidungen getroffen haben, klicken Sie auf Beenden und speichern Sie die Konfiguration, wenn Sie dazu aufgefordert werden.
Jetzt haben wir eine Konfiguration zum Kompilieren. Zuerst machen wir ein Make-Clean, nur um sicherzustellen, dass alles zum Kompilieren bereit ist.
Make-Kpkg sauber
Als nächstes kompilieren wir den Kernel. Dies dauert eine LANGE FREAKING TIME. Finden Sie also etwas Interessantes.
fakeroot make-kpkg -initrd -append-to-version = -custom kernel_image kernel_headers
Dieser Prozess erstellt zwei .deb-Dateien in / usr / src, die den Kernel enthalten. Die Datei linux-image **** ist das eigentliche Kernel-Image. Die andere Datei enthält die Datei. Sie können beide mit dpkg installieren. Die Dateinamen werden sich in Ihrem System wahrscheinlich unterscheiden.
Bitte beachten Sie, dass beim Ausführen dieser nächsten Befehle der neue Kernel als neuer Standardkernel festgelegt wird. Das könnte Dinge kaputt machen! Wenn Ihr Computer nicht startet, können Sie im GRUB-Lademenü auf Esc drücken und Ihren alten Kernel auswählen. Sie können den Kernel dann in /boot/grub/menu.lst deaktivieren oder erneut versuchen, ihn zu kompilieren.
dpkg -i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
Starten Sie jetzt Ihren Rechner neu. Wenn alles funktioniert, sollten Sie Ihren neuen benutzerdefinierten Kernel ausführen. Sie können dies mit uname überprüfen. Beachten Sie, dass die genaue Anzahl auf Ihrem Computer unterschiedlich ist.
uname -r
2.6.17.14-ubuntu1-custom
Ich plane, eine Reihe von Artikeln zur Kernel-Anpassung zu schreiben. Abonnieren Sie also den RSS-Feed für Updates.
Im Interesse der vollständigen Offenlegung habe ich dies auch aus dem Artikel bei HowtoForge gelernt, der eine großartige Website für einige sehr fortgeschrittene Tutorials zu Linux ist. Sie werden feststellen, dass viele der Schritte in diesem Artikel ähnlich sind, obwohl ich versucht habe, diesen Artikel mehr "Ubuntu" zu machen..