Frequenzanzeige: Datenzugang gelöst, Umrechnung nicht — bewusst abgebrochen

IOReport liefert je Kern die Verweilzeit in jeder Leistungsstufe, genau wie
gebraucht: MCPU00 bis MCPU14, 17 Zustände, saubere Deltas zwischen zwei
Messungen.

Die Frequenz zu einer Stufe steht dort aber nicht. Sie muss aus den
voltage-states-Tabellen im IODeviceTree kommen, und die passen nicht: der Kanal
hat 16 Leistungsstufen, keine Tabelle hat 16 Einträge. Dazu sind die Einheiten
uneinheitlich — voltage-states8 enthält echte Hertz (732–2472 MHz),
voltage-states5 dagegen Paare wie (50103, 635), die in keiner Einheit sinnvolle
Taktraten ergeben.

Ab hier wäre es Reverse Engineering undokumentierter Firmware-Tabellen, deren
Format sich zwischen Chip-Generationen ändert — genau die Sorte Code, die beim
nächsten Mac still falsche Zahlen anzeigt statt zu scheitern. Dafür ist eine
Zusatzangabe im Popover zu wenig, solange Phase 6 bis 9 offen sind.

Die halbfertige Implementierung ist entfernt statt auskommentiert: nicht
verdrahteter Code, der nil liefert, verrottet und täuscht später
Vollständigkeit vor. Der Stand samt Fortsetzungsweg steht in
docs/spikes/F-frequenz.md.
This commit is contained in:
Guido Schmit
2026-08-10 22:36:39 +02:00
parent 7fcca61d70
commit aa8e903037
3 changed files with 739 additions and 660 deletions

View File

@@ -1,359 +1,360 @@
{
"sourceLanguage": "en",
"strings": {
"network.name": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Netzwerk"
"sourceLanguage" : "en",
"strings" : {
"network.addresses" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Adressen"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Network"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Addresses"
}
}
}
},
"network.wifi.connected": {
"comment": "Wenn der Netzwerkname mangels Ortungsberechtigung fehlt",
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "WLAN verbunden"
"network.download" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Download"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Wi-Fi connected"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Download"
}
}
}
},
"network.offline": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Nicht verbunden"
"network.field.interface" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Schnittstelle"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Not connected"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Interface"
}
}
}
},
"network.field.interface": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Schnittstelle"
"network.field.ipv4" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "IP"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Interface"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "IP"
}
}
}
},
"network.field.ipv4": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "IP"
"network.field.ipv6" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "IPv6"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "IP"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "IPv6"
}
}
}
},
"network.field.router": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Router"
"network.field.router" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Router"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Router"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Router"
}
}
}
},
"network.download": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Download"
"network.name" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Netzwerk"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Download"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Network"
}
}
}
},
"network.upload": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Upload"
"network.offline" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Nicht verbunden"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Upload"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Not connected"
}
}
}
},
"network.peak.download": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Spitze ↓"
"network.peak.download" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Spitze ↓"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Peak ↓"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Peak ↓"
}
}
}
},
"network.peak.upload": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Spitze ↑"
"network.peak.upload" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Spitze ↑"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Peak ↑"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Peak ↑"
}
}
}
},
"network.addresses": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Adressen"
"network.perProcess.unavailable" : {
"extractionState" : "stale",
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Durchsatz je Programm zeigt Onyx nicht: dafür gibt es ohne root keine Schnittstelle."
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Addresses"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Onyx doesn't show per-app throughput: there is no interface for it without root."
}
}
}
},
"network.transferred": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Übertragen"
"network.processes" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Je Programm"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Transferred"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Per app"
}
}
}
},
"network.total.received": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Empfangen"
"network.public" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Öffentliche Adresse"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Received"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Public address"
}
}
}
},
"network.total.sent": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Gesendet"
"network.public.enable" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Öffentliche IP anzeigen"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Sent"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Show public IP"
}
}
}
},
"network.field.ipv6": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "IPv6"
"network.public.failed" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Nicht abrufbar"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "IPv6"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Unavailable"
}
}
}
},
"network.vpn.active": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Verkehr läuft durch einen Tunnel"
"network.public.hint" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dafür fragt Onyx einen fremden Dienst — standardmäßig aus, weil ein Systemmonitor nicht ungefragt nach draußen telefonieren sollte."
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Traffic goes through a tunnel"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "This asks an external service — off by default, because a system monitor shouldn't phone home unasked."
}
}
}
},
"network.perProcess.unavailable": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Durchsatz je Programm zeigt Onyx nicht: dafür gibt es ohne root keine Schnittstelle."
"network.total.received" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Empfangen"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Onyx doesn't show per-app throughput: there is no interface for it without root."
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Received"
}
}
}
},
"network.public": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Öffentliche Adresse"
"network.total.sent" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Gesendet"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Public address"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Sent"
}
}
}
},
"network.public.enable": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Öffentliche IP anzeigen"
"network.transferred" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Übertragen"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Show public IP"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Transferred"
}
}
}
},
"network.public.hint": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Dafür fragt Onyx einen fremden Dienst — standardmäßig aus, weil ein Systemmonitor nicht ungefragt nach draußen telefonieren sollte."
"network.upload" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Upload"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "This asks an external service — off by default, because a system monitor shouldn't phone home unasked."
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Upload"
}
}
}
},
"network.public.failed": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Nicht abrufbar"
"network.vpn.active" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Verkehr läuft durch einen Tunnel"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Unavailable"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Traffic goes through a tunnel"
}
}
}
},
"network.processes": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Je Programm"
"network.wifi.connected" : {
"comment" : "Wenn der Netzwerkname mangels Ortungsberechtigung fehlt",
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "WLAN verbunden"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Per app"
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Wi-Fi connected"
}
}
}
}
},
"version": "1.0"
"version" : "1.0"
}