[systemd-devel] /sys/subsystem device dependency not working
Albert Strasheim
fullung at gmail.com
Fri Aug 19 07:48:49 PDT 2011
Hello again
On Thu, Aug 18, 2011 at 10:03 PM, Albert Strasheim <fullung at gmail.com> wrote:
> I am trying to use systemd-26 to configure a network device.
>
> I've decided to try this instead of the standard Fedora init scripts
> because I want the network configuration to depend on a kernel command
> line argument (which should be possible as soon as
> ConditionKernelCommandLine=foo=bar gets fixed) and some files that are
> generated during bootup.
>
> I spotted the following in /lib/udev/rules.d/99-systemd.rules:
>
> SUBSYSTEM=="net", KERNEL!="lo", TAG+="systemd",
> ENV{SYSTEMD_ALIAS}="/sys/subsystem/net/devices/%k"
I have done some debugging with gdb.
When the initial device gets added, with a name like
sys-devices-pci0000:80-0000:80:09.0-0000:86:00.0-net-em2.device
everything works fine and unit_add_name calls unit_add_to_dbus_queue.
I can see that systemd picks up the SYSTEMD_ALIAS from udev and calls
device_add_escaped_name(u, alias) in device_update_unit.
After that the alias is added, with a name like
sys-subsystem-net-devices-em2.device
it does a goto fail at this point:
151 if ((r = hashmap_put(u->meta.manager->units, s, u)) < 0) {
(gdb) n
152 set_remove(u->meta.names, s);
(gdb) n
153 goto fail;
where s = strdup(text), and text contains the alias string.
This is the only obvious difference I can see in the code that adds
the original device and its alias.
Any thoughts?
Thanks!
Regards
Albert
More information about the systemd-devel
mailing list