#linux #configuration #module #linux-kernel #kernel
#linux #конфигурация #модуль #linux-ядро #ядро
Вопрос:
Я пытаюсь изменить один из драйверов ядра Linux.
Но когда я попытался выполнить insmod, ядро продолжает выдавать сообщение об ошибке «неизвестный символ».
Я думаю, что я настроил что-то отличное от оригинала для сборки.
Итак, вот мой вопрос.
Как я могу настроить ту же конфигурацию, что и исходный модуль?
Есть ли какой-нибудь способ легко настроить для определенного образа ядра?
Комментарии:
1. Неизвестные символы предполагают, что вы используете любой символ, который может быть ФУНКЦИЕЙ или переменной в вашей программе-драйвере, который ядро не может найти при загрузке вашего модуля.
Ответ №1:
Есть две возможности для этой ошибки:
-
Неизвестные символы предполагают, что вы используете любой символ, который может быть ФУНКЦИЕЙ или переменной в вашей программе-драйвере, который ядро не может найти при загрузке вашего модуля. когда вы выполняете insmod своего драйвера, выполните dmesg и посмотрите, какие все символы ядро не может найти. Возможно, что в вашей модификации драйвера вы по ошибке использовали какую-то переменную или функцию, которые нигде не определены. Ищите любые «внешние переменные» или любые орфографические ошибки в вашем измененном коде ;).
-
Ваш драйвер зависит от какого-либо другого модуля. Здесь, в зависимости от значения, есть несколько функций или переменных, которые использует ваш драйвер, которые загружаются в ядро каким-либо другим модулем. В этом случае вам нужно сначала загрузить этот модуль, а затем ваш модуль.
Неизвестные символы не являются проблемой конфигурации. Проблема с конфигурацией привела бы к другой ошибке.
Если вам нужна дополнительная помощь по этому вопросу, пожалуйста, вставьте вывод dmesg здесь..
С уважением.