Just bought a TinyPilot and the keyboard doesn't work at Bios with an Asus P6X58D-E motherboard
@Michael...
We just bought a brand new TinyPilot at our studio for me to be able to do remote booting tests, change bios parameters, etc. Our studio is located in Madrid - Spain, and I'm in Vancouver - Canada, so I need a kvm over ip solution. After everything was properly installed, it seems Tinypilot keyboard doesn't work during bios or after windows boots up. The weirdest thing though is the Mouse works just fine in Windows, but the keyboard doesn't. The keyboard does work fine if we boot in Linux though.
The biggest issue here is the lack of keyboard during Bios, which was the main reason we bought TinyPilot! (without keyboard during bios, we have no use for TinyPilot at all!!)
I've found in this forum (and also in PiKVM forum) that the virtual mass storage device can cause trouble with the keyboard for some hardware.
It seems some people had success using an older build of TinyPilot without the virtual mass storage, but I couldn't find the link to download the older build.
Could you send me the older build without the virtual mass storage for me to give it a try?
The motherboard of the controlled PC that doesn't recognize the keyboard during bios or in Windows is an Asus P6X58D-E, by the way:
- Michael Lynch @michael2021-11-04 19:43:36.199Z
Thanks for reporting this!
As a lighter weight solution, you can try replacing only the file that enables the virtual storage functionality.
Can you try SSHing in to your TinyPilot and running the following commands?
curl https://gist.githubusercontent.com/mtlynch/aa12c1899ace8688ed952764853e13db/raw/6eb3cc0fbc20cd335d9c992f1efbe1433a1555d4/init-usb-gadget \ | sudo tee /opt/tinypilot-privileged/init-usb-gadget && \ sudo service usb-gadget restart
That will disable virtual storage. Updating to the next version will revert your changes, but by that point, we'll have a cleaner way for you to disable it without having to overwrite source files.
- RIn reply torhradec⬆:Roberto Hradec @rhradec
btw, I've found a couple of patches in PiKVM that add more compatibility to the keyboard emulation code in usb_gadget modules, specially for BIOS/UEFI:
https://github.com/pikvm/packages/tree/f94d1ae63d961abbf1c16df5777dd8e079692f46/packages/linux-raspberrypi4-pikvmI think it's a good idea to apply those patches to TinyPilot usb_gadget drivers too!
- Michael Lynch @michael2021-11-04 21:08:16.195Z
Thanks! We're actually doing that as well.
I've only ever heard of that workaround affecting OS X systems, but if you'd like to try it, you can add the following line to
/opt/tinpilot-privileged/init-usb-gadget
KEYBOARD_FUNCTIONS_DIR="functions/hid.keyboard" mkdir -p "$KEYBOARD_FUNCTIONS_DIR" echo 1 > "${KEYBOARD_FUNCTIONS_DIR}/no_out_endpoint" # <<< add this line
And then run the following commands:
wget https://github.com/tiny-pilot/hid-backport/raw/master/bin/usb_f_hid.ko sudo cp --backup usb_f_hid.ko "/lib/modules/$(uname -r)/kernel/drivers/usb/gadget/function/usb_f_hid.ko" sudo reboot
In the next release, the new kernel module will install by default.
- RRoberto Hradec @rhradec
Cool!! Thanks, but I ended up applying the patch myself, and re-building the whole usb-gadget modules and indeed, it worked!