[systemd-devel] systemd inquiry

Mark Hounschell markh at compro.net
Wed Apr 11 12:41:19 PDT 2012


On 04/10/2012 09:10 AM, Kay Sievers wrote:
> On Tue, Apr 10, 2012 at 14:36, Mark Hounschell<markh at compro.net>  wrote:
>
>> I am having another issue with an out of kernel "GPL" device driver not
>> being available "on time" so to say. When the kernel discovers this pci card
>> it loads it's kernel module and sets up the card for use. This takes around
>> 15 seconds per card and there is usually 2-3 of them. When the card is up,
>> running, and ready, the kernel module notifies udev who in turn executes a
>> small script that creates 30 or so different device nodes for use with the
>> card.
>
> A bit unrelated to the described specific problem above, but:
>
> We do not support any kernel device driver which does not create the
> device nodes on its own from inside the kernel. Such drivers cause
> problems and will fail for various non-interesting reasons. You really
> must hook up the kernel driver to register the devices with the kernel
> driver-core; it's just a few lines to add.
>
> Doing mknod() in userspace is just too fragile and does not fit into
> any synchronization logic of udev or systemd, it is not even expected
> to work reliably with these tools.

OK, I've changed the driver such that is creates it's own device nodes 
after the board is up and running. Like I said earlier, it takes a 
single board 10-15 seconds to come up once the driver starts it. There 
are now, no scripts required, no sysvinit, no systemd, no udev involved.

Still, when using systemd, when I get to my run-level, the application 
fails because the device nodes have yet to be created. The driver is 
still waiting for the boards to be ready. When I use sysvinit the device 
nodes are there  when I get to my run-level.

???

Regards
Mark


More information about the systemd-devel mailing list