Quirk system update
Detail:
A combination of 3 fixes.
- Ensure correct null string return when the quirk for faulty strings is activated. This eliminates a potential abort.
- Simplify the handling of usbd_get_string() such that RiscOS specificversion is not needed.
- Improve the handling of the UBQuirk command to apply an added quirk to any devices already enumarated. Provide a save option to make the use of anadded quirk repeatable.
The USBQuirk command enables one to add or delete 'quirks' for specific misbehaving devices that are not included in the builtin quirks.
This fixes the cause of some potential null pointer issues and extends the quirk add and remove commands to also update the quirk entry for any matching devices already enumerated.
It adds an additional command, 'USBQuirk s', which will save out an obey file with any added quirk settings to be run very early in the disk boot sequence to maximise the likelyhood that the setting will be in place before the qualifying device is enumerated, even if it is already plugged in at power up.
This last command is particularly useful for e.g. certain USB KVM devices that are in use.
One particular one is a TESmart 4 port KVM with vendor 0xc45 and product 0x7403. This device does not supply usable vendor and product text strings, so 'USBQuirk a c45 7403 1 8' will add a quirk for this device to ensure it doesn't try to return these invalid strings.
Running the 'USBQuirk s' command will then save this particular command to an obey file in Boot:Choices.Boot.Predesk, if there, to be run early enough in the boot sequence that most probably the quirk arrives before the device can be enumerated.
Admin: