Raspberry Pi 4 использует встроенный Broadcom BCM54213PE PHY на той же плате что и SoC. При длительной работе без активного охлаждения PHY может вести себя нестабильно — link flaps, link drops, потеря пакетов.

Caveat (2026-06): thermal — лишь частичный фактор. Восстановление охлаждения может снизить частоту проявлений (с раз/день до раз/месяц), но если PHY-чип уже физически деградировал, проблема не уходит полностью. Не давай ложных «resolved» статусов после первой недели стабильности — нужны 1-2 месяца наблюдений.

Симптомы

В journalctl -k:

bcmgenet fd580000.ethernet eth0: Link is Down
avahi-daemon[XXX]: Withdrawing address record for <IP> on eth0
dockerd[XXX]: [resolver] connect failed error="dial udp ROUTER:53: network is unreachable"

В ethtool -S eth0:

  • ненулевые rx_errors, tx_errors, rx_crc, rx_fcs_err

Внешне:

  • Pi периодически пропадает из сети на 10–60 секунд
  • За несколько секунд до полного silent hang успевает прийти avahi-withdrawal
  • При перегреве паттерн повторяется ежедневно/еженедельно

Диагностика

# Историческое: сколько Link Down за период
sudo journalctl --since '14 days ago' | grep -c 'bcmgenet.*Link is Down'
 
# Текущее состояние
sudo ethtool eth0           # Speed/Duplex/Link detected
sudo ethtool -S eth0 | grep -E 'error|drop' | grep -v ' 0$'  # ненулевые ошибки
 
# CPU temp коррелирует
vcgencmd measure_temp
cat /sys/class/thermal/thermal_zone0/temp  # in millicelsius

Если link drops коррелируют с пиками температуры (>75°C), сильно вероятно что причина thermal, а не cable/router.

Что НЕ путать с настоящей деградацией

  • Cable issue — заменить кабель и тестировать. Errors остаются → не кабель
  • Switch/router — переткнуть в другой порт. Те же — не порт
  • MTU mismatchip link show eth0 → typical 1500
  • Driver bug в конкретном ядреdmesg | grep bcmgenet на kernel BUG/Oops
  • veth-флуктуации от Dockerdmesg | grep eth0 показывает только vethXXX renamed from eth0 (это нормально при создании контейнеров), физический Link is Down отдельно

Восстановление (частичное)

  1. Восстановить охлаждение — фан, радиатор, кейс с воздушным потоком
  2. Подождать стабилизации температуры (несколько часов под нагрузкой)
  3. Проверить ethtool counters — если новые errors не появляются → есть улучшение
  4. Мониторить минимум 1-2 месяца — 7 дней недостаточно. Если link drops уменьшились, но не исчезли → permanent damage, thermal часть, но не вся.

Если возвращается через недели

PHY повреждён частично necrotically. Варианты:

  • Сменить кабель и порт коммутатора — дёшево, убирает внешние факторы
  • USB Ethernet адаптер — обойти встроенный PHY (Realtek RTL8153, ASIX AX88179 надёжны на Pi 4). Disable internal eth0: dtoverlay=disable-eth в /boot/firmware/config.txt
  • WiFi backup — fallback access для recovery при сдохшем eth0
  • Замена Pi — если PHY сдох необратимо и USB-Eth не устраивает

Связано


Мета

Область:: 00 Linux