asus-grouper: no bluetooth keyboard suppport
Describe your issue
What's the expected behaviour?
Bluetooth keyboard can be connected as follows:
/etc/init.d/bluetooth start
bluetoothctl
> scan on
> pair xx:xx:xx:xx:xx:xx
> connect xx:xx:xx:xx:xx:xx
What's the current behaviour?
It shows up in scan but does never send key events.
How to reproduce your issue?
What device are you using?
asus-grouper
On what postmarketOS version did you encounter the issue?
-
edge ( master
branch) -
v21.06
On what environment did you encounter the issue?
N/A; I am using i3 but issue happens after chvt 2 on console too.
How did you get postmarketOS image?
-
from https://images.postmarketos.org -
I built it using pmbootstrap -
It was preinstalled on my device
What's the build date of the image? (in yyyy-mm-dd format)
2021-10-07
Additional information
Issue happens both with linux-postmarketos-grate
and linux-asus-grouper
.
Attached a btmon dump on the device (bad.btsnoop) and a btmon dump of using the same keyboard on a different machine (PC running Debian) where it works (good.btsnoop).
There are three L2CAP Connection Requests, one for PSM 17, one for PSM 19 (both work), and a third one on PSM 1 to which we receive no reply and time out after 20 seconds.
< ACL Data TX: Handle 12 flags 0x00 dlen 12 #44 [hci0] 7.340194
L2CAP: Connection Request (0x02) ident 6 len 4
PSM: 1 (0x0001)
Source CID: 66
...
> HCI Event: Disconnect Complete (0x05) plen 4 #47 [hci0] 27.389391
Status: Success (0x00)
Handle: 12
Reason: Connection Timeout (0x08)
On the good device, I get as response instead (and actually just 10ms later):
> ACL Data RX: Handle 256 flags 0x02 dlen 16 #50 [hci0] 5.989391
L2CAP: Connection Response (0x03) ident 6 len 8
Destination CID: 80
Source CID: 66
Result: Connection pending (0x0001)
Status: Authorization pending (0x0002)
> ACL Data RX: Handle 256 flags 0x02 dlen 16 #51 [hci0] 5.990643
L2CAP: Connection Response (0x03) ident 6 len 8
Destination CID: 80
Source CID: 66
Result: Connection successful (0x0000)
Status: No further information available (0x0000)
Suspicious log messages:
- bluetoothd: profiles/input/device.c:ioctl_is_connected() Can't get HIDP connection info
- Well, I thought this was a bad one, but it happens on the good machine too.
- bluetoothd: src/device.c:search_cb() 4F:03:00:67:85:11: error updating services: Operation timed out...
- Clear consequence of above 20 sec timeout
I already tried adding CONFIG_UHID
and the whole CONFIG*BT*
kitchen sink to the kernel; my current kernel config is attached.
config-postmarketos-grate.armv7
However, the uhid module does not get loaded when bluetoothing, and loading it manually does not fix anything either. Do I maybe need to change something in userspace to actually use it?