8Bitdo pro 2 controller fails to connect after bluez update

Hey everyone didn’t get a change to report this but after a update bluez/bluetooth update my 8bit do pro 2 controller is no longer able to connect and gives me the error Connection Failed: br-connection-profile-unavailable

I tried to connect via bluetoothctl also and it fail to connect

Seems like this is going on since September and bluez upstream knows about. What I have been reading was a little dated and people was downgrading the 3 bluez packages but I do not know if there is a fix in any of our branches or not yet. Seems that bluez-git in AUR may fix it but do not know for sure.

https://bbs.archlinux.org/viewtopic.php?id=288390
https://github.com/bluez/bluez/issues/594

Added:

Something else I ran across with your device you may or may not know is there now is proper support for your device in 6.3+ kernels.

https://www.phoronix.com/news/Linux-6.3-8BitDo-Pro-2-Wired

1 Like

Hmm I see but what I am interested to know is why the issue is happening on Manjaro Arm64 on the pi 4 but not on the Manjaro x64 installations, I am using kernel 6.6.7-1-MANJARO on my PC and having no issues :thinking:

Is there anything we can do?

If you are on the same repo branch and the installs are identical then the code for the kernel / bluetooth should be the same. The only thing I can think of is compare the 2 /etc/bluetooth/main.conf files.

ADDED:

A couple of more things I thought of is the rpi kernels now are used to probe and load the bluetooth firmware. There is no need for any bluetooth config in config.txt anymore unless you want it turned off. Also if you still have the old attach-bluetooth.service loading disable it.

Added 12-21-2023:

@gameslayer9999 bluetooth upgraded on unstable today.

I tried copying the config from my laptop to my pi 4 and renamed the old one to main.conf.old, restarted the bluetooth service and still the same issue tho it made things more broken when I did that so I reverted back to the default main.conf, this is also a fresh install from when I made this issue post and I noticed after the update after the fresh install it broke so idk what is broken package wise on the Arm64 Manjaro side compared to the x64 packages. Still works with a Xbox One X controller.

Is the bluetooth firmware in a package or in the kernel?

Looks like they supply updates.

https://www.reddit.com/r/linux_gaming/comments/ob5it0/how_to_update_your_8bitdo_gamepad_without_using/

Yeah I think I already heard about this tho this sadly doesn’t have anything to do with the issue here as it works fine on Manjaro x64 and suddenly stopped working on Manjaro Arm64 after a update on the Manjaro Arm64 repo

I have no clue. My only thought is maybe try out retropie and see if it works then try to find some config diff’s.

ADDED:

@gameslayer9999 Can you boot up on your x86 with out your controller attached then and run lsmod then attach you controller and run lsmod and get a list of modules that load up. Then do the same with your rpi. I want to see if somehow some modules got disabled in the kernel.

https://gitlab.manjaro.org/manjaro-arm/packages/core/linux-rpi4/-/blob/master/config

Sure, I’ll get back to you and give you a output log

Here is the output on my Manjaro X64 desktop

