应用内核补丁以支持PIC模式

应用内核补丁以支持PIC模式

当我尝试在 Kali Linux 上编译 TP Link AC 600 的驱动程序时出现错误amd64 4.7.0 gcc 5.4.1 Debian 5.4.1-3

错误是“错误代码模型内核不支持PIC模式”

经过一番平坦的脚步后,我发现有人遇到了类似的问题,并且有人发布了补丁。

如何应用补丁以及应用到哪里?

这是另一个链接:无法编译内核:错误,内核不支持 PIC 模式

答案1

就 Ubuntu 和 Intel 驱动程序而言,Intel 仅测试了 Ubuntu LTS 版本的驱动程序(参见托德·藤中的回答)。所以你需要将 Ubuntu 从 16.10 降级到 16.04.1 LTS (重新安装,同时保留/home)。

对于所有其他基于 Debian 的发行版(例如 Kali),情况也是如此:您需要降级(即重新安装)到驱动程序供应商明确支持的版本。 gcc PIC 之前的版本。

这可能不是一个令人愉快的答案,但它在技术上是正确的,如果您自己不是内核开发人员,那么您所能做的就是在内核邮件列表上闲逛,并非常礼貌地询问开发人员是否可以处理驱动程序代码。有时这会起作用,但要有耐心。

答案2

应用补丁的过程非常简单。假设您有内核目录和补丁文件,如下所示:

- /usr/src/kernels (or where you have the kernel directory)
---- /user/src/kernels/kernel_directory
---- /user/src/kernels/patch_file

根据补丁的格式(通常是 .gz、.bz2 或 .xz),您需要使用不同的命令来提取它。您需要进入kernel_directory并运行下一个命令:

gzip -cd ../patch_file | patch -p1- 这是一个 gzip 补丁

bzip2 -cd ../patch_file | patch -p1- 这是一个 bzip 补丁

xz -cd ../patch_file | patch -p1- 这是一个 xz 补丁

它将把补丁文件应用/usr/src/kernels/patch_file到内核中/usr/src/kernels/kernel_directory。您需要首先导航到/usr/src/kernels/kernel_directory并从那里运行命令。

考虑创建内核目录的副本,以便您可以使用备份中的内核副本执行该过程以轻松恢复它。

注意:这只是应用补丁的过程,假设您正在为内核使用正确的补丁,则不会出现任何错误。您需要有补丁文件,例如内核官方的补丁文件。

相关内容