My keyboard, a Majestouch Convertible 2, has Bluetooth capabilities such that it can connect up to 4 devices. My primary driver and the 1st device the keyboard is connected to is my desktop, running Arch Linux. I will eventually have a small partition dedicated to Windows, for some proprietary software that does not run well with Wine.

To switch between the two, I will be dual booting. At boot, however, the keyboard does not connect to anything. I have read that this is due to Bluetooth capability not being possible until after the display manager has loaded.

Desired outcome

I would like the keyboard to take 3 Bluetooth states; Arch, GRUB, and Windows. The first and last of these is trivial. The second state I was envisioning completing by using the Raspberry Pi Zero WH (herein rpi0).

Thus, when the keyboard is connected to the rpi0, which itself is connected to the PC, the computer instead believes this to be a USB keyboard, allowing keypresses to be recognised at boot, and therefore to switch operating systems in the GRUB menu.

A table to illustrate the desired outcome:

Keyboard Connection Bridge Connection PC
Majestouch Convertible 2 (Bluetooth state 2) Bluetooth rpi0 USB Arch Linux

What has been tried

Firstly, connecting the keyboard directly to the PC with its supplied USB does work and register my keypresses. For the purposes of this project, however, I would like all connections to be completed over

After flashing the OS to my SD and running the rpi0 for the first time, I connected my keyboard to the device via Bluetooth, and this does work. So Bluetooth state 2 is currently paired and trusted by the rpi0 and connect without issue.

To test this, I have connected the rpi0 to a screen.

I have purchased a proprietary plug for the rpi0 to power itself, and I have also powered the rpi0 by using the other USB port (that is, not the power port) and connecting directly to the PC. Both of these methods supply power to the rpi0 and allow it to boot.

Making my system recognise the rpi0 as a USB keyboard (or a driver for one) does not work, unfortunately. I have also followed the repository here although I appreciate it is quite old and does not, for instance, use systemd units, amongst other things. This too does not work, it seems.

Other questions mentioning a similar issue seem to refer back to the guide here, though this was written in 2016 and its information seems somewhat out of date.

Core issue

So I am wondering, given the above, how I might be able to configure and use my rpi0 such that it is recognised by my system as a USB keyboard for the purposes of navigating the GRUB menu.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.