GNOME Bugzilla – Bug 766404
unmanaged-devices directive does not work for interfaces renamed by udev when connecting them
Last modified: 2016-05-17 10:22:18 UTC
While using udev rules to rename interfaces to user-friendly names, the [keyfile] unmanaged-devices directive does not recognize the user-friendly names when plugging a USB device. It does work if NetworkManager is restarted while the device is plugged. $ cat /etc/udev/rules.d/10-network.rules SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="7c:dd:90:aa:bb:cc", NAME="logilink0" $ cat /etc/NetworkManager/NetworkManager.conf [main] plugins=keyfile dhcp=dhclient dns=default [keyfile] unmanaged-devices=interface-name:logilink0 Inserting device marks it as managed: May 14 03:20:23 my_hostname NetworkManager[20926]: <info> [1463188823.5999] (wlan0): driver supports SSID scans (scan_capa 0x3F). May 14 03:20:23 my_hostname NetworkManager[20926]: <info> [1463188823.5999] (wlan0): using WEXT for WiFi device control May 14 03:20:23 my_hostname NetworkManager[20926]: <info> [1463188823.6012] manager: (wlan0): new 802.11 WiFi device (/org/freedesktop/NetworkManager/Devices/5) May 14 03:20:24 my_hostname NetworkManager[20926]: <info> [1463188824.1487] device (wlan0): interface index 8 renamed iface from 'wlan0' to 'logilink0' May 14 03:20:24 my_hostname NetworkManager[20926]: <info> [1463188824.1513] device (logilink0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2] May 14 03:20:24 my_hostname NetworkManager[20926]: <info> [1463188824.5613] sup-iface[0x1eca1f0,logilink0]: supports 1 scan SSIDs May 14 03:20:24 my_hostname NetworkManager[20926]: <info> [1463188824.5627] device (logilink0): supplicant interface state: starting -> ready May 14 03:20:24 my_hostname NetworkManager[20926]: <info> [1463188824.5628] device (logilink0): state change: unavailable -> disconnected (reason 'supplicant-available') [20 30 42] May 14 03:20:26 my_hostname NetworkManager[20926]: <info> [1463188826.5701] device (logilink0): supplicant interface state: ready -> inactive Restarting NM: May 14 03:25:23 my_hostname systemd[1]: Starting Network Manager... -- Subject: Unit NetworkManager.service has begun start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit NetworkManager.service has begun starting up. May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1395] NetworkManager (version 1.2.2) is starting... May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1396] Read config: /etc/NetworkManager/NetworkManager.conf May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1436] manager[0x9401d0]: monitoring kernel firmware directory '/usr/lib/firmware'. May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1452] dns-mgr[0x9508b0]: set resolv-conf-mode: default May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1452] dns-mgr[0x9508b0]: using resolv.conf manager 'resolvconf' May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1481] rfkill1: found WiFi radio killswitch (at /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/ieee80211/phy0/rfkill1) (driver iwlwifi) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1483] WiFi hardware radio set enabled May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1483] WWAN hardware radio set enabled May 14 03:25:23 my_hostname systemd[1]: Started Network Manager. -- Subject: Unit NetworkManager.service has finished start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit NetworkManager.service has finished starting up. -- -- The start-up result is done. May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1534] settings: loaded plugin keyfile: (c) 2007 - 2015 Red Hat, Inc. To report bugs please use the NetworkManager mailing list. May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.1653] keyfile: new connection /etc/NetworkManager/system-connections/[...] [CUT] May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5275] settings: hostname: using hostnamed May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5275] settings: hostname changed from (none) to "my_hostname" May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5277] Using DHCP client 'dhclient' May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5278] manager: WiFi enabled by radio killswitch; enabled by state file May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5278] manager: WWAN enabled by radio killswitch; enabled by state file May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5278] manager: Networking is enabled by state file May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5279] Loaded device plugin: NMVxlanFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5279] Loaded device plugin: NMVlanFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5279] Loaded device plugin: NMVethFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5280] Loaded device plugin: NMTunFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5280] Loaded device plugin: NMMacvlanFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5280] Loaded device plugin: NMIPTunnelFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5281] Loaded device plugin: NMInfinibandFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5281] Loaded device plugin: NMEthernetFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5281] Loaded device plugin: NMBridgeFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5282] Loaded device plugin: NMBondFactory (internal) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5289] Loaded device plugin: NMWifiFactory (/usr/lib/NetworkManager/libnm-device-plugin-wifi.so) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5295] Loaded device plugin: NMAtmManager (/usr/lib/NetworkManager/libnm-device-plugin-adsl.so) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5313] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/libnm-device-plugin-bluetooth.so) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5355] Loaded device plugin: NMTeamFactory (/usr/lib/NetworkManager/libnm-device-plugin-team.so) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.5359] Loaded device plugin: NMWwanFactory (/usr/lib/NetworkManager/libnm-device-plugin-wwan.so) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.9418] (logilink0): driver supports SSID scans (scan_capa 0x3F). May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.9419] (logilink0): using WEXT for WiFi device control May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.9457] manager: (logilink0): new 802.11 WiFi device (/org/freedesktop/NetworkManager/Devices/0) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.9477] manager: (en0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/1) May 14 03:25:23 my_hostname NetworkManager[25726]: <info> [1463189123.9493] device (en0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2] May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1567] (intel0): using nl80211 for WiFi device control May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1569] device (intel0): driver supports Access Point (AP) mode May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1588] manager: (intel0): new 802.11 WiFi device (/org/freedesktop/NetworkManager/Devices/2) May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1613] device (intel0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2] May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1636] device (lo): link connected May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1651] manager: (lo): new Generic device (/org/freedesktop/NetworkManager/Devices/3) May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1846] bluez: use BlueZ version 5 May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1872] ModemManager available in the bus May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1876] supplicant: wpa_supplicant running May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.1878] device (intel0): supplicant interface state: init -> starting May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.2605] sup-iface[0x9f1aa0,intel0]: supports 5 scan SSIDs May 14 03:25:24 my_hostname NetworkManager[25726]: <info> [1463189124.2620] device (intel0): supplicant interface state: starting -> ready [CUT] May 14 03:25:27 my_hostname NetworkManager[25726]: <info> [1463189127.5356] device (intel0): supplicant interface state: inactive -> authenticating May 14 03:25:27 my_hostname NetworkManager[25726]: <info> [1463189127.5418] device (intel0): supplicant interface state: authenticating -> associating May 14 03:25:27 my_hostname NetworkManager[25726]: <info> [1463189127.5468] device (intel0): supplicant interface state: associating -> associated May 14 03:25:27 my_hostname NetworkManager[25726]: <info> [1463189127.5614] device (intel0): supplicant interface state: associated -> completed May 14 03:25:27 my_hostname NetworkManager[25726]: <info> [1463189127.5614] device (intel0): Activation: (wifi) Stage 2 of 5 (Device Configure) successful. Connected to wireless network 'SSID_NAME'. May 14 03:25:27 my_hostname NetworkManager[25726]: <info> [1463189127.5615] device (intel0): state change: config -> ip-config (reason 'none') [50 70 0] May 14 03:25:27 my_hostname NetworkManager[25726]: <info> [1463189127.5623] dhcp4 (intel0): activation: beginning transaction (timeout in 45 seconds) May 14 03:25:27 my_hostname NetworkManager[25726]: <info> [1463189127.5640] dhcp4 (intel0): dhclient started with pid 25785 May 14 03:25:27 my_hostname dhclient[25785]: DHCPREQUEST on intel0 to 255.255.255.255 port 67 Using the mac address works as expected, both when inserting the device and of course when restarting NM.
how about https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=th%2Fdevice-rename-unmanaged-bgo766404 ?
(In reply to Thomas Haller from comment #1) > how about > > https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/ > ?id=th%2Fdevice-rename-unmanaged-bgo766404 + update_unmanaged_specs = TRUE; ... nm_device_set_unmanaged_by_flags (self, NM_UNMANAGED_PLATFORM_INIT, FALSE, reason); + if (update_unmanaged_specs) + nm_device_set_unmanaged_by_user_config (self, nm_connection_provider_get_unmanaged_specs (priv->con_provider)); When the device is announced by udev (with the updated name), this will initially set it to managed (because the last flag preventing it - PLATFORM_INIT - is removed), triggering a state change to UNAVAILABLE, and only after the device will be unmanaged again, causing another state change. Maybe it would be better to move the set_unmanaged_by_user_config() directly in the "if (info.name[0] && strcmp (priv->iface, info.name) != 0)" block, so that the device never goes to UNAVAILABLE?
Thanks. patch adjusted and merged to master: https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=25bf73292cfe88c179095eef4f2535ec74a2f639 (including a new device/trivial: rename nm_device_set_unmanaged_by_user_config() to ... commit).