CodingBox Q&A Ask question

Turris Omnia отказывается работать с разблокированным GPON-модемом MA5671A: eth2 никогда не поднимается на Turris OS 5.0.3

Asked Active Viewed 200 AI translation from English
4

Пытаюсь заменить терминал провайдера в домашней стойке GPON-модемом прямо в роутере, чтобы оптоволокно заходило в одну коробку вместо двух. Модем определяется, и на этом хорошие новости заканчиваются.

  • Turris Omnia на Turris OS 5.0.3, штатное ядро
  • GPON-модем Huawei MA5671A с разблокированной прошивкой, выставлен в SGMII 1G
  • пигтейл SC/APC от настенной розетки к модему
  • eth2 - это порт SFP

Модуль определяется, но интерфейс так и не активируется:

# dmesg | grep sfp
SFP module encoding does not support 8b10b nor 64b66b

После этого eth2 остаётся down, никакого carrier, счётчики пустые.

Что я уже пробовал:

  • перепрошить модем обратно на штатную прошивку - при этом получаю ошибку чтения EEPROM вместо этого
  • принудительно задать скорость через ethtool -s eth2 1000 autoneg off duplex full, после чего интерфейс держится на 10 Мбит полудуплекс
  • переставить тот же модем в роутер MikroTik, где он действительно поднимается после ручной установки скорости порта

То есть сам модуль живой, и со стороны оптоволокна всё в порядке. Против чего именно в этом модеме возражает ядро, и какие GPON-модемы реально поднимаются на Omnia, а не отвергаются?

Comments 4

Accepted answer

Это проблема на стороне хоста, а не мёртвый модуль. EEPROM в этих переделанных GPON-модемах декларирует кодировку, которую основной драйвер sfp не умеет сопоставить, поэтому phylink отказывается поднимать порт, а строка, которую вы привели, - это драйвер, говорящий именно об этом. Ваши собственные данные указывают туда же: тот же самый модем линкуется на MikroTik после ручной установки скорости порта, то есть с оптикой и стороной PON всё в порядке.

Единственное, что реально сдвинуло дело у меня, - это ядро, достаточно новое, чтобы нести особые правки под конкретные модули, что на Omnia означало тестовую ветку HBD с ядром 5.4. Предупреждаю сразу - это лишь частичная победа, и сильно зависит от того, какой у вас модем. На этом ядре:

  • модифицированный MA5671A: всё ещё отказ, теперь жалуется на module address swap to access page 0xA2 not supported
  • штатный MA5671A: failed to read EEPROM: -6, как и у вас
  • ZISA OP151S: порт переключился в inband/1000base-x, но так и не залинковался
  • Nokia/Alcatel G-010S-A: отклонён по кодам compliance
  • ZTE DFP-34G-2C2: залинковался на 1 Гбит/с и остался работать

Так что если хотите, чтобы Omnia заработала сейчас, а не когда-нибудь потом, я бы поставил в клетку именно DFP-34G-2C2. Проверьте на своей коробке, прежде чем на что-то полагаться - результаты здесь явно различаются между модемами и даже между версиями прошивки одного и того же модема.

3 CanadalantechCA Show original (English) AI translation

Прежде чем начинать гадать, стоит уточнить две вещи. Во-первых, из какой ветки эта 5.0.3, и что показывает uname по ядру? Особые правки SFP под конкретные модули, нужные этим переделанным GPON-модемам, попали в код позже, так что поставляемое стабильное ядро и тестовое ведут себя совершенно по-разному с одним и тем же модулем.

Во-вторых, зарегистрирован ли серийный номер ONU на стороне провайдера? Модем, который так и не авторизован на OLT, будет выглядеть мёртвым, а многие провайдеры вообще отказываются регистрировать сторонний ONU.

И когда вы его вставляете, порт вообще переключается в inband/1000base-x, или лог останавливается прямо на этом сообщении о кодировке?

0 United Statestxnode67US Show original (English) AI translation

Стабильная ветка, штатное ядро для 5.0.3, ничего кастомного поверх. Сторона провайдера тут ни при чём - это то же самое волокно, и модем несёт зарегистрированный серийный номер.

Лог останавливается на строке про кодировку, порт никогда не переключается в inband/1000base-x. Что именно я получаю, зависит от прошивки. С разблокированной:

SFP module encoding does not support 8b10b nor 64b66b

плюс модуль сообщает о transmit fault. Со штатной прошивкой дело даже до этого не доходит:

failed to read EEPROM: -6

И, как уже сказал, принудительная установка скорости не даёт вообще ничего: после ethtool -s eth2 1000 autoneg off duplex full интерфейс всё равно держится на 10 Мбит полудуплекс.

1 GermanyqsfpadminDE Show original (English) AI translation

Ещё один режим отказа, который стоит исключить на том же роутере, потому что выглядит похоже, но к кодировке отношения не имеет. HALNy HL-GSFP на Turris OS HBS 6.2.4 определялся, порт даже переключался в inband/1000base-x, а затем линк падал и eth2 оставался down.

Причина: этот модем сам по себе маленький компьютер. Ему нужна примерно минута на поднятие собственной прошивки, и только после этого он начинает отвечать клетке чем-то осмысленным. При холодной загрузке роутер заглядывает в клетку задолго до этого момента, определение не срабатывает, и коробка тихо откатывается на медную магнитку WAN. Увеличение задержки загрузки решило проблему:

fw_setenv bootdelay 60

Шестьдесят секунд вместо стандартных трёх, и кто-то ещё с тем же модемом это подтвердил. Ещё две вещи, которые помогли: отключить медный кабель WAN и перезагрузиться ещё раз, и зайти в сам модуль, чтобы посмотреть, в каком он состоянии - через последовательный порт на 38400 8N1 или по SSH на 192.168.77.154 порт 22666.

2 United Statestxnode67US Show original (English) AI translation
Log in to comment. Log in