Ich bin daran interessiert, einen neuen Kernel unter Ubuntu 12.04 x86 64 Bit zu kompilieren.
Ich habe diese Wiki-Seite gefunden, die im Grunde genommen ein Spiegel für diesen Blog ist, und es gibt viele Schritte ( git usw.), die mir nutzlos erscheinen.
In früheren Releases / Distributionen habe ich eine .config
Datei erstellt und Makefile
bei Bedarf eine Datei geändert. Dann einfach ausgeführt make
und fertig.
Gibt es eine einfache Möglichkeit, dies unter Ubuntu zu tun?
Antworten:
1.
apt-get source
Laden Sie mit die Ubuntu-Version des Kernels heruntergibt einen Ordner an, der zum Beispiel enthält:
Das fette Diff enthält alle Ubuntu / Debian-Anpassungen.
2. Um einen eigenen Aktienkernel zu erstellen
.config
, verwenden Sie die "altmodische" Debian-make-kpkg
MethodeDies ist die alternative altmodische Methode, die im Wiki beschrieben wird:
Wenn Sie zum ersten Mal einen Kernel kompilieren:
Dann
cd
in das Quellverzeichnis (hier,linux-3.2.0
) und entweder ausführenmake oldconfig
, um eine.config
Datei mit der Konfiguration Ihres laufenden Kernels zu erstellen , oder einen dritten Teil.config
in dieses Verzeichnis kopieren .Abhängig davon, ob Sie eine Text- oder eine Grafikkonfiguration wünschen, installieren Sie:
(Text)
(Grafisch)
Und dann renne:
(Text)
(Grafisch)
Wenn Sie fertig sind, führen Sie einfach Folgendes aus:
Dabei
N
handelt es sich um die Anzahl der Jobs, die parallel ausgeführt werden sollen (normalerweise die Anzahl der CPUs, die Sie haben), undmy-very-own-kernel
um eine benutzerdefinierte Zeichenfolge zur Identifizierung dieses Builds.Wenn Sie fertig sind, sind das Kernel-Image und die Header-Dateien als Debs im übergeordneten Verzeichnis verfügbar. Sie können sie mit installieren
sudo dpkg -i
, wodurch auch GRUB-Einträge usw. hinzugefügt werden.quelle
linux-3.2.0
Verzeichnis gehen und ausführenpatch -p1 <../patch.diff
?apt-get source ...
hab das schon für dich gemacht!fakeroot debian/rules editconfigs
,fakeroot debian/rules clean
,fakeroot debian/rules binary
Ist die korrekte, einwandfreie Art und Weise.Hier sind die Schritte. Dieses Verfahren basiert auf nixCraft ‚s Gewusst wie: Kompilieren Linux 2.6 Kernel --Aber erheblich modernisiert.
Laden Sie den Quellcode des zu erstellenden Kernels herunter und extrahieren Sie ihn.
Sie können erhalten Upstream bei Kernel - Quellcode kernel.org . Hier wird die Version 3.16.1 (der aktuellste stabile Kernel zum Zeitpunkt des Schreibens) verwendet. Daher müssen Sie diese Befehle möglicherweise ändern, wenn Sie eine andere Version verwenden.
Kernel-Quellcode wird derzeit in bereitgestellt. teer . xz- Archive, klicken Sie also auf den Link "tar.xz" mit der gewünschten Version:
Nachdem
cd
Sie das Archiv in das Verzeichnis heruntergeladen haben, können Sie es mittar
folgendem Befehl extrahieren :Installieren Sie die erforderlichen Build-Tools und führen Sie die Kernelkonfiguration durch.
Um Ubuntus Toolchain (
gcc
,make
usw.) zu erhalten, installieren Sie das Build-Essential- Metapaket:Die
make
Zielexconfig
und bieten zwei einigermaßen benutzerfreundliche Möglichkeiten zur Konfiguration des Kernel- Inhaltsmenuconfig
.xconfig
führt ein grafisches Konfigurationsdienstprogramm aus, währendmenuconfig
es textbasiert ist (dh die Benutzeroberfläche wird vollständig in Ihrem Terminal angezeigt). Jedes erfordert eine zusätzliche Software, die nicht von build-essential bereitgestellt wird .Um grafisch zu konfigurieren , installieren Sie libqt4-dev und pkg-config und führen Sie Folgendes aus
make xconfig
:Um im Terminal zu konfigurieren , installiere
libncurses5-dev
(danke an Hannu für diese Info) und führe ausmake menuconfig
:Erstellen Sie den konfigurierten Kernel.
Führen Sie dies zuerst aus, um den Kernel zu kompilieren und Folgendes zu erstellen
vmlinuz
:vmlinuz
ist "der Kernel". Insbesondere ist es das Kernel-Image, das von GRUB oder einem anderen von Ihnen verwendeten Bootloader dekomprimiert und in den Speicher geladen wird .Erstellen Sie dann die ladbaren Kernelmodule :
Installieren Sie Ihren neu erstellten Kernel.
Vorausgesetzt, diese
make
Befehle wurden erfolgreich ausgeführt, ist es Zeit, den neuen Kernel zu installieren. Zuerst installieren Sie die Module:Dann installiere den Kernel selbst:
Damit werden
vmlinuz-3.16.1
(eine Kopie vonvmlinuz
),config-3.16.1
(eine Textdatei, in der die Kernel-Konfigurationsparameter gespeichert sind) undSystem.map-3.16.1
(die Nachschlagetabelle für Kernelsymbole ) eingefügt/boot
. Weitere Informationen finden Sie in diesem comp.os.linux.misc-Beitrag von Hadron undman installkernel
.Letzte Einrichtung, damit der Kernel gestartet und das System gebootet werden kann:
Dieser Abschnitt basiert teilweise auf Informationen in Kernel / Compile .
Da der Kernel jetzt dort ist, wo er sein muss, muss er:
einen Eintrag in der Konfiguration des Bootloaders , damit Sie diesen auswählen und von dort booten können.
ein anfängliches RAM-Dateisystem , die Umgebung, aus der der Kernel Treiber lädt und das
/
Dateisystem bereitstellt .(Wenn Sie einen alten Kernel installieren oder Ihren Kernel für die Verwendung von devfs anstelle des neueren udev konfiguriert haben , müssen oder möchten Sie möglicherweise stattdessen eine anfängliche Ramdisk einrichten . Wenn Sie wissen, dass Sie diese benötigen, lesen Sie
man initrd
.)Generieren Sie Ihre Initramfs mit
mkinitramfs
:Wenn Sie die Konfiguration des GRUB2-Bootloaders aktualisieren, der seit 9.10 in Ubuntu Standard ist, sollte der neue Kernel automatisch erkannt und eine Option zum Booten hinzugefügt werden .
Probieren Sie Ihren Kernel aus.
Jetzt können Sie einen Neustart durchführen, um Ihren neuen Kernel zu testen. Möglicherweise müssen Sie während des Startvorgangs gedrückt halten Shiftoder drücken Esc, um das GRUB-Startmenü anzuzeigen, in dem Sie zwischen den verschiedenen installierten Kerneln auswählen können.
Informationen zum Festlegen Ihres Kernels (oder eines anderen Kernels) als Standard finden Sie unter Wie ändere ich die GRUB-Startreihenfolge ?.
quelle
make menuconfig
erfordertapt get install libncurses5-dev
Die Kurzanleitung zum Erstellen eines Ubuntu- Kernels (im Gegensatz zu Vanilla) finden Sie hier: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel .
Ich werde nicht das gesamte Wiki kopieren, aber ich werde die minimalen Schritte auflisten, um die Version des Ubuntu-Kernels zu kompilieren, die Sie derzeit installiert haben. (Um die neueste Version zu erhalten, klonen Sie das Kernel-Git-Repository der kommenden Ubuntu-Version.) Getestet auf Ubuntu 16.04.
quelle