應用核心補丁以支援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並從那裡運行命令。

考慮建立核心目錄的副本,以便您可以使用備份中的核心副本執行該過程以輕鬆恢復它。

注意:這只是套用補丁的過程,假設您正在為核心使用正確的補丁,則不會出現任何錯誤。您需要有補丁文件,例如內核官方的補丁文件。

相關內容