【问题标题】:Linux kernel compile errorLinux内核编译错误
【发布时间】:2018-04-19 10:48:36
【问题描述】:

我从 Linus 的 github 克隆了内核源代码,对 usbhid 驱动程序做了一些修改(作为一个模块编译得很好,没有错误),但是如果我尝试构建整个内核,我会得到这个错误:

AR      drivers/gpu/drm/built-in.o
AR      drivers/gpu/built-in.o
Makefile:1023: recipe for target 'drivers' failed
make: *** [drivers] Error 2

这一切都没有什么特别的。可能是什么问题?

【问题讨论】:

  • 这是makefile的第1021-1023行:PHONY += $(vmlinux-dirs) $(vmlinux-dirs): prepare scripts $(Q)$(MAKE) $(build)=$@
  • 应该有错误信息描述究竟是什么错误。如果您使用-j 选项构建内核,请在上面几行中找到错误消息(或者在调试问题时不要使用-j 选项)。
  • 我搜索了错误消息,但在终端输出的任何地方都没有找到,但我会尝试不带-j 标签
  • 您可以发布您所做的更改吗?

标签: linux unix compilation kernel


【解决方案1】:

更新:2018 年 9 月 15 日此问题已解决。内核现在将使用我在下面给出的命令进行编译。

这里也是同样的问题。 4.19.0-rc3 不会在 Threadripper 2990WX 上编译。顺便说一句,我目前正在运行 4.19.0-rc2,没有任何问题。

这些是我使用的命令。请注意,我也尝试过不使用 LD 静态标志。

wget https://git.kernel.org/torvalds/t/linux-4.19-rc3.tar.gz && tar -xzf linux-4.19-rc3.tar.gz && cd linux-4.19-rc3 && make -j 64 clean && make -j 64 mrproper &&  zcat /proc/config.gz >> ./.config && LDFLAGS=--static make -j 64

【讨论】:

  • 欢迎来到 StackOverflow。请将此添加为对问题的评论。它没有提供对原始帖子的答案。
【解决方案2】:

问题出在您的配置文件中。我之前也遇到过同样的问题,似乎是由于通过make menuconfig 生成的.config 文件中缺少CONFIG 选项。

您需要在 .config 文件中添加这两个 CONFIG 选项:

CONFIG_EXTRA_FIRMWARE_DIR="lib/firmware"
CONFIG_EXTRA_FIRMWARE="<name_of_firmware_along_with_path>"

在某些平台上,GPU 使用需要通过与内核拼接来内置的固件。该固件在构建内核时放置在CONFIG_EXTRA_FIRMWARE 选项提供的目录路径中。除非我们不提供CONFIG_EXTRA_FIRMWARE_DIR 路径来告诉内核从哪里选择这个固件,否则会发生上述构建失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    相关资源
    最近更新 更多