When I was buying a new laptop a few months ago, I was specifically looking for one that had a TPM built-in as those also include an RNG. Recent versions of rng-tools can make use of this RNG to (non-exclusively) seed /dev/random.
On a related note, I noticed recently that the BCM2835 SoC in my Raspberry Pi has an RNG as well. I've been considering using it (off-line) to generate private keys for SSL certificates issued by our private CA.
This comment in Linux's bcm2835-rng.c driver makes me wonder about the RNG:
/* the initial numbers generated are "less random" so will be discarded */
#define RNG_WARMUP_COUNT 0x40000
How was this magic value derived? Why are the initial (quarter million?) values "less random"? Where's a datasheet that describes this thing's operation?
On a related note, I noticed recently that the BCM2835 SoC in my Raspberry Pi has an RNG as well. I've been considering using it (off-line) to generate private keys for SSL certificates issued by our private CA.