Tiny Core Linux

Off-Topic => Off-Topic - Tiny Core Lounge => Topic started by: GNUser on December 22, 2025, 09:43:43 PM

Title: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 22, 2025, 09:43:43 PM
I just purchased two new controllers for my kids' TCL-powered retro gaming laptop, made by PowerA. The gaming laptop runs mednafen to emulate various videogame consoles. Kids were using two old Logitech gamepads up to now, but the Logitech gamepads got pretty beaten up so needed to be replaced.

mednafen and other games running in TCL do not recognize these xbox controllers at all, so games can only be played using the keyboard for now :(

Interestingly, these xbox controllers work out of the box in Devuan without any special configuration. However, I prefer running TCL on the gaming laptop because it's lighter, easier to understand, easier to customize, etc. So here we are.

I can confirm that the  input-joystick-KERNEL  extension is loaded:

Code: [Select]
TCL$ tce-status -i | grep joystick
input-joystick-6.12.11-tinycore64

When I plug in the gamepad in TCL, the  xpad  kernel module appears in the list of loaded modules:

Code: [Select]
TCL$ sudo lsmod | sort
Module                  Size  Used by    Not tainted
ac                     12288  0
agpgart                28672  2 intel_gtt,ttm
backlight              12288  4 i915,drm_display_helper,drm,video
battery                16384  0
ccm                    16384  6
cec                    36864  2 i915,drm_display_helper
cfg80211              303104  4 mt76x2_common,mt76x02_lib,mt76,mac80211
cpufreq_conservative    12288  0
cpufreq_powersave      12288  0
cpufreq_userspace      12288  0
cqhci                  20480  1 sdhci_pci
drm                   348160 12 i915,drm_display_helper,drm_kms_helper,ttm,drm_buddy
drm_buddy              16384  1 i915
drm_display_helper    114688  1 i915
drm_kms_helper        102400  2 i915,drm_display_helper
e1000e                167936  0
ff_memless             12288  1 xpad
i2c_i801               24576  0
i2c_smbus              12288  1 i2c_i801
i915                 2289664 345
intel_gtt              16384  1 i915
joydev                 20480  0
loop                   24576 586
lpc_ich                24576  0
mac80211              425984  3 mt76x2e,mt76x02_lib,mt76
mei                    69632  1 mei_me
mei_me                 24576  0
mmc_core              110592  3 sdhci_pci,sdhci,cqhci
mt76                   57344  3 mt76x2e,mt76x2_common,mt76x02_lib
mt76x02_lib            49152  2 mt76x2e,mt76x2_common
mt76x2_common          16384  1 mt76x2e
mt76x2e                20480  0
pcspkr                 12288  0
sdhci                  40960  1 sdhci_pci
sdhci_pci              53248  0
snd                    65536  9 snd_hda_codec_hdmi,snd_ctl_led,snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
snd_ctl_led            20480  0
snd_hda_codec          81920  4 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel
snd_hda_codec_generic    57344  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     49152  1
snd_hda_codec_realtek   118784  1
snd_hda_core           49152  5 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec
snd_hda_intel          28672  0
snd_hda_scodec_component    12288  1 snd_hda_codec_realtek
snd_hwdep              12288  1 snd_hda_codec
snd_intel_dspcfg       12288  1 snd_hda_intel
snd_pcm                86016  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_timer              24576  1 snd_pcm
soundcore              12288  2 snd_ctl_led,snd
squashfs               40960 293
ttm                    49152  1 i915
uinput                 16384  1
uvc                    12288  1 uvcvideo
uvcvideo               81920  0
video                  57344  1 i915
videobuf2_common       40960  4 uvcvideo,videobuf2_v4l2,videobuf2_vmalloc,videobuf2_memops
videobuf2_memops       12288  1 videobuf2_vmalloc
videobuf2_v4l2         20480  1 uvcvideo
videobuf2_vmalloc      12288  1 uvcvideo
wmi                    16384  1 video
xhci_hcd              114688  1 xhci_pci
xhci_pci               16384  0
xpad                   36864  0

Also, I see the correct  VID:PID  in the output of  lsusb  , but no human-friendly description of the gamepad:

Code: [Select]
TCL$ sudo lsusb
...
Bus 002 Device 007: ID 20d6:2062 

lshw  doesn't see the gamepad at all:
Code: [Select]
TCL$ sudo lshw -class input
  *-pnp00:05               
       product: PnP device PNP0303
       physical id: 8
       capabilities: pnp
       configuration: driver=i8042 kbd

Here are the same commands running on Devuan on identical hardware (same laptop, same gamepad plugged in):

Code: [Select]
Devuan$ sudo lsmod | sort
ac                     16384  0
aesni_intel           122880  4
ahci                   49152  2
at24                   28672  0
battery                28672  1 thinkpad_acpi
button                 24576  0
ccm                    20480  6
cec                    69632  2 drm_display_helper,i915
cfg80211             1392640  4 mt76,mt76x02_lib,mac80211,mt76x2_common
coretemp               16384  0
cqhci                  32768  1 sdhci_pci
crc16                  12288  1 ext4
crc32c_generic         12288  0
crc32c_intel           16384  4
crc32_pclmul           12288  0
crct10dif_pclmul       12288  1
cryptd                 28672  2 crypto_simd,ghash_clmulni_intel
crypto_simd            16384  1 aesni_intel
drm                   774144  12 drm_kms_helper,drm_display_helper,drm_buddy,thinkpad_acpi,i915,ttm
drm_buddy              20480  1 i915
drm_display_helper    274432  1 i915
drm_kms_helper        253952  2 drm_display_helper,i915
e1000e                368640  0
ehci_hcd              110592  1 ehci_pci
ehci_pci               16384  0
evdev                  28672  25
ext4                 1142784  2
fan                    24576  0
ff_memless             16384  1 xpad
gf128mul               16384  1 aesni_intel
ghash_clmulni_intel    16384  0
i2c_algo_bit           16384  1 i915
i2c_i801               36864  0
i2c_smbus              16384  1 i2c_i801
i915                 4386816  11
intel_cstate           20480  0
intel_pmc_bxt          16384  1 iTCO_wdt
intel_powerclamp       16384  0
intel_rapl_common      53248  1 intel_rapl_msr
intel_rapl_msr         20480  0
intel_uncore          258048  0
irqbypass              12288  1 kvm
iTCO_vendor_support    12288  1 iTCO_wdt
iTCO_wdt               16384  0
jbd2                  200704  1 ext4
joydev                 24576  0
kvm                  1396736  1 kvm_intel
kvm_intel             413696  0
libahci                61440  1 ahci
libarc4                12288  1 mac80211
libata                462848  2 libahci,ahci
lpc_ich                28672  0
lz4_compress           24576  1 zram
lz4hc_compress         20480  1 zram
mac80211             1449984  3 mt76,mt76x2e,mt76x02_lib
mbcache                16384  1 ext4
mc                     94208  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
memconsole             12288  1 memconsole_coreboot
memconsole_coreboot    12288  0
mmc_core              253952  3 sdhci,cqhci,sdhci_pci
Module                  Size  Used by
mt76                  139264  3 mt76x2e,mt76x02_lib,mt76x2_common
mt76x02_lib           102400  2 mt76x2e,mt76x2_common
mt76x2_common          32768  1 mt76x2e
mt76x2e                28672  0
nvram                  16384  1 thinkpad_acpi
pcspkr                 12288  0
platform_profile       12288  1 thinkpad_acpi
psmouse               217088  0
rapl                   20480  0
rc_core                73728  1 cec
rfkill                 40960  4 thinkpad_acpi,cfg80211
scsi_common            16384  4 scsi_mod,sd_mod,libata,sg
scsi_mod              327680  3 sd_mod,libata,sg
sdhci                  86016  1 sdhci_pci
sdhci_pci              98304  0
sd_mod                 81920  2
serio_raw              16384  0
sg                     45056  0
sha1_ssse3             32768  0
sha256_ssse3           32768  0
sha512_ssse3           53248  0
snd                   151552  16 snd_ctl_led,snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,thinkpad_acpi,snd_pcm
snd_ctl_led            24576  0
snd_hda_codec         217088  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_codec_generic   114688  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     98304  1
snd_hda_codec_realtek   217088  1
snd_hda_core          143360  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hda_intel          61440  3
snd_hda_scodec_component    20480  1 snd_hda_codec_realtek
snd_hwdep              20480  1 snd_hda_codec
snd_intel_dspcfg       40960  1 snd_hda_intel
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
snd_pcm               184320  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_timer              53248  1 snd_pcm
soundcore              16384  2 snd_ctl_led,snd
sparse_keymap          12288  1 thinkpad_acpi
thinkpad_acpi         163840  0
ttm                   106496  1 i915
uinput                 20480  1
usb_common             16384  4 xhci_hcd,usbcore,uvcvideo,ehci_hcd
usbcore               409600  6 xhci_hcd,ehci_pci,xpad,uvcvideo,ehci_hcd,xhci_pci
uvc                    12288  1 uvcvideo
uvcvideo              155648  0
video                  81920  2 thinkpad_acpi,i915
videobuf2_common       81920  4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
videobuf2_memops       16384  1 videobuf2_vmalloc
videobuf2_v4l2         36864  1 uvcvideo
videobuf2_vmalloc      20480  1 uvcvideo
videodev              368640  2 videobuf2_v4l2,uvcvideo
watchdog               49152  1 iTCO_wdt
wmi                    28672  1 video
x86_pkg_temp_thermal    16384  0
xhci_hcd              364544  1 xhci_pci
xhci_pci               24576  0
xpad                   49152  0
zram                   49152  1
Code: [Select]
Devuan$ sudo lsusb
...
Bus 001 Device 006: ID 20d6:2062 PowerA Xbox Series X Wired Controller Black

Code: [Select]
Devuan$ sudo lshw -class input
...
  *-input:2
       product: Generic X-Box pad
       physical id: 4
       logical name: input19
       logical name: /dev/input/event17
       logical name: /dev/input/js0
       capabilities: usb

What am I missing for this gamepad to work in TCL (i.e., for it to show up in the output of  lshw  and for games to recognize it)?
Title: Re: xbox controller not working on TCL16 x86_64
Post by: Rich on December 22, 2025, 10:19:06 PM
Hi GNUser
Looks like you need modules xpad.ko and ff_memless.ko.
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 22, 2025, 10:26:46 PM
Hi Rich. Yes, I noticed that when I plug the controller in, those two modules appear in the output of lsmod in both Devuan and TCL.

Doesn't this output confirm that those two modules are loaded?

Code: [Select]
TCL$ sudo lsmod | sort
Module                  Size  Used by    Not tainted
ac                     12288  0
agpgart                28672  2 intel_gtt,ttm
backlight              12288  4 i915,drm_display_helper,drm,video
battery                16384  0
ccm                    16384  6
cec                    36864  2 i915,drm_display_helper
cfg80211              303104  4 mt76x2_common,mt76x02_lib,mt76,mac80211
cpufreq_conservative    12288  0
cpufreq_powersave      12288  0
cpufreq_userspace      12288  0
cqhci                  20480  1 sdhci_pci
drm                   348160 12 i915,drm_display_helper,drm_kms_helper,ttm,drm_buddy
drm_buddy              16384  1 i915
drm_display_helper    114688  1 i915
drm_kms_helper        102400  2 i915,drm_display_helper
e1000e                167936  0
ff_memless             12288  1 xpad
i2c_i801               24576  0
i2c_smbus              12288  1 i2c_i801
i915                 2289664 345
intel_gtt              16384  1 i915
joydev                 20480  0
loop                   24576 586
lpc_ich                24576  0
mac80211              425984  3 mt76x2e,mt76x02_lib,mt76
mei                    69632  1 mei_me
mei_me                 24576  0
mmc_core              110592  3 sdhci_pci,sdhci,cqhci
mt76                   57344  3 mt76x2e,mt76x2_common,mt76x02_lib
mt76x02_lib            49152  2 mt76x2e,mt76x2_common
mt76x2_common          16384  1 mt76x2e
mt76x2e                20480  0
pcspkr                 12288  0
sdhci                  40960  1 sdhci_pci
sdhci_pci              53248  0
snd                    65536  9 snd_hda_codec_hdmi,snd_ctl_led,snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
snd_ctl_led            20480  0
snd_hda_codec          81920  4 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel
snd_hda_codec_generic    57344  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     49152  1
snd_hda_codec_realtek   118784  1
snd_hda_core           49152  5 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec
snd_hda_intel          28672  0
snd_hda_scodec_component    12288  1 snd_hda_codec_realtek
snd_hwdep              12288  1 snd_hda_codec
snd_intel_dspcfg       12288  1 snd_hda_intel
snd_pcm                86016  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_timer              24576  1 snd_pcm
soundcore              12288  2 snd_ctl_led,snd
squashfs               40960 293
ttm                    49152  1 i915
uinput                 16384  1
uvc                    12288  1 uvcvideo
uvcvideo               81920  0
video                  57344  1 i915
videobuf2_common       40960  4 uvcvideo,videobuf2_v4l2,videobuf2_vmalloc,videobuf2_memops
videobuf2_memops       12288  1 videobuf2_vmalloc
videobuf2_v4l2         20480  1 uvcvideo
videobuf2_vmalloc      12288  1 uvcvideo
wmi                    16384  1 video
xhci_hcd              114688  1 xhci_pci
xhci_pci               16384  0
xpad                   36864  0
Title: Re: xbox controller not working on TCL16 x86_64
Post by: Rich on December 22, 2025, 10:31:37 PM
Hi GNUser
I missed that.
But I saw this for Devuan:
Code: [Select]
usbcore               409600  6 xhci_hcd,ehci_pci,xpad,uvcvideo,ehci_hcd,xhci_pci
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 22, 2025, 10:40:42 PM
Hmm, TCL does not seem to have any extension containing "usbcore":

Code: [Select]
$ provides.sh usbcore
$

Maybe  usbcore  is a dependency of  xpad  for Devuan's kernel version (6.12.43) but not for TCL's (6.12.11) for some reason?

"usbcore" does appear in output of dmesg when I plug in the gamepad, even though it does not appear in output of lsmod:
Code: [Select]
TCL$ dmesg
...
[  544.800512] usb 2-1.2: new full-speed USB device number 6 using ehci-pci
[  544.902957] input: Generic X-Box pad as /devices/pci0000:00/0000:00:1a.0/usb2/2-1/2-1.2/2-1.2:1.0/input/input17
[  544.903260] usbcore: registered new interface driver xpad

dmesg  and  lsmod  seem to show the expected things, but  lsusb  and  lshw  do not :-\
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 22, 2025, 10:42:17 PM
Do I need to manually create  /dev/input/js0  for some reason? I'm going to try it even though I'm not optimistic it's going to help.

EDIT: Manually creating /dev/input/js0 didn't help, but that could be because I'm not creating it correctly. Another thought: Is it possible that TCL's  xpad  kernel module is missing some required functionality?
Title: Re: xbox controller not working on TCL16 x86_64
Post by: Rich on December 22, 2025, 10:51:45 PM
Hi GNUser
Maybe  usbcore  is built in?

I think you may have to:
Code: [Select]
dmesg | grep -iE 'VID:PID|X-BOX|other related stuff'for Duvuan and TC and compare what each of them find.

By grepping for just the xbox related stuff you should be able to
see why Devuan works and what TC is missing.
Title: Re: xbox controller not working on TCL16 x86_64
Post by: Rich on December 22, 2025, 10:53:47 PM
Hi GNUser
...Is it possible that TCL's  xpad  kernel module is missing some required functionality?
You mean like SPI:
Code: [Select]
CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
# CONFIG_JOYSTICK_PSXPAD_SPI is not set
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 22, 2025, 10:58:49 PM
I think you may have to:
Code: [Select]
dmesg | grep -iE 'VID:PID|X-BOX|other related stuff'for Duvuan and TC and compare what each of them find.
Hi Rich. Devuan shows one line more than TCL:

Code: [Select]
TCL$ dmesg | grep -iE '20d6:2062|x-box|xbox'
[   14.829527] input: Generic X-Box pad as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input8

Code: [Select]
Devuan$ sudo dmesg | grep -iE '20d6:2062|x-box|xbox'
[   30.799826] usb 1-1.2: Product: Xbox Series X Wired Controller Black
[   30.824141] input: Generic X-Box pad as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input19
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 22, 2025, 11:01:32 PM
Hi GNUser
...Is it possible that TCL's  xpad  kernel module is missing some required functionality?
You mean like SPI:
Code: [Select]
CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
# CONFIG_JOYSTICK_PSXPAD_SPI is not set
Hi Rich. That can't be it, because Devuan treats SPI the same way. This is from Devuan's kernel config:
Code: [Select]
CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_WALKERA0701=m
# CONFIG_JOYSTICK_PSXPAD_SPI is not set
Title: Re: xbox controller not working on TCL16 x86_64
Post by: aus9 on December 23, 2025, 04:28:27 AM
GNUser
Your problem is with ids
1) your ids are not yet uploaded to http://www.linux-usb.org/usb.ids

2)  yours are vendor 20d6 and product 2062
Code: [Select]
modinfo xpad | grep v20D6
alias:          usb:v20D6p*d*dc*dsc*dp*icFFisc47ipD0in*
alias:          usb:v20D6p*d*dc*dsc*dp*icFFisc5Dip81in*
alias:          usb:v20D6p*d*dc*dsc*dp*icFFisc5Dip01in*

Rich correctly spots that modinfo xpad | grep depends -> ffmless
I wonder if Rich has any suggestions on the top part of modinfo...to try a diff parameter?
Code: [Select]
modinfo xpad
filename:       /lib/modules/6.12.11-tinycore64/kernel.tclocal/drivers/input/joystick/xpad.ko.gz
author:         Marko Friedemann <mfr@bmx-chemnitz.de>
description:    Xbox pad driver
license:        GPL
parm:           auto_poweroff:Power off wireless controllers on suspend
parm:           sticks_to_null:Do not map sticks at all for unknown pads
parm:           triggers_to_buttons:Map triggers to buttons rather than axes for unknown pads
parm:           dpad_to_buttons:Map D-PAD to buttons rather than axes for unknown pads
alias:          usb:v3537p*d*dc*dsc*dp*icFFisc47ipD0in*
SNIP
depends:        ff-memless
intree:         Y
vermagic:       6.12.11-tinycore64 SMP mod_unload
Title: Re: xbox controller not working on TCL16 x86_64
Post by: aus9 on December 23, 2025, 07:15:41 AM
Ok  I was half right. as usual ;)

1) We agree your device is unknown by product id so I found this page
https://docs.kernel.org/6.18/input/devices/xpad.html
go to this quote but it references dance pads....is that a mat?
Quote
17.1.3. Unknown Controllers
If you have an unknown Xbox controller, it should work just fine with the default settings.
HOWEVER if you have an unknown dance pad not listed below, it will not work UNLESS you set “dpad_to_buttons” to 1 in the module configuration.

If your device is not a mat, agreed it claims
Unrecognized models of Xbox controllers should function as Generic Xbox controllers.
And we are back to square one

(2) You could try modding the driver C file from here
https://github.com/paroj/xpad/blob/master/xpad.c

search for 20d6 gives me hits for lines 385/6/7 PLUS there are other lines too
{ 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE },
{ 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE },
{ 0x20d6, 0x281f, "PowerA Wired Controller For Xbox 360", 0, XTYPE_XBOX360 },

and other lines. So either raise an issue or copy and modify  the 2009 line to 0x2062 and compile it?
Title: Re: xbox controller not working on TCL16 x86_64
Post by: aus9 on December 23, 2025, 07:24:36 AM
if you are able to built it....then that git website refers to an executable called jstest and that can be found here https://salsa.debian.org/debian/joystick
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 23, 2025, 07:58:45 AM
Hi aus9. Nice to see you here :)

Thank you for the suggestions, but I'm still puzzled about:

a) why this gamepad works in Devuan without any hacks

and

b) why it doesn't work in TCL even though the correct kernel module (xpad) gets loaded automatically when the gamepad is connected

Is there something I could copy from Devuan over to TCL that might help? I'm going to see whether there's a udev rule in Devuan that is responsible for the trouble-free experience there.

PS: jstest is not installed in Devuan, which actually has very few packages installed (only 997 packages are installed, which on a Debian derivative is quite barebones)

PS2: The new controller is a regular handheld gamepad, not a dancepad.

Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 23, 2025, 08:35:06 AM
/dev/input/js0 is something that we expect to be created without user intervention when things are working correctly, right? If so, which system component is responsible for its creation? That component may be the culprit and may need some kind of nudge.
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 23, 2025, 09:33:38 AM
I've poked around Devuan so much that my eyes hurt. I feel like I'm looking for a needle in a haystack and am not optimistic about finding what I'm looking for.

I think our best clues at this point are the output of the  lsusb  and  lshw  commands in TCL, which I provided up in the first post of this thread.

I have no further leads at this point, would be grateful for any assistance.
Title: Re: xbox controller not working on TCL16 x86_64
Post by: Rich on December 23, 2025, 10:31:57 AM
Hi GNUser
If you run this on Duvuan:
Code: [Select]
dmesg > dmesgDuvuan,txtand attach it to your next post, I'll take a look and see if I
can spot anything.

Doing the same for TC would also be helpful.
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 23, 2025, 10:41:56 AM
Hi Rich. See attached. The relevant part is at the end--I plug in the gamepad at the 998 timestamp in TCL, 41 timestamp in Devuan.

Note how much more activity from  usb  occurs in Devuan.

Thank you so much for your help.
Title: Re: xbox controller not working on TCL16 x86_64
Post by: Rich on December 23, 2025, 11:48:51 AM
Hi GNUser
Do I need to manually create  /dev/input/js0 ...
Is it possible the device was created as  /dev/js0 ?
Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 23, 2025, 12:53:32 PM
Hi Rich. No /dev/js0, either.

My suspicion is beginning to turn to the controller itself. Maybe the manufacturer makes assumptions about GNU+Linux that aren't true of minimalistic distros.

I think the easiest thing to do at this point is to return these gamepads and purchase Logitech ones instead (used if need be). Every Logitech gamepad I've ever used work out of the box with mednafen on every distro including TCL.
Title: Re: xbox controller not working on TCL16 x86_64
Post by: aus9 on December 23, 2025, 05:33:29 PM
well some good news and lots of bad

voidlinux has a joystick udev rule which is a text file that mentions hwdb.....and not sure how devuan rules for joystick are....but on voidlinux init=runit it is using a fork of systemd for a package called eudev
and it appears to have a hwdb.bin under /etc/udev and I have been unable to run strings /path/file | grep 20d6 or 20D6 to get any hits.
I get no hits searching for hwdb but instead I have a hit for a file called /usr/lib/udev/hwdb.d/70-joystick.hwdb and its text file but me thinks it would be a distraction to post here when you lack the hwdb files to begin with.

We do have our own hdwb TCE but its not the same and its usb ids do not appear to have your vendor product ids

Maybe you can look to see if Devuan has 70-joystick.rules and if that is the reason you have more success there?
Title: Re: xbox controller not working on TCL16 x86_64
Post by: aus9 on December 23, 2025, 07:43:47 PM
Quote
Manually creating /dev/input/js0 didn't help, but that could be because I'm not creating it correctly.

https://www.kernel.org/doc/html/latest/input/joydev/joystick.html#device-nodes

Title: Re: xbox controller not working on TCL16 x86_64
Post by: GNUser on December 23, 2025, 11:19:03 PM
Hi Rich and aus9. I returned the gamepad to the store, so cannot investigate this further.

While my kids have fun with logitech gamepads, I will educate myself about gamepads on linux and will take another stab at this (getting xbox gamepads to work on TCL) at some later date.

Happy hacking!