@@ -182,9 +182,42 @@ it to perform firmware updates.
182182 ```
183183 </details>
184184
185+ === "FreeBSD"
186+
187+ !!! warning
188+ `fwupd` on FreeBSD is very much work in progress as of March 2026. The
189+ basic elements are there, but user experience may be far from perfect.
190+ In particular, not all functionality is available (e.g., `fwupd` won't
191+ reboot for you, update is reported as "in progress" after it's been
192+ applied) or works reliably (may complain about missing ESP, although
193+ this error may be gone on second try or after restarting `fwupd`).
194+
195+ `fwupd` is available in ports. `bsdisks` is a dependency required for
196+ UEFI Capsule Updates. Install both of them:
197+
198+ ```terminal
199+ # pkg install fwupd bsdisks
200+ ```
201+
202+ `fwupd` communicates with `bsdisks` over D-Bus, so it must be running
203+ (`fwupdmgr` also depends on D-Bus, otherwise using `fwupdtool` as root is
204+ the only option). It can be enabled permanently and then launched like
205+ this:
206+
207+ ```terminal
208+ # echo 'dbus_enable="YES"' >> /etc/rc.conf
209+ # service dbus start
210+ ```
211+
212+ This is how to start D-Bus temporarily:
213+
214+ ```terminal
215+ # service dbus onestart
216+ ```
217+
185218### Checking the current firmware version
186219
187- === "Ubuntu, Fedora"
220+ === "Ubuntu, Fedora, FreeBSD "
188221 To check the currently used firmware version, run the following command
189222
190223 ```bash
@@ -260,7 +293,7 @@ it to perform firmware updates.
260293
261294### Checking for updates
262295
263- === "Ubuntu, Fedora"
296+ === "Ubuntu, Fedora, FreeBSD "
264297 To check for available updates for your device, run the following commands
265298
266299 ```bash
@@ -402,6 +435,40 @@ are met.
402435 and the updates on LVFS may not be found using this tool. Refer to
403436 [troubleshooting](#no-updates-available-qubesos).
404437
438+ === "FreeBSD"
439+ To update your firmware, run the following commands:
440+
441+ ```terminal
442+ # fwupdmgr refresh
443+ # fwupdmgr update --no-reboot-check
444+ # reboot
445+ ```
446+
447+ <details><summary>Example of an update process:</summary>
448+ ```
449+ # fwupdmgr update --no-reboot-check
450+ Devices with no available firmware updates:
451+ • UEFI dbx
452+ • SSDPR-PX600-250-80
453+ ╔══════════════════════════════════════════════════════════════════════════════╗
454+ ║ Upgrade System Firmware from 1.0.0 to 1.0.1? ║
455+ ╠══════════════════════════════════════════════════════════════════════════════╣
456+ ║ New Dasharo firmware release for the NovaCustom Meteor Lake laptops ║
457+ ║ ║
458+ ║ with integrated graphics, featuring numerous bug fixes, performance ║
459+ ║ ║
460+ ║ improvements and stability fixes. ║
461+ ║ ║
462+ ║ V54x_6x_TU must remain plugged into a power source for the duration of the ║
463+ ║ update to avoid damage. ║
464+ ╚══════════════════════════════════════════════════════════════════════════════╝
465+ Perform operation? [Y|n]: y
466+ Waiting… [***************************************]
467+ Successfully installed firmware
468+ Do not turn off your computer or remove the AC adapter while the update is in progress.
469+ ```
470+ </details>
471+
405472!!! warning
406473 After the command finishes, a reboot is necessary to apply the update.
407474 The fwupd UEFI application that performs the update will be booted
@@ -438,6 +505,23 @@ source. We will use `novacustom_v54x_mtl_igpu_v1.0.1_btg_prod.cab` downloaded fr
438505 $ sudo fwupdmgr local-install novacustom_v54x_mtl_igpu_v1.0.1_btg_prod.cab
439506 ```
440507
508+ === "FreeBSD"
509+ To update your firmware using a locally available cabinet file, follow the
510+ steps:
511+
512+ 1. Allow updates from untrusted sources
513+ ```terminal
514+ # printf '[fwupd]\nOnlyTrusted=false\n' > /usr/local/etc/fwupd/fwupd.conf
515+ ```
516+ 2. Perform a local install
517+ ```terminal
518+ # fwupdmgr local-install --no-reboot-check novacustom_v54x_mtl_igpu_v1.0.1_btg_prod.cab
519+ ```
520+ 3. Reboot to apply the update
521+ ```terminal
522+ # reboot
523+ ```
524+
441525#### Update troubleshooting
442526
443527##### No output from fwupdmgr update
@@ -607,6 +691,17 @@ manually from fwupd.org.
607691 ` qubes-fwupdmgr ` doesn't currently support ` get-results ` command of
608692 ` fwupdmgr ` .
609693
694+ === "FreeBSD"
695+ The following command is supposed to report update results:
696+
697+ ```bash
698+ $ fwupdmgr get-results
699+ ```
700+
701+ However, this is likely to not produce any results because fwupd fails to
702+ finalize the update. `fwupdmgr get-devices` incorrectly states that "An
703+ update is in progress" along with displaying version that shows the update
704+ has already happened.
610705
611706For another way to verify an update has really happened refer to
612707[ Checking The Current Firmware Version] ( #checking-the-current-firmware-version ) .
0 commit comments