msm8916 · snapdragon 410 · 4g-dongle → linux-sbc

Ein 8-Dollar-LTE-Stick, der ein vollwertiger Linux-Rechner wird.

TL;DR: OpenStick verwandelt billige 4G-WLAN-Dongles mit Qualcomm-MSM8916-SoC (Snapdragon 410) in kleine ARM64-Linux-Boards mit integriertem LTE-Modem, WLAN und USB-Gadget-Fähigkeit. Gestartet vom chinesischen Hacker HandsomeYingyan, der einen modifizierten lk2nd-Bootloader und Kernel-Anpassungen veröffentlichte. Rechenleistung etwa auf Raspberry-Pi-Zero-Niveau — für den Bruchteil des Preises.
Direkt loslegen · weiterführende Links
Hardware

Technische Daten

Die Werte gelten für die verbreitete UZ801-Klasse. Einzelne Modelle weichen bei Speicher, SD-Slot oder Display ab — die SoC-Basis ist aber identisch.

Rechenkern
SoCQualcomm MSM8916 (Snapdragon 410)
CPU4× ARM Cortex-A53, 64-bit, bis ~1.2 GHz
GPUAdreno 306 — keine offene Beschleunigung, OpenGL ES in Software (LLVMpipe)
RAM512 MB (nutzbar ~382–390 MB)
Storage~4 GB eMMC (Rootfs ~3.2–3.3 GB)
ErweiterungmicroSD-Slot bei manchen Modellen; USB-Host/OTG per Role-Switch möglich
Funk & Anschlüsse
MobilfunkLTE Cat-4-Modem integriert, SIM-Slot (Bandlage je nach Region prüfen)
WLAN802.11 b/g/n, nur 2.4 GHz (kein ac)
Bluetoothgeteilt mit WLAN — in der Praxis selten zuverlässig nutzbar
USBUSB 2.0, Gadget-Modi (RNDIS/ECM/HID/MSD …) via Kernel-USB-Gadget
UARTTX/RX-Pads auf der Platine — niedriger Pegel (~1.3–1.8 V, kein 3.3 V!)
Status-LEDsrot (Power) · blau (WAN) · grün (WLAN), per /sys/class/leds steuerbar
Software-Stack
Bootloaderlk2nd / lk1st (modifiziert, unterstützt extlinux.conf ähnlich u-boot); Fastboot bleibt nutzbar
Kernelmsm8916-mainline; in vielen Images vorkompilierte postmarketOS-Kernel (6.6+)
BetriebssystemeDebian (Bullseye/Bookworm), Alpine, postmarketOS, OpenWrt (HandsomeMod-Port)
Mainline-Lückenkein Audio-Codec (WCD9306 out-of-tree), keine Kamera (MIPI CSI-2), GPU nur Software

Quellen u. a.: extrowerk, wvthoog.nl, kinsamanka/OpenStick-Builder (DeepWiki), postmarketOS-Wiki, CNX-Software.

Kaufberatung

Unterstützte Geräte

Nur Sticks mit dem MSM8916-SoC funktionieren. Der Board-Aufdruck (Silkscreen) verrät die Variante — Gehäuse lässt sich meist zerstörungsfrei öffnen. Beim Kauf gezielt nach „MSM8916" fragen.

Modell / SilkscreenDevice-Tree (DTB)Status
UZ801 v3.0msm8916-yiming-uz801v3.dtbempfohlen · stabilste Variante
UZ801 v3.2(uz801v3-Familie)LTE-Registrierung teils zickig; ohne eSIM-Chip
UZ801 v1 / v2.x(ältere Revisionen)Modem-Eigenheiten möglich
UFI001B / UFI001Cthwc-ufi001c.dtbunterstützt
UF896thwc-uf896.dtbModem-Firmware teils problematisch
MF800 / MF800B-E (mit LCD)fy-mf800.dtbunterstützt (Display teils experimentell)
SP970(sp970)Modem ggf. nicht verfügbar
JZ01-45jz01-45-v33.dtbunterstützt

⚠ Finger weg — kein MSM8916:

Balong / HiSilicon · MediaTek (MTK) · Unisoc ZX297520 (ZTE) · MDM9207 / MDM9215 · Huawei E3372 · ZTE MF927U. Gleiche Bauform, völlig anderer Chip — kein EDL, kein OpenStick. Markengeräte (Huawei, ZTE, Alcatel) nutzen fast nie MSM8916.

