Package: udev Version: 151-1 Severity: wishlist Hi,
I've encountered problems with the persistent net rules on various sytems, both stable and unstable. On any system not dynamically handling all available network devices, such as one using /etc/network/interfaces rather than something like NetworkManager, renaming interfaces can both help and hurt. On the one hand, providing stable names helps when writing different stanzas for multiple network interfaces and expecting them to work. On the other hand, renaming network interfaces when the MAC address changes can break systems that simply have "allow-hotplug eth0" and expect that to bring up the network. I've built bootable USB keys for various purposes, and for those I tend to expect to just bring up whatever interfaces exist, at which point renaming can cause problems. For instance, by default /etc/network/interfaces just has "allow-hotplug eth0", so if I plug the USB key into a new system, identical except for MAC address, the network won't come up. On stable, I can just rm 70-persistent-net.rules and 75-persistent-net-generator.rules, and on unstable I can touch /etc/udev/rules.d/75-persistent-net-generator.rules to achieve the same effect. However, it seems worth documenting this in the "Network Interfaces" section of README.Debian as the suggested approach to avoid the renaming. Suggested text: """ Some systems may not want persistent network interface names; for instance, some systems just want eth0 to always refer to the first ethernet device. To disable udev's persistent device naming, remove /etc/udev/rules.d/70-persistent-net.rules, and create an empty /etc/udev/rules.d/75-persistent-net-generator.rules to disable the corresponding file in /lib/udev/rules.d/ . """ I think that would help; however, I also wonder if some approach might exist to figure out when renaming will do more harm than good, to handle this more automatically. Does any means exist to give an interface multiple names and have them all work? For instance, could an interface go by both "eth0" and "eth1p"? If so, it might make sense to provide each interface under both a "stable" name and a "kernel" name. For the benefit of the initial /etc/network/interfaces setup, I suspect it makes sense to make "eth0" and similar the kernel name, and provide a separate stable name; the admin could then choose whether to refer to an interface via the stable name or the kernel name, and get the behavior they want. If not (and I can see how that could get confusing), perhaps some other approach might allow detection of when renaming should not occur. For instance, perhaps udev could rename ethN to ethMp if and only if configuration doesn't exist for ethN. Deciding what constitutes "configuration for ethN" seems like the interesting part, though. Checking /etc/network/interfaces might or might not prove sufficient; certainly the admin could choose to use an alternate network configuration system. Perhaps some udev configuration file could specify interfaces to leave alone. The problem here seems clear; the solution rather less so. In any case, if you feel that udev can't or shouldn't do any more than it does apart from the documentation suggested above, feel free to close or to clone/reassign to a more appropriate package. (Or feel free to tell me to do so if you prefer.) Thanks for your maintenance of udev. - Josh Triplett -- Package-specific info: -- /etc/udev/rules.d/: /etc/udev/rules.d/: total 20 lrwxrwxrwx 1 root root 19 Nov 20 2008 025_libgphoto2.rules -> ../libgphoto2.rules lrwxrwxrwx 1 root root 31 Feb 11 2009 025_usb-autosuspend.rules -> /etc/udev/usb-autosuspend.rules -rw-r--r-- 1 root root 495 May 20 2009 56-hpmud_support.rules -rw-r--r-- 1 root root 1466 Dec 25 17:43 70-persistent-cd.rules -rw-r--r-- 1 root root 1199 Sep 27 11:55 70-persistent-net.rules lrwxrwxrwx 1 root root 15 Nov 20 2008 85-pcmcia.rules -> ../pcmcia.rules -rw-r--r-- 1 root root 5354 Mar 16 2009 z60_hplip.rules -- /sys/: /sys/dev /sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input4/event4/dev /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input12/event12/dev /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input2/event2/dev /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input3/event3/dev /sys/devices/pci0000:00/0000:00:02.0/drm/card0/dev /sys/devices/pci0000:00/0000:00:02.0/drm/controlD64/dev /sys/devices/pci0000:00/0000:00:02.0/graphics/fb1/dev /sys/devices/pci0000:00/0000:00:1a.0/usb3/dev /sys/devices/pci0000:00/0000:00:1a.1/usb4/dev /sys/devices/pci0000:00/0000:00:1a.2/usb5/dev /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-6/1-6:1.0/input/input6/event6/dev /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-6/1-6:1.0/video4linux/video0/dev /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-6/dev /sys/devices/pci0000:00/0000:00:1a.7/usb1/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/controlC0/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/hwC0D0/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input10/event10/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input7/event7/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input8/event8/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input9/event9/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/pcmC0D0c/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/pcmC0D0p/dev /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/pcmC0D1p/dev /sys/devices/pci0000:00/0000:00:1d.0/usb6/dev /sys/devices/pci0000:00/0000:00:1d.1/usb7/dev /sys/devices/pci0000:00/0000:00:1d.2/usb8/dev /sys/devices/pci0000:00/0000:00:1d.7/usb2/dev /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/dev /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1/dev /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda2/dev /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/bsg/0:0:0:0/dev /sys/devices/platform/efifb.0/graphics/fb0/dev /sys/devices/platform/i8042/serio0/input/input1/event1/dev /sys/devices/platform/i8042/serio1/input/input11/event11/dev /sys/devices/platform/i8042/serio1/input/input11/mouse1/dev /sys/devices/platform/serial8250/tty/ttyS0/dev /sys/devices/platform/serial8250/tty/ttyS1/dev /sys/devices/platform/serial8250/tty/ttyS2/dev /sys/devices/platform/serial8250/tty/ttyS3/dev /sys/devices/pnp0/00:07/rtc/rtc0/dev /sys/devices/virtual/block/loop0/dev /sys/devices/virtual/block/loop1/dev /sys/devices/virtual/block/loop2/dev /sys/devices/virtual/block/loop3/dev /sys/devices/virtual/block/loop4/dev /sys/devices/virtual/block/loop5/dev /sys/devices/virtual/block/loop6/dev /sys/devices/virtual/block/loop7/dev /sys/devices/virtual/input/input0/event0/dev /sys/devices/virtual/input/input0/mouse0/dev /sys/devices/virtual/input/input5/event5/dev /sys/devices/virtual/input/mice/dev /sys/devices/virtual/mem/full/dev /sys/devices/virtual/mem/kmsg/dev /sys/devices/virtual/mem/mem/dev /sys/devices/virtual/mem/null/dev /sys/devices/virtual/mem/port/dev /sys/devices/virtual/mem/random/dev /sys/devices/virtual/mem/urandom/dev /sys/devices/virtual/mem/zero/dev /sys/devices/virtual/misc/agpgart/dev /sys/devices/virtual/misc/cpu_dma_latency/dev /sys/devices/virtual/misc/fuse/dev /sys/devices/virtual/misc/hpet/dev /sys/devices/virtual/misc/kvm/dev /sys/devices/virtual/misc/mcelog/dev /sys/devices/virtual/misc/network_latency/dev /sys/devices/virtual/misc/network_throughput/dev /sys/devices/virtual/misc/nvram/dev /sys/devices/virtual/misc/psaux/dev /sys/devices/virtual/misc/rfkill/dev /sys/devices/virtual/misc/snapshot/dev /sys/devices/virtual/misc/vga_arbiter/dev /sys/devices/virtual/sound/seq/dev /sys/devices/virtual/sound/timer/dev /sys/devices/virtual/tty/console/dev /sys/devices/virtual/tty/ptmx/dev /sys/devices/virtual/tty/tty/dev /sys/devices/virtual/tty/tty0/dev /sys/devices/virtual/tty/tty1/dev /sys/devices/virtual/tty/tty10/dev /sys/devices/virtual/tty/tty11/dev /sys/devices/virtual/tty/tty12/dev /sys/devices/virtual/tty/tty13/dev /sys/devices/virtual/tty/tty14/dev /sys/devices/virtual/tty/tty15/dev /sys/devices/virtual/tty/tty16/dev /sys/devices/virtual/tty/tty17/dev /sys/devices/virtual/tty/tty18/dev /sys/devices/virtual/tty/tty19/dev /sys/devices/virtual/tty/tty2/dev /sys/devices/virtual/tty/tty20/dev /sys/devices/virtual/tty/tty21/dev /sys/devices/virtual/tty/tty22/dev /sys/devices/virtual/tty/tty23/dev /sys/devices/virtual/tty/tty24/dev /sys/devices/virtual/tty/tty25/dev /sys/devices/virtual/tty/tty26/dev /sys/devices/virtual/tty/tty27/dev /sys/devices/virtual/tty/tty28/dev /sys/devices/virtual/tty/tty29/dev /sys/devices/virtual/tty/tty3/dev /sys/devices/virtual/tty/tty30/dev /sys/devices/virtual/tty/tty31/dev /sys/devices/virtual/tty/tty32/dev /sys/devices/virtual/tty/tty33/dev /sys/devices/virtual/tty/tty34/dev /sys/devices/virtual/tty/tty35/dev /sys/devices/virtual/tty/tty36/dev /sys/devices/virtual/tty/tty37/dev /sys/devices/virtual/tty/tty38/dev /sys/devices/virtual/tty/tty39/dev /sys/devices/virtual/tty/tty4/dev /sys/devices/virtual/tty/tty40/dev /sys/devices/virtual/tty/tty41/dev /sys/devices/virtual/tty/tty42/dev /sys/devices/virtual/tty/tty43/dev /sys/devices/virtual/tty/tty44/dev /sys/devices/virtual/tty/tty45/dev /sys/devices/virtual/tty/tty46/dev /sys/devices/virtual/tty/tty47/dev /sys/devices/virtual/tty/tty48/dev /sys/devices/virtual/tty/tty49/dev /sys/devices/virtual/tty/tty5/dev /sys/devices/virtual/tty/tty50/dev /sys/devices/virtual/tty/tty51/dev /sys/devices/virtual/tty/tty52/dev /sys/devices/virtual/tty/tty53/dev /sys/devices/virtual/tty/tty54/dev /sys/devices/virtual/tty/tty55/dev /sys/devices/virtual/tty/tty56/dev /sys/devices/virtual/tty/tty57/dev /sys/devices/virtual/tty/tty58/dev /sys/devices/virtual/tty/tty59/dev /sys/devices/virtual/tty/tty6/dev /sys/devices/virtual/tty/tty60/dev /sys/devices/virtual/tty/tty61/dev /sys/devices/virtual/tty/tty62/dev /sys/devices/virtual/tty/tty63/dev /sys/devices/virtual/tty/tty7/dev /sys/devices/virtual/tty/tty8/dev /sys/devices/virtual/tty/tty9/dev /sys/devices/virtual/vc/vcs/dev /sys/devices/virtual/vc/vcs1/dev /sys/devices/virtual/vc/vcs2/dev /sys/devices/virtual/vc/vcs3/dev /sys/devices/virtual/vc/vcs4/dev /sys/devices/virtual/vc/vcs5/dev /sys/devices/virtual/vc/vcs6/dev /sys/devices/virtual/vc/vcs7/dev /sys/devices/virtual/vc/vcs8/dev /sys/devices/virtual/vc/vcs9/dev /sys/devices/virtual/vc/vcsa/dev /sys/devices/virtual/vc/vcsa1/dev /sys/devices/virtual/vc/vcsa2/dev /sys/devices/virtual/vc/vcsa3/dev /sys/devices/virtual/vc/vcsa4/dev /sys/devices/virtual/vc/vcsa5/dev /sys/devices/virtual/vc/vcsa6/dev /sys/devices/virtual/vc/vcsa7/dev /sys/devices/virtual/vc/vcsa8/dev /sys/devices/virtual/vc/vcsa9/dev -- Kernel configuration: init_tmpfs not present. isapnp_init not present. -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-trunk-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages udev depends on: ii debconf [debconf-2.0] 1.5.28 Debian configuration management sy ii libc6 2.10.2-6 Embedded GNU C Library: Shared lib ii libselinux1 2.0.89-4 SELinux runtime shared libraries ii libudev0 151-1 libudev shared library ii libusb-0.1-4 2:0.1.12-14 userspace USB programming library ii lsb-base 3.2-23 Linux Standard Base 3.2 init scrip ii util-linux 2.16.2-0 Miscellaneous system utilities Versions of packages udev recommends: ii pciutils 1:3.1.7-1 Linux PCI Utilities ii usbutils 0.86-4 Linux USB utilities udev suggests no packages. -- debconf information excluded -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20100215224752.8339.66042.report...@feather