компилирование ядра 2.6.0 на slackware - PullRequest
3 голосов
/ 15 января 2012

из чистого любопытства я попытался скомпилировать ядро ​​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 ]

5 голосов
/ 23 мая 2012

Как вы делаете это для начала?

Как правило, вы загружаете последнее ядро ​​с сайта 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.

1 голос
/ 07 декабря 2013

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

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

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

проверить с помощью:

ls /var/log/packages/ncurses* 

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

...