777a2c71d3
Cross-referenced with Linux 7.1 drivers/usb/core/hub.c port event handling and drivers/usb/core/driver.c device-driver binding. New daemon (216 lines) that watches USB controllers for device attachment/detachment and auto-spawns the appropriate class driver. Architecture: - Polls /scheme/usb/ every 1000ms for controller directories - For each controller, enumerates root hub ports - Reads device descriptors (class/subclass/protocol) via XhciClientHandle - Maps class to driver binary: HID(0x03)→usbhidd, Storage(0x08)→usbscsid, Hub(0x09)→usbhubd - Spawns driver with <scheme> <port> <protocol> arguments - Tracks spawned Child processes in HashMap<port_path, TrackedDevice> - Detects disconnection (descriptor read fails) → kills driver + removes from tracking - Detects driver exit (try_wait) → removes from tracking - Skips hub interfaces (usbhubd handles its own children) Config: - Added to redbear-mini.toml (inherited by redbear-full) - Auto-started via 02_usb_hotplug.service (oneshot_async, after base.target and pcid-spawner) Driver map supports: HID (0x03), Mass Storage (0x08 with BOT protocol), Hub (0x09). Additional class drivers extendable via DRIVER_MAP constant.