Linux内核编译错误

时间:2017-11-07 06:10:47

标签: linux unix compilation kernel

我从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

这就没有什么特别的了。可能是什么问题?

2 个答案:

答案 0 :(得分:0)

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

同一问题。 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

答案 1 :(得分:0)

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

您需要在.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路径来告诉内核从何处选择该固件,否则上述构建都会发生。