FreeBSD 15 Base Install
Over 2025 I've done quite a lot of FreeBSD installs. Since I frequently change desktop environment or window manager I like to start out with a solid base install.
I recommend anyone to first do an install by following the FreeBSD handbook.
Either way you'll end up with an updated FreeBSD install, with yourself and root as users. That's the base to start anything from.
Installation steps
- Keymap
Select your keymap or proceed with the default selection (US English).
- Packages
Since we're on 15 now we'll obviously be using the package sets, at least I did.
- Partitioning
Choose Auto (ZFS)
ZFS Configuration
Encrypt disks: YES
Pool Type/Disks: Choose stripe - No Redundancy
Partition Scheme: Choose GPT (UEFI)
Swap Size: Choose 2G (or any size you prefer)
- Distribution Select
[x] base
Usually I de-check all others, but obviously you make your own choices here.
When asked about it remove all old EFI boot manager entries and add a new one (if you previously had some FreeBSD install it will).
- Root password
Set the root password for your system.
- Time zone selection
Search, select and set your time zone.
- System Configuration
[x] sshd
[x] ntpd
[x] powerd
- System Hardening
[x] random_pid
[x] clear_tmp
[x] secure_console
For the configuration and hardening I've selected some options that I find practical for generic system maintenance.
- Firmware installer
If applicable the installer will give an overview of the detected hardware and thus firmware to install. Accept the choices, but do check to see whether certain hardware hasn't been recognized.
- Add Users
Go through the motions; they are pretty self-explanatory.
W/r to 'Invite user into other groups?:' I'd add myself to the wheel and video groups (the last one is especially useful if you'd ever be using a display manager, like lightdm or sddm).
- Final configuration
Basically your install is done, but if you want to you can still adjust something in this screen, before rebooting and logging in as root again.
Base pkgs and first update
Base system
If you don't need or want the latest versions of software you can obviously use the system as is:
- pkg update & pkg upgrade
After that continue with the graphics driver section below.
But if you want the latest versions of software:
- mkdir -p /usr/local/etc/pkg/repos
- cp /etc/pkg/FreeBSD.conf /usr/local/etc/pkg/repos/FreeBSD.conf
- ee /usr/local/etc/pkg/repos/FreeBSD.conf
Change the FreeBSD-ports url to /latest (from quarterly), then
- pkg update -f & pkg upgrade
Graphics driver
Enter in the console:
- pciconf -lv|grep -B4 VGA
This will tell you your graphics driver, mine was an AMD one. Install all drivers: - pkg install drm-kmod
Add to /etc/rc.conf to load the AMD GPU driver at startup:
- sysrc kld_list+=amdgpu
Or with Intel:
- sysrc kld_list+=i915kms
Nvidia
Let's follow the handbook for the proprietary Nvidia driver, which can be installed by running the following command:
- pkg install nvidia-drm-kmod
- sysrc kld_list+=nvidia-drm
This is the direct rendering KMS driver. Kernel modesetting is the option to set the graphics mode in the kernel. Enable it for subsequent boots with the following /boot/loader.conf entry:
- hw.nvidiadrm.modeset="1"
Both PRIME and Wayland require kernel modesetting.
Reboot the system when finished and login as root again
Basic tooling
- pkg install dbus doas git mc seatd
- Doas config
cp -rvf /usr/local/etc/doas.conf.sample /usr/local/etc/doas.conf
ee /usr/local/etc/doas.conf
add: permit nopass keepenv {USER)
logout and login as {USER}
- Next steps
- doas sysrc dbus_enable="YES"
- doas sysrc seatd_enable="YES"
QoL
Totally unnecessary for a well functioning system, but nice:
- doas ee /boot/loader.conf and add:
- autoboot_delay=5
- loader_logo="beastie"
Create a snapshot of this system:
- doas zfs snapshot -r zroot@minimal
'minimal' can be renamed to anything you like (i.e doas zfs snapshot -r zroot@base07012026). The '-r' switch means recursively all subdirectories are included in this snapshot. You can automate all this, but be aware they can take up quite a lot of diskspace. The one I did straight after this install was already 3Gb.