How can I know whether my machine have RNG hardware support?
There are two likely types of "real" hardware RNG: a CPU based one, and a chipset or PCI based one. (There are also a few USB hardware RNGs, but I suspect you'd have noticed one of those ;-)
The following is Linux specific.
For CPU based ones, you can check /proc/cpuinfo
for clues, assuming your kernel is new enough to detect them. For Intel CPUs the flag is rdrand
, more info here: https://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean
For chipset ones, if you have CONFIG_HW_RANDOM
enabled in your kernel and the per-vendor support CONFIG_HW_RANDOM_INTEL
..._AMD
etc. then your boot messages should indicate if any were found (e.g. "Intel 82802 RNG detected"). If they are present as modules you can try (modprobe intel-rng
) to see if it loads, "No such device" indicates no detected hardware.
Not all drivers consistently print "RNG detected" or "not detected", so you may end up reading the sources (/drivers/char/hw_random/
directory of the kernel source).
For others, you can check lspci -v
to see what's recognised.