Отвал USB при перегреве

Добрый день! Обнаружили проблему, что при нагреве wirenboard выше 90 градусов (по данным /sys/class/thermal/thermal_zone0/temp) из системы пропадает устройство, подключённое к внешнему USB. Внутренние устройства (модем, wifi) при этом работают штатно. При попытке переподключить устройство в системе не определяется, перезагрузка wb не помогает. Работоспособность восстанавливается только после охлаждения.
Пробовали на версиях wb 7.4.3M, 7.4.4G. Субъективно показалось,что на G проблема менее выражена.

В связи с этим возникли следующие вопросы:

  1. В чем разница между ревизиями 7.4.3M 7.4.4G в части схемотехники USB?
  2. Не сталкивались ли разработчики wirenboard c такой проблемой ранее?
    Спасибо

Добрый день.

А какая температура самой платы при этом?
Мне удалось синтетически нагреть CPU до 90. Температура платы при этом не достигала 50.

Вот тут непонятно. ЧТо имено происходит? Что в логах ядра? Подключено ли что-то в разъем USB network?
Ну и - что в GPIO USB0 ID?
Проверьте

cat /sys/kernel/debug/gpio |grep USB0\ ID

Нет разницы: Аппаратные ревизии контролера Wiren Board 7 — Wiren Board

Нет, не сталкивались.

Подскажите, какой командой можно считывать температуру платы из linux?

нет, только usb debug

Просто disconnect, никаких других ошибок

Судя по блок-схеме wirenboard, внешний usb идет через блок “ESD protection, on/off, current limit”. Это отдельная микросхема? Можете назвать её обозначение, попробуем погреть отдельно её

подскажите какой номер этого gpio в системе?

Прямо из интерфейса:


Ну или топик соответствующий.

Не надо “греть”. Точнее - только до установленных техническими характеристиками контроллера величин. За ними (выше, ниже) - работоспособность не гарантируется.

gpio-116. Это же видно при выполнении команды.

У нас нет штатного софта от wb, в том числе интерфейса, однако драйвер wbec загружен. Можно ли температуру платы считать например из sysfs или с dev устройства?

Только ради эксперимента, чтобы понять, проблема где-то “внутри” процессора или во внешней микросхеме

вижу есть следующее:
Если подскажете как их данных значений вычислить темературу платы, будет супер

cat /sys/bus/iio/devices/iio:device1/
dev                in_current1_scale  in_current2_scale  in_temp_raw        in_voltage0_raw    in_voltage1_raw    of_node/           subsystem/
in_current1_raw    in_current2_raw    in_temp_offset     in_temp_scale      in_voltage0_scale  in_voltage1_scale  power/             uevent

А как (чем?) обрабатываете события на USB0 ID, USB0 ID?

Я бы предпочел получить данные из обычного, штатного ПО. Не готов обсуждать, к сожалению, корректную реализацию управления коммутатором USB из стороннего ПО. У меня скорее всего компетенций не хватит.

Да, например

cat  /sys/class/hwmon/hwmon1/temp1_input

Добрый день.
Получилось?