All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: button mapping on the Playstation 5 controller
@ 2021-08-06 16:12 Tanuj Bagaria
  2021-08-07 18:52 ` Roderick Colenbrander
  0 siblings, 1 reply; 3+ messages in thread
From: Tanuj Bagaria @ 2021-08-06 16:12 UTC (permalink / raw)
  To: linux-input

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
```

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-08-08  4:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-06 16:12 button mapping on the Playstation 5 controller Tanuj Bagaria
2021-08-07 18:52 ` Roderick Colenbrander
2021-08-08  4:46   ` Roderick Colenbrander

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.