No internet connection
  1. Home
  2. General

Just bought a TinyPilot and the keyboard doesn't work at Bios with an Asus P6X58D-E motherboard

By Roberto Hradec @rhradec
    2021-11-04 18:48:04.373Z

    @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:

    • 4 replies
    1. 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.

      1. R
        In reply torhradec:
        Roberto Hradec @rhradec
          2021-11-04 20:45:54.221Z

          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-pikvm

          I think it's a good idea to apply those patches to TinyPilot usb_gadget drivers too!

          1. 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.

            1. RRoberto Hradec @rhradec
                2021-11-05 02:00:25.598Z

                Cool!! Thanks, but I ended up applying the patch myself, and re-building the whole usb-gadget modules and indeed, it worked!