Skip to content

Releases: macpit/glkvm-rm1pe-kernel

v25 - a factory device now gets a working WLAN

Choose a tag to compare

@macpit macpit released this 02 Sep 04:57

Same kernel as v23 and v24. What changed is that a freshly flashed device now
actually gets a working WLAN
.

Until now install.sh shipped the menu and wpa_supplicant but not the driver,
not hostapd, not dnsmasq, not the portal, not the autostart hook and not the
nginx blocks. On a device that had been set up by hand beforehand this was
invisible. On a factory device the kernel enumerated the stick, wlan0 never
appeared, and the menu had nothing to drive. If that is where you ended up, this
release fixes it -- just run the installer again.

New in the release: 8188eu.ko (the driver), hostapd, dnsmasq.

New in the tree: scripts/build-8188eu.sh builds the driver against your
kernel tree; scripts/build-userland.sh replaces build-wpa-supplicant.sh and
builds hostapd, dnsmasq, wpa_supplicant and wpa_cli from pinned upstream
commits. The binaries are not byte-reproducible -- paths and build ids end up in
them -- so what you can verify is the sources, which the script checks before it
builds.

On a fresh install the access point SSID comes from the hostname and the
passphrase is generated and printed once. An access point whose key sits in a
public repository is not an access point with a key. Menu option 5 changes both.

The nginx change is the only part that touches a file the firmware owns. It
backs up first, tests against the config actually in use, and restores the
original if nginx does not accept it. Nothing in the WLAN step can reach the
boot partition.

sha256  Image-6.1.141-v25  d96cd811f8cf3888a5185b9c69f5e379f36888527584842a0135092a850581fd
sha256  8188eu.ko          88514328082425ad1758071204f87e001e4066b936882c9aff39838598d30118
sha256  hostapd            abf7148d86310e0ac4f45b00ef09eb6c6eafdc5ac792333423698e920f768cc4
sha256  dnsmasq            358d7f82c708180cf39ff17baafec93410e3c284262fc84a86a9c26bbde6587c
sha256  wpa_supplicant     a402b6fdb369e0346e1a190ed9d936b46410091b17580eaadd47828235af914e
sha256  wpa_cli            f362004682622b6147ff624ccc659ddddbc1e1d85fcb7776b3af6c69eac7ce8a

The driver only loads on a kernel whose vermagic matches: this one is built for
6.1.141. The kernel image is byte-identical to v23 and v24, re-uploaded so each
release is self-contained.

v24 - WLAN client mode

Choose a tag to compare

@macpit macpit released this 01 Sep 20:38

Same kernel as v23. What is new is the userland that makes the WLAN stick
useful: the device can now join an existing network as a client, not only run
an access point.

Client mode. wlan-menu.py scans, joins, switches back, and changes the
hostname and the AP credentials. Plain curses, so it works over SSH and over
the serial console.

A watchdog, because switching can cut your own link. Going to client mode
from a session over the access point kills that session mid-switch, so
wlan-apply.sh runs detached and finishes regardless. No association within 45
seconds or no DHCP lease within 15, and it brings the access point back by
itself.

A static wpa_supplicant. The rootfs has none. This release carries one,
and scripts/build-wpa-supplicant.sh builds the same thing from source, so
nobody has to take the binary on trust.

install.sh now installs the helper alongside the kernel. That step is
additive -- your hostapd.conf is never touched, an ap-start.sh that is not
one of ours is left alone, and a failure there cannot affect the boot
partition. --no-wlan skips it.

Also corrected: the earlier warning that nginx would fail to start in client
mode because of the 192.192.193.1 server block. Measured on the device, it
does not. See docs/wlan-ap.md for what was tested and when it would matter.

sha256  Image-6.1.141-v24  d96cd811f8cf3888a5185b9c69f5e379f36888527584842a0135092a850581fd
sha256  wpa_supplicant     09833d551d8c1d71f5ed8e05d2ce7a7729836d7c42800e981623f873a8da1ad7
sha256  wpa_cli            764a8114098b6b23a80f00fce17f421307309a9a786d318d22a4820eeef6df00

The kernel image is byte-identical to the one in v23; it is re-uploaded under
the v24 name so each release is self-contained and install.sh can pin a
single tag.

v23 - kernel 6.1.141

Choose a tag to compare

@macpit macpit released this 30 Aug 11:27

Kernel 6.1.141 for the GL-RM1PE, built from gl-inet/kernel-6.1 plus the four
patches in patches/.

What this build does that the stock one does not: HDMI capture that comes up on
a cold start without any manual step, resolutions accepted by rule instead of a
six-entry table, and a wireless stack for a USB stick and an access point.

Attached is the kernel only, not a flashable boot image. Pack it with the
device tree and resource blob from your own device:

scripts/build-fit.sh <device-ip> Image-6.1.141-v23 boot-custom.img
scripts/install-kernel.sh <device-ip> boot-custom.img
# then power-cycle the device yourself
sha256  d96cd811f8cf3888a5185b9c69f5e379f36888527584842a0135092a850581fd
size    16152584
source  commit 0ce3c0d85 of the patch series

Read the warning at the top of the README before you flash. A kernel without
the version sysfs attribute puts the LT6911C into a firmware reflash loop,
and the way back may need a serial console.