Пересборка ядра

сделал некоторые изменения в ядре через make menuconfig, далее:

 # cl-kernel -o

* Gentoo Linux Genkernel; Version 3.4.18<br>
* Running with options: --cachedir=/var/cache/genkernel --tempdir=/var/calculate/tmp/genkernel<br> --splash=tty1 --unionfs --all-ramdisk-modules --disklabel --no-save-config --firmware --udev --lspci<br> --kerneldir=/usr/src/linux --module-prefix=/ --loglevel=1 --makeopts=-j3 --bootdir=/boot --no-mrproper all<br>

* Kernel compiled successfully!
*
* Required Kernel Parameters:
*     real_root=/dev/$ROOT
*
*     Where $ROOT is the device node for your root partition as the
*     one specified in /etc/fstab
*
* If you require Genkernel's hardware detection features; you MUST
* tell your bootloader to use the provided INITRAMFS file. Otherwise;
* substitute the root argument for the real_root argument if you are
* not planning to use the initramfs...

* WARNING... WARNING... WARNING...
* Additional kernel cmdline arguments that *may* be required to boot properly...
* add "vga=791 splash=silent,theme:tty1 console=tty1 quiet" if you use a splash framebuffer ]
* With support for several ext* filesystems around it may be needed to
* add "rootfstype=ext3" or "rootfstype=ext4"

* Do NOT report kernel bugs as genkernel bugs unless your bug
* is about the default genkernel configuration...
*
* Make sure you have the latest ~arch genkernel before reporting bugs.

* Не удалось переименовать файлы ядра: No such file or directory

 * Не удалось подготовить загрузочную директорию

Печально… Тогда сделал:

 # mount --bind /boot /boot
 # cl-kernel -o

и все равно такая же как и выше картина.

#cat /etc/fstab

UUID=e24ef373-ccf3-4295-a54d-40599e3f607e       /       ext4    noatime,nodiratime,discard      0 2
UUID=47a542a8-1715-4f65-88e6-b06356296d63       none    swap    sw      0 0
proc            /proc           proc    defaults                0 0
shm             /dev/shm        tmpfs   nodev,nosuid,noexec     0 0
tmpfs           /tmp            tmpfs   defaults                0 0

Как мне поступить?

А что в /boot находится?

system ~ # ls -1 /boot
boot
boot.jpg
config-3.1.6-x86_64-CSS
config-3.2.14-calculate
config-3.2.14-calculate+
config-3.2.14-calculate+.old
config-3.2.14-x86_64-CSS
grub
initramfs-3.1.6-x86_64-CSS
initramfs-3.1.6-x86_64-CSS-install
initramfs-3.2.14-x86_64-CSS
initramfs-3.2.14-x86_64-CSS-install
initramfs-genkernel-x86_64-3.2.14-calculate+
initrd-e24ef373
initrd-e24ef373-install
initrd-e24ef373-install.old
initrd-e24ef373.old
kernel-genkernel-x86_64-3.2.14-calculate+
System.map-3.1.6-x86_64-CSS
System.map-3.2.14-calculate+
System.map-3.2.14-calculate+.old
System.map-3.2.14-x86_64-CSS
System.map-e24ef373
System.map-e24ef373.old
System.map-genkernel-x86_64-3.2.14-calculate+
vmlinuz-3.1.6-x86_64-CSS
vmlinuz-3.2.14-calculate+
vmlinuz-3.2.14-calculate+.old
vmlinuz-3.2.14-x86_64-CSS
vmlinuz-e24ef373
vmlinuz-e24ef373.old

Что содержат начало Makefile в /usr/src/linux?

head -6 /usr/src/linux/Makefile

Указана ли локальная версия для ядра?

grep CONFIG_LOCALVER /usr/src/linux/.config
 # head -6 /usr/src/linux/Makefile
VERSION = 3
PATCHLEVEL = 2
SUBLEVEL = 14
EXTRAVERSION = -calculate
NAME = Saber-toothed Squirrel

 # grep CONFIG_LOCALVER /usr/src/linux/.config
CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set

Вроде всё по дефоулту.

проблема где то в шаблоне, где именно, разбираться некогда (совершенно непонятно, к примеру для какой цели cl-kernel запускает genkernel, если я указал свой .config).
В итоге собрал ядро командой:

 # make modules_prepare && make && make modules && make modules_install && make install

Попробуйте очистить /boot от всех config*, vmlinux*, kernel*, initrd, initramfs* и System.map. Пакет sys-apps/file собран с USE python ?

спасибо за ответ, из /boot я также удалял вообще все ядра, конфиги и прочее, sys-apps/file собран с USE python.

В итоге скрипт прерывается с ошибкой в конце (выше я указывал с какой) - причем ядро кладет в /boot, но оно похоже собрано через генкернел. Вопрос автору скрипта cl-kernel: ядро там собирается всегда через genkernel? Просто я ожидал, что с опцией -o выполнится просто компиляция ядра с моим конфигом, без всяких genkernel’ов.

cl-kernel работает с genkernel всегда, опция -o использует для компиляции конфиг /usr/src/ядро/.config.

К ответу прилагаю патч для cl-kernel для вывода отладочной информации, его можно применить командой

patch /usr/lib/calculate-2.2/calculate-builder/pym/cl_kernel.py builder_debug.patch

попробуйте собрать ядро после применения патча, и выложить вывод 20 последних строк сборки.

builder_debug.patch (985 Bytes)