lsmod                                                            ✔ 
Module                  Size  Used by
xt_MASQUERADE          16384  2
xt_mark                12288  2
nft_compat             24576  4
nft_chain_nat          12288  2
nf_nat                 65536  2 nft_chain_nat,xt_MASQUERADE
nf_conntrack          208896  2 nf_nat,xt_MASQUERADE
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         12288  1 nf_conntrack
xone_gip_headset       20480  0
xone_wired             20480  0
xone_gip               49152  2 xone_wired,xone_gip_headset
hid_xpadneo            36864  0
ff_memless             20480  1 hid_xpadneo
hidp                   36864  1
rfcomm                102400  16
snd_seq_dummy          12288  0
snd_hrtimer            12288  1
snd_seq               131072  7 snd_seq_dummy
snd_seq_device         16384  1 snd_seq
tun                    69632  2
nf_tables             368640  87 nft_compat,nft_chain_nat
libcrc32c              12288  3 nf_conntrack,nf_nat,nf_tables
nfnetlink              20480  2 nft_compat,nf_tables
qrtr                   57344  4
cmac                   12288  3
algif_hash             12288  1
algif_skcipher         12288  1
af_alg                 36864  6 algif_hash,algif_skcipher
bnep                   36864  2
nct6775                40960  0
nct6775_core           81920  1 nct6775
hwmon_vid              12288  1 nct6775
intel_rapl_msr         20480  0
intel_rapl_common      40960  1 intel_rapl_msr
vfat                   20480  1
fat                   106496  1 vfat
amdgpu              12435456  95
edac_mce_amd           53248  0
snd_hda_codec_realtek   196608  1
kvm_amd               204800  0
snd_hda_codec_generic   114688  1 snd_hda_codec_realtek
kvm                  1376256  1 kvm_amd
ledtrig_audio          12288  1 snd_hda_codec_generic
snd_hda_codec_hdmi     94208  1
irqbypass              12288  1 kvm
drm_exec               12288  1 amdgpu
crct10dif_pclmul       12288  1
snd_hda_intel          65536  2
crc32_pclmul           12288  0
amdxcp                 12288  1 amdgpu
polyval_clmulni        12288  0
snd_intel_dspcfg       40960  1 snd_hda_intel
drm_buddy              20480  1 amdgpu
polyval_generic        12288  1 polyval_clmulni
gf128mul               16384  1 polyval_generic
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
gpu_sched              57344  1 amdgpu
ghash_clmulni_intel    16384  0
i2c_algo_bit           20480  1 amdgpu
snd_hda_codec         225280  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
btusb                  86016  0
sha512_ssse3           53248  0
drm_suballoc_helper    12288  1 amdgpu
wl                   6512640  0
snd_hda_core          151552  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
btrtl                  32768  1 btusb
sha256_ssse3           32768  0
drm_ttm_helper         12288  1 amdgpu
snd_hwdep              20480  1 snd_hda_codec
btintel                57344  1 btusb
sha1_ssse3             32768  0
ttm                   110592  2 amdgpu,drm_ttm_helper
aesni_intel           360448  4
btbcm                  24576  1 btusb
r8169                 114688  0
snd_pcm               204800  5 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,xone_gip_headset
ppdev                  24576  0
btmtk                  12288  1 btusb
drm_display_helper    229376  1 amdgpu
crypto_simd            16384  1 aesni_intel
snd_timer              53248  3 snd_seq,snd_hrtimer,snd_pcm
realtek                40960  1
wmi_bmof               12288  0
cryptd                 28672  3 crypto_simd,ghash_clmulni_intel
bluetooth            1114112  49 btrtl,hidp,btmtk,btintel,btbcm,bnep,btusb,rfcomm
mdio_devres            12288  1 r8169
cec                    86016  1 drm_display_helper
sp5100_tco             20480  0
snd                   155648  17 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,xone_gip_headset
cfg80211             1339392  1 wl
video                  77824  1 amdgpu
rapl                   20480  0
libphy                229376  3 r8169,mdio_devres,realtek
pcspkr                 12288  0
acpi_cpufreq           32768  0
ccp                   159744  1 kvm_amd
soundcore              16384  1 snd
ecdh_generic           16384  2 bluetooth
i2c_piix4              32768  0
zenpower               16384  0
rfkill                 40960  7 bluetooth,cfg80211
parport_pc             77824  0
joydev                 24576  0
gpio_amdpt             16384  0
mousedev               24576  0
parport                86016  2 parport_pc,ppdev
wmi                    45056  2 video,wmi_bmof
gpio_generic           20480  1 gpio_amdpt
mac_hid                12288  0
uinput                 20480  0
i2c_dev                28672  0
crypto_user            20480  0
dm_mod                225280  0
fuse                  208896  7
loop                   40960  0
bpf_preload            20480  0
ip_tables              36864  0
x_tables               69632  4 nft_compat,ip_tables,xt_MASQUERADE,xt_mark
ext4                 1179648  3
crc32c_generic         12288  0
crc16                  12288  2 bluetooth,ext4
mbcache                16384  1 ext4
jbd2                  221184  1 ext4
usbhid                 77824  0
nvme                   65536  4
crc32c_intel           16384  7
nvme_core             245760  5 nvme
xhci_pci               28672  0
xhci_pci_renesas       24576  1 xhci_pci
nvme_common            24576  1 nvme_core

I can’t actually connect the controller to my pi 4 but here is the log for the Raspberry pi 4

