compiling the 2.6.0 kernel on slackware

2019-04-10 17:52发布

问题:

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!

回答1:

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.



回答2:

If I recall well i think you are missing the ncurses libraries. Those are needed to create the interface with menuconfig.

Try a to do a make xconfig from an X session and see if it works.

if that is the case then the ncurses libs are definitely missing.

check with:

ls /var/log/packages/ncurses* 

to see if installed