---
name: "kldconfig"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/kldconfig"
---

# kldconfig(8)

display or modify the kernel module search path

## NAME

**kldconfig** – display or modify the kernel module search path

## SYNOPSIS

**kldconfig** \[**-dfimnUv**\] \[**-S** *sysctlname*\] \[*path* *...*\]

**kldconfig** **-r**

## DESCRIPTION

The **kldconfig** utility displays or modifies the search path used by the kernel when loading modules using the [kldload(8)](/kldload/8.md) utility or the [kldload(2)](/kldload/2.md) syscall.

The following options are available:

- **-d**

  Remove the specified paths from the module search path.

- **-f**

  Do not fail if a path specified for adding is already present in the search path, or if a path specified for removing is not present in the search path. This may be useful in startup/shutdown scripts for adding a path to a file system which is still not mounted, or in shutdown scripts for unconditionally removing a path that may have been added during startup.

- **-i**

  Add the specified paths to the beginning of the search path, not to the end. This option can only be used when adding paths.

- **-m**

  Instead of replacing the module search path with the set of paths specified, “merge” in the new entries.

- **-n**

  Do not actually change the module search path.

- **-r**

  Display the current search path. This option cannot be used if any paths are also specified.

- **-S** *sysctlname*

  Specify the sysctl name to use instead of the default *kern.module\_path*.

- **-U**

  “Unique-ify” the current search path - if any of the directories is repeated one or more times, only the first occurrence remains. This option implies **-m**.

- **-v**

  Verbose output: display the new module search path. If the path has been changed, and the **-v** flag is specified more than once, the old path is displayed as well.

## FILES

- */boot/kernel*, */boot/modules*, */modules*

  The default module search path used by the kernel.

## EXIT STATUS

The **kldconfig** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

Show the module search path

```
$ kldconfig -r
/boot/kernel;/boot/modules;/boot/dtb;/boot/dtb/overlays
```

Try to delete the */boot* directory from the search path. The command will fail:

```
$ kldconfig -d /boot
kldconfig: not in module search path: /boot
$ echo $?
1
```

Same as above but forcing the operation. This time the command will succeed:

```
$ kldconfig -d -f /boot
$ echo $?
0
```

Add the */boot* directory to the beginning of the search path and display extra verbose output:

```
$ kldconfig -i -m -vv /boot
/boot/kernel;/boot/modules -> /boot;/boot/kernel;/boot/modules
```

Without **-m** the **-i** flag will overwrite the contents of the search path list:

```
$ kldconfig -i -vv /boot
/boot;/boot/kernel;/boot/modules;/boot/dtb;/boot/dtb/overlays -> /boot
```

Same as above but using **-n** to simulate the operation without actually doing it:

```
$ kldconfig -i -n -vv /boot
/boot;/boot/kernel;/boot/modules;/boot/dtb;/boot/dtb/overlays -> /boot
```

Add directories to the search path removing duplicates. Note the need of **-f** to force the operation in case any of the directories is already in the search path. The */boot/kernel* directory will be added once:

```
$ kldconfig -f -U /boot/kernel /boot/kernel /boot/modules /boot/dtb /boot/dtb/overlays
```

## SEE ALSO

[kldload(2)](/kldload/2.md), [kldload(8)](/kldload/8.md), [kldxref(8)](/kldxref/8.md), [sysctl(8)](/sysctl/8.md)

## HISTORY

The **kldconfig** utility first appeared in FreeBSD 4.4.

## AUTHORS

Peter Pentchev ⟨*roam@FreeBSD.org*⟩
