The problem appears to be down to a syntax error - here's the fix we're
using as a patch against current systemd in Xenial:
Splitting the IMPORT and ENV/GOTO directives onto separate lines gets
things working.
With the patch deployed, the kernel parameter works as specified,
allowing us to access hosts remotely after boot. We've tested the patch
both with and without net.ifnames boot parameter and the USB ethernet
device is assigned correctly as expected for each mode.
This should fix things for Raspberry Pi users as well..
--- /lib/udev/rules.d/73-usb-net-by-mac.rules.orig 2016-09-14
20:40:11.269999878 +0000
+++ /lib/udev/rules.d/73-usb-net-by-mac.rules 2016-09-14 20:42:05.719999834
+0000
@@ -3,7 +3,8 @@
# is 0). Don't do this when ifnames is disabled via kernel command line or
# customizing/disabling 80-net-setup-link.rules.
-IMPORT{cmdline}="net.ifnames", ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end"
+IMPORT{cmdline}="net.ifnames"
+ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end"
ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \
ATTR{address}=="?[014589cd]:*", \
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1593379
Title:
systemd 229-4ubuntu6 ignores net.ifnames=0 on USB or
/etc/udev/rules.d/80-net-setup-link.rules being a /dev/null symlink
Status in systemd package in Ubuntu:
Fix Released
Status in systemd source package in Xenial:
Incomplete
Status in systemd package in Debian:
Fix Released
Bug description:
Description: Ubuntu 16.04 LTS
Release: 16.04
The upgrade to systemd/udev 229-4ubuntu6 breaks net.ifnames=0 for USB
devices.
It appears the regression is here:
* Set MAC based name for USB network interfaces only for universally
administered (i. e. stable) MACs, not for locally administered (i. e.
randomly generated) ones. Drop /lib/systemd/network/90-mac-for-usb.link
(as link files don't currently support globs for MACAddress=) and replace
with an udev rule in /lib/udev/rules.d/73-special-net-names.rules.
(Closes: #812575, LP: #1574483)
As Raspberry Pi's use eth0 via USB, this breaks running systems.
Before:
ii systemd 229-4ubuntu4 armhf system and service manager
ii udev 229-4ubuntu4 armhf /dev/ and hotplug management daem
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
mode DEFAULT group default qlen 1000
link/ether b8:27:eb:16:39:e9 brd ff:ff:ff:ff:ff:ff
After:
ii systemd 229-4ubuntu6 armhf
system and service manager
ii udev 229-4ubuntu6 armhf
/dev/ and hotplug management daemon
3: enxb827eb1639e9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether b8:27:eb:16:39:e9 brd ff:ff:ff:ff:ff:ff
cat /proc/cmdline
dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416
bcm2709.boardrev=0xa01041 bcm2709.serial=0x37b38253
smsc95xx.macaddr=B8:27:EB:B3:82:53 bcm2708_fb.fbswap=1 bcm2709.disk_led_gpio=47
bcm2709.disk_led_active_low=0 sdhci-bcm2708.emmc_clock_freq=250000000
vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 net.ifnames=0
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2
rootfstype=ext4 elevator=deadline rootwait
With the default interfaces configuration, all networking is lost on
reboot after upgrade.
SRU TEST CASE
=============
* Boot with "net.ifnames=0" on the kernel command line, and connect an USB
ethernet device. It will still be called enxDEADBEEF with current xenial. With
the -proposed version it will instead keep the kernel name, like "usb0" as
intended.
* Do "sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules"
(the other documented way to disable ifnames) and do the above
connect/name check test again.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1593379/+subscriptions
--
Mailing list: https://launchpad.net/~touch-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~touch-packages
More help : https://help.launchpad.net/ListHelp