http://yaird.alioth.debian.org/yaird.html
I know Barry generates Puppy's by hand, but I thought it interesting anyway, and maybe some techniques might be derived from it. For example:
On the other hand, maybe all this stuff is old hat!It turns out that the "load modules for every component in the sysfs path" approach is not always sufficient: sometimes you have to load siblings as well. As an example, consider a combined EHCI/UHCI USB controller on a single chip. The same ports can show up as EHCI or UHCI devices, different PCI functions in the same PCI slot, with different sysfs directories, depending on what kind of hardware is connected. Purely following the sysfs path, we would only need to load the EHCI driver, but it appears that on this kind of chip, EHCI devices are not reliably detected unless the UHCI driver is loaded as well. For this reason, we extend the algorithm with a rule: "for PCI devices, load modules for every function in the PCI slot".
That's actually a bit much: it would load all of ALSA if you have a combined ISA/IDE/USB/Multimedia chipset. So we limit the above to those PCI functions that provide USB ports.