LINUX.ORG.RU

Gentoo: не получается собрать ядро.

 , ,


0

1

Всем привет!

При попытке собрать ядро на ноутбуке Lenovo X230 (загружен с live-usb, нахожусь в chroot) получаю:

# make && make modules_install
  CC      kernel/bounds.s
cc1: ошибка: заданный процессор не поддерживает набор команд x86-64
make[1]: *** [Kbuild:21: kernel/bounds.s] Ошибка 1
make: *** [Makefile:1107: prepare0] Ошибка 2

Вот что в /etc/portage/make.conf:

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=ivybridge -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CPU_FLAGS_X86="aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/usr/portage"
DISTDIR="/usr/portage/distfiles"
PKGDIR="/usr/portage/packages"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
MAKEOPTS="-j3"

GENTOO_MIRRORS="http://gentoo.bloodhost.ru/ ftp://gentoo.bloodhost.ru/ rsync://gentoo.bloodhost.ru/gentoo-distfiles http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles/"
VIDEO_CARDS="intel i915"

Вот такой процессор:

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz

Что я делаю не так?

Ответ на: комментарий от anonymous

# uname -a Linux livecd 4.14.65-gentoo #1 SMP Mon Aug 27 01:51:00 UTC 2018 x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux

dpronyaev ()
Ответ на: комментарий от Deleted

Generic-x86-64 стояло по умолчанию, поставил core2 / newer Xeon.

Теперь компиляция обрывается чуть позже:

# make && make modules_install
scripts/kconfig/conf  --syncconfig Kconfig
  CC      kernel/bounds.s
  UPD     include/generated/bounds.h
  UPD     include/generated/timeconst.h
  CC      arch/x86/kernel/asm-offsets.s
  UPD     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  DESCEND  objtool
  HOSTCC   /usr/src/linux-4.19-rc1/tools/objtool/fixdep.o
  HOSTLD   /usr/src/linux-4.19-rc1/tools/objtool/fixdep-in.o
  LINK     /usr/src/linux-4.19-rc1/tools/objtool/fixdep
  CC       /usr/src/linux-4.19-rc1/tools/objtool/exec-cmd.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/help.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/pager.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/parse-options.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/run-command.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/sigchain.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/subcmd-config.o
  LD       /usr/src/linux-4.19-rc1/tools/objtool/libsubcmd-in.o
  AR       /usr/src/linux-4.19-rc1/tools/objtool/libsubcmd.a
  GEN      /usr/src/linux-4.19-rc1/tools/objtool/arch/x86/lib/inat-tables.c
  CC       /usr/src/linux-4.19-rc1/tools/objtool/arch/x86/decode.o
  LD       /usr/src/linux-4.19-rc1/tools/objtool/arch/x86/objtool-in.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/builtin-check.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/builtin-orc.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/check.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/orc_gen.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/orc_dump.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/elf.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/special.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/objtool.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/libstring.o
  CC       /usr/src/linux-4.19-rc1/tools/objtool/str_error_r.o
  LD       /usr/src/linux-4.19-rc1/tools/objtool/objtool-in.o
  LINK     /usr/src/linux-4.19-rc1/tools/objtool/objtool
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  CC      scripts/mod/devicetable-offsets.s
  UPD     scripts/mod/devicetable-offsets.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/selinux/genheaders/genheaders
  HOSTCC  scripts/selinux/mdp/mdp
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/pnmtologo
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/extract-cert
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/main.o
  CC      init/version.o
  CC      init/do_mounts.o
  CC      init/do_mounts_initrd.o
  CC      init/do_mounts_md.o
  CC      init/initramfs.o
  CC      init/calibrate.o
  CC      init/init_task.o
  AR      init/built-in.a
  HOSTCC  usr/gen_init_cpio
  GEN     usr/initramfs_data.cpio
  AS      usr/initramfs_data.o
cc1: error: CPU you selected does not support x86-64 instruction set
make[1]: *** [scripts/Makefile.build:407: usr/initramfs_data.o] Error 1
make: *** [Makefile:1057: usr] Error 2

dpronyaev ()
Ответ на: комментарий от dpronyaev

Попробуй не RC, для начала. Если заработает - значит проблема в самом RC, RC-ядра вообще иногда не собираются без дополнительных телодвижений. Себе я этот RC еще не выкачал, завтра или вечером пробовать буду.

Deleted ()
Ответ на: комментарий от Deleted

Пробую linux-4.14.65-gentoo (из пакета sys-kernel/gentoo-sources, .config подсунул тот же, уже настроенный)

 make && make modules_install
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  DESCEND  objtool
  CHK     scripts/mod/devicetable-offsets.h
  CHK     include/generated/compile.h
  AS      usr/initramfs_data.o
cc1: error: CPU you selected does not support x86-64 instruction set
make[1]: *** [scripts/Makefile.build:429: usr/initramfs_data.o] Error 1
dpronyaev ()

Ты march нейтив поставь и посмотри что у тебя за процессор в ядре, если ядро с расширенными гентушными патчами (юз эксперементал) то там тоже нейтив архитектуру можно выбрать. У тебя компилятор не работает. Скопируй кофиг из /proc/config.gz в linux/.config потом make oldconfig с make menuconfig и так далее, ты не написал как и что собирал и где конфиг ядра брал.

anonymous ()

Кривой livecd. Кривой chroot с кривым gcc, плюс криво сгенеренный .config как следствие.
Пиши как грузился, как и из какого stage разворачивал chroot.
Универсальный совет, делай все по новой.

anonymous ()
Ответ на: комментарий от Deleted

Он вроде сказал у него стейдж amd64, откуда там этому огрызку взяться? Да и лежит тот где-то в экспериментальных сборках рядом с муслом (и это не причина не работать, ядро там обычные amd64), поддержка в компиляторе отдельно. Хотя профиль он тоже не показал.

anonymous ()
Ответ на: комментарий от anonymous

А там ядро может и 64 бит быть. А окружение 32. Мне попадался лайвдвд от генты, где надо было чтоб попасть в 64 бит окружение выбрать пункт в грабе другой, не по дефолту. Я и не говорю, что у него ядро 32, у него лайвсд упоротый, ИМХО.

Deleted ()
Ответ на: комментарий от dpronyaev

ХЗ, пробуй либо другой LiveCD, например systemrescuecd, либо проверь что у тебя нет косяков в конфиге ядра.

cd /usr/src/linux
make clean
make mrproper
make defconfig
make -j4 bzImage
anonymous ()

Для эксперимента. Сперва сохрани свой .config (если он важен). Попробуй:

make ARCH=x86_64 allnoconfig && make

anonymous ()
Ответ на: комментарий от devl547

Имелась ввиду битность, а не архитектура.

Deleted ()

Победил. После eselect profile set я не стал обновлять мир. Теперь выполнил emerge --ask --update --deep --newuse @world Взлетело с тем же конфигом.

dpronyaev ()
Ответ на: комментарий от dpronyaev

у тебя проц интел, а образ амд. И че реально полетело?

sqq ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.