Arctic Linux - Alpha 2.1
Arctic Linux Alpha 2.1 — Arctic-linux-a2.1.iso, x86_64, 695 MiB.
A bugfix for Alpha 2, which shipped with wireless broken by the fix that was
supposed to repair it.
Still not fully tested end to end. The live image is verified on real
hardware and in a VM; the install-to-disk path and wireless association are
code-verified against the binaries Arctic actually ships, not exercised to
completion. Treat it as a test image.
-f is not an option this wpa_supplicant has
Alpha 2 fixed the real wireless bug — wpa_passphrase reading from a pipe
exits 1 without writing anything, so the config had no network= block — and
then broke wireless a second way while adding diagnostics for the first.
The supplicant was invoked with -f <logfile> so a failed association would
leave something to read. -f is compiled in by CONFIG_DEBUG_FILE, and
Arctic's wpa_supplicant does not set it. An unknown option makes
wpa_supplicant print its usage and exit without ever touching the radio,
so association could not even be attempted — and the "log" the failure path
then printed was that usage text:
!! NETGEAR24 did not come up after 30s
no control socket - wpa_supplicant is not running
last lines of /run/arctic/wpa_supplicant-wlan0.log:
-p = driver parameters
-P = PID file
-q = decrease debugging verbosity (-qq even less)
...
The option had been checked with wpa_supplicant -h on the build host,
whose wpa_supplicant is built with CONFIG_DEBUG_FILE and accepts -f
perfectly. Against the binary Arctic ships:
$ strings usr/sbin/wpa_supplicant | grep -E '^ -[fBc] '
-B = run daemon in the background
-c = Configuration file
Shell redirection does the same job and cannot be refused.
A supplicant that never started counted as started
-B forks, so the exit status says nothing about whether the daemon survived,
and a build that refuses an option can exit 0 having printed usage. That is
why the failure surfaced thirty seconds later as a timeout rather than
immediately as "it did not start". The control socket and the process are what
get checked now, within five seconds.
DHCP
udhcpc was called without -s, relying on busybox's compiled-in default
script path. That path is correct and the script is on the image, so this was
not broken — but a lease that is obtained and never applied is indistinguishable
from no lease at all, so the script is named explicitly now, the way
rc.d/network already named it. Its output goes to
/run/arctic/udhcpc-<iface>.log instead of /dev/null, and a failure prints
the tail of it.
Everything from Alpha 2
Still in this image: the wpa_passphrase fix, the missing ctrl_interface,
the installer dropping the quoted psk, wireless-regdb for the 5 GHz
regulatory domain, the root=PARTUUID= → UUID= change that is what lets an
installed system boot at all, the console width and per-service timings, and
the live session printing how to install Arctic instead of a hardware
inventory. See the Alpha 2 notes for the detail on each.
Known
- No web browser; firefox, librewolf, chromium and qutebrowser all need Rust.
- No audio — wireplumber will not build against the packaged lua.
- No terminfo database, so
tputdoes not work. gmp-althas no binary package, so nftables cannot install and the firewall
does not come up. The install succeeds regardless.gtk3in the repository is corrupt (no.PKGINFO) and cannot be installed.- Declared dependencies are not checked against real linkage; dwm installs and
then fails onlibharfbuzz.so.0.
Install
dd if=Arctic-linux-a2.1.iso of=/dev/sdX bs=4M status=progress conv=fsync
Run wifi-connect if you need wireless, edit /etc/arctic/install.conf, run
arctic-install.
sha256 cadf9cb207973d8f57a71bafeb6d425b843959ab5275a49ae97bf13bd65a547f