[systemd-devel] How to wait for a group of devices?

Kok, Auke-jan H auke-jan.h.kok at intel.com
Mon Aug 19 13:16:13 PDT 2013


On Mon, Aug 19, 2013 at 10:37 AM, Greg KH <gregkh at linuxfoundation.org> wrote:
> On Mon, Aug 19, 2013 at 05:35:35PM +0200, Manuel Reimer wrote:
>> On 08/19/2013 04:53 PM, Greg KH wrote:
>> >>The second one wants to access DVB devices.
>> >>
>> >>These could be connected via PCI, PCI express or USB. So here I need
>> >>"Wait until all possible, currently connected, DVB devices are
>> >>initialized and drivers are loaded".
>> >
>> >Same here, there is no way to ever do this (PCI devices can be
>> >hotplugged at anytime, just like USB).
>> >
>> >Instead, just do something based on _when_ you see a specific type of
>> >USB device, that way everything will work properly, no need to "wait"
>> >for anything.
>>
>> I'm not the developer of that daemon. I just want to run it reliably
>> on a distribution, using systemd.
>
> What happens to that daemon if a new device is plugged into the system
> while it is already running?  It has to handle that properly today, so
> there's no need in waiting around for some unknown amount of time for
> any reason.
>
> If it doesn't handle it properly, go poke upstream to get that fixed, as
> that's a major bug.

I've encountered the problem in e.g. mythtv - if your DVB adapter
takes a long time to initialize (40 seconds for my hauppauge cards,
for instance, due to some weird FW loading problem), then your system
will just boot and run mythbackend, which won't see any DVB tuners,
and none of your scheduled recordings will record.

This isn't something that can be fixed outside of MythTV. maybe it's
been already fixed upstream, but in 0.25.1 this was still a bug.

libudev should provide the methods needed to implement a proper fix.

Auke


More information about the systemd-devel mailing list