lsmod
Module                  Size  Used by
algif_hash             16384  1
algif_skcipher         16384  1
af_alg                 28672  6 algif_hash,algif_skcipher
joydev                 28672  0
rfcomm                 49152  16
snd_seq_dummy          16384  0
snd_hrtimer            16384  1
snd_seq                77824  7 snd_seq_dummy
snd_seq_device         16384  1 snd_seq
cmac                   16384  3
aes_arm64              16384  3
aes_generic            36864  1 aes_arm64
bnep                   24576  2
zram                   24576  2
zsmalloc               28672  1 zram
hci_uart               45056  0
btbcm                  24576  1 hci_uart
brcmfmac              327680  0
bluetooth             585728  37 hci_uart,btbcm,bnep,rfcomm
binfmt_misc            20480  1
brcmutil               24576  1 brcmfmac
ecdh_generic           16384  2 bluetooth
ecc                    36864  1 ecdh_generic
libaes                 16384  3 aes_arm64,bluetooth,aes_generic
bcm2835_v4l2           45056  0
bcm2835_codec          49152  0
rpivid_hevc            49152  0
bcm2835_isp            28672  0
v4l2_mem2mem           40960  2 bcm2835_codec,rpivid_hevc
bcm2835_mmal_vchiq     36864  3 bcm2835_codec,bcm2835_v4l2,bcm2835_isp
raspberrypi_hwmon      16384  0
videobuf2_vmalloc      16384  1 bcm2835_v4l2
videobuf2_dma_contig    20480  3 bcm2835_codec,rpivid_hevc,bcm2835_isp
i2c_brcmstb            16384  0
videobuf2_memops       16384  2 videobuf2_vmalloc,videobuf2_dma_contig
i2c_bcm2835            20480  1
videobuf2_v4l2         32768  5 bcm2835_codec,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,bcm2835_isp
videobuf2_common       69632  9 bcm2835_codec,videobuf2_vmalloc,videobuf2_dma_contig,videobuf2_v4l2,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,videobuf2_memops,bcm2835_isp
videodev              274432  7 bcm2835_codec,videobuf2_v4l2,bcm2835_v4l2,videobuf2_common,rpivid_hevc,v4l2_mem2mem,bcm2835_isp
vc_sm_cma              32768  2 bcm2835_mmal_vchiq,bcm2835_isp
mc                     61440  7 videodev,bcm2835_codec,videobuf2_v4l2,videobuf2_common,rpivid_hevc,v4l2_mem2mem,bcm2835_isp
cfg80211              942080  1 brcmfmac
raspberrypi_gpiomem    16384  0
snd_bcm2835            28672  1
rfkill                 32768  7 bluetooth,cfg80211
nvmem_rmem             16384  0
uio_pdrv_genirq        16384  0
uio                    24576  1 uio_pdrv_genirq
sch_fq_codel           20480  7
i2c_bcm2708            16384  0
i2c_dev                20480  2
crypto_user            16384  0
fuse                  139264  3
dm_mod                147456  0
ip_tables              32768  0
x_tables               49152  1 ip_tables
ipv6                  561152  78
v3d                    90112  7
drm_shmem_helper       24576  1 v3d
gpu_sched              49152  1 v3d
vc4                   364544  17
snd_soc_hdmi_codec     20480  2
snd_soc_core          274432  2 vc4,snd_soc_hdmi_codec
snd_compress           20480  1 snd_soc_core
snd_pcm_dmaengine      20480  1 snd_soc_core
snd_pcm               139264  5 snd_bcm2835,snd_soc_hdmi_codec,snd_compress,snd_soc_core,snd_pcm_dmaengine
snd_timer              36864  3 snd_seq,snd_hrtimer,snd_pcm
snd                   110592  14 snd_seq,snd_seq_device,snd_bcm2835,snd_soc_hdmi_codec,snd_timer,snd_compress,snd_soc_core,snd_pcm
drm_display_helper     16384  1 vc4
drm_dma_helper         20480  1 vc4
drm_kms_helper        204800  4 drm_dma_helper,vc4
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
cec                    77824  1 vc4
drm                   581632  20 gpu_sched,drm_kms_helper,drm_dma_helper,v3d,vc4,drm_shmem_helper,drm_display_helper
drm_panel_orientation_quirks    28672  1 drm
backlight              24576  1 drm

What I need is to know what new modules gets loaded after plugging in your controller on your x86. Compare lsmod with before and after plugging in your controller.

I’m not plugging it in I’m trying to connect it via Bluetooth

I have to have the new modules loaded after the device gets activated.

Oh I see, is there anything I need to do?

Great news the latest update for bluez and bluez-utils fixed the connecting/paring issue but I have some other bad news, while it connects it has the buttons mapped incorrectly on games or won’t work at all on certain games.