On 04/10/2012 09:10 AM, Kay Sievers wrote:
On Tue, Apr 10, 2012 at 14:36, Mark Hounschell<ma...@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
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to