linux-surface icon indicating copy to clipboard operation
linux-surface copied to clipboard

Surface Pro 5 2017: bluetooth keyboard profile unavailable

Open a-andreyev opened this issue 2 months ago • 1 comments

Hi! My device is bluetooth clone of the surface keyboard, looks like this, works with desktop (vanilla arch) and android too:

Image

Probably Broadcom BCM20702a0 chipset, (usb:v0A5Cp4502d011B: Vendor 0a5c, Product 4502)

I'm having issues with linux-surface (6.17.1-arch1-1-surface) (also installed: bluez bluez-utils bluez-hid2hci linux-firmware-broadcom wireplumber)

[bluetoothctl]> connect XX:X:X:XX:XX:XX
Attempting to connect to XX:X:X:XX:XX:XX
[CHG] Device XX:X:X:XX:XX:XX Connected: yes
[CHG] Device XX:X:X:XX:XX:XX ServicesResolved: yes
Failed to connect: org.bluez.Error.BREDR.ProfileUnavailable No more profiles to connect to
[CHG] Device XX:X:X:XX:XX:XX ServicesResolved: no
# Other errors encountered include:
# Connection terminated by remote user
# Connection terminated by local host

What I've tried: /etc/bluetooth/input.conf: Added/uncommented UserspaceHID=true in the [General] section. /etc/bluetooth/main.conf: Ensured EnablePlugins = input was set in the [General] section, and experimented with FastConnectable = false. /etc/udev/rules.d/98-broadcom-keyboard.rules: Created a custom udev rule to force the device into HCI mode:

ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="0a5c", ENV{ID_MODEL_ID}=="4502", RUN+="/usr/lib/udev/hid2hci --method=broadcom --mode=hci"

/etc/udev/rules.d/99-bluetooth-power.rules: Added a rule to disable autosuspend for the parent Marvell controller (1286:204c), based on recommendations from https://github.com/linux-surface/linux-surface/issues/1178#issuecomment-1722837746 ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1286", ATTR{idProduct}=="204c", ATTR{power/control}="on", ATTR{power/autosuspend_delay_ms}="-1"

Added the kernel boot parameter mbtpci_init_speed=1 via refind_linux.conf to adjust the Marvell driver initialization speed.

No luck yet, wanted to share with others

a-andreyev avatar Dec 04 '25 23:12 a-andreyev

minor update: it looks like my device was misconfigured or something, I've tried SP6 (with linux-surface too) and it works

a-andreyev avatar Dec 14 '25 22:12 a-andreyev