Dal repository atar-axis e dai vari contributori del progetto Xpadneo è stato rilasciato nel mese di settembre 2022 un nuovo aggiornamento con la versione 0.9.5.Per chi non conosce questo progetto,Xpadneo è uno dei migliori driver Linux avanzati per controller wireless Xbox One (fornito con Xbox One S) che supporta vari dongle Bluetooth e più Gamepad contemporaneamente cio’ che al momento su windows non è possibile.
Altri progetti
- xow è anche un driver per i controller Xbox One S e supporta i dongle nativi forniti con il controller. Complimenti a @medusalix per aver lavorato insieme alla ricerca di soluzioni per i bug del firmware del controller.
- xpad supporta questo e molti altri controller in modalità USB.
- xone è un driver che mira a supportare completamente tutti i dispositivi Microsoft GIP sostituendo così il driver xpad nel kernel aggiungendo il supporto per ulteriori tipi di hardware.
- MissionControl mira a supportare il controller su Nintendo Switch tramite Bluetooth.
Questi altri progetti potrebbero non supportare alcune delle funzionalità avanzate di xpadneo.
Cambiamenti
È richiesto il kernel 4.18 o successivo
A partire da xpadneo v0.10, è necessario utilizzare il kernel 4.18 o successivo HID_QUIRK_INPUT_PER_APP
, che suddivide il gamepad in più dispositivi secondari per risolvere problemi e incompatibilità a diversi livelli.
Problemi con SDL 2.0.12
A partire da SDL 2.0.12, SDL ha introdotto una nuova HIDAPI in grado di leggere i dispositivi HID in modalità raw, ignorando i driver. A causa del modo in cui funziona SDL e poiché xpadneo espone i dispositivi hidraw come leggibili dall’utente, SDL potrebbe vedere mappature dei pulsanti errate perché potrebbe formulare ipotesi errate sulla modalità del protocollo di Xbox e dei controller compatibili. Se visualizzi mappature dei pulsanti errate/pulsanti mancanti nelle applicazioni SDL o rumble non funziona, potrebbe essere necessario disattivare questo comportamento impostando una variabile di ambiente nel tuo profilo:SDL_JOYSTICK_HIDAPI=0
Problemi osservati:
- Mappature errate quando si utilizzano versioni SDL2 più recenti, dovrebbero essere corrette dall’ultimo xpadneo
- Rumble non funziona affatto, deve essere riparato da SDL2
Vantaggi di questo driver
- Supporta Bluetooth
- Supporta tutti gli effetti Force Feedback/Rumble attraverso
ff-memless
l’emulazione degli effetti Linux - Supporta Trigger Force Feedback in ogni gioco applicando un’intensità dell’effetto dipendente dalla pressione all’attuale effetto rumble (non supportato nemmeno in Windows)
- Supporta la disabilitazione di FF
- Supporta più Gamepad contemporaneamente (non supportato nemmeno in Windows)
- Offre una mappatura coerente, anche se il Gamepad è stato precedentemente associato a Windows/Xbox e indipendente dai livelli software (SDL2, Stadia tramite Chrome Gamepad API, ecc.)
- Pulsanti di selezione, avvio e modalità funzionanti
- Intervallo asse corretto (con segno, importante per es. RPCS3)
- Supporta l’indicazione del livello della batteria (incluso il kit Play ‘n Charge)
- Installazione facile
- Supporto e sviluppo agili
- Supporta la personalizzazione tramite profili (work in progress)
- Modalità ad alta precisione opzionale per gli utenti Wine/Proton (disabilita le zone morte in modo che i giochi non ne applichino una aggiuntiva)
- Condividi il supporto del pulsante sui controller supportati
Funzionalità non disponibili
In tutti i modelli, xpadneo non supporterà le funzionalità audio dei controller perché il firmware non supporta l’audio in modalità Bluetooth. In futuro, xpadneo potrebbe supportare l’audio quando verrà aggiunto il supporto USB e dongle.
Controller wireless per Xbox One S
Questo è il controller iniziale supportato dalla prima versione di xpadneo. Tutte le funzionalità sono completamente supportate. Questo controller utilizza il supporto per il cambio di profilo emulato (vedi sotto).
Controller wireless Xbox Elite serie 2
È presente il supporto di base per il controller wireless Xbox Elite Series 2, che copre tutte le funzionalità del driver. Mancano le seguenti funzionalità:
- Il caricamento delle mappature dei profili e delle curve di sensibilità non è attualmente supportato.
Questo controller utilizza il supporto per il cambio di profilo nativo (vedi sotto).
Controller wireless per Xbox serie X|S
È presente il supporto completo per il controller Xbox Series X | S, incluso il pulsante di condivisione. Questo è attualmente associato all’evento della tastiera KEY_RECORD
e potrebbe non funzionare affatto per nessuno scopo. Pertanto, questi dettagli di implementazione potrebbero cambiare durante uno dei prossimi aggiornamenti. Questo controller utilizza il supporto per il cambio di profilo emulato (vedi sotto).
Questo controller utilizza BLE (Bluetooth a bassa energia) e può essere supportato solo se anche il tuo dongle Bluetooth supporta BLE.
Problemi noti: il controller potrebbe non impostare correttamente i parametri di connessione, causando un’esperienza di input lenta e discontinua. Vedi anche: Risoluzione dei problemi .
Controllorer 8BitDo
Questo driver supporta il layout Nintendo di questi controller per mostrarli correttamente come pulsanti A, B, X e Y come etichettati sul dispositivo. Questo viene scambiato rispetto al layout del controller Xbox originale. Tuttavia, questa funzione non è abilitata per impostazione predefinita. Se vuoi utilizzare questa funzione, devi aggiungere un flag quirk alle opzioni del modulo:
# /etc/modprobe.conf
options hid_xpadneo quirks=E4:17:D8:xx:xx:xx+32
dove sostituisci xx:xx:xx
con i valori del tuo controller MAC (come mostrato in dmesg
). Il valore 32
abilita il layout Nintendo. Se vuoi aggiungere altri flag di stranezza, aggiungi semplicemente i valori, ad esempio 32
+ 7
(stranezze predefinite per 8BitDo) = 39
. Dopo averlo modificato, ricaricare il driver o riavviare.
Questo controller utilizza il supporto per il cambio di profilo emulato (vedi sotto).
Modifica sostanziale: gli utenti delle versioni precedenti del driver potrebbero voler rimuovere i propri mapping SDL personalizzati. È stato aggiunto il supporto completo per questi controller e non è più necessario applicare la mappatura interrotta delle versioni precedenti. Vedi anche: SDL .
Famiglia di controller GuliKit KingKong
Questo driver supporta la famiglia di controller GuliKit King Kong, il driver è stato testato con il modello NS09 (utilizzando il firmware v2.0) ma dovrebbe funzionare bene anche per i modelli precedenti. In caso di dubbi, seguire le guide all’aggiornamento del firmware sulla home page di GuliKit per ricevere il firmware più recente. Sono supportate sia la modalità Android che la modalità X-Input, ma potrebbe dipendere dal tuo stack Bluetooth quale modalità funziona meglio per te (la modalità Android non si è accoppiata per me).
Questo driver supporta il layout Nintendo di questi controller per mostrarli correttamente come pulsanti A, B, X e Y come etichettati sul dispositivo. Questo viene scambiato rispetto al layout del controller Xbox originale. Tuttavia, questa funzione non è abilitata per impostazione predefinita. Se vuoi utilizzare questa funzione, devi aggiungere un flag quirk alle opzioni del modulo:
# /etc/modprobe.conf
options hid_xpadneo quirks=98:B6:EA:xx:xx:xx+32
dove sostituisci xx:xx:xx
con i valori del tuo controller MAC (come mostrato in dmesg
). Il valore 32
abilita il layout Nintendo. Se vorrai aggiungere altri flag di stranezza, aggiungi semplicemente i valori, ad esempio 32
+ 131
(stranezze predefinite per GuliKit) = 163
. Dopo averlo modificato, ricaricare il driver o riavviare.
Tuttavia, in alternativa, il controller supporta anche lo scambio di pulsanti al volo: basta tenere premuto il pulsante delle impostazioni, quindi fare clic sul pulsante più. Pertanto, il flag delle stranezze è solo una questione di impostazione dei valori predefiniti.
Questo controller utilizza il supporto per il cambio di profilo emulato (vedi sotto).
Cambio di profilo
Il driver supporta il passaggio tra diversi profili, tramite emulazione o utilizzando lo switch hardware fornito con alcuni modelli. Questa commutazione può essere effettuata in qualsiasi momento anche durante un gioco. L’API per la personalizzazione di ciascun profilo non esiste ancora.
Supporto per il cambio di profilo nativo
Il driver supporta il cambio di profilo nativo per il controller Xbox Elite Series 2. Tuttavia, la funzionalità non è ancora stata completata:
- Il profilo predefinito (nessun LED) espone i paddle come pulsanti aggiuntivi.
- Gli altri tre profili si comportano allo stesso modo attualmente e non c’è supporto per la loro configurazione. Questo potrebbe essere diverso se i profili sono già stati configurati in Windows, che è ancora non testato.
Supporto per il cambio di profilo emulato
Il driver emula il cambio di profilo per i controller senza un cambio di profilo hardware premendo i pulsanti A, B, X o Y tenendo premuto il pulsante con il logo Xbox. Tuttavia, si applicano le seguenti avvertenze:
- I profili attualmente si comportano allo stesso modo e non c’è supporto per la loro configurazione.
- Il supporto completo sarà disponibile una volta che il controller Xbox Elite Series 2 sarà completamente supportato.
- Se tieni premuto il pulsante troppo a lungo, il controller si spegnerà, non possiamo impedirlo.
Guida
Prerequisiti
Assicurati di aver installato dkms , intestazioni linux e un’implementazione bluetooth (ad esempio bluez ) e le loro dipendenze.
I manutentori del kernel dovrebbero includere anche il modulo uhid
( CONFIG_UHID
) perché altrimenti i dispositivi Bluetooth LE (tutti i modelli con firmware 5.xo superiore) non possono creare il dispositivo di input HID che viene gestito nello spazio utente dal demone bluez.
- Su Arch e distribuzioni basate su Arch (come EndeavourOS ), prova
sudo pacman -S dkms linux-headers bluez bluez-utils
- Sui sistemi basati su Debian (come Ubuntu) puoi installare quei pacchetti eseguendo
sudo apt-get install dkms linux-headers-`uname -r`
- Su Fedora lo è
sudo dnf install dkms make bluez bluez-tools kernel-devel-`uname -r` kernel-headers
- Su Mangiaro prova
sudo pacman -S dkms linux-latest-headers bluez bluez-utils
- Su openSUSE (testato su Tumbleweed, dovrebbe funzionare per Leap), lo è
sudo zypper install dkms make bluez bluez-tools kernel-devel kernel-source
- Su OSMC dovrai eseguire i seguenti comandi
sudo apt-get install dkms rbp2-headers-`uname -r`
sudo ln -s "/usr/src/rbp2-headers-`uname -r`" "/lib/modules/`uname -r`/build"
(come soluzione alternativa ) - Su Raspbian , è
sudo apt-get install dkms raspberrypi-kernel-headers
Se hai aggiornato di recente il tuo firmware utilizzandorpi-update
il pacchetto sopra riportato potrebbe non includere ancora i file di intestazione per il tuo kernel. Si prega di seguire i passaggi descritti qui in questo caso. - Nelle distribuzioni generiche , non necessita di DKMS ma richiede un albero dei sorgenti del kernel configurato, quindi:
cd hid-xpadneo && make modules && sudo make modules_install
Sentiti libero di aggiungere anche altre distribuzioni!
Installazione
- Scarica il repository sul tuo computer locale
git clone https://github.com/atar-axis/xpadneo.git
cd xpadneo
- Se utilizzi DKMS, esegui
sudo ./install.sh
- Se non utilizzi DKMS, segui i passaggi precedenti (distribuzione generica)
- Fatto!
Connessione
sudo bluetoothctl
[bluetooth]# scan on
- attendi finché non vengono elencati tutti i dispositivi disponibili (altrimenti potrebbe essere difficile identificare quale sia il gamepad)
- premi il pulsante di connessione sul lato superiore del gamepad e tienilo premuto finché la luce non inizia a lampeggiare velocemente
- attendi che il gamepad venga visualizzato in bluetoothctl, ricorda l’indirizzo (es
C8:3F:26:XX:XX:XX
) [bluetooth]# scan off
per interrompere la scansione in quanto potrebbe interferire con l’associazione corretta del controller[bluetooth]# pair <MAC>
[bluetooth]# trust <MAC>
[bluetooth]# connect <MAC>
(di solito non dovrebbe essere necessario ma ci sono bug aperti )- Il
<MAC>
parametro è facoltativo se la riga di comando mostra già il nome del controller
Sai che tutto funziona bene quando senti il rombo del gamepad 😉
Configurazione
- Se si utilizza DKMS: utilizzare
sudo ./configure.sh
per configurare il driver come si desidera. Lo script ti guiderà attraverso le opzioni disponibili.
Aggiornamento
Per aggiornare xpadneo, procedi come segue
- Aggiorna il tuo repository clonato:
git pull
- Se utilizzi DKMS: esegui
sudo ./update.sh
- altrimenti segui i passaggi precedenti (distribuzione generica)
Disinstallazione
- Se si utilizza DKMS: eseguire
sudo ./uninstall.sh
per rimuovere tutte le versioni installate di hid-xpadneo - altrimenti segui i passaggi precedenti (distribuzione generica)
Ulteriori informazioni
Per ulteriori informazioni, visitare la pagina GitHub https://atar-axis.github.io/xpadneo/ che viene generata automaticamente dal contenuto della cartella /docs
.
Lì troverai ad esempio le seguenti sezioni