Schritt für Schritt

How-To: Linux flashen

Ablauf für die UZ801-v3.0-Klasse, herstellerneutral zusammengefasst. Standard-IP, Benutzername und Default-Passwort unterscheiden sich je nach Image — im Zweifel die Doku des jeweiligen Builds lesen. Vorher immer ein Backup ziehen.

ADB im Web-Interface freischalten

Mit dem WLAN des Sticks verbinden (Zugang steht auf der Rückseite), Admin-Seite öffnen (oft 192.168.100.1, Login meist admin/admin) und die versteckte Debug-Seite aufrufen. Bei manchen Modellen liegt das Web-UI auf 192.168.68.1.

# im Browser:
http://192.168.100.1/usbdebug.html
# danach Stick neu einstecken, prüfen:
adb devices

Stock-Firmware sichern (EDL) — nicht überspringen!

Im Emergency-Download-Mode mit bkerler/edl ein vollständiges Backup ziehen. Vor allem die modem-Partition (enthält IMEI/Kalibrierung) ist bei Verlust kaum wiederherstellbar.

adb reboot edl
# alle Partitionen einzeln sichern:
edl rl backup_uz801 --genxml

In den Bootloader / Fastboot wechseln

Zurück in den ADB-Modus (aus- und wieder einstecken), dann in den Bootloader rebooten und prüfen, ob Fastboot das Gerät erkennt.

adb reboot bootloader
fastboot devices

Linux-Image flashen

Am bequemsten über das flash.sh-Skript eines fertigen Builds (OpenStick-Releases, OpenStick-Builder oder wvthoog-Image). Manuell werden Bootloader, Boot-Image und Rootfs per Fastboot geschrieben.

# komfortabel:
cd OpenStick/flash/ && ./flash.sh

# oder manuell (Auszug — riskant):
fastboot flash aboot aboot.mbn
fastboot flash boot  boot.bin
fastboot flash rootfs rootfs.bin

Einloggen — SSH über RNDIS oder WLAN

Nach dem Reboot stellt der Stick per USB ein RNDIS-Netzwerk bereit und/oder spannt einen WLAN-Hotspot auf. Default-User und -Passwort hängen vom Image ab (häufig user / 1).

# über USB-RNDIS (IP je nach Image, z.B.):
ssh user@192.168.200.1
# Hotspot-Beispiel: SSID 4G-UFI-XX / PSK 1234567890

Ins Internet: WLAN oder LTE

Debian nutzt NetworkManager. WLAN per nmcli/nmtui, LTE über das Modem-Profil mit passender APN.

# WLAN:
nmcli dev wifi connect "SSID" password "PASS"
# LTE:
nmcli connection modify lte gsm.apn internet
nmcli connection up lte
mmcli -m 0   # Modemstatus prüfen

Vollständige Befehle inkl. USB-Gadget-Tricks: siehe wvthoog.nl und extrowerk.

Distros & Builder

Software & Images

Wenn nichts mehr geht

Recovery & EDL

Falsches Image, ausgesperrt oder Bootloop? Über den Emergency-Download-Mode (EDL) lässt sich fast jeder Stick wiederbeleben — vorausgesetzt, du hast vorher gesichert.

Software-Weg

# aus laufendem System / Fastboot:
fastboot oem reboot-edl
# Reset-Taste 5s halten beim Einstecken
# → Fastboot, dann EDL

Anschließend mit edl die gesicherten Partitionen zurückschreiben.

Hardware-Weg (Test-Pads)

Reagiert der Bootloader nicht mehr: Gehäuse öffnen, die beiden EDL-Pads auf der Platine beim Einstecken kurzschließen. Ein angelötetes Mini-Taster macht wiederholtes Recovery deutlich angenehmer. Die UART-Pads (RX/TX) zeigen das Boot-Log.

Firmware-Sammlungen für die Wiederherstellung u. a. bei ddscentral, asvdvl/uz801-v3.0_stuff und in den OpenStick-Issues.

Was man damit baut

Typische Einsätze

[ net ]

LTE-Reise-Router

Mobiler Hotspot mit eigenem Routing — bei Bedarf VPN/WireGuard, Tailscale läuft stabil.

