Keep kernel configuration after update

Hi guys, I have a question. Basically, I would when my system perform a kernel update to keep the same configuration as the 6.17.1-300. Because since Fedora update the kernel after this version, they removed the support for my gamepad.

How can I do ?

Hi,

I’m afraid, that distrubution kernel is not possible configure - in this level. But you could compile your own kernel with this driver - sorry, I don’t know if this driver is still there (in source)…

You could do it by: Release date of Kernel version 7.0 - #26 by ilikelinux

Or maybe is it possible to indentify this module and make sure the kernel load it at boot time ? How can I find the module name ?

This is what I get when I plug my gamepad via dmesg:

[  739.386672] usb 1-1.4: USB disconnect, device number 10
[  739.556934] usb 1-1.4: new full-speed USB device number 11 using xhci_hcd
[  739.632852] usb 1-1.4: New USB device found, idVendor=0079, idProduct=181c, bcdDevice= 1.00
[  739.632856] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  739.632857] usb 1-1.4: Product: Android Gamepad
[  739.632858] usb 1-1.4: Manufacturer: SHANWAN
[  739.644032] input: SHANWAN Android Gamepad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:0079:181C.000B/input/input36
[  739.644124] hid-generic 0003:0079:181C.000B: input,hidraw9: USB HID v1.10 Gamepad [SHANWAN Android Gamepad] on usb-0000:00:14.0-1.4/input0
[  739.644691] input: SHANWAN Android Gamepad System Control as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:0079:181C.000C/input/input37
[  739.696100] input: SHANWAN Android Gamepad Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:0079:181C.000C/input/input38
[  739.696190] hid-generic 0003:0079:181C.000C: input,hidraw10: USB HID v1.01 Device [SHANWAN Android Gamepad] on usb-0000:00:14.0-1.4/input1

You could command lsmod. Before inicialization of device and compare it after inicialization. You should see name of this kernel module - I expect, that it is kernel module…

You didn’t mention your current Fedora release, but 6.17.1 matches Fedora 43.

Looks like the module isn’t bundled with Fedora’s Linux kernel, so you’ll have to install it from Copr:

https://copr.fedorainfracloud.org/coprs/sunwire/hid-shanwan/

Alternatively, could also get the driver source and build it against your current kernel:

https://github.com/vmpyr/hid-shanwan

I suspect that the kernel-modules-extra package isn’t installed on your system.
I assume you may have tested the gamepad while running the f43 Live iso, but the installed and updated system hasn’t enabled it.

The xpad driver seems to support gamepads with the idVendor=0079. For some reason It’s not installed by default.

$ modinfo xpad |grep 0079 
alias:          usb:v0079p*d*dc*dsc*dp*icFFisc5Dip81in*
alias:          usb:v0079p*d*dc*dsc*dp*icFFisc5Dip01in*

Try installing sudo dnf install kernel-modules-extra and then connect the gamepad or run sudo modprobe xpad

Which gamepad is it? Maybe the driver is in the kernel-modules-extra package? You could try installing that and see if the driver you need is provided.

Hi,

I expect, that package of kernel-modules-extra is the best solution. Really, I don’t know, why RedHat/Fedora would remove full function kernel module (?).

The second way I described…

What, exactly, was removed?

So this package is already installed, so the problem doesn’t come from here.

I will see if I load xpad from boot time

So I added the module at bootime via the modules-load.d directory. Maybe I am wrong, it is detected but something is wrong. Basically to explain to you, if I go in the systemsettings of the kde plasma environment, in the gamepad section, it detect my gamepad, but if I press any button or use the joystick, it doesn’t detect anything at all. This is the problem I have

Which make and model of game pad do you have?
How is it connected wired or bluetooth?

Wired. As I linked before, it’s a SHANWAN Android Gamepad System Control

Seems that controller does need an 3rd party module.

So why the inputs doesn’t work with the new kernels ?

I would try to compiled originally driver (kernel module) as “CYL
gadget” wrote. Complet kernel compilation is probable useless - in this cause…

What do you mean ?

I really need help because I can’t use the new kernel updates just because of this …

You mean because the code you have does not compile for the new kernels?
You need to ask the author of the code for help in that case.

I don’t see how this would help. Looks like the driver is for a gamepad with the vendorid

while the gamepad here reports verndorid 0079 deviceid 181c which should be claimed by xpad driver.

@zohran
what’s the output of rpm -qa kernel\* | sort

Also if you have kernel 6.17.1 installed then boot the system with 6.17.1 with gamepad disconnected. Run journalctl -f -n0 --no-hostname and post the lines that appear when gamepad is connected.

then run lsusb -d 0079:181c -v

