Bootstrap auf dem OnePlus 7 Pro bestanden. Turnip ist nachweislich aktiv — vulkaninfo meldet 'Turnip Adreno (TM) 640', also nicht nur installiert, sondern tatsächlich der genutzte Treiber. Damit steht für S1 der schnellste GPU-Pfad zur Verfügung, ohne virgl-Proxy. Beide Stolpersteine sind mit dokumentiert, auch der unschöne: proot-distro verlangt python3.13, installiert ist 3.14, und weder Nachinstallieren noch Vollupgrade beheben das — die Paketquelle liefert einen unstimmigen Satz. Der Verweis python3.13 auf 3.14 ist ein Behelf und steht als solcher im Protokoll, samt Hinweis, dass er beim nächsten Update von proot-distro wieder aufbrechen kann. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
162 lines
5.0 KiB
Markdown
162 lines
5.0 KiB
Markdown
# Spike-Protokoll — Phase 0
|
||
|
||
Ergebnisse der vier Machbarkeitsbeweise. **Dies ist das wichtigste Dokument des
|
||
Projekts**, solange Phase 0 läuft: alle folgenden Entscheidungen bauen darauf auf.
|
||
|
||
Ehrlich ausfüllen, auch und gerade bei Fehlschlägen. Ein sauber dokumentierter
|
||
Fehlschlag ist wertvoller als ein geschöntes Ergebnis.
|
||
|
||
## Gerät
|
||
|
||
| | |
|
||
|---|---|
|
||
| Modell | OnePlus 7 Pro — `GM1913` / `OnePlus7Pro` |
|
||
| SoC | Snapdragon 855 (`SM8150`, Plattform `msmnile`) |
|
||
| GPU | Adreno 640 — **Turnip aktiv**, laut `vulkaninfo`: `Turnip Adreno (TM) 640` |
|
||
| RAM | 11 GiB |
|
||
| Freier Speicher | ~19,9 GB unter `$PREFIX` |
|
||
| ROM | Stock OxygenOS 12 (Android 12, SDK 31) |
|
||
| Kernel | 4.14.180-perf+ |
|
||
| Rootfs | Debian 13.3 (Trixie) über proot-distro |
|
||
| Display | 3120 × 1440, virtuelle Auflösung im Test: _(ausfüllen)_ |
|
||
| Akku | 4000 mAh, Baujahr 2019 — getauscht? _(ausfüllen)_ |
|
||
| Datum des Tests | _(ausfüllen)_ |
|
||
|
||
**Bootstrap: bestanden.** Zwei Stolpersteine unterwegs, beide gelöst und im Skript
|
||
abgefangen:
|
||
|
||
- `libmagic` gegen `file 5.47`: Dateikonflikt aus einer Paketaufteilung, aufgelöst
|
||
mit `--force-overwrite`.
|
||
- `proot-distro` verlangt `python3.13`, installiert ist `python3.14`. Weder
|
||
Nachinstallieren noch Vollupgrade haben das behoben — die Paketquelle liefert
|
||
hier einen unstimmigen Satz. Behelf: Verweis `python3.13 → python3.14`.
|
||
**Vertretbar, weil proot-distro reines Python ist, aber nicht sauber** — beim
|
||
nächsten Update von proot-distro kann es erneut auftreten.
|
||
|
||
## Zusammenfassung
|
||
|
||
| Beweis | Ergebnis | Konsequenz |
|
||
|---|---|---|
|
||
| **S1** Plasma Mobile in proot | ⬜ offen | |
|
||
| **S2** Mikrofon im Linux | ⬜ offen | |
|
||
| **S3** Virtuelle PipeWire-Kamera | ⬜ offen | |
|
||
| **S4** Intent-Handoff | ⬜ offen | |
|
||
| **Übernacht-Test** Hintergrundbetrieb | ⬜ offen | |
|
||
|
||
---
|
||
|
||
## S1 — Plasma Mobile in proot
|
||
|
||
**Beweisziel:** `kwin_wayland --x11-display` genestet in Termux-X11, darauf
|
||
`plasma-mobile`. Startet, reagiert auf Touch, Maliit-Tastatur erscheint.
|
||
|
||
**Wenn es scheitert:** XFCE-Profil wird Hauptweg. Dann braucht die Kamera
|
||
`xdg-desktop-portal-gtk` statt `-kde`, die Tastatur wird `onboard`, und Telefonie
|
||
braucht eine eigene Oberfläche statt `plasma-dialer`.
|
||
|
||
| | |
|
||
|---|---|
|
||
| Ergebnis | _(offen)_ |
|
||
| Startzeit bis Bedienoberfläche | |
|
||
| Touch funktioniert | |
|
||
| Maliit-Tastatur erscheint | |
|
||
| Rotation | |
|
||
| Fehlermeldungen | |
|
||
|
||
---
|
||
|
||
## S2 — Mikrofon im Linux
|
||
|
||
**Beweisziel:** PulseAudio in Termux mit OpenSL-Source, `PULSE_SERVER` in den proot,
|
||
`parecord` nimmt hörbar auf.
|
||
|
||
**Wenn es scheitert:** keine Videocalls in Element und im Browser, keine Sprachaufnahme,
|
||
keine Spracheingabe. Videotelefonie nur noch nativ auf dem Host per Intent-Handoff.
|
||
Deutliche Abwertung des Produkts.
|
||
|
||
| | |
|
||
|---|---|
|
||
| Ergebnis | _(offen)_ |
|
||
| Verwendetes PulseAudio-Modul | |
|
||
| Aufnahme hörbar | |
|
||
| Latenz / Aussetzer | |
|
||
| Verhalten bei gesperrtem Bildschirm | |
|
||
|
||
---
|
||
|
||
## S3 — Virtuelle PipeWire-Kamera
|
||
|
||
**Beweisziel:** GStreamer-`pipewiresink` mit `media.class=Video/Source` erzeugt einen
|
||
Kamera-Node; Firefox mit `media.webrtc.camera.allow-pipewire` sieht ihn auf
|
||
`webcamtests.com` und zeigt Bild.
|
||
|
||
**Wenn es scheitert:** keine Videocalls im Linux, Kamera nur über eine eigenständige App.
|
||
|
||
| | |
|
||
|---|---|
|
||
| Ergebnis | _(offen)_ |
|
||
| Node erscheint in `wpctl status` | |
|
||
| Firefox sieht die Kamera | |
|
||
| Bild kommt an | |
|
||
| Bildrate / Auflösung | |
|
||
|
||
⚠️ **Pop-up-Kamera:** Die Frontkamera des OnePlus 7 Pro fährt motorisiert aus. Prüfen,
|
||
dass der Node nicht spekulativ die Frontkamera öffnet — das ist Mechanik und Verschleiß.
|
||
|
||
---
|
||
|
||
## S4 — Intent-Handoff
|
||
|
||
**Beweisziel:** Eine Adresse aus dem Linux startet per `geo:`-Intent die Navigation auf
|
||
dem Host, mit vorher gestarteter Overlay-Begleit-App.
|
||
|
||
**Wenn es scheitert:** keine Navigation aus dem Linux-Adressbuch; Host-Apps müssen
|
||
manuell über den Task-Manager gestartet werden.
|
||
|
||
| | |
|
||
|---|---|
|
||
| Ergebnis | _(offen)_ |
|
||
| `geo:`-URI startet Maps | |
|
||
| `google.navigation:` startet Turn-by-Turn direkt | |
|
||
| Overlay der Begleit-App liegt über Maps | |
|
||
| `SYSTEM_ALERT_WINDOW` erteilt | |
|
||
| Rückweg ins Linux über Task-Manager | |
|
||
|
||
---
|
||
|
||
## Übernacht-Test — Hintergrundbetrieb
|
||
|
||
**Beweisziel:** Der komplette Stack überlebt eine Nacht mit gesperrtem Bildschirm.
|
||
|
||
**Wenn es scheitert:** früher Warnschuss für das Gesamtkonzept, kein Detail. OxygenOS 12
|
||
basiert auf ColorOS mit aggressiver App-Einfrierung unterhalb der Android-Mechanismen.
|
||
|
||
| | |
|
||
|---|---|
|
||
| ADB-Maßnahmen gesetzt (`provision.sh`) | |
|
||
| Herstellerseitige Handgriffe erledigt | |
|
||
| Prozesse nach 8 h noch da | |
|
||
| Akkuverbrauch über Nacht | |
|
||
| Was wurde beendet | |
|
||
|
||
---
|
||
|
||
## Leistungsmessungen
|
||
|
||
| Messung | Wert |
|
||
|---|---|
|
||
| `vkcube` läuft | |
|
||
| `glmark2` Score | |
|
||
| GPU-Treiberpfad (Turnip / Zink / virgl / Software) | **Turnip** — bestätigt im Bootstrap |
|
||
| Virtuelle Auflösung | |
|
||
| Akku: Leerlauf mit laufendem Stack | |
|
||
| Akku: Desktop aktiv | |
|
||
| Thermik / Throttling | |
|
||
|
||
---
|
||
|
||
## Fazit und Entscheidungen
|
||
|
||
_(Nach Abschluss ausfüllen: welches Desktop-Profil wird gebaut, welche Fallbacks greifen,
|
||
was ändert sich am Plan.)_
|