Linux

在 Gentoo 上編譯核心 4.14.8-gentoo-r1

  • December 28, 2017

我想在 Gentoo Linux 上編譯一個新的核心 4.14.8-gentoo-r1。eselect kernel set 2在進入目錄並在此目錄中/usr/src/linux執行之前,我使用創建了符號連結。genkernel all不幸的是,在編譯 Linux 核心 4.14.8-gentoo-r1 時,我收到了以下錯誤:

pecan@tux /usr/src/linux $ sudo genkernel all
* Gentoo Linux Genkernel; Version 3.4.52.4
* Running with options: all

* Using genkernel.conf from /etc/genkernel.conf
* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..

* Linux Kernel 4.14.8-gentoo-r1 for x86_64...
* .. with config file /usr/share/genkernel/arch/x86_64/generated-config
* kernel: --mrproper is disabled; not running 'make mrproper'.
*         >> Running oldconfig...
* kernel: --clean is disabled; not running 'make clean'.
* kernel: >> Invoking menuconfig...
*         >> Compiling 4.14.8-gentoo-r1 bzImage...
*         >> Installing firmware ('make firmware_install') due to CONFIG_FIRMWARE_IN_KERNEL != y...
* ERROR: Failed to compile the "firmware_install" target...
* 
* -- Grepping log... --
* 
*Allow for memory compaction (COMPACTION) [Y/n/?] y
*  Page migration (MIGRATION) [Y/?] y
*Enable bounce buffers (BOUNCE) [Y/n/?] y
*Enable KSM for page merging (KSM) [Y/n/?] y
*Low address space to protect from user allocation (DEFAULT_MMAP_MIN_ADDR) [4096] 4096
*Enable recovery from hardware memory errors (MEMORY_FAILURE) [Y/n/?] y
*--
*    *
*    round-robin scheduling (IP_VS_RR) [M/n/?] m
*    weighted round-robin scheduling (IP_VS_WRR) [M/n/?] m
*    least-connection scheduling (IP_VS_LC) [M/n/?] m
*    weighted least-connection scheduling (IP_VS_WLC) [M/n/?] m
*    weighted failover scheduling (IP_VS_FO) [N/m/?] n
*--
*  rj54n1cb0c support (SOC_CAMERA_RJ54N1) [N/m/?] n
*  tw9910 support (SOC_CAMERA_TW9910) [M/n/?] m
*
* drm/i915 Debugging
*
*Force GCC to throw an error instead of a warning when compiling (DRM_I915_WERROR) [N/y/?] n
*Enable additional driver debugging (DRM_I915_DEBUG) [N/y/?] n
*Enable additional driver debugging for fence objects (DRM_I915_SW_FENCE_DEBUG_OBJECTS) [N/y/?] n
*Enable additional driver debugging for detecting dependency cycles (DRM_I915_SW_FENCE_CHECK_DAG) [N/y/?] (NEW) 
*Enable selftests upon driver load (DRM_I915_SELFTEST) [N/y/?] n
*Enable low level request tracing events (DRM_I915_LOW_LEVEL_TRACEPOINTS) [N/y/?] n
*Enable extra debug warnings for vblank evasion (DRM_I915_DEBUG_VBLANK_EVADE) [N/y/?] n
*--
*Enable tracing for RCU (RCU_TRACE) [N/y/?] n
*Provide debugging asserts for adding NO_HZ support to an arch (RCU_EQS_DEBUG) [N/y/?] n
*Force round-robin CPU selection for unbound work items (DEBUG_WQ_FORCE_RR_CPU) [N/y/?] n
*Force extended block device numbers and spread them (DEBUG_BLOCK_EXT_DEVT) [N/y/?] n
*Enable CPU hotplug state control (CPU_HOTPLUG_STATE_CONTROL) [N/y/?] n
*Notifier error injection (NOTIFIER_ERROR_INJECTION) [N/m/y/?] n
*--
*  CC      ipc/syscall.o
*  CC      kernel/irq/proc.o
*  CC      mm/swap_cgroup.o
*  CC      ipc/ipc_sysctl.o
*  CC      kernel/irq/migration.o
*  CC      mm/memory-failure.o
*--
*  GZIP    arch/x86/boot/compressed/vmlinux.bin.gz
*  MKPIGGY arch/x86/boot/compressed/piggy.S
*  AS      arch/x86/boot/compressed/piggy.o
*  DATAREL arch/x86/boot/compressed/vmlinux
*  LD      arch/x86/boot/compressed/vmlinux
*ld: arch/x86/boot/compressed/head_64.o: warning: relocation in readonly section `.head.text'
*ld: warning: creating a DT_TEXTREL in a shared object.
*--
* Running with options: all
* Using genkernel.conf from /etc/genkernel.conf
* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..
*
* ERROR: Failed to compile the "firmware_install" target...
* 
* -- End log... --
* 
* Please consult /var/log/genkernel.log for more information and any
* errors that were reported above.
* 
* Report any genkernel bugs to bugs.gentoo.org and
* assign your bug to genkernel@gentoo.org. Please include
* as much information as you can in your bug report; attaching
* /var/log/genkernel.log so that your issue can be dealt with effectively.
* 
* Please do *not* report compilation failures as genkernel bugs!
*

誰能幫我?

不久前, Gentoo 論壇Gentoo bugtracker報告了這個問題。正如錯誤報告中提到的,您可以FIRMWARE_INSTALL=no在您的genkernel.conf,或將 genkernel 升級到不穩定版本(該執行緒還建議CONFIG_FIRMWARE_IN_KERNEL=y在您的.config文件中進行設置,但請驗證這是否是您想要使用的東西。)您可能需要注意從4.14開始,Linux 不再具有核心韌體,這就是您收到該錯誤消息的原因:genkernel 試圖製作不再存在的東西。

引用自:https://unix.stackexchange.com/questions/413311