The hardware is dead simple, 3 "TARGET" CMIO boards and 1 "Host" CM3/CMIO board with raspbian-lite (stretch) on it. The "target" cmio are left powered off until loaded with CM3, then turned on.
I'm using a UDEV rule on the "host" CM3/CMIO to automatically put the CM3 into block-device mode.
Code: Select all
ACTION=="add", ATTR{idVendor}=="0a5c", ATTR{product}=="BCM2710 Boot", RUN+="/usr/local/bin/rpiboot"
1. It's really slow for rpiboot to work through the udev rule. It can take minutes for all three CM3 to show up as block devices.
2. Sometimes it seems like a CM3 (or two) just refuses to enter block device mode. The only solution being power it down/up and try again.
3. Watch (htop, udavdm monitor) I can *see* the rule working but also multiple instances of rpiboot are running. My impression of rpiboot is it doesn't really handle that well.
I'd rather be passing/grabbing the device directly to rpiboot so each instance can 'know' which CM3 it should be talking to. This seems like it would be more deterministic.
Does anyone know if there is an rpiboot option to pass it a device path (as a string or something) ?