The uhidd services

Old behaviour under Mewburn rc

In response to a rule in /usr/local/etc/devd/uhidd-devd.conf, the Plug and Play manager starts individual uhidd services on demand as ugen devices appear.

The rc system has a uhidd_enabled flag, that causes autostart of uhidd services on every ugen device that lives in /dev at that point in the bootstrap.

How this system handles things

The external formats import subsystem generates service bundles from uhidd@ugen0.0 to uhidd@ugen9.9. If this is not enough, one can simply create more.

Each of these launches a uhidd dæmon against the given ugen device, and is individually startable, parameterized via its private environment directory, and enabled just like any other service. When enabled, they are wanted by the uhidd target.

In response to a rule in /usr/local/etc/devd/uhidd-nosh.conf, the Plug and Play manager starts individual uhidd services on demand as ugen devices appear, by running system-control start uhidd@device.

The uhidd target can itself be enabled, which will result in all enabled uhidd@device services being automatically started at bootstrap. This is the equivalent of uhidd_enabled="YES" in the old rc system, and indeed what directly results from running rcctl enable uhidd.

The uhidd target can be manually started with system-control start uhidd. This is the equivalent of starting the non-specific uhidd service in the old rc system, and indeed what directly results from running service uhidd start.