linux-kernelslackware

compiling the 2.6.0 kernel on slackware


out of sheer curiosity I tried compiling a 2.6.0 kernel on my slackware machine.

root@darkstar:/home/linux-2.6.0# uname -a
Linux darkstar 2.6.37.6-smp #2 SMP Sat Apr 9 23:39:07 CDT 2011 i686 Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz GenuineIntel GNU/Linux

When I try compiling I get :-

root@darkstar:/home/linux-2.6.0# make menuconfig                                                                                         
  HOSTCC  scripts/fixdep
scripts/fixdep.c: In function 'traps':
scripts/fixdep.c:359:2: warning: dereferencing type-punned pointer will break strict-aliasing rules
scripts/fixdep.c:361:4: warning: dereferencing type-punned pointer will break strict-aliasing rules
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/mconf.o
scripts/kconfig/mconf.c:91:21: error: static declaration of 'current_menu' follows non-static declaration
scripts/kconfig/lkc.h:63:21: note: previous declaration of 'current_menu' was here
make[1]: *** [scripts/kconfig/mconf.o] Error 1
make: *** [menuconfig] Error 2

Some hints on what im doing wrong? Thanks!


Solution

  • How are you doing this to start with?

    Typically, you download the latest kernel from kernel.org, copy the tarball to /usr/src, then:

     1. tar -zxvvf linux-2.6.xxxx.tar.gz
     2. ln -nsf linux-2.6.xxxx linux   # ie: Update the "/usr/src/linux" symbolic link to
                                       #   point to the new kernel source directory
     3. make menuconfig                # or make xconfig
     4. make modules                   # Build the kernel modules
     5. make modules_install           # Install the previously built modules for the
                                       #   new kernel
     6. make bzImage                   # Create the boot image
    

    At this point, DO NOT run make install. Most guides say to do this, but this is WRONG! Instead, copy the newly created bzImage file to /boot (ie: find -name bzImage /usr/src/linux, then cp to /boot), then edit your LILO configuration file (edit /etc/lilo.conf, and when done, run lilo), then reboot your system (ie: init 6 or shutdown -r now), and try out the new kernel.

    The whole point of skipping the make install step is because it overwrites/replaces your existing kernel. The steps I described above allow you to have the new kernel and your existing kernel both installed and runnable in parallel. If the new kernel is broken or your left out an important option, you can still fall back to your existing stable/working kernel without the need for a boot/recovery CD/DVD.