Skip to content

Fix Bookworm image: build, USB WiFi dongle, hotspot client compatibility, and camera detection - #5

Open
mrribbits wants to merge 12 commits into
interactionresearchstudio:mainfrom
mrribbits:fix/skip-os-upgrade-in-build
Open

Fix Bookworm image: build, USB WiFi dongle, hotspot client compatibility, and camera detection#5
mrribbits wants to merge 12 commits into
interactionresearchstudio:mainfrom
mrribbits:fix/skip-os-upgrade-in-build

Conversation

@mrribbits

@mrribbits mrribbits commented Jul 27, 2026

Copy link
Copy Markdown

This community edition doesn't currently build or run correctly on a modern
Raspberry Pi OS Bookworm base with a Pi Zero + USB WiFi dongle. This PR fixes it
end to end. Each change is independent.

1. Image build no longer hangs (install.sh, os/config)

On the current pinned base image the full apt-get upgrade hits an interactive
dpkg conffile prompt and then hangs forever regenerating the arm64 (v8) initramfs
under 32-bit armhf QEMU. Fix: skip the full upgrade (ADMIN_TOOLKIT_UPDATE_PACKAGES=no
and remove the upgrade/dist-upgrade calls in install.sh; make apt non-interactive).
The base kernel runs the camera fine and needed packages are installed explicitly.

2. USB WiFi dongle support (helpers/cfgsetup.py)

The hotspot script assumed the wireless interface always exists and is named
wlan0. On a Pi using a USB dongle (e.g. a Pi Zero with no onboard WiFi) the
adapter enumerates a few seconds later and may get a different name, so the
hotspot never came up. Fix: wait for a wireless interface to appear and
auto-detect its name.

3. Hotspot joinable by modern clients (helpers/cfgsetup.py)

NetworkManager 1.42 brings the hotspot up in WPA2/WPA3 "transition mode"
(key_mgmt "WPA-PSK WPA-PSK-SHA256 SAE"). Many USB WiFi drivers can't do WPA3/PMF
properly in AP mode, so the network is invisible on some phones and fails the
handshake on others (reported as a wrong password). Fix: force plain WPA2-PSK and
disable PMF.

4. Camera actually detected on Bookworm (install.sh)

The bundled raspicam module sets the LEGACY camera stack (start_x=1,
camera_auto_detect=0), but this image uses picamera2/libcamera, so the camera is
never detected. Also, the base image can ship a libcamera0.3 that mismatches
libpisp, crashing rpicam/picamera2 with an undefined-symbol error. Fix: switch to
libcamera auto-detection (start_x=0, camera_auto_detect=1) and sync the libcamera
libraries to matching versions.

Tested on a Pi Zero (v1.3) with a USB WiFi dongle (Panda PAU05 ) and a Camera Module 3 (imx708):
image builds, hotspot is joinable from macOS/iOS, and the camera streams.

mrribbits added 10 commits July 25, 2026 13:29
Refactor apt-get commands to use Dpkg options for upgrades.
Refactor install script to improve non-interactive apt handling and streamline installation process.
Patched apt upgrade command in CustomPiOS to be non-interactive during build.
Updated install.sh to clarify upgrade process and avoid kernel issues.
Removed non-interactive upgrade patching step for CustomPiOS.
Add a newline at the end of the build-image.yml file.
@mrribbits mrribbits changed the title Fix image build: skip full OS upgrade that stalls/hangs under QEMU Fix image build, and support USB WiFi dongles Aug 8, 2026
@mrribbits mrribbits changed the title Fix image build, and support USB WiFi dongles Fix Bookworm image: build, USB WiFi dongle, hotspot client compatibility, and camera detection Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant