Hi Tanuj, SDL2 has most of the DualSense mappings now (not the Bluetooth ones for hid-playstation), but there is no official release yet with them. The last release was from December 2020 (2.0.14). You can try a GIT snapshot if you would like. For reference here are the database entries: https://github.com/libsdl-org/SDL/blob/main/src/joystick/SDL_gamecontrollerdb.h#L692 Thanks, Roderick On Sat, Aug 7, 2021 at 11:52 AM Roderick Colenbrander <thunderbird2k@xxxxxxxxx> wrote: > > Hi Tanuj, > > The button mapping of the kernel driver should be fine (you can > confirm using evtest). SDL2 requires a button/stick mapping and I need > to provide one to them as I'm not sure if they have the one for the > kernel driver. Depending on your SDL2 version, SDL also bundles its > own HID driver, which uses hidraw. Not sure which is getting picked up > here, I guess the kernel driver. I will have quick look at this today > or so if time permits. > > Thanks, > Roderick Colenbrander > > On Fri, Aug 6, 2021 at 4:50 PM Tanuj Bagaria <gnutanuj@xxxxxxxxx> wrote: > > > > Hi, > > > > If someone could point me in the right direction is all I ask. eg what > > to google / where to look for the answers? > > > > I know this is the wrong place to email for this, but I wasn't able to > > find any information of button mapping issues on a Playstation 5 > > Dualsense controller and how to resolve it. I was able to find the > > announcement of the driver and this email address. I really don't want > > to be sending this email since I'm fairly sure it is as always an > > issue on my own system. However if this is an actual issue I have > > included details of my system below. > > > > Essentially, the issue is that the button I press on the controller > > doesn't match the key detected on the computer; where connected with > > USB or Bluetooth. As far as I can tell this is because the controller > > is not using the correct driver somehow. I cant't figure out: > > > > 1) How to use the correct driver? > > 2) Why I need to force the kernel to use the correct driver? > > > > Currently this is the mapping I get: > > > > | **Controller** | **$ sdl2-jstest --test 0** || > > **https://gamepad-tester.com/** || **Detected in game with Stadia** | > > |:--------------:|:------------------------:|:----:|:-------------------------------:|:---------:|:--------------------------------:| > > | On Device | Button | Axis | Button > > | Axis | | > > | X | 0 | | B2 A > > | | □ | > > | □ | 3 | | B3 B > > | | △ | > > | △ | 2 | | B1 X > > | | ◯ | > > | ◯ | 1 | | B0 Y > > | | X | > > | L1 | 4 | | B4 LB > > | | | > > | L2 | 6 | 2 | > > | 2 RAX | L1 | > > | L3 | 11 | | B11 > > | | | > > | R1 | 5 | | B5 RB > > | | | > > | R2 | 7 | 5 | > > | 3 RAY | R1 | > > | R3 | 12 | | B16 > > | | | > > | DL | Hat 1 Value 8 Left | | B14 DL > > | | DL | > > | DR | Hat 1 Value 2 Right | | B15 DR > > | | DR | > > | DU | Hat 1 Value 1 Up | | B12 DU > > | | DU | > > | DD | Hat 1 Value 4 Down | | B13 DD > > | | DD | > > | LAX | | 0 | > > | 0 LAX | LAX | > > | LAY | | 1 | > > | 1 LAY | LAY | > > | RAX | | 3 | B6 LT > > | | | > > | RAY | | 4 | B7 RT > > | | | > > | Create | 8 | | B8 > > View | | Select | > > | Menu | 9 | | B9 > > Menu | | Start | > > | PS | 10 | | B10 > > | | | > > > > > > This remains consistant across reboots and switch between bluetooth > > and usb. The trackpad seem to work fine over USB, I haven't yet tested > > the Headset, accelerometer, and gyroscope yet. > > > > According to [This > > Comment](https://aur.archlinux.org/packages/hid-playstation-dkms/#comment-805935) > > on the AUR hid-playstation-dkms page, I should not install this on > > kernel higher that 5.12. > > > > The only "solution" I seem to be able to find to this is on the [Arch > > Wiki]( https://wiki.archlinux.org/title/Gamepad#Playstation_5_(Dualsense)_controller > > ) is using a [xbox driver that runs in the user > > space](https://gitlab.com/xboxdrv/xboxdrv) to remap the keys which > > seemed weird since there is already an apropriate driver already. Also > > there is apparantly some thing call > > [linuxconsole](https://sourceforge.net/projects/linuxconsole/) but I > > wasn't able to remap the keys with that. > > > > Regards, > > Tanuj > > > > Details from my computer > > > > Arch Linux > > > > ``` > > $ uname -srvmpio > > > > Linux 5.13.8-arch1-1 #1 SMP PREEMPT Wed, 04 Aug 2021 16:57:44 +0000 > > x86_64 unknown unknown GNU/Linux > > ``` > > > > ``` > > $ lsusb | grep Sony > > > > Bus 003 Device 012: ID 054c:0ce6 Sony Corp. Wireless Controller > > ``` > > > > ``` > > $ lsusb -s 003:012 -v > > > > Bus 003 Device 012: ID 054c:0ce6 Sony Corp. Wireless Controller > > Couldn't open device, some information will be missing > > Device Descriptor: > > bLength 18 > > bDescriptorType 1 > > bcdUSB 2.00 > > bDeviceClass 0 > > bDeviceSubClass 0 > > bDeviceProtocol 0 > > bMaxPacketSize0 64 > > idVendor 0x054c Sony Corp. > > idProduct 0x0ce6 > > bcdDevice 1.00 > > iManufacturer 1 Sony Interactive Entertainment > > iProduct 2 Wireless Controller > > iSerial 0 > > bNumConfigurations 1 > > Configuration Descriptor: > > bLength 9 > > bDescriptorType 2 > > wTotalLength 0x00e3 > > bNumInterfaces 4 > > bConfigurationValue 1 > > iConfiguration 0 > > bmAttributes 0xc0 > > Self Powered > > MaxPower 500mA > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 0 > > bAlternateSetting 0 > > bNumEndpoints 0 > > bInterfaceClass 1 Audio > > bInterfaceSubClass 1 Control Device > > bInterfaceProtocol 0 > > iInterface 0 > > AudioControl Interface Descriptor: > > bLength 10 > > bDescriptorType 36 > > bDescriptorSubtype 1 (HEADER) > > bcdADC 1.00 > > wTotalLength 0x0049 > > bInCollection 2 > > baInterfaceNr(0) 1 > > baInterfaceNr(1) 2 > > AudioControl Interface Descriptor: > > bLength 12 > > bDescriptorType 36 > > bDescriptorSubtype 2 (INPUT_TERMINAL) > > bTerminalID 1 > > wTerminalType 0x0101 USB Streaming > > bAssocTerminal 6 > > bNrChannels 4 > > wChannelConfig 0x0033 > > Left Front (L) > > Right Front (R) > > Left Surround (LS) > > Right Surround (RS) > > iChannelNames 0 > > iTerminal 0 > > AudioControl Interface Descriptor: > > bLength 12 > > bDescriptorType 36 > > bDescriptorSubtype 6 (FEATURE_UNIT) > > bUnitID 2 > > bSourceID 1 > > bControlSize 1 > > bmaControls(0) 0x03 > > Mute Control > > Volume Control > > bmaControls(1) 0x00 > > bmaControls(2) 0x00 > > bmaControls(3) 0x00 > > bmaControls(4) 0x00 > > iFeature 0 > > AudioControl Interface Descriptor: > > bLength 9 > > bDescriptorType 36 > > bDescriptorSubtype 3 (OUTPUT_TERMINAL) > > bTerminalID 3 > > wTerminalType 0x0301 Speaker > > bAssocTerminal 4 > > bSourceID 2 > > iTerminal 0 > > AudioControl Interface Descriptor: > > bLength 12 > > bDescriptorType 36 > > bDescriptorSubtype 2 (INPUT_TERMINAL) > > bTerminalID 4 > > wTerminalType 0x0402 Headset > > bAssocTerminal 3 > > bNrChannels 2 > > wChannelConfig 0x0003 > > Left Front (L) > > Right Front (R) > > iChannelNames 0 > > iTerminal 0 > > AudioControl Interface Descriptor: > > bLength 9 > > bDescriptorType 36 > > bDescriptorSubtype 6 (FEATURE_UNIT) > > bUnitID 5 > > bSourceID 4 > > bControlSize 1 > > bmaControls(0) 0x03 > > Mute Control > > Volume Control > > bmaControls(1) 0x00 > > iFeature 0 > > AudioControl Interface Descriptor: > > bLength 9 > > bDescriptorType 36 > > bDescriptorSubtype 3 (OUTPUT_TERMINAL) > > bTerminalID 6 > > wTerminalType 0x0101 USB Streaming > > bAssocTerminal 1 > > bSourceID 5 > > iTerminal 0 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 1 > > bAlternateSetting 0 > > bNumEndpoints 0 > > bInterfaceClass 1 Audio > > bInterfaceSubClass 2 Streaming > > bInterfaceProtocol 0 > > iInterface 0 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 1 > > bAlternateSetting 1 > > bNumEndpoints 1 > > bInterfaceClass 1 Audio > > bInterfaceSubClass 2 Streaming > > bInterfaceProtocol 0 > > iInterface 0 > > AudioStreaming Interface Descriptor: > > bLength 7 > > bDescriptorType 36 > > bDescriptorSubtype 1 (AS_GENERAL) > > bTerminalLink 1 > > bDelay 1 frames > > wFormatTag 0x0001 PCM > > AudioStreaming Interface Descriptor: > > bLength 11 > > bDescriptorType 36 > > bDescriptorSubtype 2 (FORMAT_TYPE) > > bFormatType 1 (FORMAT_TYPE_I) > > bNrChannels 4 > > bSubframeSize 2 > > bBitResolution 16 > > bSamFreqType 1 Discrete > > tSamFreq[ 0] 48000 > > Endpoint Descriptor: > > bLength 9 > > bDescriptorType 5 > > bEndpointAddress 0x01 EP 1 OUT > > bmAttributes 9 > > Transfer Type Isochronous > > Synch Type Adaptive > > Usage Type Data > > wMaxPacketSize 0x0188 1x 392 bytes > > bInterval 4 > > bRefresh 0 > > bSynchAddress 0 > > AudioStreaming Endpoint Descriptor: > > bLength 7 > > bDescriptorType 37 > > bDescriptorSubtype 1 (EP_GENERAL) > > bmAttributes 0x00 > > bLockDelayUnits 0 Undefined > > wLockDelay 0x0000 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 2 > > bAlternateSetting 0 > > bNumEndpoints 0 > > bInterfaceClass 1 Audio > > bInterfaceSubClass 2 Streaming > > bInterfaceProtocol 0 > > iInterface 0 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 2 > > bAlternateSetting 1 > > bNumEndpoints 1 > > bInterfaceClass 1 Audio > > bInterfaceSubClass 2 Streaming > > bInterfaceProtocol 0 > > iInterface 0 > > AudioStreaming Interface Descriptor: > > bLength 7 > > bDescriptorType 36 > > bDescriptorSubtype 1 (AS_GENERAL) > > bTerminalLink 6 > > bDelay 1 frames > > wFormatTag 0x0001 PCM > > AudioStreaming Interface Descriptor: > > bLength 11 > > bDescriptorType 36 > > bDescriptorSubtype 2 (FORMAT_TYPE) > > bFormatType 1 (FORMAT_TYPE_I) > > bNrChannels 2 > > bSubframeSize 2 > > bBitResolution 16 > > bSamFreqType 1 Discrete > > tSamFreq[ 0] 48000 > > Endpoint Descriptor: > > bLength 9 > > bDescriptorType 5 > > bEndpointAddress 0x82 EP 2 IN > > bmAttributes 5 > > Transfer Type Isochronous > > Synch Type Asynchronous > > Usage Type Data > > wMaxPacketSize 0x00c4 1x 196 bytes > > bInterval 4 > > bRefresh 0 > > bSynchAddress 0 > > AudioStreaming Endpoint Descriptor: > > bLength 7 > > bDescriptorType 37 > > bDescriptorSubtype 1 (EP_GENERAL) > > bmAttributes 0x00 > > bLockDelayUnits 0 Undefined > > wLockDelay 0x0000 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 3 > > bAlternateSetting 0 > > bNumEndpoints 2 > > bInterfaceClass 3 Human Interface Device > > bInterfaceSubClass 0 > > bInterfaceProtocol 0 > > iInterface 0 > > HID Device Descriptor: > > bLength 9 > > bDescriptorType 33 > > bcdHID 1.11 > > bCountryCode 0 Not supported > > bNumDescriptors 1 > > bDescriptorType 34 Report > > wDescriptorLength 273 > > Report Descriptors: > > ** UNAVAILABLE ** > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x84 EP 4 IN > > bmAttributes 3 > > Transfer Type Interrupt > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0040 1x 64 bytes > > bInterval 6 > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x03 EP 3 OUT > > bmAttributes 3 > > Transfer Type Interrupt > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0040 1x 64 bytes > > bInterval 6 > > ``` > > ``` > > $ lsusb -s 003:012 -t -v > > > > /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M > > ID 1d6b:0002 Linux Foundation 2.0 root hub > > |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/7p, 480M > > ID 0424:2807 Microchip Technology, Inc. (formerly SMSC) Hub > > |__ Port 3: Dev 12, If 0, Class=Audio, Driver=snd-usb-audio, 480M > > ID 054c:0ce6 Sony Corp. > > |__ Port 3: Dev 12, If 3, Class=Human Interface Device, > > Driver=usbhid, 480M > > ID 054c:0ce6 Sony Corp. > > |__ Port 3: Dev 12, If 1, Class=Audio, Driver=snd-usb-audio, 480M > > ID 054c:0ce6 Sony Corp. > > |__ Port 3: Dev 12, If 2, Class=Audio, Driver=snd-usb-audio, 480M > > ID 054c:0ce6 Sony Corp. > > ``` > > > > ``` > > $ lsmod | grep hid-playstation > > ``` > > > > ``` > > $ modinfo hid-playstation > > > > filename: > > /lib/modules/5.13.8-arch1-1/kernel/drivers/hid/hid-playstation.ko.zst > > license: GPL > > description: HID Driver for PlayStation peripherals. > > author: Sony Interactive Entertainment > > srcversion: 980BEAF44460E60E97C39B7 > > alias: hid:b0003g*v0000054Cp00000CE6 > > alias: hid:b0005g*v0000054Cp00000CE6 > > depends: ff-memless > > retpoline: Y > > intree: Y > > name: hid_playstation > > vermagic: 5.13.8-arch1-1 SMP preempt mod_unload > > sig_id: PKCS#7 > > signer: Build time autogenerated kernel key > > sig_key: 3C:D4:29:8B:B9:DD:84:BA:47:98:89:17:89:BD:77:F0:F2:8A:4A:82 > > sig_hashalgo: sha512 > > signature: 9A:15:37:2E:09:2F:E5:49:3B:4B:38:9D:95:64:17:C3:08:A2:A8:B3: > > FE:DA:D9:8E:0C:ED:83:4B:22:BF:CE:22:91:53:D8:EB:9D:D3:E2:65: > > 89:CD:FB:2F:C2:3E:31:B8:69:65:BF:CB:FC:89:5B:6C:E4:D2:5A:5C: > > 85:12:0A:6F:F7:A5:16:63:C6:74:38:0F:04:F8:05:4B:25:F2:4B:6F: > > 19:21:A5:B9:CC:09:69:58:F9:27:01:66:ED:3B:12:B4:93:5F:E0:D1: > > 52:D1:BE:2C:C1:72:DA:14:1B:49:B2:E3:6D:C1:FF:88:7C:E6:2A:B8: > > 6D:E6:83:D5:5A:60:32:B8:DB:70:0D:D0:5E:26:17:73:C8:BF:D9:10: > > 52:30:32:3A:0E:94:08:76:D1:7D:07:DE:AE:33:18:FB:CB:75:6A:D1: > > 62:F6:FB:7B:EA:4F:3C:E0:93:DE:35:EA:A0:7B:1F:4D:2E:4D:17:8C: > > 63:F9:D7:AB:1F:1A:66:B2:30:8C:CF:CC:32:6A:1E:11:CF:5C:C2:C2: > > BF:11:BC:A3:B4:E2:D0:57:5A:10:2C:6F:49:53:F0:81:09:0F:22:68: > > 9D:30:ED:FF:F0:74:0C:1C:8E:09:DF:E0:05:60:6B:F0:45:4A:7A:0D: > > 92:9E:5B:83:63:B9:6D:3A:76:C2:3E:AA:19:92:74:E1:C1:6B:BB:2E: > > 33:89:E7:B3:91:A7:58:B0:E7:18:E1:4D:A0:98:D0:25:80:04:37:14: > > 85:34:31:85:50:27:D1:7D:99:71:A5:99:14:8A:76:3A:75:D5:5A:23: > > AE:3C:AD:83:41:6A:E8:42:8F:28:54:E9:1D:D0:C5:6C:85:38:0F:23: > > 3C:75:FD:27:AF:01:90:99:C2:C9:C9:90:11:4D:96:9D:85:42:01:E2: > > 84:DF:D5:0D:DD:E9:E0:33:C8:55:80:4A:0C:9D:AF:CB:FB:65:2C:E9: > > D0:EF:2A:E1:6F:B2:BE:D5:8C:29:DF:B2:7A:0A:7A:DF:9B:6F:89:C7: > > 21:67:E5:DA:C1:C4:80:1A:D2:9D:C2:EF:69:1D:50:7F:2B:52:8C:3A: > > 58:06:AC:C8:43:5A:45:64:8F:E9:AB:28:C1:01:FD:A3:1E:E3:DE:3B: > > 38:52:6B:A6:14:5A:3E:15:AF:69:9B:B9:1F:91:5D:0B:EC:48:8C:13: > > 06:24:3F:A3:83:83:EE:E4:D3:C8:A0:16:F5:2C:EE:67:BA:6C:68:B1: > > EA:E1:8D:62:BE:8E:86:6D:3B:7F:EE:80:21:5E:CB:0E:D4:9E:B4:F9: > > C3:C2:0E:CE:A5:B0:EC:E7:A4:F6:AE:BE:C3:72:43:76:CD:F0:9B:9F: > > 5D:FC:8A:5C:E2:47:EB:79:93:12:72:5B > > ``` > > > > ``` > > $ cat /proc/bus/input/devices > > > > I: Bus=0003 Vendor=054c Product=0ce6 Version=8111 > > N: Name="Sony Interactive Entertainment Wireless Controller" > > P: Phys= > > S: Sysfs=/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.3/3-1.3:1.3/0003:054C:0CE6.0013/input/input68 > > U: Uniq=4c:b9:9b:16:ea:b7 > > H: Handlers=event17 js0 > > B: PROP=0 > > B: EV=20000b > > B: KEY=7fdb000000000000 0 0 0 0 > > B: ABS=3003f > > B: FF=107030000 0 > > > > I: Bus=0003 Vendor=054c Product=0ce6 Version=8111 > > N: Name="Sony Interactive Entertainment Wireless Controller Motion Sensors" > > P: Phys= > > S: Sysfs=/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.3/3-1.3:1.3/0003:054C:0CE6.0013/input/input69 > > U: Uniq=4c:b9:9b:16:ea:b7 > > H: Handlers=event31 js2 > > B: PROP=40 > > B: EV=19 > > B: ABS=3f > > B: MSC=20 > > > > I: Bus=0003 Vendor=054c Product=0ce6 Version=8111 > > N: Name="Sony Interactive Entertainment Wireless Controller Touchpad" > > P: Phys= > > S: Sysfs=/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.3/3-1.3:1.3/0003:054C:0CE6.0013/input/input70 > > U: Uniq=4c:b9:9b:16:ea:b7 > > H: Handlers=event256 mouse7 > > B: PROP=5 > > B: EV=b > > B: KEY=2420 10000 0 0 0 0 > > B: ABS=260800000000003 > > ``` > > > > ``` > > /sys/bus/hid/devices/0003:054C:0CE6.0013]$ cat * > > > > 00 > > cat: driver: Is a directory > > 0x01010007 > > 0x00000313 > > cat: hidraw: Is a directory > > cat: input: Is a directory > > hid:b0003g0001v0000054Cp00000CE6 > > cat: power: Is a directory > > cat: power_supply: Is a directory > > "&4 #/ 3( 4/ 5 $ 4&u 9%5F;euBe )%u ! > > % &?! '" @? (? )? * +? ,? - > > .�/?�0?�1?�2�5? 6cat: subsystem: Is a directory > > DRIVER=playstation > > HID_ID=0003:0000054C:00000CE6 > > HID_NAME=Sony Interactive Entertainment Wireless Controller > > HID_PHYS=usb-0000:39:00.0-1.3/input3 > > HID_UNIQ=4c:b9:9b:16:ea:b7 > > MODALIAS=hid:b0003g0001v0000054Cp00000CE6 > > ```