Something is renaming my eth0 and wlan0 interfaces

Hi All,
Something is renaming my eth0 and wlan0 interfaces. I don’t know when it started happening or if it was my piratebox install (which does not work, because wlan0 does not exist for the moment).
Here’s some info:
dmesg:
[ 1.928357] smsc95xx 1-1.1:1.0 eth0: register ‘smsc95xx’ at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:52:45:cc
[ 7.095601] smsc95xx 1-1.1:1.0 enxb827eb5245cc: renamed from eth0
[ 7.993723] r8712u 1-1.3.1:1.0 wlx00212f398e53: renamed from wlan0
lsusb:
Bus 001 Device 005: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
Bus 001 Device 007: ID 0c40:8000
Bus 001 Device 008: ID 0480:a208 Toshiba America Inc
Bus 001 Device 006: ID 0bda:8172 Realtek Semiconductor Corp. RTL8191SU 802.11n WLAN Adapter
Bus 001 Device 004: ID 2001:f103 D-Link Corp. DUB-H7 7-port USB 2.0 hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ificonfig:
enxb827eb5245cc Link encap:Ethernet HWaddr b8:27:eb:52:45:cc
inet addr:10.66.66.109 Bcast:10.66.66.255 Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe52:45cc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1273 errors:0 dropped:0 overruns:0 frame:0
TX packets:1010 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:122484 (122.4 KB) TX bytes:165728 (165.7 KB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:267 errors:0 dropped:0 overruns:0 frame:0
TX packets:267 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:23856 (23.8 KB) TX bytes:23856 (23.8 KB)

wlx00212f398e53 Link encap:Ethernet HWaddr 00:21:2f:39:8e:53
inet addr:10.66.66.116 Bcast:10.66.66.255 Mask:255.255.255.0
inet6 addr: fe80::221:2fff:fe39:8e53/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:591 errors:0 dropped:1 overruns:0 frame:0
TX packets:65 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:148266 (148.2 KB) TX bytes:12057 (12.0 KB)

So, the interfaces exist and are working, no problem there. It’s the NAME of the interfaces that are getting changed.
I think it’s udev, but was not able to decipher the possible solutions, as most referred to rule 70 in /etc/udev/rules.d/
which doesn’t exist. I can get you whatever info you need, just ask.
Thanks, Dylan

I’m just a beginner with Linux but your problem might have something to do with this:
Predictable Network Interface Names
Predictable Network Interface Names on Fedora’s wiki

I have somethink like enp2s0 and wlp5s0
Yours look pretty random
Sorry I could not help more

Well, your links led me on a chase of the 3 solutions:

You disable the assignment of fixed names, so that the unpredictable kernel names are used again. For this, simply mask udev’s rule file for the default policy: ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Did not work as that rules statement does not exist

You create your own manual naming scheme, for example by naming your interfaces “internet0”, “dmz0” or “lan0”. For that create your own .link files in /etc/systemd/network/, that choose an explicit name or a
better naming scheme for one, some, or all of your interfaces.
See systemd.link(5) for more information.
Did not work, network stopped working

You pass the net.ifnames=0 on the kernel command line
Did not work, network stopped working

What happens is that although I got the bootup to stop renaming the interfaces, it just stopped and did not name them anything.

I renamed /lib/systemd/network/90-mac-for-usb.link and /lib/systemd/network/91-default.link to *.backup and then made my own link file: /lib/systemd/network/95-pirate.link with the following:
[Match]
MACAddress=b8:27:eb:52:45:cc

[Link]
Name=eth0

[Match]
MACAddress=00:21:2f:39:8e:53

[Link]
Name=wlan0

ref: http://wiki.beyondlogic.org/index.php?title=Understanding_RaspberryPi_Boot_Process , http://www.freedesktop.org/software/systemd/man/systemd.link.html
To no avail, with either the backup files in place or not. Tried different number schemes in case the files are read in numbered order. I’m pretty ticked off at this point as it’s really cumbersome on my system to switch monitor modes and my tiny wireless keyboard. When the network is working I can at least SSH into the PI.

All this just to get a program, PirateBox to work as it calls to interface wlan0 to get going.

Well, since I couldn’t make the system do what I wanted, I changed piratebox to look for the ‘named’ interface in the piratebox.conf:

Name of the wlan interface

INTERFACE=“wlx00212f398e53”

On which interface DNSMASQ should listen. -i is the parameter for dnsmasq

Make it empty to disable

DNSMASQ_INTERFACE=“wlx00212f398e53”

and then the magic:

sudo /opt/piratebox/init.d/piratebox start

  • Starting script piratebox
    Generating hosts file …
    Generating dnsmasq.conf …
    Generating Environment-config for lighttpd …
    Empty tmp folder
    rm: cannot remove ‘/opt/piratebox/tmp/’: Is a directory
    Copy over design files
  • Probing wlan * Starting hostap… [ OK ]
  • Setting up wlan Bringing up wifi interface wlx00212f398e53
    Setting up wlx00212f398e53
  • Starting dnsmasq… [fail]
  • Starting droopy… [ OK ]
    Generated HTML-Shoutbox File.
  • Starting lighttpd… /usr/sbin/lighttpd: symbol lookup error: /usr/sbin/lighttpd: undefined symbol: FAMNoExists

So, although I’ve not gotten the interfaces to be named the way “I” want, I’ve at least have piratebox up, (still not config’d correctly with dnsmasq).

To avoid having persistent interface names and revert back to the classic interface naming convention, simply add to the 1st command line in the file /boot/cmdline.txt the following keywords:

net.ifnames=0 biosdevname=0

Tip found in the UbuntuMATE Flavour FAQ :wink:

That suggestion gave me a kernel panic that I could not recover from (unable to mount root fs on unknown-block(0,0)

I have updated my RPi 2 kernel towards "4.4.22-v7+" on my UbuntuMATE 16.04 OS and keep in the "/boot/cmdline.txt" file the same command line kernel entries

net.ifnames=0 biosdevname=0

and now when I reboot the box, I'm getting back again the former predictable LAN interface to be named as "enx..." when firing the command "ifconfig" :frowning:

Firing the "dmesg" command on the shell prompt, I find an entry as follows:

[ 7.685438] smsc95xx 1-1.1:1.0 enxb827ebf0d111: renamed from eth0

Thus, some kind of process is renaming the LAN interface during the OS startup.

Checking the post with title "Raspberry Pi 3 - eth0 wrongfully named 'enx…'" I'm not using any kind of "/etc/udev/rules.d/70-persistent-net.rules" rules to rename the persistant LAN interface - the file doesn't exist!

I went further and removed in the "/etc/iftab" a line entry that I assumed it is renaming the interface as described in the "This is progress? (iftab vs. udev)" article. However, no luck, after a reboot of the box, I'm still encountering myself with an interface name commencing with "enx..." instead of using the classic "eth0" name.

Since this did not help further, I examined the bug report "Predictable network interface names re-enabled after update on server image" and followed the instructions to comment out the line

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", ATTR{address}=="?[014589cd]:*", IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"

in the file "/lib/udev/rules.d/73-special-net-names.rules" (this file does exist, though).

Still no luck after another reboot of the box :frowning:

Can anybody help here to point out what could have renamed the LAN interface name by the end?

Guess, I’ve found the solution on the above this week-end. From the “Predictable Network Interface Names” article, it is fine mask udev’s rule file for the default policy and fire the following command on the shell prompt:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

Now it works :smiley:

2 Likes

Sorted my issue instantly!!!

This worked for me perfct , without reboot.

How weird that renaming ideas. iwfonfig shows enough distinctive parametres on every interface for the egos if driver writers to be renaming such a silly thing as "from wlan0 to ........ My​:beers:goodness​:coffee::bomb::tulip::dizzy_face:..... Annoying

Thanks Carriba :+1: