Компилирование ядра 2.6.0 на slackware

Из чистого любопытства я попытался скомпилировать ядро ​​2.6.0 на своей машине Slackware.

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

Когда я пытаюсь скомпилировать, я получаю:

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

Некоторые намеки на то, что я делаю не так? Спасибо!

2 ответа

Решение

Как вы делаете это, чтобы начать с?

Обычно вы скачиваете последнее ядро ​​с сайта kernel.org, копируете tarball в /usr/src, а затем:

 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

На этом этапе НЕ запускайте make install, Большинство гидов говорят, чтобы сделать это, но это НЕПРАВИЛЬНО! Вместо этого скопируйте только что созданный файл bzImage в /boot (то есть: find -name bzImage /usr/src/linux, затем cp в /boot), затем отредактируйте файл конфигурации LILO /etc/lilo.confи когда закончите, запустите lilo), затем перезагрузите вашу систему (то есть: init 6 или же shutdown -r now) и попробуйте новое ядро.

Весь смысл пропустить make install шаг состоит в том, что он перезаписывает / заменяет существующее ядро. Шаги, которые я описал выше, позволяют установить и запустить новое ядро ​​и имеющееся ядро ​​параллельно. Если новое ядро ​​сломано или вы упустили важный вариант, вы все равно можете вернуться к существующему стабильному / рабочему ядру без необходимости загрузки / восстановления CD/DVD.

Если я хорошо помню, я думаю, что вам не хватает библиотек ncurses. Это необходимо для создания интерфейса с помощью menuconfig.

Попробуйте сделать make xconfig из сеанса X и посмотрите, работает ли он.

если это так, то ncurses libs определенно отсутствуют.

проверить с:

ls /var/log/packages/ncurses* 

чтобы увидеть, если установлен

Другие вопросы по тегам