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

last updated in Categories FreeBSD, Howto

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

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.


2 comment

  1. [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 amd64

Leave a Comment