Я получаю сообщение об ошибке при попытке скомпилировать драйверы для 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
и запустить команду оттуда.
Подумайте о создании копии каталога ядра, чтобы вы могли выполнить процесс с резервной копией ядра и легко восстановить его.
ПРИМЕЧАНИЕ: Это только процесс применения патча, предполагая, что вы используете правильный патч для своего ядра, он не должен выдавать никаких ошибок. Вам нужен файл патча, как и официальный файл ядра.