Booting a newly compiled Linux kernel

7,150

Ubuntu has a script imported from Debian which does the install for you. After compiling the kernel just run sudo make modules_install install and your kernel will be installed correctly.

Later edit: Here is the script which Ubuntu and Debian use. It is automatically called by the kernel Makefile when you issue the above install commands and does the distro specific install.

Share:
7,150
Jim_CS
Author by

Jim_CS

Updated on September 18, 2022

Comments

  • Jim_CS
    Jim_CS over 1 year

    I have started reading the book Essential Linux Device Drivers. I am following the process for compiling and booting into a new kernel. However I am unable to boot into the newly compiled kernel - I select the new kernel in grub and then ..nothing...the screen just stays the same.

    Here are the steps I am taking, as described in the book (I am using kernel 2.6.24 as that is what the book is based on):

    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
    

    The book says that:

    You might need to alert your bootloader about the arrival of the new boot image. If you are using the GRUB bootloader, it figures this out automatically.

    Well it didn't figure it out automatically in my case as there was no option to select this kernel in GRUB. So I did it manually by typing update-grub in the terminal. And this didn't work either. However once I changed the filename from vmlinuz to vmlinuz-2.6.24 and type update-grub it picked it up. So on page 11 of the book there seems to already be multiple things left out.

    The book says to then reboot the machine.

    Anyway, I am now able to select this kernel in GRUB but as I said above it doesn't boot properly, the screen just goes blank and never changes. So am I missing something? I have followed the instructions in the book exactly. I am after spending €50 on this book and now I cannot go past page 11 because of this issue.

    I take it the fact that I am using Ubuntu on VirtualBox is not an issue? I just go into grub during the boot of the virtual machine Ubuntu and then select the newly compiled kernel, I can't see how that could be an issue.

    • Mat
      Mat almost 12 years
      Following distro-specific guides is the right way to go if you don't know where you're going. wiki.ubuntu.com/KernelTeam/GitKernelBuild or help.ubuntu.com/community/Kernel/Compile for Ubuntu. It's near impossible to debug your issue for you, so many things could be wrong (esp. initramfs stuff). (This doesn't block you from reading the rest of the book, it's a "minor detail", you'll get it to work eventually, and run into much trickier problems if you actually start touching kernel code.)
    • Mat
      Mat almost 12 years
      BTW, I don't know what kernel version your Ubuntu install is running, but it might not be compatible with 2.6.24. Use at least the same version (or newer) that your distro ships.
    • Jim_CS
      Jim_CS almost 12 years
      Ok, ill have a go at compiling the current kernel. I hope I can still get some use out of that book and that I have't thrown away €50. Really want to learn about writing device drivers.
    • Mat
      Mat almost 12 years
      As I said, getting your first kernel to boot is just a detail. I don't know that book, but you shouldn't even count this "incident" against it - I'm pretty sure it's about writing device drivers, not compiling your first kernel (which the authors probably assume you're in fact familiar with prior to buying their book). Use your distro's stuff until you're familiar enough with the process to debug your setup yourself (and know which config options to use).