Ich habe angefangen, das Buch Essential Linux Device Drivers zu lesen. Ich verfolge den Prozess zum Kompilieren und Booten eines neuen Kernels. Ich kann jedoch nicht in den neu kompilierten Kernel booten - ich wähle den neuen Kernel in grub aus und dann ... nichts ... der Bildschirm bleibt einfach gleich.
Hier sind die Schritte, die ich unternehme, wie im Buch beschrieben (ich verwende Kernel 2.6.24, da das Buch darauf basiert):
cd /usr/src/linux-2.6.24 # the base dir of the kernel I downloaded
make clean
cp arch/x86/configs/i386_defconfig .config
make bzImage
cp arch/x86/boot/bzImage /boot/vmlinuz
Das Buch sagt, dass:
Möglicherweise müssen Sie Ihren Bootloader über das Eintreffen des neuen Boot-Images informieren. Wenn Sie den GRUB-Bootloader verwenden, wird dies automatisch ermittelt.
Nun, es wurde in meinem Fall nicht automatisch herausgefunden, da es keine Option gab, diesen Kernel in GRUB auszuwählen. Also habe ich es manuell gemacht, indem ich update-grub in das Terminal eingegeben habe. Und das hat auch nicht funktioniert. Sobald ich jedoch den Dateinamen von vmlinuz in vmlinuz-2.6.24 geändert und update-grub eingegeben habe, wurde er aufgenommen. Auf Seite 11 des Buches scheinen also bereits mehrere Dinge ausgelassen worden zu sein.
Das Buch sagt, dass der Computer dann neu gestartet werden soll.
Wie auch immer, ich kann diesen Kernel jetzt in GRUB auswählen, aber wie ich oben sagte, startet er nicht richtig, der Bildschirm wird einfach leer und ändert sich nie. Vermisse ich also etwas? Ich habe die Anweisungen im Buch genau befolgt. Ich habe 50 € für dieses Buch ausgegeben und kann jetzt wegen dieses Problems nicht über Seite 11 hinausgehen.
Ich nehme an, dass die Tatsache, dass ich Ubuntu auf VirtualBox verwende, kein Problem ist? Ich gehe einfach beim Booten der virtuellen Maschine Ubuntu in Grub und wähle dann den neu kompilierten Kernel aus. Ich kann nicht sehen, wie das ein Problem sein könnte.
Antworten:
Ubuntu hat ein aus Debian importiertes Skript, das die Installation für Sie durchführt. Nach dem Kompilieren des Kernels einfach ausführen
sudo make modules_install install
und Ihr Kernel wird korrekt installiert.Später bearbeiten: Hier ist das Skript, das Ubuntu und Debian verwenden. Es wird vom Kernel-Makefile automatisch aufgerufen, wenn Sie die oben genannten Installationsbefehle ausführen und die distro-spezifische Installation durchführen.
quelle
Ihre grub.conf-Datei sollte den Eintrag similer dazu haben
Ihr Ubuntu-Kernel könnte so etwas haben
Sie sollten dies nicht benötigen, wenn Sie einen Kernel auf Ihrer Hardware kompilieren. Dies könnte Ihr Problem verursachen.
Sie sollten mir Ihre grub.conf-Datei kommentieren und ich werde sie mir ansehen. Andernfalls kann Ihre Konfiguration schuld sein.
Der ältere Kernel verfügt möglicherweise auch nicht über die Treiber, die Sie für neuere Hardware benötigen.
Ein neueres Ubuntu-System wird nicht ohne Probleme zu dem alten einer Kernel-Version zurückkehren.
Sie könnten ein älteres Ubuntu ausprobieren, das eine Version in der Nähe dieser Kernel-Version oder die neueste Kernel-Version von kernel.org ausführt.
quelle
Jede Linux-Distribution hat ihren eigenen Mechanismus und ihre eigenen Richtlinien für die Paketbereitstellung. Dies gilt auch für den Kernel. Die meisten Distributionen verbergen den Kompilierungsprozess mit ihren Tools, die hauptsächlich Binärpakete bereitstellen.
Wenn Sie einen benutzerdefinierten Kernel auf einer bestimmten Linux-Distribution kompilieren möchten, müssen Sie diese Verteilungsanleitung befolgen, um zu erfahren, wie Sie dies tun, ohne Ihr System zu beschädigen.
Ubuntu hat seine spezifische Art, dasselbe für Achlinux, dasselbe für Redhat oder Gentoo.
Folgen Sie für Ubuntu der Dokumentation hier https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
quelle