1

Problem

Using two different Raspberry Pi's, with two different SD cards, and multiple power adapters and cables to make sure I don't have a hardware issue, I've discovered an issue with newer ArchLinux on the my Raspberry Pi.

After some time (no more than ten minutes), my Raspberry Pi stops responding to network requests (even though the lights stay on) and I must either reboot the Pi, or plug in a USB keyboard and restart networkd.

I was not able to figure out the cause of the issue, so I installed Rasbian to see if it had issues with my NIC. Rasbian stayed online for more than eight hours.

The last time I installed ArchLinux was about six months ago, and I had zero issues with network connectivity at that time.


Workaround

Many people believed this to be a hardware issue (#archlinux-arm, #raspberrpi), but I had confidence it was an issue with ArchLinux (or something packaged with ArchLinux) so I installed netctl:

  1. pacman -S netctl
  2. cp /etc/netctl/examples/ethernet-dhcp /etc/netctl
  3. netctl enable ethernet-dhcp
  4. systemctl enable netctl
  5. systemctl disable systemd-networkd

What works

Upon reboot, I immediately have access to the Pi, and the Pi has access to the LAN. The Pi does not drop connectivity, as it did with networkd.

What doesn't work

Once the Pi has gotten an IP address, it does not set up any default routes. The Pi can still access the LAN, but doesn't have WAN access until I give it a default gateway:

  1. route add default gw x.x.x.x eth0

Questions

  1. Are there any known issues with networkd that would explain this issue (I have yet to find anything)?
  2. Does anybody have any suggestions on why networkd is acting this way?
  3. Does anybody have any suggestions on how to get netctl to accept routing options from my DHCP server?
2

I can offer that I have 5 different pi's from B to B+ to Pi2, all running Arch. They were initially installed at various points over the last year and have been upgraded in rolling Arch fashion over the years. I've never seen the issue you describe, I am just using systemd-networkd.

As something for you to compare to, here is some info from one of my Pi2s:

> uname -r -m
3.18.9-2-ARCH armv7l
> cat /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DHCP=both

Here's a dump of all running processes (minus kernel threads and my own sshd process):

> ps -eFlyH | grep -v '\[.*\]$'
S UID        PID  PPID  C PRI  NI   RSS    SZ WCHAN  PSR STIME TTY          TIME CMD
S root         1     0  0  80   0  4476  6013 SyS_ep   2 Mar13 ?        00:01:25 /sbin/init
S root       116     1  0  80   0 11116  5020 SyS_ep   0 Mar13 ?        00:00:13   /usr/lib/systemd/systemd-journald
S root       133     1  0  80   0  2752  2736 SyS_ep   0 Mar13 ?        00:00:00   /usr/lib/systemd/systemd-udevd
S systemd+   170     1  0  80   0  2256  3176 SyS_ep   1 Mar13 ?        00:00:03   /usr/lib/systemd/systemd-timesyncd
S dbus       174     1  0  80   0  2584  1093 SyS_ep   1 Mar13 ?        00:00:04   /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
S systemd+   175     1  0  80   0  2540  2850 SyS_ep   3 Mar13 ?        00:00:06   /usr/lib/systemd/systemd-networkd
S root       176     1  0  80   0  2388   780 SyS_ep   2 Mar13 ?        00:00:06   /usr/lib/systemd/systemd-logind
S root       178     1  0  80   0  4256  1938 poll_s   3 Mar13 ?        00:01:12   /usr/bin/haveged -F -w 1024 -v 1
S root       181     1  0  80   0  1388   464 n_tty_   1 Mar13 ?        00:00:00   /sbin/agetty --keep-baud 115200 38400 9600 ttyAMA0 vt102
S root       182     1  0  80   0  1388   464 n_tty_   3 Mar13 tty1     00:00:00   /sbin/agetty --noclear tty1 linux
S systemd+   185     1  0  80   0  2396   954 SyS_ep   2 Mar13 ?        00:00:00   /usr/lib/systemd/systemd-resolved

This pi was just installed last month so it's relatively new and vanilla.

So specific answers to your specific questions:

  1. No idea. I'm offering as a point of reference that I have a handful of pis running Arch using networkd that do not exhibit this behavior.
  2. You can check your logs to see if something is happening on the network, DHCP refresh, etc that might be triggering this.
  3. Haven't done much playing with netctl since networkd has worked well for me.

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.