This option will make bbctl wait before exiting until the seedd(1) QA checking reports that at least passbytes of good entropy have been obtained from the given device. It will check for that every retry milliseconds, waiting for a maximum of timeout milliseconds before failing.
The device is a QA test identifier as reported by --scan, and must be provided, as must the expected passbytes count. The retry time is optional, and if not specified it will default to 1000 milliseconds. If the timeout is 0 (or not explicitly passed), then this will wait for an unbounded amount of time for the requested condition to occur.
The passbytes, retry, and timeout parameters may be suffixed with an SI multiplier (e.g. k, M, G) as a convenience, so a timeout of 30k would wait for 30 seconds.
This option may be passed multiple times to wait for multiple devices, and the given conditions for each of them will be tested for in the order that they are specified on the command line. i.e. Later conditions will not be tested for at all until all prior ones have been met, and the timeout clock for each test only begins after the previous test has successfully completed.
When all required conditions pass, bbctl will report success with an exit code of 0. If a timeout is exceeded, or any other error occurs which means the test cannot be successfully completed (like passing a device which does not exist, or querying a --control-socket which no process provides), then a non-zero exit code will be returned.
This option mostly exists to make it possible to delay or even prevent other services from starting until a sufficient amount of entropy has been obtained to feel comfortable that they can operate securely or as intended. See the notes on BOOT SEQUENCING in seedd(1) for more details on that. It may be used for other purposes too, but note that passbytes is an absolute measure of the number of good bytes seen since seedd was started, it is not relative to the number that were obtained prior to executing this request.