Rename Ethernet interfaces to eth0
systemd
in Debian & Ubuntu generates
robust Ethernet interface names
like p1p1
or enp48a
instead of the traditional eth0
to avoid race conditions.
Robust systemd eth0
| wlan0
:
Create a file /etc/systemd/network/10-eth0.link
with the content, using Raspberry Pi MAC address from ip a
:
[Match]
MACAddress=00:11:22:33:44:55
[Link]
Name=eth0
Ensure the file /etc/systemd/network/99-default.link
exists with the content
[Link]
NamePolicy=kernel database onboard slot path
MACAddressPolicy=persistent
This may be more intuitive than using udev
rules, which is another alternative method.
Alternative GRUB: This method is simpler, but does not work on non-GRUB hardware (e.g. ARM systems like Raspberry Pi).
Edit /etc/default/grub
:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
In Terminal,
update-grub
Reboot and type
ip a
to confirm network adapter is at eth0
When is eth0
name needed?
Some old software (e.g. old Matlab versions) will only accept eth0
for licensing using the MAC address (low security!)
Also sometimes for convenience in embedded/IoT systems where you know you’ll only have one Ethernet interface, you’d like to simply use eth0
.