I often use FreeBSD (www.freebsd.org) based systems for development and have contributed changes to the system on and off over many years including kernel, ports collection and user programs. Recently I have spent more time working with USB devices and have found support for these devices to be less than desirable on FreeBSD. In this section of my site I am providing code that I have created to help drive some of the devices that I have encountered.
To aid the development and use of USB devices on FreeBSD I have contributed
a patch to the FreeBSD kernel usb/122819
that introduces a new quirks table to the kernel that can be dynamically
changed. To use the dymanic quirks table quirks are added to the system
environment using either
An example of a quirk is the one used for the
usb.quirk.0="0x10cf 0x5502 0xffff UHID_IGNORE"
and the Jam Panic Button:
usb.quirk.1="0x1130 0x0202 0xffff UHID_IGNORE"
The string contains the vendor id, followed by the product id, the revision and
the quirk required. A revision of 0xffff matches any revision.
Quirks added via
kenv are detected by calling a new ioctl
USB_SETDYNQUIRKS an example program
is included in the patch.
|Velleman K8055 USB Experiment Board||Vendor: 0x10cf
|Jam USB Panic Button||Vendor: 0x1130
|Dream Cheeky USB Pedometer||Vendor: 0x04f3