
Instalé un controlador DKMS para un dispositivo USB desde un PPA. Estoy haciendo cambios en el código e intentando desinstalar el controlador con apt-get --purge remove, pero cuando conecto el dispositivo, los módulos del kernel aún se cargan... ¿por qué sería esto? ¿Dónde se esconden?
gracias de antemano
Respuesta1
Cuando usted (o DKMS) crea un módulo del kernel y lo instala, van a /lib/modules/$(uname -r)/...
, así que verifique allí. Un ejemplo de mi sistema:
/lib/modules/3.2.0-36-generic-pae/updates/dkms/nvidia_current_updates.ko
Respuesta2
La instalación y el uso de módulos del kernel instalados mediante DKMS implica varios pasos (en su mayoría automatizados):
- (en su caso) Agregue las fuentes de PPA, actualice la lista de paquetes.
- Instale el paquete DKMS con el administrador de paquetes (
apt-get
) que comienza copiando las fuentes y las instrucciones de instalación automática a un directorio estándar (/usr/src/<module name>-<version>
) - DKMS copia el archivo a su directorio privado.
- DKMS compila el código fuente del módulo del kernel en su directorio privado.
- DKMS copia el archivo del módulo del kernel compilado en el directorio de módulos (normalmente
/lib/modules/<kernel version>/updates
) - DKMS actualiza las dependencias de los módulos para que pueda utilizarlos
modprobe <modname>
en lugar deinsmod /lib/modules/<kernel version>/updates/<modname>.ko
. - Usted carga el módulo del kernel manualmente (
modprobe <modname>
) o un componente del sistema (udev) lo hace por usted cuando conecta su dispositivo USB.
Los pasos 1 a 6 se deshacen al purgar el paquete. El paso 7 no se deshace automáticamente. Normalmente, un módulo permanece cargado después de cargarse a menos que lo elimine manualmente con sudo rmmod <modname>
. Úselo lsmod
para averiguar qué nombre tiene su módulo, generalmente es el mismo que <modname>
, pero al menos para los controladores nvidia en Ubuntu, esto se hace de manera diferente (usted usaría modprobe nvidia-current
, pero usaría rmmod nvidia
).