Gamepad (Magyar)
Sok játékkontroller manapság már azonnal működik, de még mindig számos lehetséges probléma és hibaforrás van, mivel az alkalmazásokban a játékkontrollerek támogatása nagyon eltérő.
A Linuxnak kettő különböző bemeneti rendszere van a játékkontrollerek számára. Az eredeti Joystick interfész, és az újabb evdev-alapú interfész.
/dev/input/jsX a Joystick API interfészhez tartozik, míg a /dev/input/event* az evdev interfészhez tartozik (ez magában foglal más bemeneti eszközöket is, például az egereket és billentyűzeteket). Szimbolikus linkek ezekhez az eszközökhöz elérhetők a /dev/input/by-id/ és a /dev/input/by-path/ könyvtárakban, ahol a régi Joystick API nevei -joystick végződéssel szerepelnek, míg az evdev nevei -event-joystick végződéssel szerepelnek.
A legtöbb új játék alapértelmezés szerint az evdev interfészt használja, mivel ez részletesebb információt ad a rendelkezésre álló gombokról és tengelyekről, valamint támogatja az erővisszacsatolást is.
Számos alkalmazás a "Simple DirectMedia Layer" (SDL), nyílt forráskódú, többplatformos függvénykönyvtárat használja a játékkontrollerek eléréséhez.
- Az SDL1 alapértelmezés szerint az evdev interfészt használja, de kényszeríthető a Joystick használatára azzal, hogy Ön beállítja az
SDL_JOYSTICK_DEVICE=/dev/input/js0környezeti változót. - Az SDL2 és SDL3 alapértelmezés szerint a hidapi interfészt használja a legnépszerűbb játékkontrollereken a nyers hozzáférés érdekében. Más játékkontrollereken (vagy amikor a hidapi le van tiltva), az evdev interfészt használják helyette.
Az SDL önmagában különböző API interfészeket kínál, amelyek kiválasztása az alkalmazástól függ. Használatuk nem zárja ki egymást.
-
SDL_Joystickminden verzióban támogatott, és az evdev (vagy Joystick) eseményeket 1:1 arányban leképezi az SDL saját eseményeire. -
SDL_GameController, amelyet az SDL2 támogat, szabványosított letérképezést kínál az eszközök között. Ahhoz, hogy egy játékkontroller támogatott legyen, szüksége van neki egy evdev:SDL letérképezésre egy adatbázisban,gamecontrollerdb.txt. Ezt az API interfészt az SDL3 függvénykönyvtárban azSDL_Gamepadváltja fel.
Telepítés
Önnek csakis kizárólag az általános USB Human Interface Device (HID) kernelmodulfájlokra lesz szüksége, kivéve ha Ön nagyon régi joystickot használ, amely Gameport csatlakozói interfészt vagy egyedi USB protokollt alkalmaz.
Az összes joystickkal kapcsolatos kernelmodulfájl átfogó áttekintése érdekében Önnek szüksége lesz a Linux kernel forráskódjára — különösen a Documentation szekcióra. Sajnos a hivatalos kernelszoftvercsomagok nem tartalmazzák azt, amire szükségünk van. Ha Ön letöltötte a kernel forráskódját, akkor tekintse meg a Documentation/input/joydev/ részt. A kernel forráskódjának a fáját böngészheti a kernel.org weboldalon, amennyiben rákattint a "browse" (cgit – a git frontend) linkre az Ön által használt kernel böngészése érdekében, majd a felső részen található "tree" linkre kell kattintani. Alternatívaként tekintse meg a legújabb kernel dokumentációját.
Néhány joystickhoz, például a Microsoft Sidewinder játékkontrollerekhez (sidewinder), vagy a Logitech digitális játékkontrollerekhez (adi), speciális kernelmodulfájlokra van szükség. Sok régebbi joystick működni fog az egyszerű analog kernelmodulfájllal. Ha az Ön joystickja a hangkártya által biztosított gameport interfészhez csatlakozik, akkor szüksége lesz a hangkártya illesztőprogramjaira — azonban egyes kártyák, mint például a Soundblaster Live, rendelkeznek egy speciális gameport illesztőprogrammal (emu10k1-gp). A régebbi ISA hangkártyákhoz szükség lehet a ns558 kernelmodulfájlra, amely egy szabványos gameport kernelmodulfájl.
Amint látható, számos különféle kernelmodulfájlra van szükség ahhoz, hogy az Ön joystickja működjön Linux alatt, így itt nincs minden lefedve. Kérjük Önt, hogy a részletekért tekintse meg a fentebb említett dokumentációt.
Kernelmodulfájlok betöltése a számítógép memóriájába az analóg játékeszközök számára
Szükséges betölteni egy kernelmodulfájlt a számítógép memóriájába a gameport számára (ns558, emu10k1-gp, cs461x, stb...), be kell tölteni a memóriába egy kernelmodulfájlt a joystick számára (analog, sidewinder, adi, stb...), és végül a kernel joystick eszközmeghajtót (joydev) is be kell tölteni. A kernelmodulfájlt betöltheti a számítógép indulásakor a memóriába, vagy egyszerűen betöltheti a memóriába a modprobe parancs segítségével is. A gameport kernelmodulfájlnak automatikusan kell betöltődnie, mivel ez a többi kernelmodulfájl szoftverfüggősége.
USB játékkontrollerek
Önnek először működésre kell bírnia az USB portot, majd az usbhid és a joydev játékvezérlő‑illesztőprogramot kell betöltenie a modprobe segítségével a számítógép memóriájába.
Ha Ön USB egeret vagy USB billentyűzetet használ, akkor a usbhid kernelmodulfájl már betöltődik, és Önnek kizárólag a joydev modult kell betöltenie.
lsusb kimenetében, de nem fog megjelenni bemeneti eszközként a /dev/input/js* alatt. Részletekért tekintse meg a #Xbox 360 játékkontroller című leírást.Beállítás
Tesztelés
Amint a kernelmodulfájlok betöltődnek a számítógép memóriájába, Önnek képesnek kell lennie új eszközt találnia: /dev/input/js0 és egy fájlt kell látnia, amely -event-joystick végződésű a /dev/input/by-id könyvtárban. Egyszerűen cat parancsot futtathat ezekre az eszközökre, hogy megnézze, vajon működik-e a joystick — mozgassa a kart, nyomja meg az összes gombot – amikor a karokat mozgatja vagy gombokat nyom, mojibake jelenik meg.
Fordítói megjegyzés: A "mojibake" kifejezés torzított, értelmetlen karakterek megjelenését jelenti, amikor a szöveg hibásan kódolódik vagy dekódolódik. Arch Linux alatt joystick esetében ez általában akkor fordul elő, ha a vezérlő eszköz neve vagy azonosítója rossz karakterkódolással jelenik meg.
Ha engedélyezési hibát kap, akkor nézze meg az #Eszközengedélyek[Hibás hivatkozás: Érvénytelen szekció] című leírást.
Wine az SDL függvénykönyvtárat használja mind a DirectInput, mind az XInput emulációhoz, az evdev pedig tartalékként szolgál. Ezeket Ön tesztelheti a wine control joy.cpl parancs futtatásával. A PlayStation 4 és 5 játékkontrollerekhez tekintse meg a #Használat a Wine szoftverrel című leírást.
Joystick API
Sok alkalmazás létezik, amelyekkel tesztelni lehet ezt a régi API interfészt. A jstest illetve a joyutils szoftvercsomagból származó szoftver a legegyszerűbb erre a célra. Ha a kimenet olvashatatlan, mert a kiírt sor túl hosszú, akkor Ön grafikus szoftvereket is használhat. A KDE Plasma rendelkezik egy beépített szoftverrel a Rendszerbeállítások > Beviteli eszközök > Játékvezérlő menüpontban. Alternatívaként elérhető a jstest-gtk-gitAUR.
A jstest használata meglehetősen egyszerű, csak futtatnia kell a jstest /dev/input/js0 parancsot, és ez kiír egy sort az összes tengely állapotával (normalizálva erre: {-32767,32767}) és a gombokkal.
Miután Ön elindítja a jstest-gtk szoftvert, az egyszerűen megjeleníti a rendelkezésre álló joystickok listáját. Önnek csak ki kell választania egyet, majd megnyomni a Tulajdonságok gombot.
evdev API
Az evdev API tesztelhető az evtest szoftver segítségével amely az evtest szoftvercsomagban van, vagy tesztelhető az evtest-qt szoftver segítségével amely az evtest-qt-gitAUR szoftvercsomagban van benne.
Az eszközön a erővisszacsatolás (force feedback) teszteléséhez használja az fftest szoftvert a linuxconsole szoftvercsomagból:
$ fftest /dev/input/by-id/usb-*event-joystick
Fordítói megjegyzés: Az erővisszacsatolás (force feedback) olyan technológia, amely a joystickot vagy kormányt képes fizikai erőkkel "visszajelezni", például ellenállással vagy rezgéssel, hogy valósághűen szimulálja a játékban tapasztalt hatásokat.
SDL API interfészek
Telepítse az sdl-jstest-gitAUR szoftvercsomagot. Ha egynél több játékkontroller van csatlakoztatva a számítógéphez, akkor használja a sdl2-jstest --list parancsot az azonosítójuk lekéréséhez.
Az SDL_Joystick API teszteléséhez a 0. indexű eszközön:
$ sdl2-jstest --test 0
Az SDL_GameController API teszteléséhez ehelyett:
$ sdl2-jstest --gamecontroller 0
HTML5 Gamepad API
Menjen a https://gamepad-tester.com/ weboldalra. Jelenleg a rezgés tesztelése és a játékkontroller vizuális megjelenítése támogatott a Chromium böngészőben, de nem támogatott még a Firefox böngészőben. Továbbá, a Chromium a 107.0.5304.121-1 verziótól kezdve képes olvasni a Joystick eszközöket, de nem az evdev eszközmeghajtót.
Setting up deadzones and calibration
Amennyiben Ön be szeretné állítani az analóg bemenet holttereit (vagy teljesen el szeretné távolítani azokat), azt külön kell megtennie az xorg esetében (az egéremulációhoz és billentyűzetemulációhoz), a Joystick API interfésznél és az evdev API interfésznél.
Wine holtterek
Adja hozzá a következő rendszerleíró bejegyzést, és állítsa be egy karakterláncra 0 és 10000 között (minden tengelyre hatással van):
HKEY_CURRENT_USER\Software\Wine\DirectInput\DefaultDeadZone
Forrás: Useful Registry Keys
Xorg holtterek
Adjon hozzá egy hasonló sort a /etc/X11/xorg.conf.d/51-joystick.conf fájlhoz (ha a fájl még nem létezik, akkor hozza létre):
/etc/X11/xorg.conf.d/51-joystick.conf
Section "InputClass"
Option "MapAxis1" "deadzone=1000"
EndSection
A 1000 az alapértelmezett érték, de bármit beállíthat 0 és 30000 között. A tengely számának megállapításához tekintse meg a "Beállítás tesztelése" című szakaszt ebben a cikkben.
Ha már van egy beállítás egy adott tengellyel, akkor egyszerűen írja be a deadzone=érték részt a paraméter végére, szóközzel elválasztva.
Joystick API holtterek és kalibráció
A legegyszerűbb mód a jstest-gtk használata a jstest-gtk-gitAUR szoftvercsomagból. Válassza ki a szerkeszteni kívánt joystickot, majd kattintson a Properties gombra. Az új ablakban kattintson a Calibration gombra (ne kattintson a Start Calibration gombra ezután). Ezután beállíthatja a CenterMin és CenterMax értékeket, amelyek a közép holtteret szabályozzák, valamint a RangeMin és RangeMax értékeket, amelyek a végállás holtteret szabályozzák. Vegye figyelembe, hogy a kalibrációs beállítások akkor lépnek életbe, amikor az alkalmazás megnyitja az eszközt, tehát újra kell indítania a játékot vagy a tesztalkalmazást, hogy lássa a frissített kalibrációs beállításokat.
Miután beállította a holttereket, létrehozhat egy udev szabályt is, hogy minden változtatás véglegessé váljon:
Először szerezze meg a joystick gyártói azonosítóját (cserélje ki a X értéket a joystick számával, ami általában 0):
$ udevadm info -q property --property ID_VENDOR_ID --value /dev/input/jsX
Szerezze meg a modellazonosítót is:
$ udevadm info -q property --property ID_MODEL_ID --value /dev/input/jsX
Ha a fenti parancsok üres kimenetet adnak, annak az lehet az oka, hogy a vezérlő Bluetooth kapcsolaton keresztül van csatlakoztatva, így ezek az egyedi attribútumok csak a szülő eszköz(ök)ön láthatóak. Ennek kiküszöbölésére Ön megpróbálhat más egyedi attribútumokat keresni a következő parancs futtatásával:
$ udevadm info -a /dev/input/jsX
Ez a parancs felsorolja az összes elérhető attribútumot az Ön eszközéről (és a szülő eszközökről). Például, ha a joystick szülőeszközének van ATTRS{uniq}=="a0:b1:c2:d3:e4:f5" attribútuma, vagy esetleg mind a ATTRS{idVendor}=="054c" és a ATTRS{idProduct}=="09cc", akkor ezeket használhatja a ENV{ID_VENDOR_ID} és ENV{ID_MODEL_ID} helyett az alábbi udev szabályban.
Ön mindkét szabályt egyszerre is használhatja, csak válassza el őket egy új sorral.
Most mindenesetre, használja a jscal parancsot, hogy kiírja a joystick új kalibrációs beállításait:
$ jscal -p /dev/input/jsX
Most módosítsa ezt a udev szabályt a kapott értékekkel:
/etc/udev/rules.d/85-jscal-custom-calibration.rules
ACTION=="add", KERNEL=="js[0-9]*", ENV{ID_VENDOR_ID}=="054c", ENV{ID_MODEL_ID}=="09cc", RUN+="/usr/bin/jscal -s 1,1,1,1 /dev/input/js%n"
Ez a szabály automatikusan lefuttatja a /usr/bin/jscal -s 1,1,1,1 /dev/input/js%n parancsot, amikor Ön egy 054c gyártói azonosítójú és 09cc modellazonosítójú joystickot csatlakoztat. A /dev/input/js%n rész szükséges ahhoz, hogy automatikusan meghatározza a megfelelő joystickot, ezért ne távolítsa el.
Végül töltse be ezt az új udev szabályt.
evdev API holtterek és kalibráció
Az evdev-joystick a linuxconsole szoftvercsomagból használható a holtterek és a kalibráció megtekintésére és módosítására a evdev API eszközök esetében.
Futtassa a következő parancsot annak érdekében, hogy megtekintse az Ön saját eszközének a beállítását:
$ evdev-joystick --showcal /dev/input/by-id/usb-*-event-joystick
Annak érdekében, hogy a holttér módosítását elvégezze egy adott tengelyen, használjon például ilyen parancsot:
$ evdev-joystick --evdev /dev/input/by-id/usb-*-event-joystick --axis 0 --deadzone 0
Annak érdekében, hogy azonos holttér legyen beállítva minden tengelyre egyszerre, hagyja el a --axis 0 kapcsolót.
Használjon udev szabályfájlt annak érdekében, hogy ezek automatikusan beállításra kerüljenek, amikor a játékkontroller csatlakozik.
Vegye figyelembe, hogy a kernelben az érték flatness néven van megnevezve, és az EVIOCSABS ioctl használatával állítják be.
Az alapértelmezett beállítás hasonlóan fog kinézni, mint a következő példa:
$ evdev-joystick --showcal /dev/input/by-id/usb-Madcatz_Saitek_Pro_Flight_X-55_Rhino_Stick_G0000090-event-joystick
Supported Absolute axes: Absolute axis 0x00 (0) (X Axis) (min: 0, max: 65535, flatness: 4095 (=6.25%), fuzz: 255) Absolute axis 0x01 (1) (Y Axis) (min: 0, max: 65535, flatness: 4095 (=6.25%), fuzz: 255) Absolute axis 0x05 (5) (Z Rate Axis) (min: 0, max: 4095, flatness: 255 (=6.23%), fuzz: 15) Absolute axis 0x10 (16) (Hat zero, x axis) (min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0) Absolute axis 0x11 (17) (Hat zero, y axis) (min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)
Egy észszerűbb beállítás elérhető lenne valami ilyesmivel (ismételje meg a többi tengelyre):
$ evdev-joystick --evdev /dev/input/by-id/usb-Madcatz_Saitek_Pro_Flight_X-55_Rhino_Stick_G0000090-event-joystick --axis 0 --deadzone 512
Event device file: /dev/input/by-id/usb-Madcatz_Saitek_Pro_Flight_X-55_Rhino_Stick_G0000090-event-joystick Axis index to deal with: 0 New dead zone value: 512 Trying to set axis 0 deadzone to: 512 Absolute axis 0x00 (0) (X Axis) Setting deadzone value to : 512 (min: 0, max: 65535, flatness: 512 (=0.78%), fuzz: 255)
xboxdrv holtterek és kalibráció
Példaparancs egy virtuális Xbox 360 játékkontroller létrehozására, ahol az Y1 tengely holtterének az értéke 4000, a minimális olvasható érték -32768, a középérték 128, és a maximumérték 29000.
# xboxdrv --deadzone 4000 --calibration Y1=-32768:128:29000
További opciókért tekintse meg az xboxdrv(1) § AXIS FILTER leírást.
Joystick letiltása az egér vezérléséről
Ha játékokat szeretne játszani a játékkontrollerrel, akkor érdemes lehet letiltani a joystick egérkurzor feletti vezérlését.
A legegyszerűbb módja az, hogy letiltja az egéreszközt az asztali környezet beállításaiban. Ellenkező esetben szerkessze a /etc/X11/xorg.conf.d/51-joystick.conf fájlt. Ha az még nem lett létrehozva, akkor hozza létre a fájlt. A szerkesztést követően így kell kinéznie a fájlnak:
/etc/X11/xorg.conf.d/51-joystick.conf
Section "InputClass"
Identifier "joystick catchall"
MatchIsJoystick "on"
MatchDevicePath "/dev/input/event*"
Driver "joystick"
Option "StartKeysEnabled" "False"
Option "StartMouseEnabled" "False"
EndSection
Játékkontroller használata billentyűleütések küldésére
Fordítói megjegyzés: Játékkontroller esetében a "remapping" (bevitelt újból letérképezni) azt jelenti, hogy a gombok vagy tengelyek funkcióit más billentyűkhöz, műveletekhez vagy parancsokhoz rendeljük hozzá. Hivatkoznak még rá úgy mint: Gombok újbóli kiosztása, újratérképezés, újbóli leképezés, újbóli letérképezés.
Néhány általános bevitelt újból letérképező segédprogram (például az Input Remapper) alkalmas arra, hogy a játékkontroller gombjait billentyűzetgombokhoz rendelje hozzá. A kifejezetten játékkontroller-specifikus szoftverek közé tartoznak például:
- qjoypadAUR
- antimicrox
- sc-controller
- steam - Tekintse meg a Steam (Magyar)#Steam Input leírást.
Minden jól működik anélkül, hogy további X.org beállításra lenne szükség.
Példa az Xorg beállítására
Ez egy jó megoldás olyan operációs rendszerek számára, ahol az Xorg újraindítása ritka esemény, mivel ez egy statikus beállítás, amely kizárólag az X-szerver elindulásakor töltődik be. A példa egy Kodi médiacenter számítógépen fut, amely egy Logitech Cordless RumblePad 2 által van irányítva. A d-pad (más néven "hat") tengelyként való felismerésének problémája miatt Joy2key került használatra kerülőmegoldásként. Mivel a kodi 11.0 verziója és a joy2keyAUR 1.6.3-1 verziója óta ez a beállítás már nem működött, létre lett hozva a következő beállítás, hogy az Xorg kezelje a joystick eseményeket.
Először telepítse az xf86-input-joystickAUR szoftvercsomagot. Ezután hozzon létre egy X beállításfájlt:
/etc/X11/xorg.conf.d/51-joystick.conf
Section "InputClass" Identifier "Joystick hat mapping" Option "StartKeysEnabled" "True" #MatchIsJoystick "on" Option "MapAxis5" "keylow=113 keyhigh=114" Option "MapAxis6" "keylow=111 keyhigh=116" EndSection
MatchIsJoystick "on" sor úgy tűnik, hogy nem szükséges a beállítás működéséhez, de lehet, hogy Ön esetleg szeretné megszüntetni a kikommentelését.Játékkontroller gombjainak újbóli kiosztása és továbbiak
Néhány szoftver segítségével tovább lehet hangolni a játékkontroller beállításait, beleértve az alábbi lehetséges funkciókat:
- Gombok és tengelyek újbóli kiosztása.
- Különböző gombkiosztásprofilok hozzárendelése különböző játékokhoz.
- Más típusú játékkontroller emulálása. Egyes szoftverek gyakran jobban működnek amikor Xbox 360 játékkontrollert kapnak, mivel ez egy nagyon elterjedt játékkontroller, amelyet sok játékkal teszteltek.
- További funkciók, mint például makrók, képernyőn megjelenő kijelzések (On-Screen-Displays) stb.
Szoftverek listája:
- SC Controller — Nyílt forráskódú szoftver, amely támogatja a gombok újbóli kiosztását és az Xbox 360 játékkontroller emulációját.
- Steam — Zárt forráskódú áruház, amelynek kliense támogatja a játékkonzol bemenetek újbóli kiosztását a Steam Input segítségével. Engedélyezés esetén a Steam egy Steam Controller eszközt tesz elérhetővé azoknak a játékoknak, amelyek a Steam Input API interfészt használják, valamint egy emulált Xbox 360 játékkontrollert tesz elérhetővé azoknak a játékoknak, amelyek a hagyományos játékkontroller API interfészeket alkalmazzák. További részletekért tekintse meg a Steam (Magyar)#Steam Input című leírást a további részletekért.
- xboxdrv — Xbox 360 játékkontroller illesztőprogram, amely támogatja a játékkontroller emulációját egy másik bemeneti játékkontrollerből. Részletekért tekintse meg a #Xbox 360 játékkontroller utánozása című leírást. Emellett rugalmas lehetőséget kínál az újbóli kiosztásra és a kalibrálásra.
Játékkontroller újbóli kiosztása SDL2 alkalmazásokon
A játékkontrollerek újból kioszthatóak az SDL2 alkalmazásokhoz a SDL_GAMECONTROLLERCONFIG környezeti változó használatával. Minden sor tartalmazza a játékkontroller GUID azonosítóját, egy nevet, a gombhozzárendeléseket és tengely-hozzárendeléseket, valamint a platformot. A játékkontroller GUID azonosítója lekérhető az sdl-jstest-gitAUR szoftvercsomag telepítésével, majd az sdl2-jstest --list parancs futtatásával.
Például a Microsoft Xbox 360 játékkontrollerek különböző GUID azonosítóinak hozzárendeléséhez:
~/.bashrc
export SDL_GAMECONTROLLERCONFIG=" 030000005e0400008e02000001000000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.1,dpleft:h0.2,dpright:h0.8,dpup:h0.4,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 030000005e0400008e02000004010000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, "
Néhány alkalmazás a hozzárendelési információkat a gamecontrollerdb.txt fájlból nyeri ki. Ez grafikus módon szerkeszthető a controllermapAUR szoftvercsomag segítségével. A naprakész adatbázis ezen a linken található meg.
Xbox 360 játékkontroller utánozása
A #xboxdrv a --mimic-xpad kapcsolóval felhasználható arra, hogy bármely játékkontroller Xbox 360 játékkontrollerként legyen regisztrálva. Ez kívánatos lehet azoknál a játékoknál, amelyek alapértelmezetten támogatják az Xbox 360 játékkontrollereket, de problémát okoz számukra más játékkontrollerek felismerése vagy működtetése.
Az Xbox 360 játékkontroller emulálható a következő paranccsal:
$ xboxdrv --evdev /dev/input/event* --evdev-absmap ABS_RX=X2 --evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_PINKIE=rt --mimic-xpad
A fenti példa nem teljes. Kizárólag egy tengelyt és 3 gombot térképez fel bemutatási célból. Használja az xboxdrv --help-button parancsot az Xbox játékkontroller gombjainak és tengelyei nevének a megtekintéséhez, és ennek megfelelően kösse őket a fenti parancs kibővítésével. A tengely-hozzárendeléseknek a --evdev-absmap után kell következniük, a gombhozzárendelések pedig a --evdev-keymap után kell következniük (vesszővel elválasztott lista, szóközök nélkül).
Alapértelmezés szerint az xboxdrv minden eseményt kiír a terminálra. Ön ezt felhasználhatja annak a tesztelésére, hogy a hozzárendelések helyesek-e. Ha azt szeretné, hogy ne legyen kiírás, akkor adja hozzá a --silent kapcsolót.
Specifikus eszközök
Bár a legtöbb játékkontrollernek, különösen az USB-alapúaknak, alapértelmezés szerint azonnal működniük kellene, néhány esetben szükség lehet alternatív illesztőprogramok használatára (vagy azért van rájuk szükség, mert ezek jobb eredményt adhatnak).
Táncszőnyegek
A legtöbb táncszőnyegnek alapból működnie kellene. Azonban néhány szőnyeg, különösen azok, amelyeket videójáték-konzolról használnak adapteren keresztül, hajlamosak a nyílgombokat tengelygombokként felismerni és ezáltal az szerint kezelni. Ez megakadályozza a bal-jobb vagy a fel-le gombok egyidejű lenyomását. Ez a viselkedés kijavítható az xpad által felismert eszközöknél egy kernelmodulfájl-opció segítségével:
# modprobe -r xpad # modprobe xpad dpad_to_buttons=1
Ha ez nem működött, akkor Ön megpróbálhatja az axisfix-gitAUR szoftvercsomag használatát, vagy a joydev kernelmodulfájl kijavítását (https://github.com/adiel-mittmann/dancepad).
Logitech Thunderpad Digital
Ha a Logitech Thunderpad Digital az analog kernelmodulfájlt használja, akkor nem jeleníti meg az összes gombot. Ön ennél a játékkontrollernél használja inkább az eszközspecifikus adi kernelmodulfájlt.
Nintendo Gamecube játékkontroller
A Dolphin Emulator wiki oldalán található leírás bemutatja, hogy miként lehet használni a hivatalos Nintendo USB adaptert a GameCube játékkontrollerrel. Ez a beállítás a Mayflash Controller Adapterrel is működik amennyiben a kapcsoló a "Wii U" állásban van.
Más alkalmazásokhoz Ön használhatja a wii-u-gc-adapterAUR szoftvercsomagot.
Nintendo Switch Pro játékkontroller és Joy-Cons
Ezek a játékkontrollerek támogatva vannak a kernel 5.16 verziójától kezdve. A Switch Online NES, SNES és N64 játékkontrollerek pedig a kernel 6.12 verziójától kezdve kaptak támogatást.
Korábbi kernelverziók esetén lehetőség van a DKMS kernelmodulfájl telepítése a hid-nintendo-nso-dkmsAUR szoftvercsomagból.
Felhasználói térben működő szolgáltatás
A joycond-gitAUR egy felhasználói térben működő szolgáltatás, amely jobb integrációt biztosít a Nintendo Switch játékkontrollerek számára. Amikor a szolgáltatás aktív, a Switch játékkontrollereket párosítási módba kell helyezni (villogó LED) és mindkét ravasz lenyomásával összepárosíthatóak. Ezt követően a játékkontrollerek azonnal készen állnak a használatra az alkalmazások számára. Részletekért tekintse meg a dokumentációt.
Joy-Con készülékek használata egyetlen készülékként
A hid-nintendo kernel-illesztőprogram a kettő Joy-Con készüléket kettő különálló készülékként kezeli.
A kettő Joy-Con készülék összepárosítása érdekében győződjön meg arról, hogy a joycond szolgáltatás fut a számítógépen, és mindkét Joy-Con készülék párosítási módban van. Ezután nyomjon le egyszerre egy ravaszt mindkét Joy-Con készüléken.
Pozíció szerinti elrendezés használata SDL2 alkalmazásokban
Alapértelmezés szerint az SDL2 a Nintendo játékkontrollerek gombjait a játékkontroller címkéjének megfelelően térképezi le, nem pedig a gomb pozíciója alapján. Ez azt eredményezi, hogy az A/B és X/Y gombok kiosztása felcserélődik más játékkontrollerekhez képest. Ha ez nem kívánatos, akkor állítsa be az SDL_GAMECONTROLLER_USE_BUTTON_LABELS=0 környezeti változót.
Az SDL3 verziótól kezdve a leképezés mindig pozíció szerinti.[1] Megjegyzendő, hogy az sdl2-compat megőrzi a régi viselkedést.[2]
Steam játékkontroller
A Steam kliensszoftver felismeri a játékkontrollert, és amíg a Steam fut, addig billentyűzetemulációt/egéremulációt/játékkontroller-emulációt biztosít. A játék közbeni Steam overlay grafikai rétegnek engedélyezve és működőképesnek kell lennie ahhoz, hogy a játékkontroller-emuláció működjön. Előfordulhat, hogy a játékkontroller nem működik azonnal a Steam telepítése és futtatása után. Amennyiben ez előfordul, akkor Önnek root jogosultságokkal futtatnia kell az udevadm trigger parancsot, vagy le kell csatlakoztatnia, majd ismét vissza kell csatlakoztatnia a játékkontroller csatlakoztatóját a számítógépnél. Ha minden más kudarcot vall, akkor próbálja meg újraindítani a számítógépet, miközben a csatlakozó csatlakoztatva van.
Ha a játékkontrollert Bluetooth LE kapcsolaton keresztül használja, akkor győződjön meg róla, hogy az operációs rendszerben a felhasználó tagja az input csoportnak.
Ha egyáltalán nem tudja működésre bírni a Steam játékkontrollert, akkor tekintse meg a #Steam játékkontroller nem párosítható vagy nem ismerhető fel a játékokban (beleértve az USB csatlakozást is) című leírást.
Xbox 360 játékkontroller
Mind a vezetékes, mind a vezeték nélküli (az Xbox 360 Wireless Receiver for Windows használatával) játékkontrollerek támogatottak az xpad kernelmodulfájl által, és további szoftvercsomagok nélkül is működniük kell. Fontos megjegyezni, hogy ha a vezeték nélküli Xbox 360 játékkontrollert a Play&Charge USB vezetékkel használná, akkor az nem fog működni. A vezeték kizárólag töltésre szolgál, és nem továbbít semmilyen bemeneti adatot a vezetéken keresztül.
Felhasználók jelezték, hogy az alapértelmezett xpad illesztőprogramnak néhány újabb vezetékes és vezeték nélküli játékkontrollerrel problémái vannak, például:
- Hibás gombkiosztás. (Erről megbeszélés a Steam hibakövetőben.)
- Nem működő szinkronizáció. (Erről megbeszélés az Arch Fórumban.)
- Mind a négy LED folyamatosan villog, de a játékkontroller működik. Valószínűleg a TLP USB autosuspend funkció az oka ennek a problémának a vezeték nélküli játékkontrollerek esetében. A javítás részleteit tekintse meg alább ebben a cikkben.
Ha Ön a TLP energiagazdálkodási eszközt használja, akkor előfordulhatnak kapcsolódási problémák a Microsoft vezeték nélküli adapterrel (például a jelző LED néhány másodperccel az adapter csatlakoztatása után kialszik, a játékkontroller csatlakozási kísérletei sikertelenek, mind a négy LED folyamatosan villog, de a játékkontroller működik). Ez a TLP USB autosuspend funkciója miatt van, és a megoldás az, hogy a Microsoft vezeték nélküli adapter eszközazonosítóját hozzá kell adni a TLP tiltólistájához.
(Az eszközazonosító ellenőrzéséhez futtassa a tlp-stat -u parancsot. Az eredeti MS vezeték nélküli dongle esetén egyszerűen adja hozzá a USB_DENYLIST="045e:0719" sort a /etc/tlp.conf fájlhoz).
További részletekért tekintse meg a TLP beállítás című leírást.
Ha Ön ilyen problémákat tapasztal, akkor használhatja a #xboxdrv illesztőprogramot alapértelmezett xpad illesztőprogramként.
A Bluetooth kapcsolaton keresztül történő csatlakozás érdekében adja hozzá a bluetooth.disable_ertm=1 kernelparamétert.
Ha Ön problémákat tapasztal azzal, hogy a rezgés funkció nem működik a játékokban, akkor szükséges lehet beállítani az SDL_JOYSTICK_HIDAPI=0 környezeti változót.
xboxdrv
Az xboxdrv illesztőprogram egy alternatívája az xpad illesztőprogramnak, amely több funkciót biztosít, és bizonyos játékkontrollerekkel jobban működhet. Felhasználói térben fut, és rendszerszolgáltatásként indítható.
Telepítse az xboxdrvAUR szoftvercsomaggal. Ezután indítsa el/engedélyezze az xboxdrv.service szolgáltatást.
Ha problémái vannak azzal, hogy a játékkontrollert felismeri ugyan, de nem működik a Steam játékokban, vagy működik, de hibás kiosztással, akkor szükség lehet a beállítás módosítására az alábbiak szerint:
/etc/default/xboxdrv
[xboxdrv] silent = true device-name = "Xbox 360 Wireless Receiver" mimic-xpad = true deadzone = 4000 [xboxdrv-daemon] dbus = disabled
Módosítást követően indítsa újra az xboxdrv.service szolgáltatást.
Több játékkontroller
Az xboxdrv számos játékkontrollert támogat, de ezeket be kell állítani a /etc/default/xboxdrv fájlban. Minden további játékkontrollerhez adjon hozzá egy next-controller = true sort. Ha például Ön 4 kontrollert használ, akkor ezt 3 alkalommal kell hozzáadni:
[xboxdrv] silent = true next-controller = true next-controller = true next-controller = true [xboxdrv-daemon] dbus = disabled
A hozzáadást követően indítsa újra az xboxdrv.service szolgáltatást.
Általános/klón kontrollerek használata
Néhány klónjátékkontroller működéséhez szükség lehet egy speciális inicializálási sorrendre (Super User válasz). Ehhez Önnek a következő python szkriptet kell root felhasználóként futtatnia:
#!/usr/bin/env python3
import usb.core
dev = usb.core.find(idVendor=0x045e, idProduct=0x028e)
if dev is None:
raise ValueError('Device not found')
else:
dev.ctrl_transfer(0xc1, 0x01, 0x0100, 0x00, 0x14)
Xbox vezeték nélküli játékkontroller / Xbox One vezeték nélküli játékkontroller
Xbox vezeték nélküli játékkontroller csatlakoztatása USB vezeték segítségével
Ez a lehetőség támogatott a kernel által, és nem igényel semmilyen további szoftvercsomagot.
Xbox vezeték nélküli játékkontroller csatlakoztatása Bluetooth segítségével
Játékkontroller firmware szoftverének frissítése Windows 10 alatt
Az Xbox vezeték nélküli játékkontroller firmware szoftvere korábban a Bluez alatt folyamatos csatlakozás/leválás ciklusokat okozott. A legjobb megoldás az, hogy Ön a játékkontrollert (USB vezetéken keresztül) Windows 10 számítógéphez csatlakoztatja, letölti a Xbox Accessories alkalmazást a Microsoft Store áruházból, és frissíti a játékkontroller firmware szoftverét.
xpadneo
Az xpadneo egy viszonylag új illesztőprogram, amely támogatja az Xbox One S és az Xbox Series X|S játékkontrollert Bluetooth kapcsolaton keresztül. E két modell mellett alapvető támogatást nyújt az Xbox Elite Series 2 vezeték nélküli játékkontrollerhez is. Bár eddig teljeskörűen csak két játékkontrollert támogat, lehetővé teszi a pontos akkumulátorszint kiolvasását, támogatja a rezgést (beleértve a ravasz gombok – L2/R2 – rezgését is), kijavítja a néha hibás gombkiosztást és további funkciókat biztosít.
A telepítése a DKMS szoftvercsomag feltelepítésével történik meg: xpadneo-dkmsAUR.
Xbox vezeték nélküli játékkontroller csatlakoztatása Microsoft Xbox vezeték nélküli adapteren keresztül
Az xone egy Linux kernel illesztőprogram Xbox One és Xbox Series X|S kiegészítőkhöz. Modern helyettesítője az xpad és xow illesztőprogramoknak. Jelenleg vezetékes kapcsolaton, illetve a Microsoft Xbox vezeték nélküli adapter "dongle"-ján keresztül működik. Ennek az illesztőprogramnak a hibajavításait most az eredeti illesztőprogram dlundqvist fejlesztési leágazása tartja karban.
Telepítse az xone-dkmsAUR szoftvercsomagot, és ha vezeték nélküli dongle-t használ, akkor az xone-dongle-firmwareAUR szoftvercsomagot is telepítse fel a számítógépre. A telepítés után szükséges az operációs rendszer újraindítása.
- Szükség van a kernelhez tartozó fejlécekre (kernel headers). Részletekért olvassa el a DKMS (Magyar)#Telepítés című leírást.
- Az adapter egy mt76 alapú 802.11/15 lapkakészletet használ, ami interferenciát okozhat más vezeték nélküli adapterekkel, amelyek ugyanahhoz a rendszerhez csatlakoznak, vagy annak közelében találhatók.
Játékvezérlő gyengén teljesít (alacsony lekérdezési sebesség) párosítás után
Önnek szüksége lesz a játékkontroller firmware szoftverének a frissítésére Windows alatt a Microsoft Store áruházból letölthető "Xbox Accessories" alkalmazás használatával. Elméletileg ez megoldható USB passthrough segítségével egy Windows virtuális gépben, de előfordulhat, hogy Önnek dual boot-ban kell telepítenie egy tényleges Windows rendszert a számítógépre, hogy az Xbox Accessories alkalmazás felismerje a játékkontrollert és elvégezze a firmware frissítését.
Dual boot Windows rendszerrel
A játékkontroller és az adapter párosítása Windows alatt okozhatja, hogy a párosítás elveszik Linuxban. Újra kell párosítania a játékkontrollert és a dongle-t, amikor újraindítja a rendszert Linuxban. Ez fordítva is megtörténik — ha a vezérlő és a dongle Linuxban van párosítva, akkor újra kell párosítania őket, amikor legközelebb Windowsban szeretné használni. Ez elkerülhető, amennyiben Ön követi az utasításokat a dual boot párosítás című leírásban.
Felfüggesztést követően után, amikor a játékkontroller használatával ébreszt, nem sikerül csatlakozni
Egyes platformokon a felfüggesztés okozhatja azt, hogy az eszköz olyan állapotba kerüljön, ahol nem reagál megfelelően. Mivel az eszközt a Linux Bluetooth adapterként ismeri fel, felfüggesztéskor automatikusan kikapcsolt állapotba kerül, ami egyben letiltja a játékkontrollerrel történő rendszerébresztést. Ez enyhíthető a kernel parancssorban történő btusb.enable_autosuspend=n paraméter használatával. Megjegyzés: Ez letiltja az energiamegtakarítási felfüggesztést a rendszer összes többi USB Bluetooth adapterén is.
PlayStation 3 játékkontroller
Párosítás USB vezetéken keresztül
Ha Ön rendelkezik PS3 játékkontrollerrel és USB vezetéken keresztül tudja azt csatlakoztatni, akkor dugja be a számítógépébe, majd nyomja meg a PS gombot. A játékkontroller bekapcsol, és a négy LED közül az egyiknek világítania kell, ezzel jelezve a játékkontroller számát.
Párosítás Bluetooth kapcsolaton keresztül
Telepítse a bluez és bluez-utils szoftvercsomagokat. Győződjön meg róla, hogy a Bluetooth működik azáltal, hogy követi az első öt lépést a Bluetooth (Magyar)#Párosítás című leírásból, és hagyja futni a bluetoothctl parancsot. Ezután kapcsolja be a játékkontrollert a középső "PS" gomb megnyomásával (mind a 4 LED gyorsan villogjon körülbelül 4 Hz frekvenciával), majd csatlakoztassa számítógépéhez USB kapcsolaton keresztül. Végül írja be, hogy yes a bluetoothctl parancssorban, amikor a következő kérdés jelenik meg: 'Authorize service 00001124-0000-1000-8000-00805f9b34fb (yes/no)'.
A bluez legújabb verziójában (2024/01/03 állapot szerint) a ClassicBondedOnly alapértelmezett értéke biztonsági okokból false helyett true lett [3]. Ez a változtatás lehetetlenné teszi a Dual Shock 3 játékkontroller párosítását, mivel a bluetoothctl PIN-kódot kér, és nem tud továbblépni. A probléma megkerüléséhez állítsa a ClassicBondedOnly értékét false értékre az alábbi sorok hozzáadásával az újonnan létrehozott /etc/bluetooth/input.conf fájlban.
2024.03.09 időponttól kezdve az UserspaceHID alapértelmezett értéke szintén true lett. Bár a kapcsolat létrejön, a játékkontrollereket nem lehet többé működési módba állítani, hacsak ezt az értéket nem változtatja meg false értékre. További információért tekintse meg a Github #771 hibabejegyzést.
[General] ClassicBondedOnly=false UserspaceHID=false
Vegye figyelembe, hogy ez a megoldás biztonsági visszalépést jelent. A részletekért tekintse meg a GitHub weboldalt.
PlayStation 3 és PlayStation 4 játékkontrollerek
A DualShock 3, DualShock 4 és Sixaxis játékkontrollerek azonnal működnek, amennyiben USB vezetéken keresztül csatlakoztatja őket (a PS gombot meg kell nyomni a kezdéshez). Ezek a játékkontrollerek Bluetooth kapcsolaton keresztül vezeték nélkül is használhatóak.
A Steam megfelelően PS3 játékkontrollerként ismeri fel, és a Big Picture elindítható a PS gombbal. A Big Picture és néhány játék úgy viselkedhet, mintha 360 játékkontroller lenne. Az egér játékkontrollerrel történő vezérlése alapértelmezetten be van kapcsolva. Érdemes lehet kikapcsolni játék előtt. Részletekért tekintse meg a #Joystick letiltása az egér vezérléséről című leírást.
Párosítás Bluetooth kapcsolaton keresztül
Telepítse a bluez és bluez-utils szoftvercsomagokat, amelyek tartalmazzák a sixaxis beépülőmodult. Ezután indítsa el a bluetooth szolgáltatást, és győződjön meg róla, hogy a Bluetooth be van kapcsolva. Amennyiben Ön a bluetoothctl szoftvert használja, akkor indítsa el egy terminálban, majd csatlakoztassa a játékkontrollert USB vezetéken keresztül keresztül. A bluetoothctl szoftverben meg kell jelennie a kérésnek, hogy megbízik-e Ön a játékkontrollerben. Egy grafikus Bluetooth felület automatikusan beírhatja a számítógép Bluetooth címét a játékkontrollerbe. Nyomja meg a PlayStation gombot, és ellenőrizze, hogy a játékkontroller működik-e, amíg USB vezetéken keresztül csatlakoztatva van.
Most már leválaszthatja a játékkontrollert. Amikor legközelebb megnyomja a PlayStation gombot, a játékkontroller csatlakozni fog anélkül, hogy bármi mást kérne.
Alternatív megoldásként a PS4 játékkontrolleren néhány másodpercig tartsa lenyomva egyszerre a "Share" gombot és a "PlayStation" gombot, így a játékkontroller párosítási módba kerül, majd párosítsa úgy, ahogyan azt általában szokta.
A "GNOME beállítások" grafikus felületet is biztosít a hattengelyes játékkontrollerek párosításához, amikor azok vezetékesen vannak csatlakoztatva.
Amikor végzett, ne felejtse el leválasztani a játékkontrollert, mivel a játékkontroller csatlakoztatott állapotban bekapcsolva marad, és lemeríti az akkumulátort.
Általános játékkontrollerek és klónjátékkontrollerek használata
Lehetőség van az általános játékkontrollerek és a klón Dualshock játékkontrollerek használatára, azonban előfordulhat egy probléma, amely miatt szükség lehet egy javított szoftvercsomag telepítésére. Az alapértelmezett Bluetooth protokollverem nem érzékel néhány klónjátékkontrollert. A bluez-ps3AUR szoftvercsomag egy javított verzió, amely képes ezeket érzékelni. A bluez-plugins-ps3AUR egy másik szoftvercsomag, amely kizárólag a bluez-plugins javítását tartalmazza, és működhet bizonyos játékkontrollerek esetében.
PlayStation 4 és PlayStation 5 játékkontrollerek
Párosítás USB vezetéken keresztül
Csatlakoztassa a játékkontrollert USB vezetéken keresztül, majd nyomja meg a PS gombot.
Párosítás Bluetooth kapcsolaton keresztül
Amennyiben Ön a Bluetooth módot szeretne használni, akkor tartsa lenyomva egyszerre a PS gombot és a Share gombot. A játékkontroller fehér LED világítása nagyon gyorsan villogni fog, és a vezeték nélküli játékkontroller párosítható lesz a Bluetooth kezelő segítségével.
Használat a Wine szoftverrel
Ezeken a játékkontrollereken a Wine alapértelmezés szerint a kernelben létező hidraw illesztőprogramot használja (a hidraw 8.0 verziója óta így van), így a Windows alkalmazások, amelyek támogatják őket, minden funkciójukat használni tudják. A Windows-szerű működés miatt azonban nem XInput eszközként jelennek meg, ami megakadályozza, hogy sok alkalmazásban működjenek.
A viselkedés letiltásához importálja a következő szövegfájlt a Wine rendszerleíró adatbázisába a regedit segítségével:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus] "DisableHidraw"=dword:1
A Wine 9.18 verziója óta ez a beállítás a wine control joy.cpl felületről vezérelhető.
Érintőpad egérként való működésének a letiltása
Amennyiben Ön a libinput függvénykönyvtárat használja az Xorg szerverrel, vagy ha a Wayland megjelenítési protokollt használja, akkor követheti a Libinput (Magyar)#Környezeti változó használata útmutatót az érintőpad letiltása érdekében.
Vegye figyelembe, hogy mivel az érintőpad csak egy része a játékkontrollernek, az kiválasztása gyártói és termékazonosítók alapján nem elegendő. Ehelyett fontolja meg az név szerinti kiválasztását.
A használható attribútumok teljes készletéhez tekintse meg a udevadm info --attribute-walk --name=eszköz_elérési_útja parancsot, ahol a eszköz_elérési_útja az eszköz elérési útját kell, hogy tartalmazza, például /dev/input/eventn vagy /dev/input/by-id/azonosító.
Az eszköz elérési útjának meghatározásához használhat egy olyan szoftvert, mint az evtest, amelyet egyszerűen futtatni lehet az evtest parancs kiadásával. Ez a parancs az eszköz nevét is ki fogja írni.
A következő példa a kód egy részét mutatja be:
/etc/udev/rules.d/72-ds4tm.rules
# Disable DS4 touchpad acting as mouse
# USB
ATTRS{name}=="Sony Interactive Entertainment Wireless Controller Touchpad", ENV{LIBINPUT_IGNORE_DEVICE}="1"
# Bluetooth
ATTRS{name}=="Wireless Controller Touchpad", ENV{LIBINPUT_IGNORE_DEVICE}="1"
A DualSense játékkontrollerek esetében cserélje le a neveket a Sony Interactive Entertainment DualSense Wireless Controller Touchpad és DualSense Wireless Controller Touchpad nevekre.
Ezt követően töltse be újra az udev szabályokat a memóriába. Csatlakoztassa újra a játékkontrollert a változtatások alkalmazásához.
dualsensectl
A dualsensectl egy olyan szoftver, amellyel vezérelhető a fénycsík és a mikrofon (valamint a mikrofon LED világítása), figyelhető az akkumulátor állapota, illetve kikapcsolható vele a játékkontroller. Használatához telepítse a dualsensectl-gitAUR szoftvercsomagot.
Tippek és trükkök
Játékkontroller használata hálózaton keresztül
Amennyiben Ön a játékkontrollert egy másik számítógéppel szeretné használni hálózaton keresztül, akkor ehhez használhatja az USB/IP vagy a netstick-gitAUR szoftvercsomagot.
Játékkontroller lekérdezési sebességének és késleltetésének mérése a gamepadla-polling segítségével
Tekintse meg az Egér lekérdezési sebessége című leírást is.
A gamepadla weboldal egy közösségi adatbázist tart fenn, amely játékkontroller-specifikus késleltetési és lekérdezési adatokat tartalmaz. A jelentések készítésére szolgáló szoftver az evdev/hidraw eseményeket olvassa a pygame/SDL segítségével, és elérhető a gamepadla-pollingAUR szoftvercsomagból.
Hibaelhárítás
Játékkontrollerek engedélyei
A játékkontrollerekre hatással vannak a(z) udev szabályok: Ha ezek a szabályok nem biztosítanak hozzáférést az játékkontrollerhez, akkor a játékkontroller egyszerűen nem lesz olvasható a felhasználók számára. Ez a szakasz annak a lehetőségét vizsgálja, hogy Önnek van-e már egy beállításfájlja, amely ezt kezeli.
Minden játékkontrollert (függetlenül attól, hogy az USB vezetéken vagy Bluetooth kapcsolaton keresztül működik-e) az "input" alrendszer kezeli a kernelben, amely a /dev/input eszközfájlnak felel meg. Gyakori az is, hogy az udev szabályok a "hidraw" kernelmodult célozzák meg. Ezeket kombinálva, megérthetjük a udev eszközkezelését, ha megvizsgáljuk a szoftvercsomagok által szállított beállítást:
$ grep --extended-regexp 'SUBSYSTEM=="input"|KERNEL=="hidraw' --recursive /usr/lib/udev/rules.d
Néhány példa azokra az alkalmazásokra, amelyek figyelemreméltó szabályokat szállítanak:
- A systemd alapértelmezett szabályai minden
inputeszköz csoportjátinputértékre állítanak be, valamint a joystick eszközök módját664értékre állítják be [4]. - A Steam udev szabályokat szállít, amelyek lehetővé teszik a különféle játékkontrollerekhez való hozzáférést. További információért a szabályok tartalmáról olvassa el ezt a Steam megbeszélést.
- A Dolphin emulator udev szabályokat szállít, amelyek lehetővé teszik az általa támogatott játékkontrollerekhez való hozzáférést.
Ha az Ön operációs rendszerében még nincs udev szabály ahhoz az eszközhöz, amelyet használni szeretne, akkor vagy írhat egyet a saját maga kézzel, vagy telepítheti a game-devices-udevAUR szoftvercsomagot, majd indítsa újra a számítógépet.
input csoporthoz annak érdekében, hogy hozzáférést kapjon minden eszközhöz. Azonban ez nem ajánlott eljárás [5].Nem ismeri fel minden szoftver a játékkontrollert
Néhány szoftver, például a Steam, csak az első játékkontrollert ismeri fel, amelyet talál. A Microsoft vezeték nélküli perifériaeszközök illesztőprogramjának hibája miatt ez valójában lehet a Bluetooth dongle. Ha azt tapasztalja, hogy van egy /dev/input/js* és egy /dev/input/event*, amelyek a billentyűzet Bluetooth adóvevőjéhez tartoznak, akkor automatikusan megszabadulhat tőlük a megfelelő udev szabályok létrehozásával:
/etc/udev/rules.d/99-btcleanup.rules
ACTION=="add", KERNEL=="js[0-9]*", SUBSYSTEM=="input", KERNELS=="...", ATTRS{bInterfaceSubClass}=="00", ATTRS{bInterfaceProtocol}=="00", ATTRS{bInterfaceNumber}=="02", RUN+="/usr/bin/rm /dev/input/js%n"
ACTION=="add", KERNEL=="event*", SUBSYSTEM=="input", KERNELS=="...", ATTRS{bInterfaceSubClass}=="00", ATTRS{bInterfaceProtocol}=="00", ATTRS{bInterfaceNumber}=="02", RUN+="/usr/bin/rm /dev/input/event%n"
Javítsa ki a KERNELS=="..." értéket úgy, hogy az megfeleljen az Ön eszközének. A helyes érték az alábbi parancs futtatásával található meg:
# udevadm info -an /dev/input/js0
Miután elhelyezte a szabályt (feltételezve, hogy a szóban forgó eszköz a /dev/input/js0), töltse újra a szabályokat a következő paranccsal:
# udevadm control --reload
Ezután csatlakoztassa újra a problémát okozó eszközt. A joystick és az event eszközöknek el kell tűnniük, bár a számuk továbbra is lefoglalt marad. Azonban a fájlok már nincsenek útban.
Alkalmazás kizárólag az Xbox 360 játékkontrollereket támogatja
Néhány Windows játék kifejezetten Xbox 360 játékkontrollert keres, és ennek hiányában bizonyos funkciók (például a rezgés) nem működnek, vagy egyáltalán nem indulnak el.
Ezen probléma megoldásáért tekintse meg az #Xbox 360 játékkontroller utánozása című leírást.
Nintendo Switch Pro játékkontroller működése megszakad, amikor Bluetooth kapcsolaton keresztül használja
A Nintendo Switch Pro játékkontroller és változatainak működése megszakadhat, amikor rezgés jeleket kap(nak).
Ez megkerülhető úgy, hogy a Bluetooth adapter nevét "Nintendo" névre változtatja [6].
Steam játékkontroller
Steam játékkontroller nem párosítható vagy nem ismerhető fel a játékokban (beleértve az USB csatlakozást is)
Vannak ismeretlen esetek, amikor a Steam játékkontrollerhez csomagolt udev szabály nem működik (FS#47330). Ez számos problémát okozhat, például a Steam játékkontroller megfelelően működik az asztali környezetben és a Steam kliensben, de a játékokban (beleértve az USB vezetéken történő játékkontroller csatlakozásokat is) nem fejt ki semmilyen hatást. A legmegbízhatóbb kerülő megoldás az, hogy a játékkontrollert világosan olvashatóvá teszi mindenki számára. Például, másolja át a szabályt /usr/lib/udev/rules.d/70-steam-controller.rules fájlból a /etc/udev/rules.d könyvtárba későbbi prioritással, és cserélje le az összes MODE="0660" bejegyzést MODE="0666" értékre.
/etc/udev/rules.d/99-steam-controller-perms.rules
...
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666"
...
Előfordulhat, hogy Önnek újra kell indítania a számítógépet, hogy a változtatás érvénybe lépjen.
Steam játékkontroller játékösszeomlást okoz vagy nem ismeri fel a játék
Ha a Steam játékkontroller jól működik a Steam Big Picture módban, de egy játék nem ismeri fel, vagy a játék összeomlik, amikor Ön csatlakoztatja a játékkontrollert, akkor ennek oka lehet a Linux kernel 4.18 verziójához hozzáadott natív illesztőprogram. Próbálja meg eltávolítani azt, indítsa újra a Steam szoftvert, majd csatlakoztassa újra a játékkontrollert.
Az illesztőprogram modul neve hid_steam, ezért annak eltávolításához a következőt parancsot hajthatja végre:
# rmmod hid_steam
Ha ez az illesztőprogram modul még nincs betöltve a számítógép memóriájába, és a játékkontrollert a játékok így sem ismerik fel, akkor ugorjon az előző szakasz #Steam játékkontroller nem párosítható vagy nem ismerhető fel a játékokban (beleértve az USB csatlakozást is) című udev szabály megoldására.
Xbox One vezeték nélküli játékkontroller fel van ismerve, de a belőle a számítógépbe beküldött jelek nem kerülnek felismerésre
Ez akkor fordulhat elő, amikor Ön egy harmadik fél által gyártott Xbox One játékkontrollert használ xpad vagy #xboxdrv illesztőprogrammal. Próbáljon meg átváltani az #xpadneo illesztőprogramra.
PlayStation 4 játékkontrollerek
Játékkontroller nem ismerhető fel amikor a Bluetooth van használva
Telepítse a ds4drvAUR szoftvercsomagot, és futtassa a hidraw (ds4drv --hidraw) háttérprogram-paraméterrel.
Mozgásvezérlés átveszi a joypad vezérlés szerepét és/vagy nem kívánt bemeneti jeleket generál a joypad vezérlésnek
Bizonyos felhőalapú játékalkalmazásoknál, mint például a Parsec és a Shadow, a Dualshock 4 V1 és V2 mozgásvezérlései ütközhetnek a joypad vezérléssel, ami a joypad működésképtelenségét eredményezheti, és bizonyos bemenetre érzékeny játékoknál, különösen az autóverseny játékoknál, a mozgásvezérlés nem szándékos sodródást okozhat a joypad vezérlés közbeni játékmenet során.
Ez megkerülhető a mozgásvezérlés és a touchpad letiltásával az alábbi udev szabályok hozzáadásával:
/etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules
SUBSYSTEM=="input", ATTRS{name}=="*Controller Motion Sensors", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
SUBSYSTEM=="input", ATTRS{name}=="*Controller Touchpad", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
Ezután töltse be újra a szabályokat a számítógép memóriájába vagy indítsa újra a számítógépet: Ezek a szabályok USB és Bluetooth módban egyaránt működni fognak.
Többmódú vezetékes játékkontrollerek
Néhány játékkontrollernek 3 üzemmódja van vezetékes használatkor: Switch, Xbox 360/Windows, Android.
Vezetékes csatlakozáskor sincsenek gyorsbillentyűik az üzemmódok közötti váltáshoz.
ZD O+ Excellence
A játékkontroller alapértelmezésben Switch módba áll, és visszaesik XInput módba. A játékkontroller bemenetek ebben a módban nincsenek megfelelően kezelve. A többi újbóli kiosztás, amelyet meg tud tenni, például a billentyűzetbemenetek és egérbemenetek, alapértelmezés szerint megfelelően működnek XInput módban.
DirectInput
Ez megoldható azzal, hogy minden használatkor DirectInput módba vált, de ez bosszantó, és bizonyos HTML5 játékoknál nem működik.
udev
Adja hozzá a következő udev szabályt, és az xpad segítségével Xbox 360 játékkontrollerként lesz kezelve:
/etc/udev/rules.d/99-zdO-xinput.rules
ACTION=="add", ATTRS{idVendor}=="11c0", ATTRS{idProduct}=="5505", RUN+="/sbin/modprobe xpad", RUN+="/bin/sh -c 'echo 11c0 5505 > /sys/bus/usb/drivers/xpad/new_id'"
Ezt követően töltse be újból az udev szabályokat a számítógép memóriájába.
Ezután csatlakoztassa újra a játékkontrollert a számítógéphez.
ShanWan
Amikor ezt a játékkontrollert Windows rendszerhez csatlakoztatja, Xbox 360 játékkontroller módban működik.
Viszont, amikor ilyen játékkontrollert Linux rendszerhez csatlakoztat, az visszaesési módba (fallback mode) lép (ami történetesen az Android mód), amelynek rosszabb a lekérdezési sebessége (100 Hz), a Home gomb XF86Home gombként működik. Ennek köszönhetően nem teszi elérhetővé a rezgést, a giroszkópot és a gyorsulásmérőt. Nem támogatja az xboxdrv illesztőprogramot --evdev nélkül, és például "SHANWAN Android Gamepad"-ként azonosítja magát, amit egyes játékok nem kedvelnek (bár SDL2 alkalmazásoknál beállíthat egy nevet a SDL_GAMECONTROLLERCONFIG segítségével).
Amikor Ön a játékkontrollert csatlakoztatja, az először "Switch Pro Controller"-ként próbál működni, de a Linux kernel valamilyen okból érvénytelennek tekinti a leírókat (amelyeket a játékkontroller küld), ezért lekapcsolja a játékkontrollert. Ez okozza azt, hogy a játékkontroller újracsatlakozik a fent említett visszaesési módba (fallback mode).
A dmesg kimenetében ez így néz ki:
usb 1-5.3: new full-speed USB device number 37 using xhci_hcd usb 1-5.3: unable to read config index 0 descriptor/start: -32 usb 1-5.3: chopping to 0 config(s) usb 1-5.3: can't read configurations, error -32 usb 1-5.3: new full-speed USB device number 38 using xhci_hcd usb 1-5.3: New USB device found, idVendor=0079, idProduct=181c, bcdDevice= 1.00 usb 1-5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 1-5.3: Product: Android Gamepad usb 1-5.3: Manufacturer: SHANWAN
Figyelje meg, hogy az "USB Device number" a hiba után megnövekszik. Egyes USB huboknál a hibakód -32 (EPIPE: törött cső), másoknál pedig -71 (EPROTO: protokollhiba).
Ez a hiba javítható úgy, hogy egy quirk-et beállítunk az usbcore modulban (nem az usbhid modulban) a Switch játékkontroller USB azonosítójához:
# Ha Ön már előzőleg *manuális úton* beállított hibajavításokat adott meg más eszközökhöz, # akkor ne feledje el ezeket is belefoglalni az alábbi két parancsba ↓ echo -n "057e:2009:ik" | sudo tee /sys/module/usbcore/parameters/quirks
# Opcionálisan, állandó lekérdezési mód: sudo modprobe -r usbhid ; sleep 4 ; sudo modprobe -v usbhid "quirks=0x057e:0x2009:0x400"
Az ik lényegében kettő jelölőzászló (Az összes jelölőzászlót tartalmazó lista itt olvasható).
Az i jelölőzászló jelentése "Rossz leírók engedélyezése".
A k jelölőzászló jelentése "LPM (link power management) letiltása". Ez a parancsban azért van megadva, mert gyakran segít más típusú eszközökön. Előfordulhat, hogy ez a jelölőzászló semmit sem tesz, mivel nem minden USB játékkontroller rendelkezik LPM lehetőséggel. Ön később is megpróbálhatja k nélkül.
Megpróbálhatja a g jelölőzászlót is ("200 ms szünet a leírók beolvasása után"), mivel ez gyakran segít más típusú eszközöknél, de például az iPEGA PG-SW038C (egy 10 dolláros játékkontroller) esetében a g jelölőzászló az eszköz végtelen számú újracsatlakozását okozza.
Vegye figyelembe, hogy amint a játékkontroller ballback módba kerül, onnantól kezdve soha nem vált át másik módba, amíg újra nem csatlakoztatja a készüléket. Még az echo 0 then 1 > %sysfsGamepadDir%/authorized sem működik. Ezért a játékkontroller Windows virtuális gépbe történő átadása se nem segítene, ugyanis az usbcore inicializálja az USB eszközöket, mielőtt átadná őket egy virtuális gépnek.
Most csatlakoztassa újra a játékkontrollert, és amikor Ön futtatja az lsusb parancsot, annak végre ID 057e:2009 Nintendo Co., Ltd Switch Pro Controller néven kell megjelennie. Ha ez így történik meg, akkor ezt a quirk-et állandóvá teheti azzal, hogy hozzáadja ezt az opciót a GRUB rendszerbetöltőhöz:
usbcore.quirks="057e:2009:ik"
Valamint (opcionálisan) a usbhid.quirks="0x057e:0x2009:0x400" opciót is hozzáadhatja, amely megállítja a LED fénykibocsátó diódák értelmetlen villogását, amikor a játékkontroller nincs használatban.
Most, hogy a játékkontroller Switch módban van, problémába fog ütközni, mivel az SDL2 úgy dönt, hogy felhasználói térben futó illesztőprogram lesz (ehhez a libusb függvénykönyvtárat használja, ugyanúgy, mint az xboxdrv), ami azt okozza, hogy bármely SDL2 játék lefoglalja a teljes játékkontrollert (azaz a /dev/input/* és a /dev/hidraw* eltűnik, ugyanakkor továbbra is lehetséges a játékkontrollerrel játszani az elindított játékot), így a játékkontrollert több alkalmazásban már nem tudja használni.
Ez a viselkedés kijavítható azzal, hogy hozzáadja az
SDL_HIDAPI_DISABLE_LIBUSB=1
opciót a /etc/environment fájlba, majd újraindítani a számítógépet.
Ha telepítve van a joycond-gitAUR szoftvercsomag, akkor törölje, mert az ilyen Switch-szerű játékkontrollerekhez haszontalan a joycond tartalmaz egy udev szabályt, amely megakadályozza, hogy a Steam saját felhasználói térben futó illesztőprogramot biztosítson.
Az SDL2 függvénykönyvtárral ellentétben (amikor a /dev/hidraw* eszközöket használja, ami 2023-ban a preferált mód), az xboxdrv és a /dev/input/* hibás értékeket ad a jobb kar X tengelyére (mindig ≤0). Valószínűleg ez egy hiba a hid-nintendo modulban vagy valami hasonlóban. Emiatt az xboxdrv a legtöbb játékban használhatatlan Switch módban.
Ön a giroszkópot és a gyorsulásmérőt az antimicrox nevű szoftver elindításával tudja letesztelni. Ezek más játékkontrollermódokban vezetékes csatlakozásnál nem érhetőek el, mivel az értékeik összekeverve érkeznek más eseményadatokkal (RX/RY/stb.) egy speciális formátumban, amely nem teljesen kompatibilis az xpad és a hid-generic modulokkal.
Amennyiben Ön a dmesg kimenetében azt látja, hogy a játékkontrollerhez a hid-generic került felhasználásra, akkor valószínűleg ez azért van, mert Ön a Linux kernelt a saját beállításaival fordította le a forráskódból, amelyben nincs engedélyezve a hid-nintendo kernelmodulfájl. Sajnos a Switch mód + hid-generic ugyanolyan használhatatlan, mint a fallback mód (még rezgés sincs).
Xbox 360 játékkontrollermód
Miután mindent elvégzett fentebb (azaz 1-2 apró sajátosság, 1 környezeti változó),
akkor adja hozzá a
blacklist hid_nintendo
sort a /etc/modprobe.d/blacklist.conf fájlhoz.
Hozzáadást követően futtassa a sudo mkinitcpio -P parancsot a /boot/initramfs* újraépítéséhez. (A kernel kizárólag a saját initramfs fájljából olvassa ki a /etc/modprobe.d/ könyvtárat, nem olvassa ki az Ön gyökérfájlrendszeréből).
Majd Ön hozza létre a következő fájlt:
/etc/udev/rules.d/10-disallow-generic-driver-for-switch.rules
# Ha
# 1. Egy játékkontroller többmódú (Switch, X360, PC), és alapértelmezésben a USB ID 057e:2009 azonosítót használja
# ÉS ugyanakkor
# 2. a `hid-nintendo` kernelmodul nem tölthető be (feketelistázva van, vagy nincs lefordítva)
# ÉS ugyanakkor
# 3. már fut egy játék, amely azonnal lefoglal egy játékkontrollert,
#
# akkor, amikor Ön csatlakoztatja az ilyen játékkontrollert, az "Switch Pro" módban marad,
# de a tartalék `hid-generic` kernelmodult használja,
# ami azt eredményezi, hogy nincs rezgés/stb.,
# annak ellenére, hogy továbbra is "Switch Pro Controller"-ként van listázva.
# De ha értesítjük a játékkontrollert arról, hogy felhagyunk a HID használatával,
# akkor az automatikusan "Xbox 360 Controller" módba vált,
# ami rezgést okoz, és az `xboxdrv` működni fog.
SUBSYSTEM=="hid", DRIVER=="hid-generic", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", RUN="/bin/sh -c 'echo $id:1.0 > /sys/bus/usb/drivers/usbhid/unbind'"
Létrehozást követően futtassa a sudo udevadm control --reload-rules && sudo udevadm trigger parancsot.
Mivel valószínűleg Ön nem szeretné újraindítani a számítógépet, ezért futtassa a sudo modprobe -r hid_nintendo parancsot.
Mostantól, ha Ön át szeretne váltani ("visszalépni") Switch módból az Xbox 360 módba, akkor egyszerűen futtassa a sudo modprobe -r hid_nintendo parancsot (még csak nem is kell újracsatlakoztatnia a játékkontrollert a számítógépnél). Két másodpercen belül megjelenik a 045e:028e Microsoft Corp. Xbox360 Controller az lsusb kimenetében.
Amennyiben ismét váltani szeretne, akkor:
-
sudo modprobe hid_nintendo(Még ha feketelistán is van, ez a parancs továbbra is működik, mert a feketelistázás kizárólag annyit jelent, hogy "Ne legyen automatikusan betöltve ez a kernelmodulfájl a számítógép memóriájába"). - Csatlakoztassa újra a játékkontrollert a számítógépnél.
Alternatív, root jogosultság nélküli megoldás
Ha Önnek nincs root hozzáférése, akkor:
- Kapcsolja ki a számítógépet (Ne csak egyszerűen függessze fel, hanem normálisan kapcsolja ki).
- Csatlakoztassa újra a játékkontrollert a számítógépnél.
- Kapcsolja be a számítógépet.
- Az UEFI áramkör (éppúgy, mint a nem virtualizált Windows) automatikusan és sikeresen inicializálja a játékkontrollert (még akkor is, ha az Ön monitorában lévő USB hubon keresztül van csatlakoztatva), annak ellenére, hogy az érvénytelen leírókat tartalmaz.
- A játékkontroller információt kap az UEFI áramkörtől (vagy esetleg a GRUB rendszerbetöltőtől), hogy többé nincs szükség rá HID eszköz formájában, ami miatt átvált ("visszalép") Xbox 360 játékkontroller módba. Az üzemmódok közötti váltás így történik: A játékkontroller lecsatlakozik, majd egy másik USB azonosító alatt újracsatlakozik.
- Ön akár fel is függesztheti a számítógépet (anélkül, hogy kikapcsolná a monitort, ha ahhoz van csatlakoztatva), majd felébresztheti, és továbbra is Xbox 360 játékkontroller módban lesz. Ha azonban újracsatlakoztatja a játékkontrollert a számítógépnél, akkor az visszaesik az alapértelmezett módba, így ismét követnie kell az utasítást.
USB hibakeresés
Valószínűleg nem szükséges, hogy Ön ezt tudja, de a 057e:2009 USB azonosító az USB hibakeresés során lett felfedezve:
# Kernel hibakeresésének engedélyezése:
sudo ls /sys/kernel/debug/usb >/dev/null 2>&1 || sudo mount -t debugfs none_debugfs /sys/kernel/debug
# Annak a kernelmodulfájlnak a betöltése a számítógép memóriájába, amely lehetővé teszi az USB buszok forgalmának a figyelését:
sudo modprobe usbmon
# Kizárólag a csatlakozási eseményekre van szükségünk, és ezekben az eseményekben.
# Kizárólag egy USB azonosítóra van szükségünk, amely a "pre-pre-last" oszlopban található:
sudo /bin/grep --line-buffered -Po '(?<=0 0 18 = .{18}).{8}' /sys/kernel/debug/usb/usbmon/99999u | /bin/sed -E 's/([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/\2\1:\4\3/'
Ahol a 99999 értéket meg kell adni annak az USB busznak a számával, amelyet a játékkontroller használ, például 1 (bevezető nullák nélkül). Ez a szám a lsusb parancs futtatásával található meg.
Ha semmi sem segített, és az Ön játékkontrollere teljes funkcionalitással továbbra is csak Windows alatt működik, akkor rögzítheti az USB üzeneteket Windows alatt, majd újrajátszhatja őket Linux alatt. Részletekért tekintse meg az usbrply leírását. Ehhez a Windowsnak nem szabad virtuális gépben futnia, mert a Linux kernel usbcore kernelmodulfájlja inicializálja az USB eszközt, mielőtt átadná a virtuális gépnek. Ez elkerülhető egy "PCI-E USB vezérlő" megvásárlásával és annak átadásával (külső USB hubok nem adhatók át). Alternatívaként átadhatja az alaplap saját USB vezérlőjét is, ha az egy olyan IOMMU csoportban van, amely nem tartalmaz az Ön számára fontos eszközöket:
| Script which lists IOMMU groups |
list-iommu-groups.sh #!/bin/bash
shopt -s nullglob
for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do
echo "IOMMU Group ${g##*/}:"
for d in $g/devices/*; do
echo -e "\t$(lspci -nns ${d##*/})"
done;
done;
|
Példák az xboxdrv beállítására
Ahhoz, hogy ezeknek az játékkontrollereknek tartós nevet adjon, állítson be egy udev szabályt a következő formátumban.
/etc/udev/rules.d/99-btjoy.rules
#Szimbolikus link létrehozása a megfelelő /dev/input/eventX eszközhöz a /dev/btjoy helyen.
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="Bluetooth Gamepad", ATTRS{uniq}=="00:17:02:01:ae:2a", SYMLINK+="btjoy"
Cserélje le a "Bluetooth Gamepad" szöveget az Ön eszközének nevére, valamint cserélje le a "00:17:02:01:ae:2a" értéket az Ön eszközének MAC címére.
Amikor Ön már rendelkezik a beállítással és a játékkontrollere csatlakoztatva van a számítógéphez, akkor elindíthatja az xboxdrv illesztőprogramot a következőképpen:
# xboxdrv --evdev /dev/btjoy --config .config/xboxdrv/ipega.conf
iPEGA-9017s
~/.config/xboxdrv/ipega.conf
#iPEGA PG-9017S Config [xboxdrv] evdev-debug = true evdev-grab = true rumble = false mimic-xpad = true [evdev-absmap] ABS_HAT0X = dpad_x ABS_HAT0Y = dpad_y ABS_X = X1 ABS_Y = Y1 ABS_Z = X2 ABS_RZ = Y2 [axismap] -Y1 = Y1 -Y2 = Y2 [evdev-keymap] BTN_EAST=a BTN_C=b BTN_NORTH=y BTN_SOUTH=x BTN_TR2=start BTN_TL2=back BTN_Z=rt BTN_WEST=lt BTN_MODE = guide
iPEGA-9068 és 9087
~/.config/xboxdrv/ipega.conf
#iPEGA PG-9068 és PG-9087 beállítása. [xboxdrv] evdev-debug = true evdev-grab = true rumble = false mimic-xpad = true [evdev-absmap] ABS_HAT0X = dpad_x ABS_HAT0Y = dpad_y ABS_X = X1 ABS_Y = Y1 ABS_Z = X2 ABS_RZ = Y2 [axismap] -Y1 = Y1 -Y2 = Y2 [evdev-keymap] BTN_A=a BTN_B=b BTN_Y=y BTN_X=x BTN_TR=rb BTN_TL=lb BTN_TR2=rt BTN_TL2=lt BTN_THUMBL=tl BTN_THUMBR=tr BTN_START=start BTN_SELECT=back BTN_MODE = guide
Defender X7
~/.config/xboxdrv/defender.conf
#Defender x7 xboxdrv beállítása. [xboxdrv] evdev-debug = true evdev-grab = true rumble = false mimic-xpad = true [evdev-absmap] ABS_HAT0X = dpad_x ABS_HAT0Y = dpad_y ABS_X = X1 ABS_Y = Y1 ABS_Z = X2 ABS_RZ = Y2 [axismap] -Y1 = Y1 -Y2 = Y2 [evdev-keymap] BTN_EAST=b BTN_NORTH=x BTN_SOUTH=a BTN_WEST=y BTN_TR2=rt BTN_TL2=lt BTN_TR=rb BTN_TL=lb BTN_THUMBL=tl BTN_THUMBR=tr BTN_START=start BTN_SELECT=back BTN_MODE = guide
Stadia játékkontroller
~/.config/xboxdrv/stadia.conf
#Stadia xboxdrv beállítása. [xboxdrv] mimic-xpad=true silent=true [evdev-absmap] ABS_X=x1 ABS_Y=y1 ABS_Z=x2 ABS_RZ=y2 ABS_GAS=rt ABS_BRAKE=lt ABS_HAT0X=dpad_x ABS_HAT0Y=dpad_y [axismap] -y1=y1 -y2=y2 [evdev-keymap] BTN_SOUTH=A BTN_EAST=B BTN_NORTH=X BTN_WEST=Y BTN_START=start BTN_SELECT=back BTN_MODE=guide BTN_THUMBL=tl BTN_THUMBR=tr BTN_TR=rb BTN_TL=lb
Logitech Dual Action
# xboxdrv --evdev /dev/input/event* \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --axismap -Y1=Y1,-Y2=Y2 \ --evdev-keymap BTN_TRIGGER=x,BTN_TOP=y,BTN_THUMB=a,BTN_THUMB2=b,BTN_BASE3=back,BTN_BASE4=start,BTN_BASE=lt,BTN_BASE2=rt,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr \ --mimic-xpad --silent
PlayStation 2 játékkontroller
# xboxdrv --evdev /dev/input/event* \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --axismap -Y1=Y1,-Y2=Y2 \ --evdev-keymap BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_BASE=lb,BTN_BASE2=rb,BTN_TOP2=lt,BTN_PINKIE=rt,BTN_BASE5=tl,BTN_BASE6=tr \ --mimic-xpad --silent
PlayStation 4 játékkontroller
# xboxdrv \ --evdev /dev/input/by-id/usb-Sony_Computer_Entertainment_Wireless_Controller-event-joystick\ --evdev-absmap ABS_X=x1,ABS_Y=y1 \ --evdev-absmap ABS_Z=x2,ABS_RZ=y2 \ --evdev-absmap ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --evdev-keymap BTN_A=x,BTN_B=a \ --evdev-keymap BTN_C=b,BTN_X=y \ --evdev-keymap BTN_Y=lb,BTN_Z=rb \ --evdev-keymap BTN_TL=lt,BTN_TR=rt \ --evdev-keymap BTN_SELECT=tl,BTN_START=tr \ --evdev-keymap BTN_TL2=back,BTN_TR2=start \ --evdev-keymap BTN_MODE=guide \ --axismap -y1=y1,-y2=y2 \ --mimic-xpad \ --silent
PlayStation 5 játékkontroller
# xboxdrv \ --evdev /dev/input/by-id/usb-Sony_Interactive_Entertainment_DualSense_Wireless_Controller-if03-event-joystick \ --evdev-absmap ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y,ABS_X=X1,ABS_Y=Y1,ABS_RX=X2,ABS_RY=Y2,ABS_Z=LT,ABS_RZ=RT \ --evdev-keymap BTN_SOUTH=A,BTN_EAST=B,BTN_NORTH=Y,BTN_WEST=X,BTN_START=start,BTN_MODE=guide,BTN_SELECT=back \ --evdev-keymap BTN_TL=LB,BTN_TR=RB,BTN_TL2=LT,BTN_TR2=RT,BTN_THUMBL=TL,BTN_THUMBR=TR \ --axismap -y1=y1,-y2=y2 \ --mimic-xpad \ --silent