Применить патч ядра для поддержки режима PIC

Применить патч ядра для поддержки режима PIC

Я получаю сообщение об ошибке при попытке скомпилировать драйверы для TP Link AC 600 на Kali Linux amd64 4.7.0 gcc 5.4.1 Debian 5.4.1-3.

Ошибка: «Код ошибки модели ядра не поддерживает режим PIC».

После некоторых поисков я нашел человека, у которого были похожие проблемы, и кто-то опубликовал исправление.

Как и куда наклеивать пластырь?

Вот еще одна ссылка:Невозможно скомпилировать ядро: ошибка, ядро ​​не поддерживает режим PIC

решение1

Что касается драйверов Ubuntu и Intel, Intel тестировала свои драйверы только для LTS-версий Ubuntu (см. ответ Тодда Фуджинаки). Поэтому вам нужно понизить версию 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и запустить команду оттуда.

Подумайте о создании копии каталога ядра, чтобы вы могли выполнить процесс с резервной копией ядра и легко восстановить его.

ПРИМЕЧАНИЕ: Это только процесс применения патча, предполагая, что вы используете правильный патч для своего ядра, он не должен выдавать никаких ошибок. Вам нужен файл патча, как и официальный файл ядра.

Связанный контент