[ sec ]

Fern-Pentest-Box

Über 4G erreichbares Mini-Linux: USB-Gadget-Tricks, Traffic-Sniffing, Tor-Hidden-Service für SSH.

[ hid ]

USB-HID / „Rubber Ducky"

Per USB-Gadget Tastatureingaben injizieren — ferngesteuert übers Netz.

[ srv ]

Headless-Server

Always-on-Dienste, Monitoring, Bots — winzig, stromsparend, mit eingebautem Mobilfunk.

[ iot ]

Drohnen-/IoT-Begleitrechner

MAVLink-Relay & Onboard-Logik über LTE/WLAN — Pi-Zero-Alternative mit Modem.

[ lab ]

Bastel- & Lernobjekt

Reverse Engineering, Device-Trees, Mainline-Kernel, USB-Gadget-API — ideal zum Lernen.

Austausch & Hilfe

Forum & Community

Es gibt keine zentrale offizielle Foren-Instanz — die Diskussion verteilt sich auf mehrere lebendige Threads, Issue-Tracker und Kommentarspalten. Die wichtigsten Anlaufstellen:

Hinweis: Community-Discord-Einladungen (z. B. aus dem wvthoog-Blog) wechseln gelegentlich — im Zweifel direkt im Blog/Issue nachfragen.

Bewegtbild

Videos & visuelle Guides

Dediziertes Videomaterial ist rar — das Projekt lebt vor allem von Text-Tutorials. Diese kuratierten Such-Einstiege führen zuverlässig zu vorhandenen Clips und Teardown-Bildern, ohne auf einzelne (oft verwaiste) Links zu setzen.

Stolpersteine

FAQ & Troubleshooting

Mein Modem verbindet sich nicht ins LTE-Netz (DeviceNotReady / connecting).
Sehr häufig — meist fehlt oder passt die Modem-Firmware nicht. Lösung laut Community: die Dateien aus der gesicherten modem-Partition nach /lib/firmware kopieren (variantenspezifisch!). APN/PIN prüfen, ggf. Region-/Band-Problem. Besonders v3.2 macht hier öfter Ärger als v3.0.
Das System friert nach ~2 Stunden ein.
Berichtet für manche UZ801-Boards: vermutlich unterdimensionierte Spannungsregler bei 4 aktiven Kernen. Workaround aus der Community: Kerne deaktivieren, z. B. echo 0 | sudo tee /sys/devices/system/cpu/cpu3/online. Auf einem Kern stabil. Außerdem auf gutes 5-V-Netzteil und ordentliches Kabel achten (Spannungsabfall!).
Wie aktiviere ich USB-Host/OTG, um z. B. ein GPS-Modul anzuschließen?
Über das Role-Switching im Sysfs, z. B. echo host > /sys/.../ci_hdrc.0/role. In neueren Kerneln liegt der Pfad unter /sys/devices/platform/soc@0/…usb/ci_hdrc.0/role. Y-Kabel mit separater Stromzufuhr verwenden.
WireGuard lässt sich nicht installieren.
Je nach Kernel/Image fehlt das Kernelmodul. Optionen: Image mit passendem Kernel bauen (OpenStick-Builder/Docker), userspace-Alternativen wie wireguard-go, oder pragmatisch ZeroTier/Tailscale, die in der Praxis problemlos liefen.
Wie schalte ich die LEDs aus?
echo -n 0 > /sys/class/leds/red:power/brightness (analog für blue:wan und green:wlan).
Ich habe mein Image überschrieben und keinen ADB-Zugang mehr.
In EDL gehen (Reset-Taste halten bzw. Test-Pads kurzschließen) und das Backup zurückschreiben. Genau deshalb ist das EDL-Backup vor dem ersten Flashen Pflicht. ADB lässt sich notfalls über ein FFS-Gadget wieder einrichten.
Funktioniert jedes „4G LTE WIFI MODEM" aus dem Online-Shop?
Nein. Nur MSM8916-basierte Sticks. Gleiche Bauform gibt es mit MediaTek, HiSilicon/Balong, Unisoc oder anderen Qualcomm-Modems — die sind nicht kompatibel. Vor dem Kauf nach „MSM8916" fragen und auf den Board-Aufdruck achten.