FreeBSD: How to unload (remove) device driver (module) from kernel?

by on December 1, 2004 · 2 comments· LAST UPDATED October 8, 2007

in

FreeBSD comes with kldstat command. The kldstat utility or command displays the status of any files dynamically linked into the kernel. And the kldunload utility unloads a file which was previously loaded with lldload command. You can use kldunload command as follows.

Unload a file from the kernel

First login as a root user (use su - or sudo commnad):

Get list of loaded modules/drivers first use following command

# kldstat

To remove module use the following command

The kldstat utility displays the status of any files dynamically linked into the kernel.

kldunload -i ID

OR

kldunload module-name

Example to unload smbfs module

Type the following command as the root user:
# kldunload smbfs
OR
# kldunload -i 8

Please note that # 8 is module ID obtained using kldstat command.

Force the unload

You can pass -f option to kldunload to force the unload. This ignores error returns to MOD_QUIESCE from the module and implies that the module should be unloaded even if it is currently in use. The users are left to cope as best they can.
# kldunload -f smbfs

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 2 comments… read them below or add one }

1 Anonymous November 18, 2005 at 7:50 am

Thanks. Couldn’t be clearer.

Reply

2 neo13glu October 23, 2011 at 10:34 pm

[mike@mike-pc] /home/mike# kldunload -fv -i 23 snd_hda && kldload snd_hda
Unloading snd_hda.ko, id=23
kldunload: can’t unload file: Device busy
[mike@mike-pc] /home/mike# uname -a
FreeBSD mike-pc 8.2-RELEASE FreeBSD 8.2-RELEASE #7: Wed Feb 16 13:33:10 PST 2011 root@build8x64.pcbsd.org:/usr/obj/usr/pcbsd-build82/fbsd-source/8.2/sys/PCBSD amd64

Reply

Leave a Comment

Tagged as: , , , , ,

Previous post:

Next post: