CachyOS / CachyOS/distribution
[Bug]: fwupd cannot stage UEFI capsule updates on Limine installs because EFI/cachyos is missing
- Dominant language
- No language data
- Stars
- 27
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
## Kernel
`7.0.0-1-cachyos`
## Desktop Environment / Window Manager
KDE Plasma
## CPU
Intel(R) Core(TM) Ultra 7 165H
## GPU / Driver
Intel Arc Graphics / `xe`
NVIDIA RTX 3000 Ada Generation Laptop GPU / `nvidia`
## Description
On a CachyOS installation using **Limine** with the ESP mounted at `/boot`, `fwupdmgr update` failed to stage UEFI capsule updates with this error:
```text
failed to write-firmware: cannot find either EFI/systemd or EFI/cachyos in ESP
```
This appears to be a CachyOS integration issue rather than an upstream `fwupd` bug.
I investigated `fwupd` upstream and found that this fallback is intentional:
- `fwupd` first checks `EFI/systemd`
- then `EFI/$ID`
- then `EFI/$ID_LIKE`
- and errors if none exist
On CachyOS, `/etc/os-release` contains `ID=cachyos`, so `fwupd` expects `EFI/cachyos` to exist if no supported bootloader integration is present.
On this system, Limine had created `EFI/limine`, but there was no `EFI/cachyos` directory.
## Steps to Reproduce
1. Install CachyOS with Limine on a UEFI system
2. Ensure the ESP is mounted at `/boot`
3. Run `fwupdmgr update`
4. Try to stage a UEFI capsule update (in my case Lenovo system firmware / Intel ME)
## Expected Behavior
`fwupd` should be able to stage firmware updates successfully on a standard CachyOS + Limine install, without requiring manual ESP fixes.
## Actual Behavior
`fwupd` failed with:
```text
failed to write-firmware: cannot find either EFI/systemd or EFI/cachyos in ESP
```
## Logs / Error Messages
Relevant error:
```text
failed to write-firmware: cannot find either EFI/systemd or EFI/cachyos in ESP
```
The CachyOS bugreport helper is interactive and I did not complete an upload link before filing this issue. I can provide one later if needed.
## Additional Context
### Workaround that worked
Creating the distro-specific ESP path and placing `fwupdx64.efi` there immediately fixed the problem:
```bash
sudo install -d -m 0755 /boot/EFI/cachyos
sudo install -m 0755 /usr/lib/fwupd/efi/fwupdx64.efi /boot/EFI/cachyos/fwupdx64.efi
sudo systemctl restart fwupd.service
fwupdmgr update
```
After doing this, `fwupd` successfully staged and installed the pending firmware updates.
### Evidence this is likely a CachyOS integration issue
I looked through the relevant repos:
- `CachyOS/distribution`
- described as the place for generic non-package-specific issues
- `CachyOS/cachyos-calamares`
- installs Limine via `limine-install`
- `src/modules/bootloader/main.py:806-837`
- installs Limine packages via `src/modules/pacstrap/main.py:111-116`
- but I could not find any handling to create `EFI/cachyos` for `fwupd`
- `CachyOS/New-Cli-Installer`
- has explicit `EFI/cachyos` logic for GRUB
- `installer-lib/src/bootloader.cpp:248-253`
- but its Limine path only calls `limine-install`
- `gucc/src/bootloader.cpp:399-467`
- and similarly does not seem to create `EFI/cachyos` for `fwupd`
- `CachyOS/CachyOS-PKGBUILDS`
- contains `limine/PKGBUILD`, but does not appear to contain the relevant `fwupd`/ESP integration logic
### Upstream `fwupd` references
Upstream code/docs indicate this behavior is by design:
- `plugins/uefi-capsule/fu-uefi-capsule-device.c`
- checks `EFI/systemd`, then `EFI/$ID`, then `EFI/$ID_LIKE`
- `plugins/uefi-capsule/README.md`
- says third-party bootloaders should implement `BootloaderSupportsFwupd` if they want native support
- `meson_options.txt`
- documents `efi_os_dir` as a distro integration knob
There is also a related upstream precedent in `fwupd` issue `#6538`, where a maintainer described a similar mismatch as a **distribution packaging bug**.
### Suggested fix direction
One of these would likely resolve it:
1. Ensure CachyOS installer paths that set up Limine also create `EFI/cachyos` on the ESP
2. Optionally place/copy `fwupdx64.efi` there when `fwupd-efi` is installed
3. Or otherwise document and support a Limine-specific `fwupd` integration path
If this issue belongs in a more specific CachyOS repo instead of `distribution`, I’m happy to re-file it there.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.