≡ Menu

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

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


kldunload module-name

Example to unload smbfs module

Type the following command as the root user:
# kldunload smbfs
# 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

Share this on:

{ 2 comments… add one }

  • Anonymous November 18, 2005, 7:50 am

    Thanks. Couldn’t be clearer.

  • neo13glu October 23, 2011, 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

Leave a Comment

   Tagged with: , , , , ,