I thought about doing this, many years ago.
https://youtube.com/watch?v=Rk5kJ2iWYaU
I actually
did this back in 2022 with FreeBSD 13 and posted about it in this thread. I've been meaning to give FreeBSD 14 a whirl for a while, but now FreeBSD 15 is right around the corner. Might as well wait a little bit longer. Anyway, this is all from memory, take what I say with a grain of salt.
- Base system installation was painless. I'm on a desktop with a wired connection, networking was easy to get up and running, and ZFS is just *chef's kiss.*
- Skill issue on my part, but the only FreeBSD groups I know by heart are "wheel" and "games." Spent a lot of time hunting down correct group information to add my user account into.
- Important choice every FreeBSD user must make on first install: compiling from source through the Ports tree
or using binary package tools. You
must pick one over the other and
never mix unless you have no other option (some proprietary software binaries can only be installed through the Ports tree because of EULAs and stuff like that).
- If you opt for binary packages, make sure you edit
/etc/pkg/FreeBSD.conf and change the "url" from "quarterly" to "latest" (shown below)
Code:
FreeBSD: {
url: "pkg+https://pkg.freebsd.org/${ABI}/latest",
enabled: true,
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
mirror_type: "srv"
}
- By default, FreeBSD does quarterly binary package updates and releases. It
is a server OS, after all. Switching to Latest is necessary if you're a desktop user. "Latest" in this case is "latest stable update that hits the ports tree and gets turned into a binary package." So roughly at the same update cadence as Fedora or Arch for all the stuff you install going forward. Just remember:
/etc is for
base system files, and
/usr/local/etc is for
binary/ports files. That hard separation between "operating system" and "everything else"
will screw with you when you're getting your feet wet.
- You can go with Wayland if you so choose, but why inflict
more pain on yourself when you can just go with tried and true Xorg with literally
any desktop environment. I went with Plasma 5 at the time, but I think Plasma 4 is still available in the Ports tree, as is MATE, Cinnamon, LXQt, Lumina, i3, Openbox, Fluxbox, IceWM, even friggin GNOME Shell until the GNOME team decided to make systemd a hard dependency. You'll need to make edits to
/etc/rc.conf and
/boot/loader.conf for stuff like dbus, but that should be second nature to you if you've ever gotten a text console up to a graphical environment at least once in your life.
- All the standard FOSS apps you could ever want are available. Firefox works, LibreOffice exists, mpv, ffmpeg, the whole nine yards. NVIDIA even makes drivers for FreeBSD that you can install from the Ports tree.
- Linux compatibility, once enabled, is basically "set it and forget it." There's just one glaring flaw with hindsight: they based the Linux compatibility off CentOS and eventually Rocky Linux. If you have any need or desire for 32-bit Linux applications, you'll need to rely on the CentOS 7 module, and as of 2025? Shit's been EOL'd by Red Hat and won't receive any further updates. With the current Rocky Linux module, 32-bit is long gone. You
do have a workaround, in that you can set up Linux compatibility using
debootstrap to install either Debian or Ubuntu. It's a touch fiddlier though because you're no longer running things through
/compat/linux, you're running stuff through
/compat/debian.
- Xbox 360 controllers and PS4 controllers are 100% supported as of FreeBSD 13, but you'll need to set up device rules, add yourself to the games group, and add some stuff to
/boot/loader.conf. The man page doesn't mention any of this configuration stuff last time I checked, and I
really had to hunt down obscure mailing lists and forum posts to learn what to do and how to do it. Unfortunately, it is the Year of Our Lord 2025, and FreeBSD
still doesn't have a proper Xbox One controller driver support. I'm lucky because I have a piece-of-shit Logitech F310 gamepad that looks ugly as sin, feels weird to use, but it's detected as an Xbox 360 controller (oh and some dusty old DS4 controllers.
- Citra played all my 3DS games at the proper 30fps with 4x rendering resolution, xBRZ texture filters, and my Logitech controller plugged in. Same also goes for melonDS, Mednafen, and I
think mGBA too? AMDGPU means everything runs like a dream on FreeBSD, so I ain't complaining.
- I could comfortably use a web browser for long stretches of time, play my emulated games, even fire up LibreOffice to type out and print something (CUPS, gotta love it!) using FreeBSD. I didn't bother testing Steam at the time because I was still daily driving Windows 10 LTSC in 2022. My oh my, how the times have changed
- If I ever become an anti-systemd luddite who rejects Windows, abandoned all hope on Linux, and needed a new place to call "home," FreeBSD is definitely a
very usable option. GhostBSD definitely works as a "Linux user's first BSD" but it just doesn't feel "right." I was autistic enough to actually
try PC-BSD back in high school, and it was
really cool stuff. It was the first KDE4-focused experience I ever had that
didn't feel like shit in the slightest. Unfortunately, PC-BSD rebranded as TrueOS, stopped focusing on "Linux user's first BSD," and tracked FreeBSD-CURRENT, only to die an unceremonious death in 2018 because surprise surprise: very few people ultimately gave a shit. GhostBSD came a long way, it's very usable, but it just doesn't hold a candle to PC-BSD. At least not to me.