Udev/Upgrade Guide

udev 200
The following special attention is required:


 * CONFIG_DEVTMPFS=y must be set in the kernel.


 * If there is a line in /etc/fstab, it must have the devtmpfs filesystem type or it will conflict with the above options.


 * Remove udev-postmount from any runlevels, it is not necessary.

otherwise delete it together with as both are from the now deleted rule_generator that doesn't exist anymore.
 * If you are using, read Predictable Network Interface Names,


 * The new Predictable Network Interface Names will be used by default, unless at least one of the following conditions is fulfilled:
 * is an empty file with only comments inside of it
 * is a symlink to
 * the kernel commandline contains net.ifnames=


 * Since this version, support for older kernels than 2.6.32 is dropped. The 9999 version needs 2.6.39 or higher (because we don't patch the 9999 version with a compatibility patch like we do for non-9999.)


 * If you use Linux 3.8 or higher you should be able to disable USE="firmware-loader" and let kernel do the loading instead. However, you can still use USE="firmware-loader" on newer kernels too.


 * is no longer necessary if you use the Predictable Network Interface Names.


 * Any file you haven't created or edited yourself in should be backupped and removed as it's likely an relic from old udev installation.

For more details, read the full news article and the post install output of emerging udev.

Example interface IDs
The default naming precedence rules are these:


 * 1) Names incorporating Firmware/BIOS provided index numbers for on-board devices (ID_NET_NAME_ONBOARD, example: eno1)
 * 2) Names incorporating Firmware/BIOS provided PCI Express hotplug slot index numbers (ID_NET_NAME_SLOT, example: ens1)
 * 3) Names incorporating physical/geographical location of the connector of the hardware (ID_NET_NAME_PATH, example: enp2s0)
 * 4) Names incorporating the interfaces's MAC address (ID_NET_NAME_MAC, example: enx78e7d1ea46da)
 * 5) Classic, unpredictable kernel-native ethX naming (example: eth0)

(Rule 4 is disabled by default.) So, if your output is like this:

The interface will be named eno1, because ID_NET_NAME_ONBOARD takes precedence over ID_NET_NAME_PATH.

Things to think of

 * /etc/conf.d/net
 * Renaming init scripts
 * Replacing init scripts in runlevels (via rc-update)
 * iptables configuration
 * vnstat configuration
 * samba configuration

A quick way to get a list of files that will need to be updated can be found using the following:

Fixing network interfaces
This shows how you can fix your network-interfaces, if they don't work anymore (or before they stop working, if you didn't switch to the new udev yet). It is only applicable to simple setups, like one ethernet and one wifi interface. If you have a more complicated setup (like more ethernet adapters) I assume you already know what to do.

Renaming init scripts
If you are still running the old udev and are up to enabling the new one, execute

Take the ID_NET_NAME_PATH-item (here enp1s0f1) and execute

If you have a wifi-interface do this for this interface,too!

If you are already running the new udev and the network is down, execute

Look which link points to a pci-device (here enp1s0f1) and execute

If you have a wifi-interface do this for this interface,too!

Replacing init scripts in runlevels (via rc-update)
Same for the wifi-interface again, if necessary.