Jump to content

Gamepad (Magyar)

From ArchWiki
Fordítás állapota: Ez a cikk az angol Gamepad című cikk magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2025.12.27. Amennyiben a lefordítás időpontja óta az angol nyelvű cikkben történtek újabb módosítások, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.

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ő.

This article or section needs expansion.

Reason: Szükség van információra az alkalmazásprogramozási interfészek közötti különbségekről, valamint arról, hogy miként lehet váltani közöttük. (Discuss in Talk:Gamepad (Magyar)#Joystick API vibration support)

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/js0 kö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_Joystick minden 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 az SDL_Gamepad vá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.

Megjegyzés Ha az Ön Xbox 360 játékkontrollere a Play&Charge USB vezetékkel van csatlakoztatva, akkor meg fog jelenni az 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

This article or section needs expansion.

Reason: Írja le az evdev kalibrálási utasításait. (Discuss in Talk:Gamepad (Magyar)#Nem egyértelmű utasítások a kalibrálás módjáról.)

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:

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
Megjegyzés A 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.
https://github.com/Ryochan7/sc-controller || sc-controller
  • 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.
https://store.steampowered.com/about/ || steam
  • 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.
https://github.com/xiota/xboxdrv || xboxdrvAUR

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

Megjegyzés A kernel 4.18 verziója kernel-illesztőprogramot biztosít a Steam játékkontroller vezetékes/vezeték nélküli használatához, vezérlő bemeneti eszközként, Steam nélkül.

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.

Megjegyzés Amennyiben Ön nem használja a Steam runtime futtatási környezetet, akkor előfordulhat, hogy le kell tiltania az overlay játék közbeni felületet ahhoz, hogy a játékkontroller bizonyos játékokban (Rocket Wars, Rocket League, Binding of Isaac, stb.) működjön. Kattintson jobb gombbal egy játékra a könyvtárában, válassza a "Properties" menüpontot, majd vegye ki a pipát az "Enable Steam Overlay" elől.

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:

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

This article or section is being considered for removal.

Reason: Az xboxdrv illesztőprogram része elavult. (Discuss in Talk:Gamepad (Magyar))

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.

Megjegyzés Egy új Xbox One S játékkontroller első párosítása nehézségekbe ütközhet. Előfordulhat, hogy egyáltalán nem párosodik, vagy csatlakozás/leválás ciklusba kerül. Ezek a problémák itt kerülnek ismertetésre. A legmegbízhatóbb módszer a játékkontroller párosítására az, hogy Ön először Windows 10 alatt párosítja. Fontos azonban, hogy ugyanazt a Bluetooth adaptert használja. Megoldásként telepíthet egy ingyenes Windows 10 Evaluation példányt egy virtuális gépre (például QEMU vagy VirtualBox használatával, ügyelve a Bluetooth adapter passthrough követelményeire, pl. USB-eszközként), Arch Linuxot használva gazdaként. Ezután először Windows 10 alatt párosítsa a játékkontrollert, majd ismételje meg ugyanezt Arch Linux alatt. Így a párosítás sikeres lesz, és nem lesz szükség további Windows 10 használatra.

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.

Megjegyzés
  • 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)'.

Megjegyzés

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.

Tipp Az interneten számos bonyolult útmutató található a PS3 játékkontroller beállításáról, amelyek sok lépést igényelnek, például a qtsixa vagy a sixpair forráskódból történő lefordítását és telepítését, a játékkontroller kézi beállítását, vagy a bluez bizonyos foltozásokkal történő módosítását. Erre azonban nincs szükség modern Linux kernel és a bluez-utils telepítése után.

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.

Megjegyzés Ha a játékkontroller nem csatlakozik, akkor győződjön meg róla, hogy a Bluetooth interfész be van-e kapcsolva, és a játékkontrollerek megbízhatóként vannak-e beállítva. (Részletek a Bluetooth című leírásban.)

Á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 input eszköz csoportját input értékre állítanak be, valamint a joystick eszközök módját 664 é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.

Megjegyzés Lehetséges egy felhasználót hozzáadni az 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

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Valószínűleg ugyanazt a megoldást lehet használni, mint Gamepad (Magyar)#Érintőpad egérként való működésének a letiltása, amelyet már átdolgoztak más oldalakba, ahol megfelelő. (Discuss in Talk:Gamepad (Magyar))

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

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Ebben a szekcióban számos fejlesztést kell még végrehajtani. (Discuss in Talk:Gamepad (Magyar))

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:

  1. 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").
  2. 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:

  1. Kapcsolja ki a számítógépet (Ne csak egyszerűen függessze fel, hanem normálisan kapcsolja ki).
  2. Csatlakoztassa újra a játékkontrollert a számítógépnél.
  3. Kapcsolja be a számítógépet.
  4. 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.
  5. 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.
  6. Ö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:

Példák az xboxdrv beállítására

This article or section is being considered for removal.

Reason: Az xboxdrv illesztőprogram nagyon ritkán szükséges, és ez a szakasz túl sok helyet foglal el ahhoz képest, hogy mennyire specifikus. (Discuss in Talk:Gamepad (Magyar))

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