DragonFly BSD

How to use UHIDD

Introduction

The purpose of this page is to show how UHIDD can be used in the latest 6.5-DEVELOPMENT branch of DragonFly, commit 088552 is recommended but only ec3f0bf is needed, the release branch of DraonFly 6.5+ will have support by default. UHIDD is a system service that allows for mouse and keyboard support for generic USB HID devices that aren't directly supported by a kernel driver.

Installation

Currently UHIDD isn't in the ports tree, you have to download the source code and compile it, thankfully all that's needed is a simple make and make install

The code is located: https://gitlab.com/YusufAbdulHalim/uhidd

The port is quite minimal from the freebsd original, and it works 1:1 with the freebsd version.

The service can be started regularly like this(IIRC)

service uhidd start && service uhidd stop && service uhidd restart

Or in the terminal as: uhidd -kmohs /dev/ugen[ID]

Please note that if you want it in rc you must add the uhidd_flags equal to whatever flags you specified and the uhidd_enable set to YES

The -u option can be used to remove ALL input kernel devices from the USB device, this comes with the issue of the fact that libinput/evdev probably wont be available with UHIDD only!

Required Kernel Drivers

You must load cuse.ko as well as vkbd.ko(if you want keyboard emulation)

Run this: kldload cuse.ko && kldload vkbd.ko

to make sure its loaded, if you don't have them, you may be on a earlier version of DragonFly without support.

Other resources

You can check the man page for more information, it includes information like keymaping(which you probably want to do) and configuration bits. The uhidd.conf man page describes how to configure it and the uhidd man page describes the actual command.