docs: README komplett überarbeitet + install.sh für Full-Setup
- README.md: Vollständig dokumentiert (alle Tools, Services, udev-Regeln, COSMIC Applet, Razer Naga Swap, eGPU Tuning, Installation) - install.sh: Automatisiertes Full-Setup-Script (Applet build, udev, Services, Tools, eGPU, DMS Widget) - Verzeichnisstruktur aktualisiert
This commit is contained in:
parent
625a90b3e7
commit
9faf944870
2 changed files with 366 additions and 110 deletions
375
README.md
375
README.md
|
|
@ -1,8 +1,8 @@
|
|||
# SuperX-goes-Arch
|
||||
|
||||
Arbeitsrepo für Linux-/Arch-Support auf dem **OneXPlayer Super X** (Ryzen AI Max+ 395, Radeon 8060S, 64GB).
|
||||
Arbeitsrepo für Linux-/Arch-Support auf dem **OneXPlayer Super X** (Ryzen AI Max+ 395, Radeon 8060S, 128GB).
|
||||
|
||||
Betriebssystem: **Arch Linux** · Compositor: **Hyprland 0.55.4** · Shell: **DankMaterialShell (DMS)**
|
||||
Betriebssystem: **Arch Linux** · Compositor: **COSMIC Desktop** (System76)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -13,13 +13,16 @@ Betriebssystem: **Arch Linux** · Compositor: **Hyprland 0.55.4** · Shell: **Da
|
|||
| **Frostbay BLE (Kühlung)** | ✅ Produktiv | Fan/Pumpe via BlueZ/D-Bus steuern |
|
||||
| **Frostbay RGB** | ⚠️ Funktional | BLE-Writes funktionieren, aber LED-Strips physisch nicht angeschlossen |
|
||||
| **superx-ctrl.py** | ✅ Produktiv | Zentrale CLI-Steuerung (Frostbay + Tablet RGB + EC Turbo) |
|
||||
| **DMS SuperXCtrl Widget** | ✅ Produktiv | GUI-Widget für Cooling/RGB-Steuerung im DMS-Panel |
|
||||
| **COSMIC Applet** | ✅ Produktiv | Panel-Applet für Cooling/RGB-Steuerung |
|
||||
| **DMS SuperXCtrl Widget** | ✅ Produktiv | GUI-Widget für Cooling/RGB-Steuerung im DMS-Panel (Hyprland) |
|
||||
| **Turbo-Daemon** | ✅ Produktiv | Key-Combo-Listener für Turbo/Mode/KB-Tasten |
|
||||
| **HHD Patch** | ✅ Produktiv | Turbo-Bypass für Super X ohne oxp-platform |
|
||||
| **Tablet RGB (HIDRAW)** | ⚠️ Hardware fehlt | RGB-Steuerung des Tablet-Moduls via HIDRAW (1a86:1305 Interface 2) – Code fertig, aber Tablet-Modul noch nicht verbaut |
|
||||
| **Keyboard RGB** | ❌ Nicht steuerbar | Keyboard-RGB kann nicht angesteuert werden |
|
||||
| **EC Turbo** | ✅ Produktiv | Turbo-Status lesen/setzen via EC (/sys/kernel/debug/ec/ec0/io) |
|
||||
| **Mainboard RGB (WS2812B)** | 🔄 In Arbeit | Original-LEDs kommen morgen – dann Reverse-Engineering am Mainboard-RGB2-Anschluss |
|
||||
| **Razer Naga Swap** | ✅ Produktiv | Links/Rechts-Tastenvertauschung für Razer Naga Left Handed Edition |
|
||||
| **eGPU Tuning** | ✅ Installiert | RX 9060 XT Performance-Tuning (runpm=0, DPM high) |
|
||||
| **Mainboard RGB (WS2812B)** | 🔄 In Arbeit | Original-LEDs kommen – dann Reverse-Engineering am Mainboard-RGB2-Anschluss |
|
||||
| **WMI/EC-Kernel-Module** | 🔄 In Arbeit | Erste Module kompilieren, aber noch nicht funktional |
|
||||
|
||||
---
|
||||
|
|
@ -29,6 +32,7 @@ Betriebssystem: **Arch Linux** · Compositor: **Hyprland 0.55.4** · Shell: **Da
|
|||
```
|
||||
superx-goes-arch/
|
||||
├── README.md # Diese Datei
|
||||
├── install.sh # Full-Setup-Script (udev, Services, Applet, Tools)
|
||||
├── docs/
|
||||
│ ├── frostbay-ble-protocol.md # BLE GATT Protokoll (vollständig dokumentiert)
|
||||
│ ├── frostbay-onec1-initial-findings.md
|
||||
|
|
@ -44,7 +48,8 @@ superx-goes-arch/
|
|||
├── tools/
|
||||
│ ├── frostbay_ble.py # Frostbay BLE GATT Reader/Controller
|
||||
│ ├── superx-ctrl.py # Zentrale CLI-Steuerung (v4)
|
||||
│ ├── tablet-rgb.py # Tablet RGB via HIDRAW
|
||||
│ ├── tablet-rgb.py # Tablet RGB via HIDRAW (dynamische Device-Erkennung)
|
||||
│ ├── razer-naga-swap.py # Button-Swap-Daemon (evdev/uinput)
|
||||
│ ├── ec-read.py # EC Turbo Status Reader
|
||||
│ ├── turbo-daemon.py # Turbo/FN Key Combo Daemon
|
||||
│ ├── turbo-monitor.py # evdev Monitor für Turbo-Tasten
|
||||
|
|
@ -62,12 +67,23 @@ superx-goes-arch/
|
|||
│ ├── steam-egpu* # Steam eGPU Integration
|
||||
│ └── wmi/ # WMI Kernel Module Source
|
||||
├── udev/
|
||||
│ ├── 99-superx-hid.rules # HIDRAW-Zugriff für Super X Vendor HID
|
||||
│ └── 99-superx-rgb-hidraw.rules # Alternative HIDRAW-Regeln (älter)
|
||||
│ ├── 99-superx-hid.rules # HIDRAW-Zugriff für Super X Vendor HID (1a86:1305)
|
||||
│ ├── 99-razer-naga-swap.rules # Startet Button-Swap beim Einstecken der Razer Naga
|
||||
│ └── 99-egpu-superx.rules # eGPU Performance beim Hotplug
|
||||
├── configs/
|
||||
│ ├── hyprland.conf # Hyprland Konfiguration
|
||||
│ ├── amdgpu-egpu.conf # AMDGPU eGPU Tuning
|
||||
│ ├── amdgpu-egpu.conf # AMDGPU eGPU Tuning (runpm=0, sched_policy=1)
|
||||
│ ├── razer-naga-swap.service # systemd-Service für Button-Swap-Daemon
|
||||
│ └── steam-egpu.desktop # Steam Desktop Entry mit eGPU
|
||||
├── cosmic-applet-superx/
|
||||
│ ├── Cargo.toml # Rust-Projekt
|
||||
│ ├── src/
|
||||
│ │ ├── main.rs # Einstiegspunkt
|
||||
│ │ ├── lib.rs # Modul-Deklaration
|
||||
│ │ ├── app.rs # Applet-Logik (UI, Subprocess-Aufrufe)
|
||||
│ │ └── config.rs # APP_ID
|
||||
│ ├── com.system76.CosmicAppletSuperX.desktop
|
||||
│ └── install.sh # Build + Install für COSMIC Applet
|
||||
└── dms/
|
||||
└── plugins/
|
||||
└── SuperXCtrl/
|
||||
|
|
@ -78,6 +94,81 @@ superx-goes-arch/
|
|||
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
### Komplett-Setup (empfohlen)
|
||||
|
||||
```bash
|
||||
git clone ssh://git@git.nepharius.at:2222/nepharius/superx-goes-arch.git
|
||||
cd superx-goes-arch
|
||||
./install.sh
|
||||
```
|
||||
|
||||
Das Script installiert:
|
||||
- COSMIC Applet (build + systemd-User-Service)
|
||||
- udev-Regeln (Super X HID, Razer Naga, eGPU)
|
||||
- Razer Naga Button-Swap-Daemon
|
||||
- eGPU Performance-Tuning (modprobe.d + perf-script)
|
||||
- Symlinks für CLI-Tools in `~/.local/bin/`
|
||||
- DMS Widget (falls DMS installiert)
|
||||
|
||||
### Einzel-Komponenten
|
||||
|
||||
Siehe Abschnitte unten.
|
||||
|
||||
---
|
||||
|
||||
## COSMIC Applet
|
||||
|
||||
Ein Rust-Applet für den COSMIC Desktop-Panel. Steuert Frostbay Cooling, RGB und Tablet RGB.
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
cd cosmic-applet-superx
|
||||
cargo build --release
|
||||
install -Dm755 target/release/cosmic-applet-superx ~/.local/bin/
|
||||
install -Dm644 com.system76.CosmicAppletSuperX.desktop ~/.local/share/applications/
|
||||
```
|
||||
|
||||
### Autostart (systemd user service)
|
||||
|
||||
```bash
|
||||
cat > ~/.config/systemd/user/cosmic-applet-superx.service << 'EOF'
|
||||
[Unit]
|
||||
Description=Super X Control COSMIC Applet
|
||||
After=graphical-session.target
|
||||
PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=%h/.local/bin/cosmic-applet-superx
|
||||
Restart=on-failure
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
EOF
|
||||
systemctl --user daemon-reload
|
||||
systemctl --user enable --now cosmic-applet-superx.service
|
||||
```
|
||||
|
||||
### Panel-Platzierung
|
||||
|
||||
Das Applet erscheint in COSMIC Settings → Desktop → Panel → Applets → Add.
|
||||
Oder direkt via Config: in `~/.config/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_wings`
|
||||
den Eintrag `"com.system76.CosmicAppletSuperX"` hinzufügen.
|
||||
|
||||
### Features
|
||||
|
||||
- **Cooling Modes:** Off, Silent, Gentle, Strong, Extreme, Smart
|
||||
- **Custom Fan/Pump:** Slider 0-100%
|
||||
- **Frostbay RGB:** 10 Presets + On/Off
|
||||
- **Tablet RGB:** On/Off, Rainbow, Aurora
|
||||
- **Status-Anzeige** im Popup
|
||||
|
||||
---
|
||||
|
||||
## Frostbay BLE (Kühlung)
|
||||
|
||||
Die Frostbay ONEC1 Wasserkühlung kommuniziert via **BLE GATT** (nicht HID!).
|
||||
|
|
@ -118,14 +209,6 @@ Details: `docs/frostbay-ble-protocol.md`
|
|||
|
||||
`tools/superx-ctrl.py` ist die zentrale CLI-Schnittstelle, die alle Subsysteme zusammenfasst.
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# Kopieren nach ~/.local/bin/ für PATH-Zugriff
|
||||
cp tools/superx-ctrl.py ~/.local/bin/superx-ctrl.py
|
||||
chmod +x ~/.local/bin/superx-ctrl.py
|
||||
```
|
||||
|
||||
### Nutzung
|
||||
|
||||
```bash
|
||||
|
|
@ -175,39 +258,156 @@ superx-ctrl.py
|
|||
|
||||
---
|
||||
|
||||
## DMS SuperXCtrl Widget
|
||||
## Razer Naga Left Handed – Button Swap
|
||||
|
||||
Das DMS-Widget bietet eine GUI für Cooling- und RGB-Steuerung im DMS-Panel.
|
||||
`tools/razer-naga-swap.py` ist ein Daemon, der die linke und rechte Maustaste der Razer Naga Left Handed Edition vertauscht.
|
||||
|
||||
### Funktionsweise
|
||||
|
||||
- Nutzt `evdev` + `uinput` (Kernel-Level)
|
||||
- Grabbed die originale Maus, erzeugt einen virtuellen Device mit getauschten Tasten
|
||||
- Funktioniert systemweit: COSMIC, Greeter, XWayland, Spiele
|
||||
- Nur die Razer Naga (1532:008d) wird beeinflusst – Touchpad und andere Mäuse bleiben normal
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# Plugin-Verzeichnis anlegen
|
||||
mkdir -p ~/.config/DankMaterialShell/plugins/SuperXCtrl/
|
||||
|
||||
# Dateien kopieren
|
||||
cp dms/plugins/SuperXCtrl/* ~/.config/DankMaterialShell/plugins/SuperXCtrl/
|
||||
|
||||
# Plugin aktivieren (plugin_settings.json)
|
||||
# → {"superXCtrl": {"enabled": true}}
|
||||
sudo cp tools/razer-naga-swap.py /usr/local/bin/
|
||||
sudo chmod +x /usr/local/bin/razer-naga-swap.py
|
||||
sudo cp configs/razer-naga-swap.service /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now razer-naga-swap.service
|
||||
```
|
||||
|
||||
### Features
|
||||
### udev-Hotplug
|
||||
|
||||
- **Cooling Tab:** 6 Modes (Off/Silent/Gentle/Strong/Extreme/Smart) + Custom Fan/Pump Slider
|
||||
- **RGB Tab:** 10 Frostbay RGB Presets + On/Off + Tablet RGB (4 Presets + 6 Farben)
|
||||
- **Status-Pill** in der DMS-Bar: zeigt an ob Cooling aktiv ist
|
||||
`udev/99-razer-naga-swap.rules` startet den Daemon automatisch beim Einstecken der Maus.
|
||||
|
||||
### QML-Architektur
|
||||
---
|
||||
|
||||
Das Widget (`SuperXWidget.qml`) ruft `superx-ctrl.py` via `Process`-Komponente auf:
|
||||
## eGPU Performance Tuning
|
||||
|
||||
```qml
|
||||
Process {
|
||||
id: cmdProcess
|
||||
command: ["sh", "-c", "python3 /home/nepharius/.local/bin/superx-ctrl.py " + args + " 2>/dev/null"]
|
||||
running: false
|
||||
}
|
||||
Für die RX 9060 XT (Navi 44) am USB4-Controller.
|
||||
|
||||
### Kernel-Parameter
|
||||
|
||||
`configs/amdgpu-egpu.conf` → `/etc/modprobe.d/amdgpu-egpu.conf`:
|
||||
|
||||
```
|
||||
options amdgpu ppfeaturemask=0xfff7bfff # OverDrive / PowerPlay
|
||||
options amdgpu gpu_recovery=1 # GPU Recovery statt Kernel Panic
|
||||
options amdgpu runpm=0 # Runtime-PM aus (eGPU bleibt wach)
|
||||
options amdgpu dc=1 # Display Core
|
||||
options amdgpu sched_policy=1 # Priority-Scheduler (Gaming)
|
||||
options amdgpu mes=1 # Micro Engine Scheduler
|
||||
```
|
||||
|
||||
**Reboot erforderlich** nach Änderung (amdgpu ist built-in).
|
||||
|
||||
### Performance-Script
|
||||
|
||||
`tools/superx-egpu-perf.sh` setzt beim eGPU-Connect:
|
||||
- `power_dpm_force_performance_level` → `high`
|
||||
- `power/control` → `on` (Runtime-PM deaktiviert)
|
||||
- PCIe ASPM → aus
|
||||
|
||||
### udev-Hotplug
|
||||
|
||||
`udev/99-egpu-superx.rules` triggert das Performance-Script beim Erscheinen der RX 9060 XT.
|
||||
|
||||
### Game Wrapper
|
||||
|
||||
`tools/superx-game-wrapper.sh` erkennt live ob die eGPU verbunden ist und setzt `DRI_PRIME=1` + `VK_ICD_FILENAMES` nur dann.
|
||||
|
||||
In Steam → Properties → Launch Options:
|
||||
```
|
||||
/home/nepharius/SuperX-goes-Arch/tools/superx-game-wrapper.sh %command%
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Tablet RGB (HIDRAW)
|
||||
|
||||
`tools/tablet-rgb.py` steuert die RGB-Beleuchtung des Tablet-Moduls via HIDRAW.
|
||||
|
||||
**Wichtig:** Die HIDRAW-Erkennung ist dynamisch – sie sucht automatisch nach dem Super X Vendor HID (1a86:1305, Interface 2). Funktioniert auch wenn sich der Device-Node nach Neustart ändert.
|
||||
|
||||
### Nutzung
|
||||
|
||||
```bash
|
||||
# An/Aus
|
||||
python3 tools/tablet-rgb.py on
|
||||
python3 tools/tablet-rgb.py off
|
||||
|
||||
# Presets
|
||||
python3 tools/tablet-rgb.py rainbow
|
||||
python3 tools/tablet-rgb.py aurora
|
||||
python3 tools/tablet-rgb.py preset 0x09
|
||||
|
||||
# Static Color
|
||||
python3 tools/tablet-rgb.py 255 0 0 # Rot
|
||||
python3 tools/tablet-rgb.py 0 255 0 # Grün
|
||||
python3 tools/tablet-rgb.py 0 0 255 # Blau
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## udev-Regeln
|
||||
|
||||
### 99-superx-hid.rules
|
||||
|
||||
```udev
|
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="1305", MODE="0666", TAG+="uaccess"
|
||||
```
|
||||
|
||||
Gibt Lese-/Schreibzugriff auf die Super X Vendor HID-Schnittstelle (0x1A86:0x1305).
|
||||
|
||||
### 99-razer-naga-swap.rules
|
||||
|
||||
```udev
|
||||
ACTION=="add", SUBSYSTEM=="input", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="008d", ENV{ID_INPUT_MOUSE}=="1", RUN+="/usr/local/bin/razer-naga-swap.py"
|
||||
```
|
||||
|
||||
Startet den Button-Swap-Daemon beim Einstecken der Razer Naga.
|
||||
|
||||
### 99-egpu-superx.rules
|
||||
|
||||
Triggert `superx-egpu-perf.sh` beim (Dis-)Connect der RX 9060 XT.
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
sudo cp udev/*.rules /etc/udev/rules.d/
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## EC Turbo
|
||||
|
||||
Der Embedded Controller des Super X speichert den Turbo-Status in EC-RAM.
|
||||
|
||||
### Register
|
||||
|
||||
| Offset | Grösse | Beschreibung |
|
||||
|---|---|---|
|
||||
| 0x30 | 1 Byte | Turbo Status (0x00=off, 0x06=turbo) |
|
||||
| 0x31 | 1 Byte | Fan1 PWM |
|
||||
| 0x32 | 1 Byte | Fan2 PWM |
|
||||
| 0x33 | 1 Byte | Pump PWM |
|
||||
|
||||
### Nutzung
|
||||
|
||||
```bash
|
||||
# Status lesen
|
||||
sudo python3 tools/ec-read.py
|
||||
|
||||
# Watch-Mode (alle 500ms)
|
||||
sudo python3 tools/ec-read.py watch
|
||||
|
||||
# Turbo setzen
|
||||
sudo sh -c 'printf "\x06" | dd of=/sys/kernel/debug/ec/ec0/io bs=1 seek=$((0x30)) count=1 conv=notrunc 2>/dev/null'
|
||||
```
|
||||
|
||||
---
|
||||
|
|
@ -256,86 +456,37 @@ python3 tools/turbo-daemon.py
|
|||
|
||||
---
|
||||
|
||||
## udev-Regeln
|
||||
## DMS SuperXCtrl Widget
|
||||
|
||||
### 99-superx-hid.rules (aktiv)
|
||||
|
||||
```udev
|
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="1305", MODE="0666", TAG+="uaccess"
|
||||
```
|
||||
|
||||
Gibt Lese-/Schreibzugriff auf die Super X Vendor HID-Schnittstelle (0x1A86:0x1305).
|
||||
Das DMS-Widget bietet eine GUI für Cooling- und RGB-Steuerung im DMS-Panel (für Hyprland/DankMaterialShell).
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
sudo cp udev/99-superx-hid.rules /etc/udev/rules.d/
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
mkdir -p ~/.config/DankMaterialShell/plugins/SuperXCtrl/
|
||||
cp dms/plugins/SuperXCtrl/* ~/.config/DankMaterialShell/plugins/SuperXCtrl/
|
||||
# Plugin aktivieren (plugin_settings.json)
|
||||
# → {"superXCtrl": {"enabled": true}}
|
||||
```
|
||||
|
||||
---
|
||||
### Features
|
||||
|
||||
## EC Turbo
|
||||
|
||||
Der Embedded Controller des Super X speichert den Turbo-Status in EC-RAM.
|
||||
|
||||
### Register
|
||||
|
||||
| Offset | Grösse | Beschreibung |
|
||||
|---|---|---|
|
||||
| 0x30 | 1 Byte | Turbo Status (0x00=off, 0x06=turbo) |
|
||||
| 0x31 | 1 Byte | Fan1 PWM |
|
||||
| 0x32 | 1 Byte | Fan2 PWM |
|
||||
| 0x33 | 1 Byte | Pump PWM |
|
||||
|
||||
### Nutzung
|
||||
|
||||
```bash
|
||||
# Status lesen
|
||||
sudo python3 tools/ec-read.py
|
||||
|
||||
# Watch-Mode (alle 500ms)
|
||||
sudo python3 tools/ec-read.py watch
|
||||
|
||||
# Turbo setzen
|
||||
sudo sh -c 'printf "\\x06" | dd of=/sys/kernel/debug/ec/ec0/io bs=1 seek=$((0x30)) count=1 conv=notrunc 2>/dev/null'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Tablet RGB (HIDRAW)
|
||||
|
||||
`tools/tablet-rgb.py` steuert die RGB-Beleuchtung des Tablet-Moduls via `/dev/hidraw2`.
|
||||
|
||||
### Nutzung
|
||||
|
||||
```bash
|
||||
# An/Aus
|
||||
python3 tools/tablet-rgb.py on
|
||||
python3 tools/tablet-rgb.py off
|
||||
|
||||
# Presets
|
||||
python3 tools/tablet-rgb.py rainbow
|
||||
python3 tools/tablet-rgb.py aurora
|
||||
python3 tools/tablet-rgb.py preset 0x09
|
||||
|
||||
# Static Color
|
||||
python3 tools/tablet-rgb.py 255 0 0 # Rot
|
||||
python3 tools/tablet-rgb.py 0 255 0 # Grün
|
||||
python3 tools/tablet-rgb.py 0 0 255 # Blau
|
||||
```
|
||||
- **Cooling Tab:** 6 Modes (Off/Silent/Gentle/Strong/Extreme/Smart) + Custom Fan/Pump Slider
|
||||
- **RGB Tab:** 10 Frostbay RGB Presets + On/Off + Tablet RGB (4 Presets + 6 Farben)
|
||||
- **Status-Pill** in der DMS-Bar: zeigt an ob Cooling aktiv ist
|
||||
|
||||
---
|
||||
|
||||
## Hardware
|
||||
|
||||
- **OneXPlayer Super X** (Ryzen AI Max+ 395, Radeon 8060S, 64GB)
|
||||
- **OneXPlayer Super X** (Ryzen AI Max+ 395, Radeon 8060S, 128GB RAM, 96GB VRAM)
|
||||
- **Frostbay ONEC1** Wasserkühlung (BLE GATT)
|
||||
- **Tablet-Modul** mit RGB via HIDRAW (0x1A86:0x1305)
|
||||
- **Eingelötete WS2812B-Stripes** am Mainboard-Anschluss RGB2 (aktuell nicht angeschlossen)
|
||||
- **SYSTEK ZT5571VG-Platine** (GA25-RGB_FPC_VA_5522) als RGB-Controller
|
||||
- **eGPU:** RX 9060 XT via OCuLink (all-ways-egpu)
|
||||
- **eGPU:** RX 9060 XT (Navi 44, 16GB) via ADTLINK UT4G an USB4
|
||||
- **Tablet-Modul** mit RGB via HIDRAW (0x1A86:0x1305) – noch nicht verbaut
|
||||
- **Mainboard RGB** über SYSTEK ZT5571VG-Platine (GA25-RGB_FPC_VA_5522) – Original-LEDs kommen
|
||||
- **Razer Naga Left Handed Edition** (1532:008d) – mit Button-Swap-Daemon
|
||||
|
||||
---
|
||||
|
||||
## Git Remote
|
||||
|
||||
|
|
@ -343,13 +494,17 @@ python3 tools/tablet-rgb.py 0 0 255 # Blau
|
|||
git remote add origin ssh://git@git.nepharius.at:2222/nepharius/superx-goes-arch.git
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Roadmap
|
||||
|
||||
1. ✅ ~~Frostbay BLE unter Linux/BlueZ steuern~~
|
||||
2. ✅ ~~superx-ctrl.py als zentrale CLI~~
|
||||
3. ✅ ~~DMS Widget für GUI-Steuerung~~
|
||||
4. ✅ ~~HHD Patch für Turbo-Button~~
|
||||
5. ✅ ~~Tablet RGB via HIDRAW~~
|
||||
6. 🔄 Logic Analyzer an Mainboard-RGB2-Pin → OEM-Protokoll decodieren
|
||||
7. 🔄 Kompatible Ersatz-LEDs oder Software-Übersetzer (MCU→WS2812B)
|
||||
8. 🔄 WMI/EC-Kernel-Module für vollständige Systemsteuerung
|
||||
3. ✅ ~~COSMIC Applet für Panel-Steuerung~~
|
||||
4. ✅ ~~DMS Widget für GUI-Steuerung~~
|
||||
5. ✅ ~~HHD Patch für Turbo-Button~~
|
||||
6. ✅ ~~Tablet RGB via HIDRAW~~
|
||||
7. ✅ ~~Razer Naga Button-Swap~~
|
||||
8. ✅ ~~eGPU Performance-Tuning~~
|
||||
9. 🔄 Original-LEDs verbauen → Mainboard-RGB Reverse-Engineering
|
||||
10. 🔄 WMI/EC-Kernel-Module für vollständige Systemsteuerung
|
||||
|
|
|
|||
101
install.sh
Normal file
101
install.sh
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
#!/usr/bin/env bash
|
||||
# install.sh — Full setup for OneXPlayer Super X on Arch Linux
|
||||
# Run from the repo root: ./install.sh
|
||||
set -euo pipefail
|
||||
|
||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
echo "=== SuperX-goes-Arch Installer ==="
|
||||
echo ""
|
||||
|
||||
# ── 1. COSMIC Applet ──────────────────────────────────────────────────────
|
||||
if command -v cosmic-comp &>/dev/null; then
|
||||
echo "--- COSMIC Applet ---"
|
||||
cd "$DIR/cosmic-applet-superx"
|
||||
if [ -f target/release/cosmic-applet-superx ]; then
|
||||
echo " Binary exists, skipping build"
|
||||
else
|
||||
echo " Building..."
|
||||
cargo build --release
|
||||
fi
|
||||
install -Dm755 target/release/cosmic-applet-superx ~/.local/bin/cosmic-applet-superx
|
||||
install -Dm644 com.system76.CosmicAppletSuperX.desktop ~/.local/share/applications/com.system76.CosmicAppletSuperX.desktop
|
||||
|
||||
# systemd user service
|
||||
mkdir -p ~/.config/systemd/user
|
||||
cat > ~/.config/systemd/user/cosmic-applet-superx.service << 'SERVICEEOF'
|
||||
[Unit]
|
||||
Description=Super X Control COSMIC Applet
|
||||
After=graphical-session.target
|
||||
PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=%h/.local/bin/cosmic-applet-superx
|
||||
Restart=on-failure
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
SERVICEEOF
|
||||
systemctl --user daemon-reload
|
||||
systemctl --user enable --now cosmic-applet-superx.service 2>/dev/null || true
|
||||
echo " ✅ COSMIC Applet installed & enabled"
|
||||
else
|
||||
echo " ⏭️ COSMIC not detected, skipping applet"
|
||||
fi
|
||||
|
||||
# ── 2. udev-Regeln ────────────────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "--- udev Rules ---"
|
||||
sudo cp "$DIR/udev/99-superx-hid.rules" /etc/udev/rules.d/ 2>/dev/null || true
|
||||
sudo cp "$DIR/udev/99-razer-naga-swap.rules" /etc/udev/rules.d/ 2>/dev/null || true
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
echo " ✅ udev rules installed"
|
||||
|
||||
# ── 3. Razer Naga Swap Daemon ─────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "--- Razer Naga Left Handed Button Swap ---"
|
||||
sudo cp "$DIR/tools/razer-naga-swap.py" /usr/local/bin/
|
||||
sudo chmod +x /usr/local/bin/razer-naga-swap.py
|
||||
sudo cp "$DIR/configs/razer-naga-swap.service" /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable razer-naga-swap.service 2>/dev/null || true
|
||||
sudo systemctl restart razer-naga-swap.service 2>/dev/null || true
|
||||
echo " ✅ Razer Naga swap daemon installed"
|
||||
|
||||
# ── 4. eGPU Performance Tuning ────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "--- eGPU Performance ---"
|
||||
if lspci -nn 2>/dev/null | grep -q "7590"; then
|
||||
sudo cp "$DIR/configs/amdgpu-egpu.conf" /etc/modprobe.d/ 2>/dev/null || true
|
||||
sudo cp "$DIR/tools/superx-egpu-perf.sh" /usr/local/bin/ 2>/dev/null || true
|
||||
sudo chmod +x /usr/local/bin/superx-egpu-perf.sh 2>/dev/null || true
|
||||
echo " ✅ eGPU config installed (reboot required for modprobe.d)"
|
||||
else
|
||||
echo " ⏭️ No eGPU detected, skipping"
|
||||
fi
|
||||
|
||||
# ── 5. Tools nach ~/.local/bin ────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "--- CLI Tools ---"
|
||||
mkdir -p ~/.local/bin
|
||||
ln -sf "$DIR/tools/superx-ctrl.py" ~/.local/bin/superx-ctrl.py 2>/dev/null || true
|
||||
ln -sf "$DIR/tools/tablet-rgb.py" ~/.local/bin/tablet-rgb.py 2>/dev/null || true
|
||||
echo " ✅ symlinks created in ~/.local/bin/"
|
||||
|
||||
# ── 6. DMS Widget (optional) ─────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "--- DMS Widget ---"
|
||||
if [ -d ~/.config/DankMaterialShell ]; then
|
||||
mkdir -p ~/.config/DankMaterialShell/plugins/SuperXCtrl
|
||||
cp "$DIR/dms/plugins/SuperXCtrl/"* ~/.config/DankMaterialShell/plugins/SuperXCtrl/ 2>/dev/null || true
|
||||
echo " ✅ DMS widget installed"
|
||||
else
|
||||
echo " ⏭️ DMS not detected, skipping"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== Done! ==="
|
||||
echo "Reboot recommended for eGPU modprobe settings to take effect."
|
||||
echo "After reboot: check COSMIC Panel Settings → Applets → add 'Super X Control'"
|
||||
Loading…
Add table
Reference in a new issue