Skip to content

Commit 27c8e3f

Browse files
committed
kb/fwupd.md: add instructions for FreeBSD
It works, but not without issues. More work will be necessary to make it fully useable. Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
1 parent 3ed03fd commit 27c8e3f

1 file changed

Lines changed: 97 additions & 2 deletions

File tree

docs/kb/fwupd.md

Lines changed: 97 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

611706
For 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

Comments
 (0)