Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-322GitHub issuePublicDecided· Out of scope

omarchy restart bluetooth does not recover a wedged Intel adapter (reload btusb)

Reported by codeface-io · filed Sep 19, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 days ago.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
AreaOutside the audited area· Decided by agents · verified
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Decided by agents and verified by a second, independent agent — see the decision.

Original report

omarchy restart bluetooth does not recover a wedged Intel adapter (reload btusb)revision 1 · captured 2026-09-28 21:23 UTC via poll

System details

  • Omarchy: 4.0.4-1
  • Kernel: linux-omarchy 7.2.5-3
  • Machine: Beelink SER9 (AZW SER9), AMD Ryzen 7 255
  • Bluetooth: Intel AX200NGW, USB 8087:0029 on usb 1-5 (btusb). Wi-Fi on the same card (iwlwifi at 02:00.0) stayed up.

What's wrong?

In one sentence: when the Intel USB Bluetooth adapter fails firmware init, the Bluetooth panel is empty and Update → Hardware → Bluetooth (omarchy restart bluetooth) does nothing useful — it only unblocks rfkill. Reloading btusb brings the adapter back in about a second.

This looks like “Bluetooth is gone.” It is not switched off, and it is not missing hardware.

What actually happened

After a cold boot, BlueZ reported No default controller available. bluetooth.service was running, rfkill showed hci0 unblocked, /sys/class/bluetooth/hci0 existed, lsusb still showed 8087:0029. Wi-Fi worked.

The kernel had already given up:

Bluetooth: hci0: Reading Intel version command failed (-110)

-110 is a command timeout. The AX200 Bluetooth side is a USB device that must upload firmware after a real power-off. That handshake timed out, leaving a zombie hci0 that BlueZ will not use.

What Omarchy does today

bin/omarchy-restart-bluetooth is:

rfkill unblock bluetooth
rfkill list bluetooth

That is the right fix for “I turned Bluetooth off.” It cannot unstick firmware. I ran it twice; no change. Then:

sudo rmmod btusb
sudo modprobe btusb

Firmware intel/ibt-20-1-3.sfi loaded in ~1.4s, BlueZ had Controller … [default], Powered: yes. No reboot.

Suggested change

After the existing rfkill unblock, if bluetoothctl list still has no Controller:

  1. modprobe -r btusb && modprobe btusb (needs root; the menu path already runs in a privileged terminal).
  2. Wait a few seconds for firmware.
  3. If a controller appears, done. If the same -110 is back, the current “still broken” state is honest.

Who benefits

Anyone with Intel USB Bluetooth (AX200 / AX201 / AX210 and similar, 8087:00xx) after a cold boot or hard power-off — laptops and mini PCs, not only this Beelink. People whose adapter is merely rfkill-blocked still get the current unblock first and never hit the reload.

Scope (small, Omarchy-owned)

  • bin/omarchy-restart-bluetooth only.

Optional follow-up, not required to close this: pin power/control=on for Intel BT USB IDs. That overlaps #12095 (omarchy-usb-autosuspend.conf is a no-op; Intel controllers still autosuspend). On this machine usbcore.autosuspend is still 2 and 8087:0029 is control=auto. A udev pin may reduce how often firmware init loses the race; it does not replace a restart path that can recover a zombie hci0.

Out of scope: CMOS reset when Wi-Fi is also dead (iwlwifi CSR_RESET / probe -110). That is board power / BIOS, a different failure. If Wi-Fi still works, do not send people to CLR CMOS.

Steps to reproduce (when the adapter is already wedged)

bluetoothctl list          # empty / no Controller
lsusb | grep 8087          # device still there
journalctl -b | grep -F 'Reading Intel version command failed'

omarchy restart bluetooth  # still no controller

sudo rmmod btusb && sudo modprobe btusb
sleep 3
bluetoothctl list          # Controller is back

Related (different bugs)

  • #11365 — panel shows “No adapter” after you intentionally rfkill-off; UI hole, not firmware timeout.
  • #12095 — shipped USB autosuspend setting never applies; BLE HID reconnect. Same Intel USB family, different symptom.

