[yocto] systemd - how do I wait for a driver to load?
Chris Tapp
opensource at keylevel.com
Thu Aug 28 09:57:00 PDT 2014
On 27 Aug 2014, at 08:46, Sven Ebenfeld <sven.ebenfeld at gmail.com> wrote:
>
>
> Am 26.08.2014 22:51, schrieb Chris Tapp:
>>
>> On 26 Aug 2014, at 21:02, Sven Ebenfeld <sven.ebenfeld at gmail.com> wrote:
>>
>>> You should look at "ConditionPathExists=" Options of systemd-units.
>>
>> Thanks, that looks like it would do the job. I was hoping not to hard code paths as they may change if a configuration file is changed, but...
>>
>>> Otherwise if udev is loading your device module, you could add the
>>> device-unit to "Requires=" option.
>>
>> This sounds better. Is there an easy way to tell if udev did load the module? There's nothing obvious in the syslog.
>
> If you didn't load the module by hand it's probably udev. If you didn't
> run modprobe or insmod. Then you should try to create a device-unit for
> the device.
>
> For /dev/dvb/adaptor the unit should probably be something like
> dev-dvb-adaptor.device .
Thanks. I've now got a udev rule firing when the device loads.
I'm using this to create a device alias (SYMLINK) so I can get consistent names, and this is working great.
I've added TAG+="systemd" to the rule and I'm getting a .device generated automatically when the driver loads. However, the name for this isn't friendly (lots of bus id components). Is there a way to create my own name as my service doesn't want to know where the device is on the bus?
I've tried adding something like ENV{SYSTEMD_WANTS}="some-new-name.device" - this also gets created, but it never becomes active (and can't be manually started).
> Am 26.08.2014 21:52, schrieb Chris Tapp:
>>>> I've got a service running under systemd that will only start once a kernel module has loaded and created its /dev/dvb/adaptor nodes.
>>>>
>>>> Unfortunately, it doesn't load until after the service has failed and gone into an error state due to too many restarts.
>>>>
>>>> I could "fix" this by increasing the restart interval, but is there a way of adding a dependancy on the kernel module?
>>>>
>>>> --
>>>>
>>>> Chris Tapp
>>>> opensource at keylevel.com
>>>> www.keylevel.com
>>>>
>>>>
>>>>
>>>>
>>
>> --
>>
>> Chris Tapp
>> opensource at keylevel.com
>> www.keylevel.com
>>
>>
>>
>>
--
Chris Tapp
opensource at keylevel.com
www.keylevel.com
More information about the yocto
mailing list