Hi everyone,
I'm trying to use an 8BitDo Micro controller in Keyboard Mode (K) as a remote for my legacy PocketBook 912 (Linux kernel 2.6.29).
I have managed to set up a local BlueZ 3.36 environment in a standalone directory on the SD card (/mnt/ext1/rootdir/opt/). I am accessing the device via SSH and a local terminal (PBTerm).
The progress so far:
1. Discovery works: hcitool scan successfully finds the gamepad: E4:17

8:6B:AB

B 8BitDo Micro gamepad.
2. Adapter status: hciconfig -a shows the Broadcom (BT 2.1) adapter as UP RUNNING PSCAN ISCAN AUTH.
3. Binaries: I’m using hidd and rfcomm from the Optware archive (ARMv6), running them via the system linker /lib/ld-linux.so.3 to bypass noexec on FAT32.
The Problem:
Whenever I try to initiate a connection, I hit a security/permissions wall:
- hidd --connect [MAC] returns: Can't get device information: Permission denied.
- rfcomm connect 0 [MAC] 1 returns: Can't connect RFCOMM socket: Permission denied.
Sometimes a system PIN prompt appears on the E-ink screen, but "0000" or "1234" fails with an "Invalid exchange" error in the console.
My questions for the experts:
1. Since I'm logged in as the sreader user, it seems I lack the permissions to create Bluetooth sockets. Is there a known way to gain temporary root access on the PB912 (Firmware 2.1.x) to run hidd as a superuser?
2. Where does the PocketBook firmware store linkkeys? I want to manually inject the gamepad's MAC address as a "trusted" device to bypass the PIN agent. There is no /var/lib/bluetooth or /etc/bluetooth directory available to the sreader user.
3. Is there a way to kill the native pbbtservice (or equivalent) to free up hci0 for my custom BlueZ tools?
I’ve put a lot of effort into making the Micro work with this vintage device and would appreciate any guidance from the community's "old guard"!
Full dmesg and hciconfig logs are available upon request.
Code:
/bin/ash: can't access tty; job control turned off
BusyBox v1.16.1 (2010-10-11 18:29:44 EEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
$ cd /mnt/ext1/rootdir/
$ export LD_LIBRARY_PATH=/mnt/ext1/rootdir/opt/lib:$LD_LIBRARY_PATH
$ ./opt/bin/hcitool scan
Scanning ...
E4:17:D8:6B:AB:DB 8BitDo Micro gamepad
9E:64:03:5E:CF:8F M01BT
$ /lib/ld-linux.so.3 /mnt/ext1/rootdir/opt/bin/hidd --connect E4:17:D8:6B:AB:DB
Can't get device information: Permission denied
$ /lib/ld-linux.so.3 /mnt/ext1/rootdir/opt/bin/hidd --search --connect E4:17:D8:6B:AB:DB
Can't get device information: Permission denied
$ /lib/ld-linux.so.3 /mnt/ext1/rootdir/opt/bin/rfcomm bind 0 E4:17:D8:6B:AB:DB 1
Can't create device: Operation not permitted
$ /lib/ld-linux.so.3 /mnt/ext1/rootdir/opt/bin/rfcomm connect 0 E4:17:D8:6B:AB:DB 1
Can't connect RFCOMM socket: Permission denied
$ /lib/ld-linux.so.3 /mnt/ext1/rootdir/opt/bin/rfcomm connect 0 E4:17:D8:6B:AB:DB 1
Can't connect RFCOMM socket: Permission denied
$ LD_LIBRARY_PATH=/mnt/ext1/rootdir/opt/lib /lib/ld-linux.so.3 /mnt/ext1/rootdir/opt/bin/rfcomm connect 0 E4:17:D8:6B:AB:DB 1
Can't connect RFCOMM socket: Permission denied
$