kmsgrab e ScreenShot2: esiti sperimentali documentati
- kmsgrab non praticabile: piano primario AR30 con modifier AMD DCC/tiled, ffmpeg rifiuta il framebuffer prima di applicare format/modifier - KWin ScreenShot2: NoAuthorized anche con desktop entry system-wide - indicatore del vassoio identificato come SNI di xdg-desktop-portal-kde (titolo 'Trasmissione dello schermo') - backend kmsgrab comunque implementato e selezionabile (capture=kmsgrab) - setup-kmsgrab.sh: installa via pkexec una copia di ffmpeg con cap_sys_admin+ep
This commit is contained in:
@@ -88,6 +88,9 @@ La scheda (CH340, `1a86:7523`) **non espone un iSerial**: verificato con
|
||||
| `/dev/serial/by-path/pci-0000:65:00.3-usb-0:2:1.0-port0` | legato alla porta USB fisica | sì |
|
||||
| `/dev/ambilight` (regola udev) | symlink creato da noi | sì |
|
||||
|
||||
> **Su questa macchina la regola NON è installata**: scelta esplicita dell'utente di
|
||||
> lasciare `ttyUSB0` come assegnato dal kernel. I file restano nel repo come opzione.
|
||||
|
||||
Installa la regola (richiede sudo, una volta):
|
||||
|
||||
```sh
|
||||
@@ -117,17 +120,30 @@ finché la sessione di condivisione è attiva. Verificato su questa macchina:
|
||||
esiste la voce "Configure System Tray → Entries" per nasconderlo: è un indicatore
|
||||
di stato del shell, per scelta di KDE.
|
||||
|
||||
**Il pallino è uno StatusNotifierItem pubblicato da `xdg-desktop-portal-kde`** (titolo
|
||||
"Trasmissione dello schermo"): quindi è un elemento del vassoio con visibilità
|
||||
configurabile da *Configura il vassoio di sistema → Voci* (impostandolo su "Sempre
|
||||
nascosto" sparisce dal pannello e resta nel popup espanso).
|
||||
|
||||
Le alternative per non averlo:
|
||||
|
||||
1. **KWin ScreenShot2** (nessun portal, nessun indicatore): KWin autorizza solo i
|
||||
1. **KWin ScreenShot2** (nessun portal, nessun indicatore) — **rifiutato su questa
|
||||
macchina**: testato sia con `.desktop` utente sia con entry system-wide in
|
||||
`/usr/local/share/applications` (`Exec=/usr/bin/python3`, `X-KDE-DBUS-Restricted-Interfaces=org.kde.KWin.ScreenShot2`,
|
||||
`kbuildsycoca6`): la risposta resta `org.kde.KWin.ScreenShot2.Error.NoAuthorized`. KWin autorizza solo i
|
||||
processi con un `.desktop` che dichiara `X-KDE-DBUS-Restricted-Interfaces=org.kde.KWin.ScreenShot2`.
|
||||
Provato con un `.desktop` utente (`Exec=/usr/bin/python3` e `python3.14`) + `kbuildsycoca6`:
|
||||
risponde ancora `org.kde.KWin.ScreenShot2.Error.NoAuthorized`. Non provato l'entry
|
||||
in `/usr/local/share/applications` (richiede sudo). Se funziona, la cattura è un
|
||||
`CaptureArea` della sola fascia (nessun indicatore, ma costo CPU per frame).
|
||||
2. **kmsgrab** (`ffmpeg -f kmsgrab`) da un servizio privilegiato con `CAP_SYS_ADMIN`:
|
||||
nessun portal e nessun indicatore, ma cattura DRM grezza (piano/format legati alla
|
||||
GPU) e un servizio di sistema: più fragile.
|
||||
2. **kmsgrab** (`ffmpeg -f kmsgrab`) con `CAP_SYS_ADMIN`: **provato e non praticabile su
|
||||
questa macchina** (Radeon 780M + KWin). Il piano primario è `plane-3` (id 206),
|
||||
`crtc-0`, `fb=463`, `format=AR30` (`0x30335241`) con `modifier=0x200000010437b04`
|
||||
(AMD DCC/tiled): ffmpeg risponde `Framebuffer pixel format 30335241 is not a known
|
||||
supported format` e fallisce **prima** di applicare `-format`/`-format_modifier`
|
||||
(provati `bgr0`, `rgb0`, `0rgb`, `bgra`, `x2rgb10le`, `-format_modifier 0`,
|
||||
`-plane_id 206`). Anche superando il controllo, il layout tiled/DCC richiederebbe
|
||||
un import GBM/EGL o VAAPI, che kmsgrab non fa.
|
||||
3. Tenere il portal: costo GPU minimo, ~78 fps, indicatore visibile.
|
||||
|
||||
## Note
|
||||
|
||||
Reference in New Issue
Block a user