
Я установил драйвер DKMS для USB-устройства из PPA. Я вношу изменения в код и пытаюсь удалить драйвер с помощью apt-get --purge remove, но когда я подключаю устройство, модули ядра все равно загружаются... почему так? Где они прячутся?
заранее спасибо
решение1
Когда вы (или DKMS) собираете модуль ядра и устанавливаете его, они идут в /lib/modules/$(uname -r)/...
, поэтому проверьте там. Один пример из моей системы:
/lib/modules/3.2.0-36-generic-pae/updates/dkms/nvidia_current_updates.ko
решение2
Установка и использование модулей ядра, установленных с помощью DKMS, включает в себя несколько (в основном автоматизированных) шагов:
- (в вашем случае) Добавьте исходники PPA, обновите список пакетов.
- Установите пакет DKMS с помощью менеджера пакетов (
apt-get
), который начинается с копирования исходных текстов и инструкций по автоматической установке в стандартный каталог (/usr/src/<module name>-<version>
) - DKMS копирует файл в свой личный каталог.
- DKMS компилирует исходный код модуля ядра в своем личном каталоге.
- DKMS копирует скомпилированный файл модуля ядра в каталог модулей (обычно
/lib/modules/<kernel version>/updates
) - DKMS обновляет зависимости модулей, чтобы вы могли использовать
modprobe <modname>
вместоinsmod /lib/modules/<kernel version>/updates/<modname>.ko
. - Вы либо загружаете модуль ядра вручную (
modprobe <modname>
), либо системный компонент (udev) делает это за вас при подключении USB-устройства.
Шаги 1-6 отменяются при очистке пакета. Шаг 7 не отменяется автоматически. Обычно модуль остается загруженным после загрузки, если только вы не удалите его вручную с помощью sudo rmmod <modname>
. Используйте lsmod
, чтобы узнать имя вашего модуля, обычно оно такое же, как <modname>
, но, по крайней мере, для драйверов nvidia в Ubuntu это делается по-другому (вы бы использовали modprobe nvidia-current
, но используйте rmmod nvidia
).