**TL;DR:** В UNAS 2 используется USB-подключённый Realtek RTL8156 2.5GbE NIC с драйвером r8152 v2.17.2 от 2023-09-05 — почти три года давности. Сейчас на моём устройстве драйвер при каждой загрузке не может согласовать гигабит и откатывается до 100Mb. Поддержка UniFi не отвечает. Пишу на случай, если кто-то видит то же самое, и чтобы донести это до инженерной команды.---**Аппаратный дизайн**В UNAS 2 не используется PCIe NIC. Используется USB-подключённый Realtek RTL8156, подтверждено через: ethtool -i eth0 # driver: r8152 # version: v2.17.2 (2023/09/05) lsusb -t # Port 1: Dev 2, Driver=r8152, 5000MЭто значит, что NIC сидит на USB-шине, деля очереди и пути восстановления USB-контроллера. USB NIC по своей природе более хрупкие под длительной нагрузкой, чем PCIe NIC — меньше очереди, больше участия CPU, менее надёжное восстановление после ошибок.**Изначальные симптомы (при длительной передаче)**Во время многo-ТБ SMB/SCP передач:- Пропускная способность падает и зависает на секунды-минуты- SMB-сессии отключаются- /var/log/kern.log заполняется `r8152 ... eth0: carrier off / carrier on`- Шара в итоге полностью отваливается- Восстанавливается только полным выключением питанияВоспроизводилось с разными кабелями, портами коммутатора и клиентами. Ни одно другое 2.5G-устройство на том же USW-Flex-2.5G не имеет проблем.**Стало хуже**После нескольких циклов устранения неполадок NIC перестал согласовывать гигабит при загрузке. В логе ядра теперь: r8152 4-1.1:1.0 eth0: autoneg retry 3/3 for higher speed (total 3, linked at 100Mbps) r8152 4-1.1:1.0 eth0: autoneg retry exhausted, accepting 100Mbps r8152 4-1.1:1.0 eth0: carrier onСам драйвер сообщает, что трижды пытался согласовать более высокую скорость, потерпел неудачу и принял 100Mb. Порт коммутатора установлен на auto-negotiate. Все остальные устройства на том коммутаторе работают на своих номинальных скоростях.Любая попытка форсировать скорость через `ethtool -s eth0 ...` вешает устройство настолько, что требуется выключение питания — вероятно, потому что зависший USB NIC тянет за собой весь USB-стек.**Испробованные меры**- Отключение NIC offloads (tso/gso/gro/tx/rx/sg) — временное облегчение, потом снова отказ- Форсирование 1GbE — держалось часами, потом отказ под непрерывным RX- Разные кабели, порты коммутатора, настройки STP- Тикет в поддержку — эскалирован несколько дней назад, ответа нет**Проблема возраста драйвера**Драйвер r8152, поставляемый в текущей прошивке UniFi — v2.17.2 (2023-09-05). В upstream r8152 с тех пор вышло множество релизов с исправлениями поведения autoneg RTL8156 и восстановления после USB-зависаний. Этот драйвер нельзя обновить обычными средствами — он находится в образе ядра UniFi, а не как Debian-пакет.**Вопросы к UniFi**1. Почему устройство, вся задача которого — сетевaя передача файлов, использует USB NIC вместо PCIe?2. Почему драйвер r8152 поставляется почти на 3 года устаревшим?3. Планируется ли обновление прошивки, которое исправит поведение carrier-flap и autoneg-failure?4. Для затронутых пользователей — путь вперёд это RMA, или исправление уже в работе?**Для тех, кто видит это же**Если вы сталкиваетесь с теми же симптомами, пожалуйста, проверьте и опубликуйте: ethtool -i eth0 # драйвер и версия lsusb -t # подтвердить USB-подключённый NIC dmesg | grep r8152 # события carrier, повторы autoneg ethtool eth0 # текущая согласованная скоростьБыло бы полезно знать, насколько это распространено и нашёл ли кто-нибудь рабочее долгосрочное решение (не временную меру).
