Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

How to unload a kernel module which is in use and has a recursive module dependency?

Writer Sophia Terry

I habe a driver for my ELM 327 an it uses the pl2303 module which depends on the usbserial and this again depends on the pl2303 module.

What I tried:

sudo modprobe -r usbserial pl2303
sudo modprobe -r pl2303 usbserial
sudo modprobe -rf usbserial
sudo modprobe -rf pl2303
sudo rmmod --force pl2303
sudo rmmod --force usbserial

result of rmmod:

rmmod: ERROR: ../libkmod/libkmod-module.c:799 kmod_module_remove_module() could not remove 'usbserial': Resource temporarily unavailable
rmmod: ERROR: could not remove module usbserial: Resource temporarily unavailable

result of modprobe:

modprobe: FATAL: Module usbserial is in use.

Also I tried it with the drivers loaded and unloaded.

kernel modules reference each other[1]

OS: Ubuntu 20.04

2

3 Answers

It's possible to blacklist kernel modules.

Checkout this post about How to blacklist kernel modules?

1

When you look into dmesg do you see a line where the device was detected when it was plugged in? Ubuntu should have FTDI support out of the box. Normally you would just access it by typing screen /dev/ttyUSB# 38400.

2

As OP mentioned rather than unloading module it is easier to not load it in the first place. This is accomplished by blacklisting the module:

To summarize answers in link:

Just open your /etc/modprobe.d/blacklist.conf file and add drivername using following syntax:

blacklist pl2303

Save the file and Reboot. The offending module will no longer be loaded at startup.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy