root@openstick:~#
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.7.0-rc4-msm8916 (gcc 12.2.0)
[    0.000000] Machine model: Handsome OpenStick MF800B-E LCD
[    0.000000] Memory: 381MB available
[    0.034521] SPMI bus probe: pm8916@0
[    0.112003] msm8916-pinctrl 1000000.pinctrl: initialized
[    0.298112] sdhci-msm 7824900.mmc: eMMC 3.6GB detected
[    0.415090] wcn36xx: WCN3620 initialized (WiFi ready)
[    1.203445] pm8916-lbc 200f000.spmi:pmic@0:charger@1000: probe successful
[    1.204112]   extcon: USB=1  (phandle swap worked!)
[    1.305667] pm8916-bms-vm 200f000.spmi:pmic@0:battery@4000: probe successful
[    1.512001] USB gadget: RNDIS + ECM configured
[    2.001337] IPv4: wlan0 → 192.168.100.1 (AP mode)
[    2.002001] IPv4: usb0  → 192.168.200.1 (RNDIS)
[    6.112445] qcom-q6v5-mss 4080000.remoteproc: MBA loaded, MPSS active
[   30.445123] qcom-q6v5-mss: THIS IS INTENTIONAL RESET  (╯°□°)╯︵ ┻━┻
[   33.102334] remoteproc0: remote processor recovered
█

OpenStick

Wie aus einem 8-Dollar-4G-Modem-Stick ein Linux-Server wurde

Eine Geschichte über IRQ-Konflikte, Soft-Bricks und fragwürdige Lebensentscheidungen

runterscrollen

Schnellstart#

1
Prüfen
MSM8916-basiertes Gerät?
(MF800B-E LCD, UZ801, UFI001B, ...)
2
Flashen
GitHub Releases
edl w [partitions]
3
Verbinden
ssh user@192.168.200.1 (USB)
192.168.100.1 (WiFi)
4
Internet
LTE aktivieren:
mmcli -m 0 --simple-connect="apn=<your_apn>"
e.g. o2: internet • T-Mobile: internet.telekom • Vodafone: web.vodafone.de
5
Recovery
Brick? → EDL 9008
Siehe 0x07 ↓
0x00

Der Patient#

    ____________________
   /                    \
  |  MF800B-E LCD        |
  |  ==================  |
  |  | 128x128 LCD  |    |
  |  |   GC9107     |    |
  |  |______________|    |
  |                      |
  |  [SIM]               |
  |                      |
  |  MSM8916   PM8916    |
  |  Cortex-A53  PMIC    |
  |  381MB RAM           |
  |  3.6GB eMMC          |
  |                      |
  |  [USB-C connector]   |
   \____________________/
🧠
SoC
Qualcomm MSM8916
ARM Cortex-A53 — wer braucht schon mehr als 4 Kerne bei 1.2 GHz?
💾
RAM
381 MB
Chrome hätte da gern ein Wörtchen mit dir zu reden
💽
Speicher
3.6 GB eMMC
22 Partitionen auf 3,6 GB. Kuschelig.
📶
Modem
LTE Cat 4
Bänder 1,3,5,7,8,20,38,40,41 — spricht fließend 4G
🔋
Akku
2100 mAh
Optional. Wie Dokumentation.
💻
Display
128x128 SPI
4K? Wir haben 16K Pixel. Insgesamt.
„Es kommt nicht auf die Specs an, die du hast. Sondern auf die Specs, um die du herumhackst." — Jeder Embedded-Entwickler, vermutlich
0x01

Kompatible Geräte & Ressourcen#

Das OpenStick-Projekt — gestartet von Handsome Yingyang — macht aus billigen 4G-USB-Modems mit Qualcomm-MSM8916-SoC vollwertige Linux-Single-Board-Computer. Quad-Core ARM Cortex-A53 @ 1.2 GHz mit integriertem LTE-Modem, für ein Taschengeld.

💰 12–15 $ auf AliExpress & Amazon
Modell Typ MSM8916 Boot LTE Display Akku Notizen
MF800B-E LCD MiFi-Hotspot Star dieser Seite. FuYi-MF800-Familie, 512 MB RAM
UFI001B/C USB-Stick Ursprüngliches OpenStick-Ziel. Hersteller THWC
UZ801 (v3) USB-Stick Am besten dokumentiert. Zhihe-Serie, 384 MB RAM
UF896 USB-Router Kompakter 4G-Router, 384 MB RAM
SP970 Pocket-WiFi Mehrere HW-Revisionen (V3, V10)
Alcatel IK41VE USB-Modem Nutzt MDM9207 (Qualcomm-IoT-Modem). Kein MSM8916!
ZTE MF927U MiFi-Hotspot Nutzt ZTE ZX297520V3 (proprietäres SoC). Kein Qualcomm!
ZTE MF823 USB-Modem Nutzt MDM9215 (reines Qualcomm-Modem). Kein MSM8916!
Huawei E3372 USB-Modem Nutzt HiSilicon Balong (Hi6921/Hi6930). Kein Qualcomm!
Vodafone K5160 USB-Modem Umgelabeltes Huawei E3372. HiSilicon Balong, kein MSM8916!

Wo kaufen

Such nach diesen Keywords auf AliExpress oder Amazon. Preise liegen je nach Verkäufer und Modell bei 8–15 $. Achte darauf, dass im Angebot MSM8916 oder einer der Modellnamen unten steht.

AliExpress
UZ801 v3.0 4G modem UFI001B 4G dongle UFI001C LTE stick MSM8916 USB stick MF800 4G WiFi SP970 pocket WiFi
Günstigste Quelle (8–12 $). Versand 2–4 Wochen. Nach „Bestellungen" sortieren für vertrauenswürdige Verkäufer. Vor dem Kauf MSM8916 beim Verkäufer bestätigen lassen.
Amazon
UZ801 4G USB modem UF896 4G router MSM8916 LTE stick 4G USB WiFi Qualcomm
Schnellerer Versand (10–15 $). Produktbilder auf Board-Aufdrucke wie „UZ801", „UFI001" oder „MSM8916" auf der Platine prüfen.
eBay
UZ801 USB stick UFI001B modem MF800 hotspot OpenStick modem
Gebraucht manchmal <8 $. Nach Foto der Board-Revision fragen. Marken-Geräte (Huawei, ZTE, Alcatel) meiden — die nutzen fast nie MSM8916.

🔍 Kaufberatung

Angebote ändern sich ständig — mit dieser Checkliste findest du das richtige Gerät. Es ist „hit or miss", also vor der Bestellung immer prüfen!

✅ Suchbegriffe
MSM8916 UZ801 v3.0 UFI001C MF800B-E LCD Qualcomm 8916 OpenStick
📋 Muss im Angebot stehen
  • MSM8916 or Qualcomm 8916
  • Klare Board-Revision (z. B. UZ801 v3.0)
  • Idealerweise: Foto der Platine mit sichtbarem SoC
🚩 Warnsignale — Finger weg!
Balong / HiSilicon MTK / MediaTek Unisoc ZX297520 (ZTE) MDM9207 / MDM9215 Huawei E3372 ZTE MF927U

Kein SoC angegeben? Verkäufer weicht aus? → Finger weg. Viele ähnlich benannte Geräte nutzen völlig andere Chipsätze!

Ressourcen & Guides

📦 GitHub-Repository 👥 OpenStick-Organisation 📖 Ausführlicher Guide (wvthoog.nl) 🔧 Extrowerk-Guide 📰 Liliputing-Artikel 🔗 UZ801-Armbian-Guide
0x02

Aktueller Status#

Läuft

  • Debian Linux (kernel 6.7.0-rc4)
  • LTE-Internet (4G, O2)
  • WiFi hotspot — OpenSpot (192.168.100.1)
  • USB networking (192.168.200.1)
  • Akku-Überwachung (BMS)
  • Laderegler + USB-Erkennung (extcon)
  • Modem-Recovery-Service
  • SSH-Fernzugriff
  • LED-Steuerung (R/G/B)
  • Vollständiges EDL-Backup-System
  • Display-UI-Daemon (8 Python-Module)
  • VNC-Remote-Desktop (TigerVNC + Openbox)
  • Home-Assistant-Integration (Licht, Thermostat)

TODO

  • Akku-Ladekalibrierung
  • Thermisches Management
  • Audio-Subsystem
  • GPS (falls Hardware vorhanden)
0x03

Die Reise#

8 Monate. 7 Versionen. 1 Soft-Brick. Unendlich viele dmesg | grep-Befehle.

0x04

Die Architektur#

Was in einem Gerät steckt, das kleiner ist als dein Daumen.

 HOST PC                          MF800B-E LCD OpenStick
 -------                         ----------------------
                    USB
 [Terminal] ----[RNDIS/gadget]---- [Debian Linux]
  ssh user@                        Kernel 6.7.0-rc4-msm8916
  192.168.200.1                    |
                                   +-- [WiFi AP] --- 192.168.100.1
                                   |    wlan0 (WCN3620)
                                   |
                                   +-- [LTE Modem] --- internet
                                   |    wwan0 (Q6 remoteproc)
                                   |    ModemManager + NetworkManager
                                   |
                                   +-- [PMIC PM8916] --- SPMI Bus
                                   |    +- charger@1000 (pm8916-lbc)
                                   |    |   extcon USB + charging
                                   |    +- battery@4000 (pm8916-bms-vm)
                                   |    |   voltage, SOC, health
                                   |    +- adc@3100 (VADC)
                                   |    +- gpio, rtc, temp-alarm
                                   |
                                   +-- [Display UI] --- SPI (/dev/fb0)
                                   |    128x128 GC9107 (XRGB8888)
                                   |    openstick-ui.service (8 modules)
                                   |    Status, menus, HA control
                                   |
                                   +-- [VNC Desktop] --- port 5901
                                   |    TigerVNC + Openbox (800x600)
                                   |    ~96 MB RAM footprint
                                   |
                                   +-- [LEDs]
                                        Red/Green/Blue status
0x05

Die Boot-Sequenz#

Von Power-On bis ping google.com — eine Reise über tausend Interrupts.

0x06

Die eMMC-Karte#

3,6 GB Flash-Speicher. 22 Partitionen. Jedes Byte verbucht.

💾 eMMC — 3.6 GB (3,758,096,384 bytes) sdhci-msm 7824900.mmc • HS200 @ 192MHz
Boot-Kette Modem Linux-OS Daten Sicherheit Sonstiges
sbl1
tz
hyp
rpm
aboot
boot
modem 64 MB
fsg
nv1
nv2
misc
system ~1.6 GB Debian rootfs (ext4)
userdata ~1.2 GB ext4
cache 128 MB
recovery
persist
ssd
DDR
key
Linux-OS (boot + system + recovery) ~46%
Daten (userdata + cache + persist) ~37%
Modem-Firmware (modem + fsg + nv) ~2%
Boot-Kette (sbl1 + rpm + aboot) <1%
# Partitionstabelle ausgeben (der Moment der Wahrheit)
$ edl printgpt --memory=emmc
Parsing Qualcomm Sahara / Firehose protocol...

  Name            Offset       Size        Flags
  ─────────────────────────────────────────────────
  sbl1            0x00000000   128.0 KB    bootable
  tz              0x00020000   256.0 KB
  hyp             0x00060000   128.0 KB
  rpm             0x00080000   128.0 KB
  aboot           0x000A0000     1.0 MB    bootable
  boot            0x001A0000    32.0 MB    bootable
  modem           0x021A0000    64.0 MB
  system          0x061A0000     1.6 GB
  userdata        0x261A0000     1.2 GB
  cache           0x6E1A0000   128.0 MB
  recovery        0x761A0000    32.0 MB
  ─────────────────────────────────────────────────
  22 Partitionen gefunden. Keine Rückgabe.
„3,6 GB schienen genug Platz. Dann sagte Debian ‚halt mal mein dpkg'." — Die traurige Geschichte von apt autoremove
0x07

Die Recovery-Toolbox#

Wenn etwas schiefgeht (und das wird es), ist EDL dein Freund.

Normal
reboot bootloader
Fastboot
fastboot oem reboot-edl
EDL (9008)
edl rf full_backup.bin
# Ganzes eMMC lesen (der „oh nein"-Knopf)
edl rf backup.bin --memory=emmc

# Einzelne Partitionen lesen (der „chirurgische" Ansatz)
edl rl partitions/ --memory=emmc --genxml

# Alles zurückschreiben (der „Rückgängig"-Knopf)
edl wf backup.bin --memory=emmc

# Partitionstabelle ausgeben (der „was sehe ich da"-Knopf)
edl printgpt --memory=emmc
0x08

Der Debug-Friedhof#

Befehle getippt. Verstand verloren. Eine Hommage an das Handwerkszeug.

0
dmesg | grep-Befehle
(vorsichtig geschätzt)
0
erstellte Boot-Images
mindestens 1 war falsch
0
Zeilen Display-UI
über 8 Python-Module
0
Modem-Firmware-Dateien
alle 56 sind wichtig. alle.
0
Pixel auf dem Display
128×128 pures Potenzial
0
getauschte phandles
der eine, der alles rettete