zohran@alienware-m17-r3:~$ rpm -qa kernel\* | sort
kernel-6.19.10-300.fc44.x86_64
kernel-7.0.9-202.fc44.x86_64
kernel-7.0.9-204.fc44.x86_64
kernel-core-6.19.10-300.fc44.x86_64
kernel-core-7.0.9-202.fc44.x86_64
kernel-core-7.0.9-204.fc44.x86_64
kernel-devel-6.19.10-300.fc44.x86_64
kernel-devel-7.0.9-202.fc44.x86_64
kernel-devel-7.0.9-204.fc44.x86_64
kernel-devel-matched-7.0.9-204.fc44.x86_64
kernel-headers-7.0.6-200.fc44.x86_64
kernel-modules-6.19.10-300.fc44.x86_64
kernel-modules-7.0.9-202.fc44.x86_64
kernel-modules-7.0.9-204.fc44.x86_64
kernel-modules-core-6.19.10-300.fc44.x86_64
kernel-modules-core-7.0.9-202.fc44.x86_64
kernel-modules-core-7.0.9-204.fc44.x86_64
kernel-modules-extra-6.19.10-300.fc44.x86_64
kernel-modules-extra-7.0.9-202.fc44.x86_64
kernel-modules-extra-7.0.9-204.fc44.x86_64
kernel-modules-extra-matched-7.0.9-204.fc44.x86_64
kernel-srpm-macros-1.0-28.fc44.noarch
kernel-tools-7.0.9-204.fc44.x86_64
kernel-tools-libs-7.0.9-204.fc44.x86_64
zohran@alienware-m17-r3:~$ lsusb -d 0079:181c -v

Bus 001 Device 013: ID 0079:181c DragonRise Inc. Android Gamepad
Couldn't open device, some information will be missing
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0079 DragonRise Inc.
  idProduct          0x181c Android Gamepad
  bcdDevice            1.00
  iManufacturer           1 SHANWAN
  iProduct                2 Android Gamepad
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0042
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              350mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      97
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               8
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     114
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval              10

journalctl -f -n0 --no-hostname

zohran@alienware-m17-r3:~$ journalctl -f -n0  --no-hostname
May 22 08:41:59 pipewire-pulse[1950]: mod.protocol-pulse: setsockopt(SO_PRIORITY) failed: Bad file descriptor
May 22 08:41:59 pipewire-pulse[1950]: mod.protocol-pulse: client 0x555bd669c0a0: no peercred: Bad file descriptor
May 22 08:42:07 kernel: usb 1-1.4: USB disconnect, device number 13
May 22 08:42:12 kernel: usb 1-1.4: new full-speed USB device number 14 using xhci_hcd
May 22 08:42:12 kernel: usb 1-1.4: New USB device found, idVendor=057e, idProduct=2009, bcdDevice= 0.20
May 22 08:42:12 kernel: usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
May 22 08:42:12 kernel: usb 1-1.4: Product: Pro Controller
May 22 08:42:12 kernel: usb 1-1.4: Manufacturer: Nintendo Co., Ltd.
May 22 08:42:12 kernel: usb 1-1.4: SerialNumber: 000000000001
May 22 08:42:12 kernel: usbhid 1-1.4:1.0: can't add hid device: -71
May 22 08:42:12 kernel: usbhid 1-1.4:1.0: probe with driver usbhid failed with error -71
May 22 08:42:12 kernel: usb 1-1.4: USB disconnect, device number 14
May 22 08:42:12 kernel: usb 1-1.4: new full-speed USB device number 15 using xhci_hcd
May 22 08:42:12 kernel: usb 1-1.4: New USB device found, idVendor=0079, idProduct=181c, bcdDevice= 1.00
May 22 08:42:12 kernel: usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
May 22 08:42:12 kernel: usb 1-1.4: Product: Android Gamepad
May 22 08:42:12 kernel: usb 1-1.4: Manufacturer: SHANWAN
May 22 08:42:12 kernel: input: SHANWAN Android Gamepad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:0079:181C.000F/input/input41
May 22 08:42:12 kernel: hid-generic 0003:0079:181C.000F: input,hidraw9: USB HID v1.10 Gamepad [SHANWAN Android Gamepad] on usb-0000:00:14.0-1.4/input0
May 22 08:42:12 kernel: input: SHANWAN Android Gamepad System Control as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:0079:181C.0010/input/input42
May 22 08:42:12 kernel: input: SHANWAN Android Gamepad Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:0079:181C.0010/input/input43
May 22 08:42:12 kernel: hid-generic 0003:0079:181C.0010: input,hidraw10: USB HID v1.01 Device [SHANWAN Android Gamepad] on usb-0000:00:14.0-1.4/input1
May 22 08:42:12 mtp-probe[6779]: checking bus 1, device 15: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4"
May 22 08:42:12 mtp-probe[6779]: bus: 1, device: 15 was not an MTP device
May 22 08:42:12 systemd-logind[1292]: Watching system buttons on /dev/input/event27 (SHANWAN Android Gamepad System Control)
May 22 08:42:12 mtp-probe[6792]: checking bus 1, device 15: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4"
May 22 08:42:12 mtp-probe[6792]: bus: 1, device: 15 was not an MTP device