LinuxForum.Fans
Тема

Kernel compiling

Автор: Peter 7 сообщений 3563 просмотров
#236221

Здравствуйте!

Спрашиваю здесь, т.к. компилировал командой

text
make-kpkg --initrd --bzimage --revision 3 kernel_image

До сих пор проблем не было, сегодня 1-й раз скомпилировал ядро после замены MB.
1) при установке пакета командой "dpkg -i" сообщения
[console]
Selecting previously unselected package linux-image-3.2.4.
(Reading database ... 925131 files and directories currently installed.)
Unpacking linux-image-3.2.4 (from linux-image-3.2.4_3_amd64.deb) ...
Done.
Setting up linux-image-3.2.4 (3) ...
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 3.2.4 /boot/vmlinuz-3.2.4
dkms.conf: Error! No 'BUILT_MODULE_NAME' directive specified for record #0.
Error! Bad conf file.
File:
does not represent a valid dkms.conf file.
Error! Bad return status for module build on kernel: 3.2.4 (x86_64)
Consult /var/lib/dkms/blcr/0.8.2/build/make.log for more information.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.4 /boot/vmlinuz-3.2.4
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.2.4 /boot/vmlinuz-3.2.4
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.2.4 /boot/vmlinuz-3.2.4
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.2.4 /boot/vmlinuz-3.2.4
Generating grub.cfg ...
cat: /boot/grub/video.lst: No such file or directory
Found linux image: /boot/vmlinuz-3.2.4
Found linux image: /boot/vmlinuz-3.2.0-1-amd64
Found initrd image: /boot/initrd.img-3.2.0-1-amd64
Found iPXE image: /boot/ipxe.lkrn
Found memtest86+ image: /boot/memtest86+.bin
Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
grep: input file `/boot/grub/grub.cfg.new' is also the output
done
[/console]
Там предлагается искать причину в ../make.log, вот его последние строки:
[console]
configure: error: --with-linux argument '3.2.4' is neither a kernel version string nor a full path
make[1]: *** [/var/lib/dkms/blcr/0.8.2/build/config-stamp] Error 1
make: *** [_module_/var/lib/dkms/blcr/0.8.2/build] Error 2
make: Leaving directory `/usr/src/linux-source-3.2'
[/console]
Ядро установилось, а при выполнении команды

text
update-initramfs -c -k 3.24

были сообщения
[console]
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169
[/console]
Ядро не загружается, при его выборе возникает чёрный экран с мигающим курсором
и больше ничего не происходит.
Раньше у меня такого случая не было, м.б., кто-нибудь сможет объяснить, в чём приина и что делать?

Пётр.

#236336

Я ещё раз скомпилировал ядро, включив отключённую перед предидущим компилированием
поддержку процессоров Intel и Centaur, а у меня AMD, но ничего не изменилось.
Тогда я установил linux-source-3.2.6, а был 3.2.4, взял из /boot/ config для дистрибутивного
ядра, по "make oldconfig" вопросов не было, затем, как обычно, "make menuconfig", внёс
изменения под свой случай, по make-kpkg построился пакет, при его установке были те же
самые сообщения об ошибках, но ядро успешно загрузилось.

Однако ядро, скомпилированное до замены платы из linux-source-3.2.4, тоже нормально
загружалось. Как много загадочного в природе!

Пётр.

#236341

Peter, объясни тайный смысл компиляции ядер в Debian??? Хочешь компиляций - Gentoo есть, где весь этот процесс продуман до основания, в Debian же это делается жутко неудобно, и эффекта не добъешся никакого собрав _только_ ядро, как бы остальные пакеты все равно бинарные и никакой оптимизации под твое железо нет.
..
Бестолковым делом занимаешься.

#236346
newzenon написал:
Peter, объясни тайный смысл компиляции ядер в Debian??? Хочешь компиляций - Gentoo есть, где весь этот процесс продуман до основания, в Debian же это делается жутко неудобно, и эффекта не добъешся никакого собрав _только_ ядро, как бы остальные пакеты все равно бинарные и никакой оптимизации под твое железо нет.
..
Бестолковым делом занимаешься.

А я стал это делать сразу же, как только впервые установил Linux, это было в апреле 1999-го.
Debian установил года три назад, а до этого были redhat based.

В Debian это делается проще, чем в redhat based - одной командой, а смысл в во включении
нужных опций - поддержки своего CPU, выбора HZ и других и отключении некоторых
ненужных.

Пётр.

#239174

Peter, у меня та же проблема (но, правда, я не собирал ядро).

Выполняется /etc/kernel/header_postinst.d/dkms, который пытается пересобрать blcr.
Точно такие же логи при сборке blcr:

text
configure: error: --with-linux argument '3.2.0-2-686-pae' is neither a kernel version string nor a full path
make[3]: *** [/var/lib/dkms/blcr/0.8.2/build/config-stamp] Ошибка 1
make[2]: *** [_module_/var/lib/dkms/blcr/0.8.2/build] Ошибка 2
make[1]: *** [sub-make] Ошибка 2
make: *** [all] Ошибка 2
make: Leaving directory `/usr/src/linux-headers-3.2.0-2-686-pae'

Насколько я понял, скрипт /var/lib/dkms/blcr/0.8.2/source/configure (который копируется в /var/lib/dkms/blcr/0.8.2/build/configure и запускается) не может найти папку с ядром или его заголовками. Поэтому теоретически можно его пропатчить (я пытался дергать переменные в скрипте, но там очень запутанный код).

Peter, может вам удалось найти решение проблемы?

#239189
cordalace написал:
Peter, у меня та же проблема (но, правда, я не собирал ядро).

Выполняется /etc/kernel/header_postinst.d/dkms, который пытается пересобрать blcr.
Точно такие же логи при сборке blcr:

Насколько я понял, скрипт /var/lib/dkms/blcr/0.8.2/source/configure (который копируется в /var/lib/dkms/blcr/0.8.2/build/configure и запускается) не может найти папку с ядром или его заголовками. Поэтому теоретически можно его пропатчить (я пытался дергать переменные в скрипте, но там очень запутанный код).

Peter, может вам удалось найти решение проблемы?

Как я уже сказал, я взял config от дистрибутивного ядра, скомпилировал с ним и ядро успешно
установилось и загружается. Я сейчас использую драйвер radeon, dkms не вызывается, при компиляции
ядра тоже в конце не было подобных сообщений, так что помочь не могу.
Попробуйте сделать несколько ссылок на каталог с заголовками ясра или на что требуется,
с именами, которые, возможно, скрипт ожидает, но не уверен, что это поможет.

Пётр.

#239196
Peter написал:
Как я уже сказал, я взял config от дистрибутивного ядра, скомпилировал с ним и ядро успешно
установилось и загружается. Я сейчас использую драйвер radeon, dkms не вызывается, при компиляции
ядра тоже в конце не было подобных сообщений, так что помочь не могу.
Попробуйте сделать несколько ссылок на каталог с заголовками ясра или на что требуется,
с именами, которые, возможно, скрипт ожидает, но не уверен, что это поможет.

Пётр.

Хорошо, пошаманю еще.
В любом случае спасибо.

Войдите или зарегистрируйтесь, чтобы ответить.