Как мне скомпилировать модуль ядра?
Хороший человек из списка рассылки NetworkManager предоставил исправление, которое, я надеюсь, решит проблему, с которой я столкнулся в связи с медленным обнаружением мобильного широкополосного доступа в 64-битной Ubuntu 11.04. Я бы очень хотел проверить патч, но не могу понять, как это сделать.
В качестве отправной точки я распаковал /usr/src/linux-source-2.6.38/linux-source-2.6.38.tar.bz2
и применил патч к /usr/src/linux-source-2.6.38/drivers/usb/serial/options.c
, но сейчас я застрял.
Как перекомпилировать модуль? Возможно, только модуль, а не все ядро и другие немодифицированные модули. Ссылки на хорошие документы также приветствуются.
Я уже переконфигурировал и перекомпилировал ядро в прошлом (хотя процедура выглядела немного неясной для меня...), поэтому все задействованные программы должны быть на месте.
Спасибо за любые разъяснения.
2 ответа
Руководство по программированию модулей ядра Linux очень информативно о модулях ядра.
Если вы на 100% новичок в этой теме, как я / был, и хотите понять что-то большее, то стоит запросить Google о дальнейших исследованиях. В противном случае LKMPG (!) Достаточно, чтобы получить результат. В частности, раздел 2.2 Компиляция модулей ядра является прямым и подробным ответом на мой вопрос.
НТН
Чтобы собрать окончательные образы модулей в каталоге, вы можете использовать
M=
аргумент для вашей команды:сделать M=драйверы/usb/серийный
Это создаст все необходимые файлы в этом каталоге и свяжет окончательные образы модулей.
Чтобы построить только определенный файл в дереве ядра, просто передайте его в качестве аргумента
make
:сделай драйверы/usb/serial/visor.ko
Система сборки соберет все необходимые файлы для модуля ядра visor.ko и сделает последнюю ссылку для создания модуля.