Questo articolo tratta l'installazione e la configurazione dei gamepad. I due stadi della configurazione spesso sono: l'installazione dei driver e la configurazione del dispositivo. Molti dispositivi hanno il supporto integrato nel kernel e funzionano non appena connessi. Altri possono essere più difficili.
Contents
Configurazione generica
Dato che la maggioranza dei dispositivi ha i driver necessari incorporati, l'unica cosa che deve fare la maggior parte delle persone è calibrare successivamente il proprio controller. Molti desktop hanno moduli di configurazione incorporati per selezionare qualsiasi gamepad connesso e calibrarlo. Qui è documentato il procedimento nel desktop KDE Plasma, ma le istruzioni sono applicabili quasi universalmente.
KDE
Qui è documentato il procedimento nel desktop KDE Plasma, ma le istruzioni sono applicabili quasi universalmente.
Aprire Avviatore applicazioni > Ricerca > Controller di gioco
o
Aprire Avviatore applicazioni > Impostazioni di sistema > Dispositivi di input > Controller di gioco
- Selezionare il proprio gamepad nel riquadro a tendina "Dispositivo"
- Premere il pulsante "Calibra" nell'angolo in basso a sinistra e seguire le istruzioni a schermo
Testare
Ci sono molti giochi utili nei repository Debian per verificare che il gamepad funzioni come atteso, ma supertuxkart è particolarmente raccomandato per il suo fantastico supporto per gamepad.
All'interno di un terminale, si possono anche monitorare gli eventi dei dispositivi di input, o con l'API per joystick (più vecchia) o con l'API evdev (più recente).
joystick fornisce jstest, che aiuta a monitorare /dev/input/js* (API più vecchia).
evtest fornisce il comando evtest, che aiuta a rilevare i nomi delle etichette relative al dispositivo pad e a restare in ascolto per i loro eventi.
Dispositivi specifici
Controller per Xbox e PlayStation
I controller per Xbox, Xbox 360 e Xbox One, incluse molte copie, dovrebbero funzionare senza problemi senza fare nulla. Ciò include sia le varianti con cavo sia senza, sia che usino il ricevitore wireless ufficiale sia tramite Bluetooth. Questo vale anche per i controller DualShock 3 e DualShock 4 usati comunemente dalle console PlayStation.
Controller Steam
Il supporto per il controller Steam è fornito attraverso il pacchetto steam-devices. In modo predefinito funziona i modalità desktop, in cui emula l'input da mouse. Funziona come controller vero e proprio solo per i giochi avviati tramite Steam.
Esiste un progetto che sta sviluppando un driver in modalità utente per il controller Steam che gli permette di emulare un controller Xbox i qualsiasi gioco, senza la necessità del client Steam proprietario. Tuttavia, non è ufficialmente supportato in Debian e necessita di configurazione aggiuntiva propria: https://github.com/kozec/sc-controller
Nel dicembre 2020 Sony ha pubblicato un driver Linux ufficiale per il controller "DualSense" che viene fornito con la PlayStation 5 e che dovrebbe portare il suo supporto al pari con quello dei precedenti controller Sony, ma l'insieme di patch è ancora in revisione.
Controller Nintendo Switch Pro
Sebbene il supporto non sia ancora integrato in Debian, Steam implementa il proprio driver, con regole udev disponibili nel pacchetto non libero steam-devices. Le patch al kernel per un driver Nintendo generico sono pronte per essere incluse in Linux 5.16 e il driver diventerà probabilmente disponibile in Debian 12/Bookworm.
Risoluzione dei problemi
Controllori Xbox via Bluetooth
Se si hanno problemi a connettere un controllore Xbox One o serie Xbox via Bluetooth, può essere necessaria qualche modifica.
ERTM e Bluez versione < 5.12
Secondo questo commento, disabilitare ERTM non è più necessario a partire da bluez versione 5.12.
Può risolvere disabilitare ERTM. Ciò può essere fatto una volta eseguendo:
# echo 1 > /sys/module/bluetooth/parameters/disable_ertm
Se questo risolve il problema, si può volerlo impostare in modo permanente in modo che la modifica non venga annullata al riavvio. Per farlo, creare un nuovo file usando Nano (o il proprio editor preferito):
# nano /etc/modprobe.d/bluetooth.conf
Aggiungere una singola riga al nuovo file:
options bluetooth disable_ertm=Y
Notare che ERTM è raramente utilizzato da alcun dispositivo diverso dai controller e non dovrebbe interferire con ogni altra funzionalità Bluetooth normale. Ma se si incontrano problemi con altri dispositivi Bluetooth dopo questa modifica, può essere utile cercare di annullarla.
Cicli connessione/disconnessione
Il dispositivo può connettersi e istantaneamente disconnettersi, e così via.
C'è chi ha avuto successo accoppiando il dispositivo con queste impostazioni per bluez nella sezione [General]:
Privacy = device JustWorksRepairing = always Class = 0x000100 FastConnectable = true
Singhiozzi degli eventi dei pulsanti con Bluetooth LE
Secondo l'autore di xpadneo, questo si verifica con controllori Xbox Series S|X ed è causato dal gamepad che non pubblicizza la sua frequenza di lavoro mentre usa il Bluetooth.
Impostare questa frequenza manualmente in /etc/bluetooth/main.conf ha effetto per ogni dispositivo LE, evitarlo se è possibile:
[LE] MinConnectionInterval=7 MaxConnectionInterval=9 ConnectionLatency=0
Gamepad non comuni e specifici motori di gioco
Può succedere che, sebbene il gamepad funzioni bene con la maggior parte dei giochi Linux nativi, non funzioni con alcuni altri. Questo problema si verifica soprattutto con motori di gioco proprietari (come Unity3D usando l'API Rewired). Alcuni giochi possono controllare se il gamepad è tra quelli più comuni, per mappare automaticamente i pulsanti con le azioni, ma possono non permettere di riconfigurare la mappatura o possono avere bug relativi ai gamepad meno comuni (cioè: congelamento durante la verifica del controller, mentre funzionano normalmente quando i controller non sono collegati).
xboxdrv è un driver per gamepad in spazio utente che può emulare un controllore di Xbox per qualsiasi gamepad (a patto che abbia abbastanza pulsanti per le proprie necessità).
Questo è un esempio che mappa un Logitech Rumblepad 2 in modo da sembrare un controller di Xbox:
xboxdrv --evdev /dev/input/by-id/usb-Logitech_Logitech_RumblePad_2_USB-event-joystick \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y,ABS_Z=y2,ABS_RZ=x2 \ --evdev-keymap BTN_THUMB=a,BTN_THUMB2=b,BTN_TRIGGER=y,BTN_TOP=x,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE=lt,BTN_BASE2=rt,BTN_BASE3=Back,BTN_BASE4=Start \ --axismap -Y1=Y1,-Y2=Y2 \ --mimic-xpad
Vedere xboxdrv --help o la pagina di manuale e più specificatamente xboxdrv --help-* (o xboxdrv --help-all) per liste delle possibili mappature.
Mappare il gamepad a tasti della tastiera
antimicro è un altro approccio che aiuta a tradurre eventi del gamepad in tasti della tastiera, il che può essere utile quando il proprio gioco non gestisce per nulla il proprio gamepad, ma è giocabile da tastiera.