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.

2
  • 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
    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
    Aug 6, 2015 at 17:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.