Comment 10 for bug 44194

Revision history for this message
Roman Yepishev (rye) wrote :

Dear all,

Today I managed to make it run on boot while maintaining udev support (i.e. the interface goes down with the card removal and is brought up when my PCMCIA card is inserted).

First of all (for those who come from earlier releases), looks like udev is confused a bit with DRIVERS=="?*" test (/etc/udev/rules.d/85-ifupdown.rules). This does not match on device removal so the ifupdown state of the interface
becomes out of sync with the real world. By deleting this condition the ACTION=="remove" starts being called. This is fixed in the last ifupdown source.

The next thing is that we can not start the network before the /etc/init.d/networking is run. It may be anything, missing modules, keys, passwords, users, so we should modify the rules to check that the network has already been initialized, possibly by flag in /var/run/network.

The file is touched when `networking start` is issued, and the file is removed on `networking stop`. The restart part probably will have only create file part.

Then we add the file TEST condition to 85-ifupdown.rules: SUBSYSTEM=="net", TEST=="/var/run/network/initialized", GOTO="net_start" (instead of "SUBSYSTEM!="net", GOTO="net_end"" or SUBSYSTEM=="net", DRIVERS="?*", GOTO="net_start"")

This will match when file is present so we make sure we run after /etc/init.d/networking.

I have attached the patch for a live system, /etc/init.d/networking and /etc/udev/rules.d/85-ifupdown.rules. It may not apply cleanly if default 85-ifupdown.rules is not the latest one. In this case, see the passage about TEST condition.