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

Хороший человек из списка рассылки 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 и сделает последнюю ссылку для создания модуля.

Другие вопросы по тегам