4

This is very strange to me. On my Raspberry Pi running the latest Arch Linux I disabled all the DHCP service on ETH0 and everything else DHCP:

rm /etc/dhcpcd.duid
pacman -R dhclient
pacman -R dhcpcd

And I defined static ETH via /etc/netctl/ethernet-static:

Description='A basic static ethernet connection'
Interface=eth0
Connection=ethernet
IP=static
Address=('10.0.1.30/24')
Gateway=('10.0.1.1')
DNS=('10.0.1.1')

And still, after the DHCP lease time, I loose the static IP and get a (different) DHCP address again. What am I missing here?

P.S.: It seems there's a bug in the bcm2708 device driver that triggers an USB disconnect (to which ETH bound). But anyway - if DHCP is disabled, why do I get a DHCP address?

1 Answer 1

5

The thing is that dhcpd and dhclient are not the way the raspberry pi gets its DHCP address on archlinuxarm... They used systemd-networkd because it is simpler and lighter. Just edit the file /etc/systemd/network/eth0.network as follows:

[Match]
Name=eth0

[Network]
DHCP=no

or even as

[Match]
Name=eth0

[Network]
DNS=10.0.1.1

[Address]
Address=10.0.1.30/24

[Route]
Gateway=10.0.1.1

and you get everything you need.

Before you ask: DHCP has been activated by default because you then you can SSH into it pretty easily without a spare screen and keyboard.


Just one thing. I hope you limited the range of possible addresses given by you DHCP server before that. Static addresses in a DHCP network is not always a good idea.

3
  • Thanks a lot for your answer. I just edited this config file and will see (and report), what happens. I actually had to limit the DHCP range, because I cannot split DHCP and static networks here for technical reasons. The DHCP address I got was from the defined range.
    – awado
    Commented Jul 20, 2015 at 11:39
  • My problem is not solved completely. As the USB bug appears, it stops the network service. But I think, your answer was correct to my initial question, so I will mark it as such. I found some more details on switching from netcl to systemctl here: archlinuxarm.org/forum/viewtopic.php?f=58&t=8045 The point is, you might have to disable one or more netctl services in order to do a clean switch.
    – awado
    Commented Aug 6, 2015 at 17:27
  • The first part of this answer just solved this problem for me on the Beaglebone Black
    – xBACP
    Commented Oct 9, 2023 at 1:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .