Game controller and Rainway

I did some reading and am a bit lost. How do you enable kernel modules?
adi , usbhdi , ns558 , joydev , analog, xpad or xboxrdv .

Do I need to make a file: /etc/modules-load.d/

And type:
gameport (adi, usbhdi, ns558, joydev, analog)

Sorry this is new for me and am learning the process. Any help would be appreciated

If the kernel modules were built and installed:
$ sudo modprobe {module name}

If the modules were not built and installed, you will need to recompile the kernel source after making the kernel config modifications to build those modules, either as (M) for a module or (Y) to be compiled into the kernel itself.

1 Like

Would you still have to create the modules-load.d file?

The Linux kernel does a pretty good job of identifying installed hardware at boot. Modules will usually be loaded at boot, so long as the device is attached. But if you want to connect after boot, then yes, the modules will need to be loaded before the device will be recognized. And /etc/modules-load.d/ is one way to do it.

Ok I will try to modprobe the modules first. Is there a GUI for kernel editing? I will need to figure out how to recompile kernel.

Working in the world of RPi, it seems multiple kernel installs are not yet supported. We will likely have to wait for the UEFI work to be completed, before that comes to be. Building a kernel will be a good amount of effort on an ongoing basis and a constant threat of being overwritten by Manjaro kernel updates.

There used to be a gui kernel config tool (xconfig), I assume it still exists. There is a text based curses type app (menuconfig), which is probably most commonly used. One can edit the config file manually too, but I don’t recommend it. It has been a while since I last kept up with kernel builds myself, back to my Gentoo days of a dozen or so years ago.

It is also possible the kernel already recognizes the device(s)… but Xorg does not. For that, you would need to look into evdev and libinput and making modifications for X to utilize the devices.

Yep the modules are not found in the kernel. Would be nice if manjaro included them in.

Current kernel config:

# CONFIG_JOYSTICK_ADI is not set
usbhdi     NOT FOUND
CONFIG_GAMEPORT_NS558=m
joydev     NOT FOUND
# CONFIG_JOYSTICK_ANALOG is not set

I can rebuild the kernel and push it to see if if helps but can not today.

1 Like

That would be fantastic. One step closer to cloud gaming. Rainway is the steamlink alternative that runs as a web app on chrome.

I did forget to add two modules to the list. Not sure if its xboxrdv or xpad for game controllers.

On my x86 pc rainway web app through chrome can use my current configuration with keyboard and mouse. On pi4 aarch64 it does not recognise those devices. Does anyone know what could be causing this issue? However the escape button works when trying to quit a session.

I do not have chrome but I wonder if your game controller issue is tied to what ever problem there is also.

Sorry my apologies, Im getting confused with chrome and chromium. On pi4 manjaro its chromium.

I have pushed all new kernels with the it’s latest versions. I only added what modules that were available in the list you posted in one of the kernels for you to test. It will be in the unstable branch when the mirrors sync so switch to the unstable branch and do a “sudo pacman -Syy” every once in a while until these packages shows up in the repo with this version:

linux-rpi4-5.4.77-1
linux-rpi4-headers-5.4.77-1

When they do (grab the latest bootloader packages also):

sudo pacman -S linux-rpi4 linux-rpi4-headers raspberrypi-bootloader raspberrypi-bootloader-x

Then switch back to the stable branch if you were there and reboot and test.

If it still does not work try re-booting up your desktop if you are running linux where the game controller works with out the game controller attached and do a lsmod. Then plug in your game controller and do a lsmod and make a list of all new modules that got loaded up to help what else we need to do.

1 Like

Thanks, I will give it a go tonight!

Unfortunately, it didnt work. Rainway on chromium still does not see the device. Results below: (sorry im not sure how to compress the text)

