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.

ADVERTISEMENTS

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

🐧 If you liked this page, please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source & DevOps topics via:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
2 comments… add one
  • Anonymous Nov 18, 2005 @ 7:50

    Thanks. Couldn’t be clearer.

  • neo13glu Oct 23, 2011 @ 22:34

    [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 Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.