Компиляция ядра Linux 3.14 останавливается без ошибок на Ubuntu 14.04

Я пытаюсь скомпилировать ядро ​​Linux 3.14 в Ubuntu 14.04. Прежде чем кто-либо укажет, я знаю, что доступны более новые стабильные версии ядра, но меня попросили установить 3.14. Итак, я написал скрипт, который распаковывает исходный tar и начинает собирать ядро. Но он останавливается на полпути без каких-либо ошибок. Я попытался поиграться с кодом, и он все равно выдает ту же ошибку каждый раз.

Фрагмент сценария:

# Prepare for compilation
make -j1 mrproper
# Set default configuration
make -j1 defconfig
# Compile the kernel image and modules
make -j1
# Install the modules
make -j1 modules_install
# Install the firmware
make -j1 firmware_install

# Install the kernel
cp -v arch/x86_64/boot/bzImage /boot/vm_linuz-3-14-systemd
# Install the map file
cp -v System.map /boot/system-map-3-14-systemd
# Backup kernel configuration file
cp -v .config /boot/config-backup-3-14

Последние несколько строк журнала:

 LD [M]  net/ipv4/netfilter/iptable_nat.ko
 LD [M]  net/ipv4/netfilter/nf_nat_ipv4.ko
 LD [M]  net/netfilter/nf_nat.ko
 LD [M]  net/netfilter/nf_nat_ftp.ko
 LD [M]  net/netfilter/nf_nat_irc.ko
 LD [M]  net/netfilter/nf_nat_sip.ko
 LD [M]  net/netfilter/xt_LOG.ko
 LD [M]  net/netfilter/xt_mark.ko
 LD [M]  net/netfilter/xt_nat.ko
 HOSTCC  arch/x86/boot/tools/build
 CPUSTR  arch/x86/boot/cpustr.h
 CC      arch/x86/boot/cpu.o
 MKPIGGY arch/x86/boot/compressed/piggy.S
 AS      arch/x86/boot/compressed/piggy.o
 LD      arch/x86/boot/compressed/vmlinux
 ZOFFSET arch/x86/boot/zoffset.h
 OBJCOPY arch/x86/boot/vmlinux.bin
 AS      arch/x86/boot/header.o
 LD      arch/x86/boot/setup.elf
 OBJCOPY arch/x86/boot/setup.bin
 BUILD   arch/x86/boot/bzImage
 Setup is 15232 bytes (padded to 15360 bytes).
 System is 5433 kB
 CRC 62b609cb
 Kernel: arch/x86/boot/bzImage is ready  (#1)

 Building modules, stage 2.
   MODPOST 11 modules
   CC      drivers/thermal/x86_pkg_temp_thermal.mod.o
   LD [M]  drivers/thermal/x86_pkg_temp_thermal.ko
   CC      net/ipv4/netfilter/ipt_MASQUERADE.mod.o
   LD [M]  net/ipv4/netfilter/ipt_MASQUERADE.ko
   CC      net/ipv4/netfilter/iptable_nat.mod.o
   LD [M]  net/ipv4/netfilter/iptable_nat.ko
   CC      net/ipv4/netfilter/nf_nat_ipv4.mod.o
   LD [M]  net/ipv4/netfilter/nf_nat_ipv4.ko
   CC      net/netfilter/nf_nat.mod.o
   LD [M]  net/netfilter/nf_nat.ko
   CC      net/netfilter/nf_nat_ftp.mod.o
   LD [M]  net/netfilter/nf_nat_ftp.ko
   CC      net/netfilter/nf_nat_irc.mod.o
   LD [M]  net/netfilter/nf_nat_irc.ko
   CC      net/netfilter/nf_nat_sip.mod.o
   LD [M]  net/netfilter/nf_nat_sip.ko
   CC      net/netfilter/xt_LOG.mod.o
   LD [M]  net/netfilter/xt_LOG.ko
   CC      net/netfilter/xt_mark.mod.o
   LD [M]  net/netfilter/xt_mark.ko
   CC      net/netfilter/xt_nat.mod.o
   LD [M]  net/netfilter/xt_nat.ko
 sh /finalize-system/linux-kernel/linux-3.14/arch/x86/boot/install.sh      3.14.21 arch/x86/boot/bzImage \
    System.map "/boot"
 Cannot find LILO.

Обновление

Я обновил свой построить журнал. На этот раз он показывает ошибку Cannot find LILO. Но я установил Grub 2 в моей системе. Тогда почему он спрашивает LILO? Вероятно, это была ошибка с самого начала, и на этот раз она показала это на экране.

1
задан 26 May 2016 в 05:46

2 ответа

После добавления ARCH=x86_64 флаг к весь make команды, все работало как очарование.

1
ответ дан 26 May 2016 в 15:46

Проблема, LILO является Загрузчиком Прежней версии, из-за которого почти никакого дистрибутива Linux больше используют его, он - отсутствие функций. В современном распределении широко используется GRUB.

Так, если Вы хотите использовать новое скомпилированное Ядро Linux в GRUB, необходимо вручную Скопировать его в каталог начальной загрузки/, потому что официальный Make-файл Ядра Linux не сделает этого для Вас.

Следующие команды сделали бы это для Вас:

sudo make headers_install INSTALL_HDR_PATH=/usr/src/linux-5.0.2
sudo cp arch/x86_64/boot/bzImage /boot/vmlinuz-5.0.2
sudo cp System.map /boot/System-5.0.2.map
sudo mkinitcpio -k 5.0.2 -c /etc/mkinitcpio.conf -g /boot/initramfs-5.0.2.img

PS: необходимо удалить старый vmlinuz и initramfs в каталоге начальной загрузки / при помощи команды комнаты, перед использованием mkinitcpio.

PS: Эта инструкция работает над Дугой Linux, поскольку я тестирую ее.

Мог любой перемещать этот вопрос стеку Linux и Unix, который является более соответствующим там.

0
ответ дан 29 September 2019 в 15:04

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

Похожие вопросы: