ChimeraOS / chimeraos

A Steam Big Picture based couch gaming OS
MIT License
1.67k stars 115 forks source link

Microsoft Xbox USB dongle fails #1020

Open CorentinWicht opened 1 month ago

CorentinWicht commented 1 month ago

Dear Community,

As advised in other threads (#861 & #461), I have recently bought the official Microsoft Xbox USB dongle for my Xbox One Series S|X controller because the bluetooth connection was too unstable.

I was able to pair my device with the dongle on my Windows 10 computer but it failed in ChimeraOS 46...

This is what I get when I run sudo dmesg | grep xone at startup:

[    9.521780] Modules linked in: wl(POE+) zenergy(OE) amd_atl intel_rapl_msr intel_rapl_common btusb btrtl btintel btbcm btmtk bluetooth hid_generic rtw89_8852ce rtw89_8852c kvm_amd xone_dongle(OE+) xone_gip(OE) ecdh_generic usbhid rtw89_pci snd_hda_codec_hdmi kvm rtw89_core snd_hda_intel snd_intel_dspcfg crct10dif_pclmul snd_intel_sdw_acpi polyval_clmulni mac80211 polyval_generic snd_hda_codec gf128mul ghash_clmulni_intel libarc4 snd_hda_core sha1_ssse3 snd_hwdep r8169 rapl snd_pcm gigabyte_wmi wmi_bmof cfg80211 snd_timer pcspkr realtek ccp snd k10temp i2c_piix4 mdio_devres soundcore rfkill libphy mac_hid uinput crypto_user acpi_call(OE) loop nfnetlink ip_tables x_tables amdgpu btrfs blake2b_generic xor amdxcp raid6_pq i2c_algo_bit drm_exec libcrc32c gpu_sched drm_suballoc_helper drm_buddy crc32_pclmul drm_ttm_helper aesni_intel ttm nvme crypto_simd drm_display_helper xhci_pci nvme_core cryptd xhci_pci_renesas cec video nvme_auth wmi overlay sha512_ssse3 sha256_ssse3 ext4 crc32c_generic crc32c_intel crc16 mbcache jbd2
[    9.590426] xone-dongle 1-2:1.0: xone_mt76_load_firmware: resetting firmware...
[    9.613458] xone-dongle 1-2:1.0: xone_mt76_init_radio: id=0x7612
[    9.859411] xone-dongle 1-2:1.0: xone_mt76_init_address: address=62:45:b4:e7:a4:ef
[    9.895448] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=1, power=32
[    9.910451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=6, power=32
[    9.925451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=11, power=32
[    9.940450] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=36, power=29
[    9.955451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=40, power=29
[    9.970456] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=44, power=29
[    9.985451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=48, power=29
[   10.000453] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=149, power=29
[   10.015451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=153, power=29
[   10.030452] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=157, power=29
[   10.045451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=161, power=29
[   10.060452] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=165, power=29
[   10.063410] xone-dongle 1-2:1.0: xone_mt76_init_channels: channel=165
[   11.136521] usbcore: registered new interface driver xone-dongle

And when I try to press on the dongle pairing button:

[    9.521780] Modules linked in: wl(POE+) zenergy(OE) amd_atl intel_rapl_msr intel_rapl_common btusb btrtl btintel btbcm btmtk bluetooth hid_generic rtw89_8852ce rtw89_8852c kvm_amd xone_dongle(OE+) xone_gip(OE) ecdh_generic usbhid rtw89_pci snd_hda_codec_hdmi kvm rtw89_core snd_hda_intel snd_intel_dspcfg crct10dif_pclmul snd_intel_sdw_acpi polyval_clmulni mac80211 polyval_generic snd_hda_codec gf128mul ghash_clmulni_intel libarc4 snd_hda_core sha1_ssse3 snd_hwdep r8169 rapl snd_pcm gigabyte_wmi wmi_bmof cfg80211 snd_timer pcspkr realtek ccp snd k10temp i2c_piix4 mdio_devres soundcore rfkill libphy mac_hid uinput crypto_user acpi_call(OE) loop nfnetlink ip_tables x_tables amdgpu btrfs blake2b_generic xor amdxcp raid6_pq i2c_algo_bit drm_exec libcrc32c gpu_sched drm_suballoc_helper drm_buddy crc32_pclmul drm_ttm_helper aesni_intel ttm nvme crypto_simd drm_display_helper xhci_pci nvme_core cryptd xhci_pci_renesas cec video nvme_auth wmi overlay sha512_ssse3 sha256_ssse3 ext4 crc32c_generic crc32c_intel crc16 mbcache jbd2
[    9.590426] xone-dongle 1-2:1.0: xone_mt76_load_firmware: resetting firmware...
[    9.613458] xone-dongle 1-2:1.0: xone_mt76_init_radio: id=0x7612
[    9.859411] xone-dongle 1-2:1.0: xone_mt76_init_address: address=62:45:b4:e7:a4:ef
[    9.895448] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=1, power=32
[    9.910451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=6, power=32
[    9.925451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=11, power=32
[    9.940450] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=36, power=29
[    9.955451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=40, power=29
[    9.970456] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=44, power=29
[    9.985451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=48, power=29
[   10.000453] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=149, power=29
[   10.015451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=153, power=29
[   10.030452] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=157, power=29
[   10.045451] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=161, power=29
[   10.060452] xone-dongle 1-2:1.0: xone_mt76_evaluate_channels: channel=165, power=29
[   10.063410] xone-dongle 1-2:1.0: xone_mt76_init_channels: channel=165
[   11.136521] usbcore: registered new interface driver xone-dongle
[   86.102996] xone-dongle 1-2:1.0: xone_mt76_suspend_radio: suspended

This message seems to be critical (to be the best of my knowledge): xone-dongle 1-2:1.0: xone_mt76_suspend_radio: suspended

Any idea what is happening?

Best,

C.

pastaq commented 1 month ago

Sometimes the dongle needs to be removed and reinserted after startup or a suspend/resume cycle to work properly.

CorentinWicht commented 1 month ago

Sometimes the dongle needs to be removed and reinserted after startup or a suspend/resume cycle to work properly.

I tried that a few times already, also tried all my USB ports (front and back) and it doesn't change anything..

FYI I have updated the controller firmware thus the problem doesn't come from the controller not being up-to-date.

CorentinWicht commented 1 month ago

@pastaq Anything I can provide you with (i.e., logs, screenshots, etc.) to help debug that issue? I bought the official dongle specifically because the bluetooth connection was unreliable...

alkazar commented 1 month ago

You might have to post on the xone driver GitHub. We are not the developers of that software. However, I can tell you that I have been using the official dongle for years and it is working for me, for what that is worth.

alkazar commented 1 month ago

Is this the official dongle or some kind of a knock off?

CorentinWicht commented 1 month ago

You might have to post on the xone driver GitHub. We are not the developers of that software. However, I can tell you that I have been using the official dongle for years and it is working for me, for what that is worth.

Thanks very much for the advice, I will then try to reach them through their Discord.

Is this the official dongle or some kind of a knock off?

I believe it is the official one, though I ordered it from AliExpress as recommended by this comment https://github.com/ChimeraOS/chimeraos/issues/969#issuecomment-2267445676.

CorentinWicht commented 1 month ago

Seems as though I am not the only one with the same issue (from Xone Discord): image

EDIT:

This is the only solution I found so far: image They mention this PR: https://github.com/medusalix/xone/pull/45

I guess if I want to keep ChimeraOS frozen (on stable builds) and not risk breaking it, I am kinda stuck?

@alkazar don't know if you are also aware of this ? image https://aur.archlinux.org/packages/xone-dkms-git https://aur.archlinux.org/packages/xone-dkms

CorentinWicht commented 1 month ago

After reading tons of advices over Reddit, I have decided to buy the 8bitdo Ultimate C 2.4G controller and it works out-of-the-box.

As such, I really believe that there is a driver issue with the Microsoft dongle (be it official or not).

Overall, it would be great if you could provide a list of supporter controllers (in the same vein as you do with handheld devices on your official website).

Best,

C.