Without gamepad
rfcomm 61440 16
xt_multiport 16384 4
ip6table_filter 16384 1
ip6_tables 32768 1 ip6table_filter
algif_hash 20480 1
aes_neon_bs 28672 2
aes_neon_blk 32768 3 aes_neon_bs
crypto_simd 16384 2 aes_neon_bs,aes_neon_blk
cryptd 24576 2 crypto_simd
algif_skcipher 20480 1
af_alg 32768 6 algif_hash,algif_skcipher
squashfs 53248 1
iptable_mangle 16384 1
xt_CHECKSUM 16384 1
xt_tcpudp 16384 5
iptable_nat 16384 1
xt_comment 16384 8
xt_MASQUERADE 16384 1
nf_nat 53248 2 iptable_nat,xt_MASQUERADE
nf_conntrack 151552 2 nf_nat,xt_MASQUERADE
nf_defrag_ipv6 24576 1 nf_conntrack
nf_defrag_ipv4 16384 1 nf_conntrack
bridge 172032 0
stp 16384 1 bridge
llc 16384 2 bridge,stp
iptable_filter 16384 1
bnep 28672 2
zram 32768 1
zsmalloc 32768 1 zram
hci_uart 53248 1
btbcm 24576 1 hci_uart
bluetooth 475136 41 hci_uart,btbcm,bnep,rfcomm
ecdh_generic 16384 1 bluetooth
ecc 32768 1 ecdh_generic
joydev 28672 0
brcmfmac 339968 0
brcmutil 24576 1 brcmfmac
sha256_generic 16384 0
libsha256 20480 1 sha256_generic
sha256_arm64 24576 0
cfg80211 794624 1 brcmfmac
bcm2835_v4l2 49152 0
vc4 274432 24
bcm2835_isp 32768 0
bcm2835_codec 49152 0
bcm2835_mmal_vchiq 36864 3 bcm2835_codec,bcm2835_v4l2,bcm2835_isp
v4l2_mem2mem 36864 1 bcm2835_codec
rfkill 36864 7 bluetooth,cfg80211
videobuf2_vmalloc 20480 1 bcm2835_v4l2
videobuf2_dma_contig 20480 2 bcm2835_codec,bcm2835_isp
cec 69632 1 vc4
videobuf2_memops 16384 2 videobuf2_vmalloc,videobuf2_dma_contig
drm_kms_helper 221184 3 vc4
videobuf2_v4l2 32768 4 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,bcm2835_isp
snd_soc_core 229376 1 vc4
videobuf2_common 61440 5 bcm2835_codec,videobuf2_v4l2,bcm2835_v4l2,v4l2_mem2mem,bcm2835_isp
videodev 299008 6 bcm2835_codec,videobuf2_v4l2,bcm2835_v4l2,videobuf2_common,v4l2_mem2mem,bcm2835_isp
snd_bcm2835 32768 3
snd_compress 20480 1 snd_soc_core
snd_pcm_dmaengine 20480 1 snd_soc_core
snd_pcm 139264 4 vc4,snd_bcm2835,snd_soc_core,snd_pcm_dmaengine
v3d 73728 7
mc 57344 6 videodev,bcm2835_codec,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem,bcm2835_isp
snd_timer 45056 1 snd_pcm
raspberrypi_hwmon 16384 0
vc_sm_cma 40960 2 bcm2835_mmal_vchiq,bcm2835_isp
gpu_sched 45056 1 v3d
snd 106496 11 snd_bcm2835,snd_timer,snd_compress,snd_soc_core,snd_pcm
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
rpivid_mem 16384 0
uio_pdrv_genirq 16384 0
crct10dif_ce 16384 1
uio 24576 1 uio_pdrv_genirq
sch_fq_codel 20480 6
drm 540672 18 gpu_sched,drm_kms_helper,v3d,vc4
crypto_user 16384 0
drm_panel_orientation_quirks 20480 1 drm
ip_tables 32768 3 iptable_filter,iptable_nat,iptable_mangle
x_tables 45056 10 ip6table_filter,iptable_filter,xt_multiport,xt_tcpudp,xt_CHECKSUM,xt_comment,ip6_tables,ip_tables,xt_MASQUERADE,iptable_mangle
ipv6 548864 59 bridge
hid_microsoft 20480 0
ff_memless 20480 1 hid_microsoft

With Gamepad inserted
xpad 32768 0
rfcomm 61440 16
xt_multiport 16384 4
ip6table_filter 16384 1
ip6_tables 32768 1 ip6table_filter
algif_hash 20480 1
aes_neon_bs 28672 2
aes_neon_blk 32768 3 aes_neon_bs
crypto_simd 16384 2 aes_neon_bs,aes_neon_blk
cryptd 24576 2 crypto_simd
algif_skcipher 20480 1
af_alg 32768 6 algif_hash,algif_skcipher
squashfs 53248 1
iptable_mangle 16384 1
xt_CHECKSUM 16384 1
xt_tcpudp 16384 5
iptable_nat 16384 1
xt_comment 16384 8
xt_MASQUERADE 16384 1
nf_nat 53248 2 iptable_nat,xt_MASQUERADE
nf_conntrack 151552 2 nf_nat,xt_MASQUERADE
nf_defrag_ipv6 24576 1 nf_conntrack
nf_defrag_ipv4 16384 1 nf_conntrack
bridge 172032 0
stp 16384 1 bridge
llc 16384 2 bridge,stp
iptable_filter 16384 1
bnep 28672 2
zram 32768 1
zsmalloc 32768 1 zram
hci_uart 53248 1
btbcm 24576 1 hci_uart
bluetooth 475136 41 hci_uart,btbcm,bnep,rfcomm
ecdh_generic 16384 1 bluetooth
ecc 32768 1 ecdh_generic
joydev 28672 0
brcmfmac 339968 0
brcmutil 24576 1 brcmfmac
sha256_generic 16384 0
libsha256 20480 1 sha256_generic
sha256_arm64 24576 0
cfg80211 794624 1 brcmfmac
bcm2835_v4l2 49152 0
vc4 274432 26
bcm2835_isp 32768 0
bcm2835_codec 49152 0
bcm2835_mmal_vchiq 36864 3 bcm2835_codec,bcm2835_v4l2,bcm2835_isp
v4l2_mem2mem 36864 1 bcm2835_codec
rfkill 36864 7 bluetooth,cfg80211
videobuf2_vmalloc 20480 1 bcm2835_v4l2
videobuf2_dma_contig 20480 2 bcm2835_codec,bcm2835_isp
cec 69632 1 vc4
videobuf2_memops 16384 2 videobuf2_vmalloc,videobuf2_dma_contig
drm_kms_helper 221184 3 vc4
videobuf2_v4l2 32768 4 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,bcm2835_isp
snd_soc_core 229376 1 vc4
videobuf2_common 61440 5 bcm2835_codec,videobuf2_v4l2,bcm2835_v4l2,v4l2_mem2mem,bcm2835_isp
videodev 299008 6 bcm2835_codec,videobuf2_v4l2,bcm2835_v4l2,videobuf2_common,v4l2_mem2mem,bcm2835_isp
snd_bcm2835 32768 3
snd_compress 20480 1 snd_soc_core
snd_pcm_dmaengine 20480 1 snd_soc_core
snd_pcm 139264 4 vc4,snd_bcm2835,snd_soc_core,snd_pcm_dmaengine
v3d 73728 8
mc 57344 6 videodev,bcm2835_codec,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem,bcm2835_isp
snd_timer 45056 1 snd_pcm
raspberrypi_hwmon 16384 0
vc_sm_cma 40960 2 bcm2835_mmal_vchiq,bcm2835_isp
gpu_sched 45056 1 v3d
snd 106496 11 snd_bcm2835,snd_timer,snd_compress,snd_soc_core,snd_pcm
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
rpivid_mem 16384 0
uio_pdrv_genirq 16384 0
crct10dif_ce 16384 1
uio 24576 1 uio_pdrv_genirq
sch_fq_codel 20480 6
drm 540672 20 gpu_sched,drm_kms_helper,v3d,vc4
crypto_user 16384 0
drm_panel_orientation_quirks 20480 1 drm
ip_tables 32768 3 iptable_filter,iptable_nat,iptable_mangle
x_tables 45056 10 ip6table_filter,iptable_filter,xt_multiport,xt_tcpudp,xt_CHECKSUM,xt_comment,ip6_tables,ip_tables,xt_MASQUERADE,iptable_mangle
ipv6 548864 59 bridge
hid_microsoft 20480 0
ff_memless 20480 2 xpad,hid_microsoft

Sorry I rebooted once again and tried a series of buttons on the controller and rainway finally was able to locate the controller Woot Woot. However it appears to be extremely laggy and browser appears to freeze. I will have to attempt some other settings to see if I can get this to work. Reduce framerate etc…

I see xpad module is loaded on the “With”. See if you can modprobe it to load the module and test…

sudo modprobe xpad

To check if it got modprobed:

lsmod | grep xpad

I am hoping this test you did was on your desktop where the controller works right as I said above?

Unfortunately I only have arm devices with Linux ATM. Both running manjaro so none actually have controller fully working until now. When I performed the test, I disconnected the usb dongle for the controller and rebooted. I ran the lsmod command and then recorded the readings. After plugging the dongle in, I took the reading again. Controller now appears to be working great with the new modules added to the kernel. I had to adjust rainway settings and have hardware encoding set to CPU. It runs pretty smooth doing it that way. It did not freeze this time and controller worked ok.
I also modprobed xpad as requested. Here’s a PIC of the results. Again this was all done on the rpi4 with manjaro as I do not have another working desktop that has controller working on Linux.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.