# FreeBSD 10: how to load fuse kernel module?



## tingo (Jan 8, 2016)

First of all; yes - I do know how to load it. But this is interesting none the less.
How are FreeBSD 10.x users going to know that they need to load the fuse kernel module?
Let us look at a recent FreeBSD 10.2-stable machine:

```
root@kg-z30b# uname -a
FreeBSD kg-z30b.kg4.no 10.2-STABLE FreeBSD 10.2-STABLE #0 r292123: Sat Dec 12 00:58:41 CET 2015
  root@kg-z30b.kg4.no:/usr/obj/usr/src/sys/GENERIC  amd64
```
Check to see if FreeBSD has any documentation on fuse "onboard":

```
root@kg-z30b# apropos fuse
blackhole(4)  - a sysctl(8) MIB for manipulating behaviour in respect of refused TCP or UDP connection attempts
fma(3), fmaf(3), fmal(3) - fused multiply-add
fuser(1)  - list IDs of all processes that have one or more files open
mount_fusefs(8)  - mount a Fuse file system daemon
nologin(8)  - politely refuse a login
fusermount(1)  - mount and unmount FUSE filesystems
gvfsd-fuse(1)  - Fuse daemon for gvfs
mount.fuse(8), fuse(8)  - format and options for the fuse file systems
ulockmgr_server(1)  - Lock Manager Server for FUSE filesystems
```
Ok, it looks promising.

```
root@kg-z30b# man 8 fuse
No manual entry for fuse
root@kg-z30b# man -w fuse
No manual entry for fuse
```
Strange - it doesn't exist. Try the others

```
root@kg-z30b# man -w mount_fusefs
/usr/share/man/en.ISO8859-1/man8/mount_fusefs.8
root@kg-z30b# man -w fusermount
/usr/local/man/man1/fusermount.1.gz
root@kg-z30b# man -w gvfsd-fuse
/usr/local/man/man1/gvfsd-fuse.1.gz
root@kg-z30b# man -w mount.fuse
/usr/local/man/man8/mount.fuse.8.gz
root@kg-z30b# man -w ulockmgr_server
/usr/local/man/man1/ulockmgr_server.1.gz
```
Ok, they exist. But not one of mount_fusefs(8), fusermount(1), gvfsd-fuse(1), mount.fuse(8) or ulockmgr_server(1) explains how to load the fuse kernel module.
How about loader.conf(5) then? No mention of fuse there either. rc.conf(5) perhaps? No luck there.
Maybe it is defined in /etc/defaults/rc.conf?

```
root@kg-z30b# grep -i fuse /etc/defaults/rc.conf
```
No. Ok, let me check the source then:

```
root@kg-z30b# find /usr/src -name '*fuse*' -print
/usr/src/sys/modules/fuse
/usr/src/sys/fs/fuse
/usr/src/sys/fs/fuse/fuse_node.c
/usr/src/sys/fs/fuse/fuse_node.h
/usr/src/sys/fs/fuse/fuse_kernel.h
/usr/src/sys/fs/fuse/fuse_internal.c
/usr/src/sys/fs/fuse/fuse.h
/usr/src/sys/fs/fuse/fuse_param.h
/usr/src/sys/fs/fuse/fuse_vfsops.c
/usr/src/sys/fs/fuse/fuse_main.c
/usr/src/sys/fs/fuse/fuse_file.c
/usr/src/sys/fs/fuse/fuse_io.c
/usr/src/sys/fs/fuse/fuse_debug.h
/usr/src/sys/fs/fuse/fuse_io.h
/usr/src/sys/fs/fuse/fuse_vnops.c
/usr/src/sys/fs/fuse/fuse_internal.h
/usr/src/sys/fs/fuse/fuse_device.c
/usr/src/sys/fs/fuse/fuse_ipc.c
/usr/src/sys/fs/fuse/fuse_ipc.h
/usr/src/sys/fs/fuse/fuse_file.h
/usr/src/sys/compat/svr4/svr4_fuser.h
/usr/src/contrib/file/magic/Magdir/fusecompress
/usr/src/contrib/llvm/patches/patch-r279302-clang-r211785-add-fuse-ld.diff
/usr/src/contrib/tcp_wrappers/refuse.c
/usr/src/usr.bin/fstat/fuser.1
/usr/src/usr.bin/fstat/fuser.c
/usr/src/sbin/mount_fusefs
/usr/src/sbin/mount_fusefs/mount_fusefs.8
/usr/src/sbin/mount_fusefs/mount_fusefs.c
```
Hmm, no documentation for fuse there either.
Time to repeat the question: how are FreeBSD users going to know that they need to load the fuse kernel module (and how to do that)?


----------



## wblock@ (Jan 9, 2016)

I agree that this should be added.  Maybe enter a PR?


----------



## tingo (Jan 10, 2016)

Against base or docs?


----------



## wblock@ (Jan 10, 2016)

It would work either way, but docs is probably a little more accurate.


----------



## Jerome___ (Mar 1, 2018)

and 2 years after, where is the info finally?


----------



## SirDice (Mar 1, 2018)

Things don't get magically added, if nobody created the PR nothing will happen.


----------



## exist (Nov 22, 2018)

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233393


----------

