0

I'm trying to connect a G7BTS Bluetooth remote/keyboard to my Raspberry Pi 4B running OSMC Linux (version 5.15.92). The device appears to connect, but no input is detected.

Here is what I did:

I connected using bluetoothctl

[bluetooth]# scan on
<....>
[NEW] Device XX:XX:XX:XX:XX:XX G7BTS
[bluetooth]# pair XX:XX:XX:XX:XX:XX
[G7BTS]# trust XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:X Trusted: yes
Changing XX:XX:XX:XX:XX:X trust succeeded
[G7BTS]# connect XX:XX:XX:XX:XX:XX                                                                                                                                                                               Attempting to connect to 36:36:05:E1:BE:42
Connection successful

I checked the input devices

The device doesn't show up under /dev/input/ or in /proc/bus/input/devices. Only my other, Logitech peripherals are listed.

osmc@osmc:~$ ls /dev/input/
by-id  by-path  event0  event1  mice  mouse0
osmc@osmc:~$ ls /dev/input/by-id/
usb-Logitech_USB_Receiver-if01-event-kbd  usb-Logitech_USB_Receiver-if01-event-mouse  usb-Logitech_USB_Receiver-if01-mouse

I also do not see the device in /proc/bus/input/devices (other Logitech devices are listed)


What I've tried so far:

  1. installed BlueZ packages
sudo apt-get install bluetooth bluez bluez-tools
  1. Loaded HID modules:
sudo modprobe hidp
sudo modprobe hid
  1. Disabled ERTM temporarily
sudo bash -c 'echo 1 > /sys/module/bluetooth/parameters/disable_ertm'
  1. Tested the remote on my PC (no issues)
  2. Updated the system
  3. Tested a bluetooth mouse on the Pi
  4. Removed the Logitech peripherals
  5. Used another USB bluetooth adapter
  6. Rebooted the system (multiple times)



Additional information

bluetooth device info:

[G7BTS]# show                                                                                                                                                                                                    Controller B8:27:EB:01:F0:6F (public)                                                                                                                                                                                    Name: osmc                                                                                                                                                                                                       Alias: osmc                                                                                                                                                                                                      Class: 0x000c0000
        Powered: yes
        Discoverable: no
        DiscoverableTimeout: 0x000000b4
        Pairable: yes
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
        UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v1D6Bp0246d053E
        Discovering: no
        Roles: central
        Roles: peripheral
Advertising Features:
        ActiveInstances: 0x00 (0)
        SupportedInstances: 0x05 (5)
        SupportedIncludes: tx-power
        SupportedIncludes: appearance
        SupportedIncludes: local-name

[G7BTS]# info XX:XX:XX:XX:XX:XX Device XX:XX:XX:XX:XX:XX (public) Name: G7BTS Alias: G7BTS Appearance: 0x03c1 Icon: input-keyboard Paired: yes Trusted: yes Blocked: no Connected: yes LegacyPairing: no

sudo journalctl -u bluetooth:

-- Journal begins at Tue 2024-11-05 20:20:18 CET, ends at Tue 2024-11-05 21:48:32 CET. --
Nov 05 20:20:20 osmc systemd[1]: Starting Bluetooth service...
Nov 05 20:20:20 osmc bluetoothd[461]: Bluetooth daemon 5.62
Nov 05 20:20:20 osmc systemd[1]: Started Bluetooth service.
Nov 05 20:20:20 osmc bluetoothd[461]: Starting SDP server
Nov 05 20:20:20 osmc bluetoothd[461]: Bluetooth management interface 1.21 initialized
Nov 05 20:20:20 osmc bluetoothd[461]: profiles/audio/avctp.c:avctp_server_socket() setsockopt(L2CAP_OPTIONS): Invalid argument (22)
Nov 05 20:20:20 osmc bluetoothd[461]: Endpoint registered: sender=:1.8 path=/org/bluez/hci0/A2DP/AAC/Source/1
Nov 05 20:20:20 osmc bluetoothd[461]: Endpoint registered: sender=:1.8 path=/org/bluez/hci0/A2DP/AAC/Source/2
Nov 05 20:20:20 osmc bluetoothd[461]: Endpoint registered: sender=:1.8 path=/org/bluez/hci0/A2DP/AAC/Sink/1
Nov 05 20:20:20 osmc bluetoothd[461]: Endpoint registered: sender=:1.8 path=/org/bluez/hci0/A2DP/AAC/Sink/2
Nov 05 20:20:20 osmc bluetoothd[461]: Endpoint registered: sender=:1.8 path=/org/bluez/hci0/A2DP/SBC/Source/1
Nov 05 20:20:20 osmc bluetoothd[461]: Endpoint registered: sender=:1.8 path=/org/bluez/hci0/A2DP/SBC/Source/2
Nov 05 20:20:20 osmc bluetoothd[461]: Endpoint registered: sender=:1.8 path=/org/bluez/hci0/A2DP/SBC/Sink/1
Nov 05 20:20:20 osmc bluetoothd[461]: Endpoint registered: sender=:1.8 path=/org/bluez/hci0/A2DP/SBC/Sink/2
Nov 05 20:21:06 osmc bluetoothd[461]: src/device.c:load_gatt_db() No cache for XX:XX:XX:XX:XX:XX
Nov 05 21:08:04 osmc bluetoothd[461]: src/device.c:search_cb() XX:XX:XX:XX:XX:XX: error updating services: Host is down (112)
Nov 05 21:13:21 osmc bluetoothd[461]: src/device.c:load_gatt_db() No cache for XX:XX:XX:XX:XX:XX
osmc@osmc:~$ sudo journalctl -u bluetoothctl
-- Journal begins at Tue 2024-11-05 20:20:18 CET, ends at Tue 2024-11-05 21:51:29 CET. --




Why is my G7BTS Bluetooth keyboard not recognized as an input device? Are there additional steps that can make it work? Can I force it to become a HID device?

Thank you in advance, any help is appreciated.

1 Answers1

0

Upgrading BlueZ Fixed the Issue

The issue was Resolved by upgrading to a newer version of bluez. Apt's version was 5.64, and by switching to 5.79 from kernel.org fixed the problem.

Steps to build and install the new version of BlueZ

  1. Remove the old version
sudo apt purge bluez
  1. Install the dependancies
sudo apt install libdbus-1-dev libudev-dev libical-dev libreadline-dev libell-dev libglib2.0-dev python3-docutils

and build tools if not present already

sudo apt install build-essential
  1. Download and unpack bluez from Kernel.org
wget https://www.kernel.org/pub/linux/bluetooth/bluez-<version>.tar.xz
tar xvf bluez-<version>.tar.xz
cd bluez-<version>
  1. Build and install
./configure --prefix=/usr \
            --mandir=/usr/share/man \
            --sysconfdir=/etc \
            --localstatedir=/var \
make
sudo make install

Then restart your system and try to connect the keyboard. In my case it worked flawlessly.