[systemd-devel] Properly handling rngd's complex dependencies

Shea Levy shea at shealevy.com
Mon Nov 26 04:42:45 PST 2012


Hi Mantas,

Thanks for the advice. One question:

On 11/22/2012 12:49 PM, Mantas Mikulėnas wrote:
> On Thu, Nov 22, 2012 at 6:19 PM, Shea Levy <shea at shealevy.com> wrote:
>> Hi all,
>>
>> rngd currently supports three sources of randomness to increase the kernel's
>> entropy pool: The hwrng device, the trusted platform module device, and the
>> RdRand x86 instruction. We don't want to start the daemon when none of the
>> sources are available (as it will fail), but we want to start it as early as
>> possible after some source is available so that programs requiring
>> randomness have a good entropy pool available to them. Is there any way to
>> express the following start-up behavior: "If the cpu supports RdRand*, then
>> start rngd as soon as possible, otherwise start rngd as soon as either a
>> hwrng device or a tpm device comes online"?
> If I remember correctly, this can be done with udev rules... For CPUs,
> check if ENV{MODALIAS} contains the right feature

I'm not exactly sure how to do this, do you have any pointers on how I 
can parse ENV{MODALIAS} to get cpu features?

>   and add
> TAG+="systemd" and ENV{SYSTEMD_WANTS}+="rngd.service", which will make
> systemd start that service. Same for other device types.
>
> --
> Mantas Mikulėnas

Thanks,
Shea


More information about the systemd-devel mailing list