Happy to test a patched omarchy-restart-bluetooth on this AX200.

View raw text
### System details

- **Omarchy:** 4.0.4-1
- **Kernel:** linux-omarchy 7.2.5-3
- **Machine:** Beelink SER9 (AZW SER9), AMD Ryzen 7 255
- **Bluetooth:** Intel AX200NGW, USB `8087:0029` on `usb 1-5` (`btusb`). Wi-Fi on the same card (`iwlwifi` at `02:00.0`) stayed up.

### What's wrong?

**In one sentence:** when the Intel USB Bluetooth adapter fails firmware init, the Bluetooth panel is empty and **Update → Hardware → Bluetooth** (`omarchy restart bluetooth`) does nothing useful — it only unblocks rfkill. Reloading `btusb` brings the adapter back in about a second.

This looks like “Bluetooth is gone.” It is not switched off, and it is not missing hardware.

**What actually happened**

After a cold boot, BlueZ reported `No default controller available`. `bluetooth.service` was running, `rfkill` showed `hci0` unblocked, `/sys/class/bluetooth/hci0` existed, `lsusb` still showed `8087:0029`. Wi-Fi worked.

The kernel had already given up:

```text
Bluetooth: hci0: Reading Intel version command failed (-110)
```

`-110` is a command timeout. The AX200 Bluetooth side is a USB device that must upload firmware after a real power-off. That handshake timed out, leaving a zombie `hci0` that BlueZ will not use.

**What Omarchy does today**

`bin/omarchy-restart-bluetooth` is:

```bash
rfkill unblock bluetooth
rfkill list bluetooth
```

That is the right fix for “I turned Bluetooth off.” It cannot unstick firmware. I ran it twice; no change. Then:

```bash
sudo rmmod btusb
sudo modprobe btusb
```

Firmware `intel/ibt-20-1-3.sfi` loaded in ~1.4s, BlueZ had `Controller … [default]`, `Powered: yes`. No reboot.

**Suggested change**

After the existing rfkill unblock, if `bluetoothctl list` still has no `Controller`:

1. `modprobe -r btusb && modprobe btusb` (needs root; the menu path already runs in a privileged terminal).
2. Wait a few seconds for firmware.
3. If a controller appears, done. If the same `-110` is back, the current “still broken” state is honest.

**Who benefits**

Anyone with Intel USB Bluetooth (AX200 / AX201 / AX210 and similar, `8087:00xx`) after a cold boot or hard power-off — laptops and mini PCs, not only this Beelink. People whose adapter is merely rfkill-blocked still get the current unblock first and never hit the reload.

**Scope (small, Omarchy-owned)**

- `bin/omarchy-restart-bluetooth` only.

Optional follow-up, **not required** to close this: pin `power/control=on` for Intel BT USB IDs. That overlaps #12095 (`omarchy-usb-autosuspend.conf` is a no-op; Intel controllers still autosuspend). On this machine `usbcore.autosuspend` is still `2` and `8087:0029` is `control=auto`. A udev pin may reduce how often firmware init loses the race; it does not replace a restart path that can recover a zombie `hci0`.

Out of scope: CMOS reset when **Wi-Fi** is also dead (`iwlwifi` `CSR_RESET` / probe `-110`). That is board power / BIOS, a different failure. If Wi-Fi still works, do not send people to CLR CMOS.

**Steps to reproduce** (when the adapter is already wedged)

```bash
bluetoothctl list          # empty / no Controller
lsusb | grep 8087          # device still there
journalctl -b | grep -F 'Reading Intel version command failed'

omarchy restart bluetooth  # still no controller

sudo rmmod btusb && sudo modprobe btusb
sleep 3
bluetoothctl list          # Controller is back
```

**Related (different bugs)**

- #11365 — panel shows “No adapter” after you **intentionally** rfkill-off; UI hole, not firmware timeout.
- #12095 — shipped USB autosuspend setting never applies; BLE HID reconnect. Same Intel USB family, different symptom.

Happy to test a patched `omarchy-restart-bluetooth` on this AX200.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

  • Out of scopeDecided by agents · verified · 2026-10-09 15:56 UTC