Arrancar un kernel de Linux recién compilado

Arrancar un kernel de Linux recién compilado

Empecé a leer el libro Controladores esenciales de dispositivos Linux. Estoy siguiendo el proceso para compilar e iniciar un nuevo kernel. Sin embargo, no puedo iniciar el kernel recién compilado: selecciono el nuevo kernel en grub y luego... nada... la pantalla permanece igual.

Estos son los pasos que estoy siguiendo, como se describe en el libro (estoy usando el kernel 2.6.24 ya que en eso se basa el libro):

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

El libro dice que:

Es posible que deba alertar a su gestor de arranque sobre la llegada de la nueva imagen de arranque. Si está utilizando el gestor de arranque GRUB, lo resuelve automáticamente.

Bueno, en mi caso no lo resolvió automáticamente ya que no había ninguna opción para seleccionar este kernel en GRUB. Entonces lo hice manualmente escribiendo update-grub en la terminal. Y esto tampoco funcionó. Sin embargo, una vez que cambié el nombre del archivo de vmlinuz a vmlinuz-2.6.24 y escribí update-grub, lo recogió. Entonces, en la página 11 del libro parece que ya quedan varias cosas fuera.

El libro dice que luego reiniciemos la máquina.

De todos modos, ahora puedo seleccionar este kernel en GRUB pero, como dije anteriormente, no arranca correctamente, la pantalla simplemente se queda en blanco y nunca cambia. Entonces ¿me estoy perdiendo algo? He seguido exactamente las instrucciones del libro. Estoy buscando gastar 50 € en este libro y ahora no puedo pasar de la página 11 debido a este problema.

¿Supongo que el hecho de que esté usando Ubuntu en VirtualBox no es un problema? Simplemente entro en grub durante el arranque de la máquina virtual Ubuntu y luego selecciono el kernel recién compilado, no veo cómo eso podría ser un problema.

Respuesta1

Ubuntu tiene un script importado de Debian que realiza la instalación por usted. Después de compilar el kernel, simplemente ejecútelo sudo make modules_install instally su kernel se instalará correctamente.

Edición posterior:Aquíes el script que utilizan Ubuntu y Debian. El Makefile del kernel lo llama automáticamente cuando ejecuta los comandos de instalación anteriores y realiza la instalación específica de la distribución.

Respuesta2

Su archivo grub.conf debería tener una entrada similar a esta

title My Linux Kernel
root (hd0,0)
kernel /boot/gentoo-kernel root=/dev/sda1

su kernel de Ubuntu podría tener algo como

initrd /boot/initrd.img

No debería necesitar esto al compilar un kernel en su hardware. Esto podría estar causando su problema.

Deberías comentarme tu archivo grub.conf y lo echaré un vistazo. de lo contrario, su configuración puede ser la culpable.

Es posible que el kernel anterior tampoco tenga los controladores necesarios para el hardware más nuevo.

Un sistema Ubuntu más nuevo no volverá a la versión anterior del kernel sin muchos problemas.

puede probar con un ubuntu anterior que ejecute una versión cercana a esa versión del kernel o la versión más nueva del kernel de kernel.org.

Respuesta3

Cada distribución de Linux tiene su propio mecanismo y política sobre la implementación de paquetes. Esto es lo mismo con Kernel. La mayoría de las distribuciones ocultan el proceso de compilación con sus herramientas, que en su mayoría proporcionan paquetes binarios.

Si desea compilar un kernel personalizado en una distribución de Linux específica, debe seguir este instructivo de distribución sobre cómo hacerlo a su manera sin dañar su sistema.

Ubuntu tiene su forma específica, lo mismo para Achlinux, lo mismo para Redhat o Gentoo.

Entonces, para Ubuntu, siga la documentación aquí.https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

información relacionada