Skip to main content

max / alloy

Carry the Intel wireless firmware the weak-deps flag drops
Author: Max Johnson <me@maxj.phd> · 2026-09-03 19:25 UTC
Signed with PGP, not checked
Commit: bcc01a09d24921d7b028cefe535f4025e33bcc15
Parent: 50c2c48
1 file changed, +28 insertions, -1 deletion
M Containerfile +28 -1
@@ -1627,6 +1627,29 @@
1627 1627 # duplicated into the server branch.
1628 1628 NetworkManager-wifi \
1629 1629 wpa_supplicant \
1630 + # And the Intel wireless firmware, which is a separate defect with the
1631 + # same symptom and a different layer. `--setopt=install_weak_deps=False`
1632 + # above is what drops it: Fedora's linux-firmware *requires* the
1633 + # atheros, brcmfmac, mt7xxx and nxpwireless splits and only
1634 + # *recommends* the iwlwifi ones, so the flag silently produced an image
1635 + # that can drive every wireless chip except Intel's. Measured on fw12
1636 + # 2026-09-03, where the kernel said it in as many words:
1637 + #
1638 + # Detected Intel(R) Wi-Fi 6E AX211 160MHz
1639 + # Direct firmware load for iwlwifi-so-a0-gf-a0-89.ucode failed
1640 + # no suitable firmware found!
1641 + #
1642 + # The driver loads either way, so `lsmod` shows iwlwifi present with a
1643 + # refcount of zero and no interface is ever created. Same silent shape
1644 + # as the missing plugin above: nothing fails, and the hardware is
1645 + # simply not there.
1646 + #
1647 + # -mvm covers the modern parts (7260 onward, which is every Intel card
1648 + # in a machine Alloy claims to support, fw12's AX211 included). -mld is
1649 + # the newest series and -dvm is pre-2013; neither is in the tested
1650 + # matrix, and this line grows when the matrix does rather than in
1651 + # anticipation.
1652 + iwlwifi-mvm-firmware \
1630 1653 # Lock + idle. swaylock is the adopted lock surface per
1631 1654 # docs/STACK.md#lock. A session-lock surface is graphical and
1632 1655 # cannot be a TUI, so Alloy adopts rather than authors it. The
@@ -1924,7 +1947,11 @@
1924 1947 # until 2026-09-03 because every Alloy install so far was reached over a
1925 1948 # wire.
1926 1949 && ls /usr/lib64/NetworkManager/*/libnm-device-plugin-wifi.so >/dev/null 2>&1 \
1927 - && rpm -q wpa_supplicant >/dev/null; \
1950 + && rpm -q wpa_supplicant >/dev/null \
1951 + # The firmware half, asserted by file rather than by package, because
1952 + # what the driver needs is a blob at a path and the package is only how
1953 + # it gets there.
1954 + && ls /usr/lib/firmware/iwlwifi-*.ucode* >/dev/null 2>&1; \
1928 1955 else \
1929 1956 # The asserting else. Five sentinels, one per reason a package could
1930 1957 # have landed here anyway: sway is a direct name in the `then` branch,