Riassunto:
Il team di sviluppo del kernel Linux ha unito una nuova serie di aggiornamenti del sottosistema HID nel kernel Linux 7.4 in fase di sviluppo. Uno dei punti salienti di questo aggiornamento è l'aggiunta del supporto driver preliminare per il controller Nintendo Switch 2. Il lavoro in questione è stato completato dallo sviluppatore Vicki Pfau per conto di Valve. Dopo 16 cicli di modifiche alla patch, è finalmente entrato nel kernel principale di Linux. Inoltre, la nuova versione aggiunge anche il driver del mouse da gioco Pulsar e migliora il supporto hardware per alcuni processori AMD, Apple Touch Bar e console portatili ASUS ROG Ally.


HID è l'abbreviazione di Human Interface Device, che è principalmente responsabile dell'elaborazione delle informazioni di input da hardware come tastiere, mouse, controller di gioco e dispositivi touch. Il sottosistema HID nel kernel Linux non solo deve identificare i dispositivi di diversi produttori, ma deve anche gestire i protocolli di comunicazione univoci dei vari dispositivi. Poiché le console di gioco e i controller wireless diventano sempre più popolari, il miglioramento dei driver HID è di grande importanza per migliorare l'esperienza di gioco di Linux.
Il cambiamento più preoccupante questa volta è che Linux 7.4 introduce per la prima volta un driver dedicato per il controller Nintendo Switch 2. Il controller dello Switch 2 adotta un design dell'interfaccia relativamente speciale: le funzioni di input chiave e vibrazione vengono elaborate principalmente tramite l'interfaccia principale HID, mentre altre operazioni di comunicazione vengono completate tramite interfacce di configurazione indipendenti. Sia che si utilizzi la connessione USB o la connessione Bluetooth, questo design separato aumenterà la complessità dello sviluppo del driver.
Per risolvere questo problema, il nuovo driver adotta una struttura di driver separata master-slave. L'interfaccia HID funge da driver principale, responsabile dell'elaborazione degli input di base e delle funzioni relative alle vibrazioni; l'interfaccia di configurazione funge da driver ausiliario, condividendo le risorse necessarie del dispositivo con l'interfaccia principale. Questo design può adattarsi alla speciale struttura di comunicazione del controller Switch 2 e getta anche le basi per l'aggiunta di ulteriori funzioni in futuro.
Attualmente, il driver preliminare supporta le funzioni di input generali di Joy-Con 2, Pro Controller 2 e il controller per GameCube nel servizio Nintendo Switch Online. Tuttavia, questo non significa che tutte le funzionalità del controller Switch 2 siano completamente disponibili sotto Linux.
Gli sviluppatori hanno sottolineato che, poiché Switch 2 utilizza un'interfaccia di accoppiamento non standard e anche il meccanismo di comunicazione Bluetooth esistente del kernel Linux presenta alcune limitazioni, è ancora necessario progettare un'interfaccia di comunicazione dedicata tra il kernel e lo spazio utente e completare il corrispondente adattamento nello stack di protocolli Bluetooth BlueZ. Pertanto, questa fusione risolve principalmente il problema dei driver di interfaccia di configurazione HID e USB universali. L'accoppiamento Bluetooth e altre funzioni avanzate devono ancora essere sviluppate.
Vale la pena notare che questo lavoro è stato eseguito da Vicki Pfau per conto di Valve. Valve promuove da tempo lo sviluppo dell'ecosistema di gioco Linux e il miglioramento della compatibilità dei giochi sulla piattaforma Linux tramite SteamOS, Steam Deck e contributi ai kernel e ai driver grafici upstream. Lo sviluppo dei driver per il controller della console di gioco di nuova generazione di Nintendo dimostra anche che il lavoro correlato non si limita ai prodotti hardware di Valve.
Oltre ai controller Nintendo, Linux 7.4 aggiunge anche un nuovo driver chiamato hid-pulsar per supportare più mouse da gioco del marchio Pulsar. I modelli testati includono i mouse da gioco wireless X2 V2, X2H, X2A e Xlite V3. Il nuovo driver può leggere informazioni come carica della batteria, voltaggio della batteria e stato di carica e supporta connessioni cablate, nonché modalità di connessione con velocità di polling di 1000 Hz e 4000 Hz tramite ricevitori wireless.
Il driver è compatibile anche con alcuni prodotti di altri marchi che utilizzano lo stesso protocollo di comunicazione, tra cui Kysona M600, R1 SE+ di ATK e VXE, Dragonfly R1 Pro e altri modelli. Ciò significa che, beneficiando del supporto del protocollo unificato, alcuni mouse di marca non Pulsar potrebbero anche ottenere la corrispondente compatibilità con Linux.
Questo aggiornamento HID espande anche il supporto dei driver AMD Sensor Fusion Hub (SFH) per i nuovi SoC Ryzen che utilizzano l'architettura AMD Zen 6. SFH è responsabile della gestione di alcune funzioni relative ai sensori e può essere utilizzato su dispositivi dotati del relativo hardware. Il nuovo supporto aiuterà i futuri laptop dotati di processori AMD di nuova generazione a utilizzare meglio le capacità dei sensori corrispondenti, ma le funzioni specifiche dipendono ancora dalla configurazione hardware complessiva.
Per i dispositivi Apple, Linux 7.4 risolve un problema di gestione dell'alimentazione con la Touch Bar. Anche la console portatile ASUS ROG Ally ha ricevuto correzioni per la gestione dell'alimentazione. Sebbene questi cambiamenti non siano così accattivanti come il nuovo driver del controller di gioco, contribuiranno a migliorare l'affidabilità di Linux in esecuzione su dispositivi diversi.
In generale, l'aggiornamento del sottosistema HID di Linux 7.4 si concentra sull'espansione della gamma di compatibilità di controller di gioco e mouse, risolvendo al contempo i problemi di gestione energetica dell'hardware esistente. La fusione del driver del controller Nintendo Switch 2 è particolarmente degna di nota in quanto fornisce il supporto di base per gli utenti Linux che utilizzano la nuova generazione di controller Nintendo. Tuttavia, è ancora in fase preliminare, l'accoppiamento Bluetooth e alcune funzioni avanzate non sono ancora state completate e l'esperienza finale dipende dal continuo miglioramento del kernel successivo e del software dello spazio utente.
Commenti