Я установил драйвер DKMS для устройства USB от PPA. Я делаю изменения в коде и пытаюсь удалить драйвер с помощью apt-get --purge remove, но когда я подключаю устройство, модули ядра все еще загружаются ... с чего бы это? Где они прячутся?

заранее спасибо

2 ответа2

0

Когда вы (или DKMS) собираете модуль ядра и устанавливаете его, они идут в /lib/modules/$(uname -r)/... , так что проверьте там. Один пример из моей системы:

/lib/modules/3.2.0-36-generic-pae/updates/dkms/nvidia_current_updates.ko
0

Установка и использование модулей ядра, установленных с использованием DKMS, включает в себя несколько (в основном, автоматических) шагов:

  1. (в вашем случае) Добавьте источники PPA, обновите список пакетов.
  2. Установите пакет DKMS с помощью менеджера пакетов (apt-get), который начинается с копирования исходных кодов и инструкций по автоматической установке в стандартный каталог (/usr/src/<module name>-<version>)
  3. DKMS копирует файл в свой личный каталог.
  4. DKMS компилирует исходный код модуля ядра в свой личный каталог.
  5. DKMS копирует скомпилированный файл модуля ядра в каталог модулей (обычно это /lib/modules/<kernel version>/updates)
  6. DKMS обновляет зависимости модулей, так что вы можете использовать modprobe <modname> вместо insmod /lib/modules/<kernel version>/updates/<modname>.ko .
  7. Вы либо загружаете модуль ядра вручную (modprobe <modname>), либо системный компонент (udev) делает это за вас, когда вы подключаете USB-устройство.

Шаги 1-6 отменяются при очистке пакета. Шаг 7 не отменяется автоматически. Как правило, модуль остается загруженным после загрузки, если вы не удалите его вручную с помощью sudo rmmod <modname> . Используйте lsmod чтобы узнать, какое имя имеет ваш модуль, обычно это то же самое, что и <modname> , но, по крайней мере, для драйверов nvidia в Ubuntu, это делается по-другому (вы должны использовать modprobe nvidia-current , но использовать rmmod nvidia).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .