Updating device firmware on FreeBSD is a different conversation from Linux. There's no LVFS, no fwupd. The base system handles its own loadable firmware blobs through freebsd-update and packages; everything below that you do by hand, with vendor tools or by booting another OS specifically for the update.
Why no fwupd? The Linux ecosystem has spent years building LVFS — a clearinghouse for signed firmware — and a corresponding userland tool. FreeBSD has neither. For UEFI BIOS, controller firmware, and most peripherals, FreeBSD doesn't have the tooling Linux has.
This guide is honest about that. Here's what you can do natively, and what you'll need to step outside FreeBSD to handle.
What you can do without leaving FreeBSD
1. CPU microcode
Intel and AMD release microcode updates that fix CPU-level bugs. The kernel can apply them on every boot.
sudo pkg install cpu-microcode-intel # for Intel CPUs
sudo pkg install cpu-microcode-amd # for AMD CPUs
sudo sysrc microcode_update_enable="YES"
Reboot, then confirm:
dmesg | grep -i microcode
You should see a line saying the patch was applied at boot.
2. Kernel-loaded firmware blobs
Some Wi-Fi chips, GPUs, and other devices need a firmware file loaded by the kernel driver. These come from packages:
pkg search firmware
Common ones include wifi-firmware-kmod, iwlwifi-firmware-kmod, and similar. Install whichever your hardware needs and reboot.
3. Base system updates
sudo freebsd-update fetch
sudo freebsd-update install
This patches the kernel and base userland — including drivers that are compiled in. Not "firmware" in the hardware-flashing sense, but the closest equivalent for keeping OS-side hardware support current.
What you'll have to do another way
UEFI / BIOS
FreeBSD has no native way to flash UEFI/BIOS firmware. Your options:
- Vendor's Windows utility — most laptops ship one. Boot a Windows live USB if you don't have it installed.
- Vendor's DOS or EFI flasher — many desktop motherboards. Usually shipped as a bootable USB image.
- Linux live USB with fwupd — if your model is in LVFS, this is the easiest. Boot Ubuntu/Fedora, run
fwupdmgr update, reboot. The flash persists; nothing on your FreeBSD install is affected.
The "Linux live USB" trick is genuinely useful for FreeBSD users; you don't need to install Linux, you just borrow it for an hour.
SSD and NVMe firmware
Vendors usually provide their own command-line tools or bootable ISOs:
- Samsung Magician — bootable ISO
- Crucial Storage Executive — Windows-based, or sometimes a bootable image
- Intel Memory and Storage Tool — Windows / bootable
- WD Dashboard — Windows
RAID HBAs and NICs
Often supported natively on FreeBSD. Look on the vendor's site:
- Broadcom (LSI) MegaRAID / HBA —
storclitools exist for FreeBSD - Areca — ships FreeBSD-native firmware flashers
- Intel/Mellanox NICs — vendor-supplied utilities, sometimes in
pkg
Search pkg search for your card before resorting to a Linux USB.
Peripheral firmware (mice, keyboards, dockings)
No general solution. Logitech ships a Windows-only app. Stream Decks need the Elgato app. Most peripherals fall back to "borrow a Windows machine once a year."
Checking what your kernel currently has
kldstat | grep -i firmware # loaded firmware modules
pciconf -lv # every PCI device + version info
sysctl dev.cpu.0 | grep -i microcode # cpu microcode revision
The honest summary
FreeBSD is excellent at keeping its own base current. For device firmware, plan to keep a Linux live USB and a Windows recovery stick around for the once-a-year cases. The good news: with vendor support for LVFS growing, that "once a year" really is rare for modern hardware.