Compiling your kernel during CRUX Linux 2.7 (i686) installation


Some people seem to have problems booting their freshly installed CRUX system. I suspect this is caused by some Linux kernel misconfiguration, so here are some pointers.

I assume you followed the official installation guide here http://crux.nu/Main/Handbook2-7#ntoc9

When comes the kernel compilation phase however, no detail is given (Crux assumes you know how to do that)

Everything can be tweaked, but the goal here is to obtain a working kernel🙂


Let’s go :

# cd /usr/src/linux*

First of all let’s clean everything just in case

# make mrproper

Generate a default kernel configuration file (.config) for x86 systems

# make i386_defconfig

Then

# make menuconfig

General setup

Everything can be let as it is. For a lighter/faster kernel, you might want to disable Auditing/Profiling/Kprobes.

Bus options (PCI etc.)

If your computer is not a laptop, you might want to disable PCCard support.

Networking support

Disable Amateur Radio support (unless you need it)
If you know you will not be using Wifi at all, you can disable it. Otherwise, build it as Modules.
Same for RF switch subsystem support.

Device Drivers

The goal is to remove anything you don’t need (when in doubt, don’t remove🙂, and build the rest as Modules.

Sound card support > Advanced Linux Sound Architecture > PCI sound devices

Select your sound card as a module. In doubt, include the most common devices (Intel HD Audio, Intel/Sis/nVidia/AMD/Ali AC97, etc)

File systems

Since we are using a standard kernel with no initramfs ( https://duckduckgo.com/?q=initramfs ), we MUST include support for the filesystem we are using for the root filesystem.
If no support at all, or if it is built as a module, the kernel will not be able to mount the root fs! (hence the famous “unable to sync VFS” kernel message)

Here my example with EXT2/3 and 4 enabled directly in the kernel (other fs are disabled, adapt to your system)

You might want to disable quota support.

Kernel hacking

I personally choose to disable Kernel debugging (and everything concerning tracing/debugging).
You’ll want to stay with the defaults if you’re encountering bugs with your system.

Security options

Again I disable everything here🙂
Read more about kernel security : https://secure.wikimedia.org/wikipedia/en/wiki/Security-Enhanced_Linux

Exit configuration (save it!)

Ok, we’re done with configuration, now let’s compile

# make all && make modules_install
# cp arch/x86/boot/bzImage /boot/vmlinuz
# cp System.map /boot

Be sure to properly setup the bootloader (lilo here)
# nano /etc/lilo.conf

mine looks like that :

#
# /etc/lilo.conf: lilo(8) configuration, see lilo.conf(5)
#

lba32
compact
install=text
boot=/dev/sda
default=CRUX
image=/boot/vmlinuz
label=CRUX
root=/dev/sda1
read-only
append=””

# End of file

then run
# lilo

Now reboot your system (and cross your fingers😀 )

TIPS :

To see all kernel compilation possibilities
# make help |more

12 thoughts on “Compiling your kernel during CRUX Linux 2.7 (i686) installation

  1. Pingback: A fast and lightweight Linux desktop with CRUX Linux 2.7 (i686) « Agent Oss

    • I guess you have to download the correct xorg drivers for your nvidia card, from nvidia.com, then install them and configure your xorg.conf.

      Thanks for the CruxEx website link , interesting.

  2. Thanks for this information. Because of it, I was finally able to compile and boot the crux kernel I built. X is not working right, but I can work on that.

    Thanks,

  3. Pingback: Episode 035 – Hoedown : Sunday Morning Linux Review

  4. Pingback: Installation und erste Schritte mit CRUX « gambaru.de

  5. I have not been happy to try to install this distro CRUX: follow step by step information but still gives the same error: kernel panic … VFS unable to mount roof fs on unnown block (8,2)!?

    • Please boot with another LiveCD, mount your CRUX rootfs and paste your kernel configuration (/usr/src/linux-xxxxx/.config), your /etc/lilo.conf and /etc/fstab to pastebin.com

  6. Pingback: How To Compile The Linux Kernel | Cow-Computing

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s