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.


 * If you are using, read ; this won't be a problem if you use Predictable Network Interface Names.


 * If you don't have as empty file with only comments inside of it, or if it isn't a symlink to, or if you didn't disable with kernel commandline net.ifnames= you will get the new Predictable Network Interface Names by default.


 * 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 compability 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 /usr/portage/metadata/news/2013-03-29-udev-upgrade/2013-03-29-udev-upgrade.en.txt 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 (???, 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:

user@example etc $ udevadm test-builtin net_id /sys/class/net/eth0 2> /dev/null ID_NET_NAME_MAC=enxd4a8xxxxxxxx ID_NET_NAME_ONBOARD=eno1 ID_NET_NAME_PATH=enp1s0f1

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


 * Make sure secondary network interfaces get started


 * iptables configuration


 * vnstat configuration


 * rebuild openvpn