Gamepad (Magyar)

Fordítás állapota:
Ez az oldal az angol
Gamepad
című oldal magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2026.01.31. Amennyiben a lefordítás időpontja óta az angol nyelvű oldalon történtek újabb
módosítások
, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.
További oldalak az adott témakörben
List of games (Magyar)
Video game platform emulators (Magyar)
Gaming (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ő.
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
#Játékkontrollerek engedélyei
című leírást.
Amennyiben Ön nem találja a fent említett beviteli eszközöket a játékkontrollerhez, akkor megpróbálhatja kényszeríteni az USBHID illesztőprogramot, hogy kezelje a játékkontrollert a következő paranccsal (ahol
VID
és
PID
a játékkontroller gyártói azonosítója és termékazonosítója, amelyek az
lsusb
segítségével kérhetők le az
usbutils
szoftvercsomagból). Ügyeljen arra, hogy a parancs futtatása után fizikailag csatlakoztassa újra az eszközt.
# printf '
VID PID
' > /sys/bus/usb/drivers/usbhid/new_id
A
Wine
az SDL függvénykönyvtárfájlt 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-git
AUR
.
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-git
AUR
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-git
AUR
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-git
AUR
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/js
X
Szerezze meg a modellazonosítót is:
$ udevadm info -q property --property ID_MODEL_ID --value /dev/input/js
X
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/js
X
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/js
X
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:
qjoypad
AUR
antimicrox
sc-controller
steam
- Tekintse meg a
Steam#Steam Input
című 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
joy2key
AUR
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-joystick
AUR
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#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
||
xboxdrv
AUR
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-git
AUR
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
controllermap
AUR
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-git
AUR
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-adapter
AUR
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-dkms
AUR
[
Hibás hivatkozás
: package not found]
szoftvercsomagból.
Felhasználói térben működő szolgáltatás
A
joycond-git
AUR
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:
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
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
xboxdrv
AUR
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-dkms
AUR
.
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-dkms
AUR
szoftvercsomagot, és ha vezeték nélküli dongle-t használ, akkor az
xone-dongle-firmware
AUR
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#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#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-ps3
AUR
szoftvercsomag egy javított verzió, amely képes ezeket érzékelni.  
A
bluez-plugins-ps3
AUR
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#Környezeti változó használata
című ú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/event
n
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-git
AUR
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-git
AUR
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-polling
AUR
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-udev
AUR
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="066
6
"
é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
ds4drv
AUR
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-git
AUR
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/
99999
u | /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
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