Features
-
GET /usb/deviceson the Lager Box enumerates every USB device on the bus from sysfs (vendor/product id, serial, product, manufacturer, bus/dev numbers, speed) with optionalvid/pid/serialfilters. The scan is a few milliseconds and takes no exclusive device access, so it is safe to poll while waiting for a DUT to re-enumerate after a hub power-cycle or DFU detach. Consumed bylager-rsasusb_devices(). -
POST /usb/dfuon the Lager Box runsdfu-utilfor USB-DFU flashing:list,download(base64 firmware, with optional vid:pid / serial / alt / DfuSe address / reset), anddetach. A missing binary returns a clear install hint (lager box-config apt add dfu-util). Consumed bylager-rsasdfu().
Improvements
-
USB hub drivers cache discovery metadata per physical hub. Each
Acroname or YKUSH operation previously re-ran a full device discovery
scan. The drivers now cache the discovery result — the hub’s link
specification and hub class for Acroname, the resolved HID device path
for YKUSH — and connect directly from it, while still releasing the hub
after every operation so other processes (for example a
lager pythontest) can claim it. This removes redundant discovery scans. It does not restore the ~80ms hub-port timings seen before 0.32.1: measured on a USBHub3p, a hub-port operation costs ~2.1s, of which ~1.8s is the per-operation disconnect required to leave the hub unclaimed and ~0.3s is discovery. Where the hub class is identified correctly on the first attempt, the cache saves no measurable time.

