LINUX.ORG.RU

Отключение питания usb разъема

 ,


0

1

Доброго времени суток!

Использую: ubuntu 18 Модем: ZTE MF710M

Суть проблемы:

У меня бывает зависает модем и пропадает интернет. При этом интерфейс поднят. Чтобы интернет снова появился мне приходиться вытаскивать и втыкать модем в usb разъем.

Возможно ли каким-то либо образом отключать питание на usb порту? Читал про CONFIG_USB_SUSPEND, но я эту опцию не нашел при сборки ядра.

P.S: Скрипты usbreset , bind-unbind , и запись 0 и 1 в различные файлы(те что на просторах интернета по данной тематике) мне не помогло.

Ответ на: комментарий от anonymous

К сожалению, это нужно сделать на Ubuntu18 скриптом или командой. Другие варианты типо реле времени и.т.д не хотел бы использовать, так как оборудования где засыпает модем 900+

antonfender
() автор топика

Может решать первопричину? Он так же ведёт себя и под Windows? Система обновлена? Может попробовать установить ядро из более новых убунт? (они есть в репозитории)

ZenitharChampion ★★★★★
()

Возможно ли каким-то либо образом отключать питание на usb порту?

Это по большей части зависит от возможностей вашей железки, может там вообще ничего такого не поддерживается.

Уверены что именно модем зависает и просто переподключиться к сети не достаточно?

Ну и можно попробовать потыкать его через usb-modeswitch, может будет достаточно.

micronekodesu ★★★
()
Последнее исправление: micronekodesu (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

Под windows тоже модем засыпает. Это 100% дело в модеме. Я даже общался с человеком, который разбирается в модемах. И он сказал, что вполне вероятно зависает операционка модема. По опыту помогает только вытащить и вставить. Вот и хотелось бы знать есть ли в ubuntu 18(4.18.0-15-generic) возможность отрубать питание на USB

antonfender
() автор топика

Изучал (недолго) этот вопрос. Выводы такие: прямо отключить питание скорее всего невозможно, оно туда подведено почти напрямую с 5V линии блока питания. Если usb-хаб на нулевой pci-шине - ещё более вероятно невозможно. Нулевая pci-шина это кажется та что в lspci первые две цифры в строчке 00 (перед двоеточием).

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

firkax ★★★★★
()

Можно, если модем воткнут в USB на плате расширения, ибо там отдельный контроллер USB.

tiinn ★★★★★
()
Ответ на: комментарий от firkax

Ну это больше походит на правду, что не получится програмно сделать, если нет такой возможности по железу. На некоторых форумах в телеге люди пишут что им помогали различные советы и скрипты из интернета. Прям типо отключалось питание. Видимо на моем устройстве PIPO X10 это сделать нереально

antonfender
() автор топика
Ответ на: комментарий от antonfender

На некоторых форумах в телеге люди пишут что им помогали различные советы и скрипты из интернета. Прям типо отключалось питание.

Это какие-то идиоты, типа обитателей ЛОРа, у которых критерием «отключения» является погасшая лампочка на устройстве.

LamerOk ★★★★★
()

Есть USB хабы, которые умеют програмно выключать питание, это будет дорого, модель не подскажу(

goingUp ★★★★★
()
Ответ на: комментарий от LamerOk

Я серьезно к этому вопросу подходил и проверял мультиметром это все дело. Питание действительно не уходило. Да и как выяснилось на моем модеме есть лампочка, которая не тухнет. Поэтому отличная замена мультиметра)

antonfender
() автор топика

Если модем не подвисает наглухо, может помочь AT команда перезагрузки модема

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от antonfender

Питание действительно не уходило.

Так это и понятно. Просто «на форумах» о наличии питания судят по светодиодику. Интернет-форумы - такой себе источник информации. По нынешнему ЛОРу вполне можно представить уровень.

LamerOk ★★★★★
()

Решал похожую проблему на оффтопике - также зависал модем.

USBDeview.exe /disable_enable "%MODEM_NAME%"

Может найдешь аналог этой проги под Linux. Сомневаюсь, что это именно питание отключало (тем более, что оно иногда прямо на +5В припаяно) но от зависания спасало.

anonymous
()
Ответ на: комментарий от anonymous

аналог под Linux

usbreset. Естественно не отключает питание (хотя некоторые контроллеры умеют, см. вышеуказанный uhubctl), но в некоторых случаях помогает.

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 2)
Ответ на: комментарий от ZenitharChampion

«Другие варианты типо реле времени и.т.д не хотел бы использовать, так как оборудования где засыпает модем 900+»

greenman ★★★★★
()

Наверное, я слишком много хочу:) Думаю, что решить этот вопрос программно не получится. Буду думать в сторону реле времени. Чтобы через каждые 2 часа перезагружал модем

antonfender
() автор топика

Если интерфейс поднят, то скорее всего модем не совсем умер. Послать ему в последовательный порт AT+CFUN=1,1 если я правильно помню.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

Ну что не как линуксоид - бери Arduino и вперёд. Программируй что хочешь.

только не ардуино – а просто мегу и транзистор

pihter ★★★★★
()

echo suspend > /sys/bus/usb/devices/4-1/power/level

echo on > /sys/bus/usb/devices/4-1/power/level

anonymous
()
Ответ на: комментарий от greenman

Там целый квест по ссылкам пройти надо =) Я дошёл до корня и скопипастил выше суть

anonymous
()
Ответ на: комментарий от Stanson

Ох, с данными модемами этот номер наверное не работает. Эти модемы гов*ище редкостное… Мучился я с этими AT командами, весь 4pda перечитал, толку не было. Я конечно не гуру может что-то не так делал

antonfender
() автор топика
Ответ на: комментарий от antonfender

Huawei полностью ребутится от такого. Попробуй, может поможет. Это включение полной функциональности модема и холодный рестарт. Если на AT команды при «зависании» отвечает, то это поможет.

Питание USB программно дёргать можно только на считанных девайсах. Писюковые мамки к ним не относятся, там тупо физически нет деталек чтобы это делать. Возможно что-то изменится, если начнут делать USB3.0 порты с полноценным USB-C power. Там по-любому будет какая-нибудь микруха чтобы напряжения разные выдавать, а у них всегда есть Enable вход (или бит в SPI/I2C регистр).

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 3)

Купи микротык с поддержкой прерывания питания по usb и напиши крипт

Jopich1
()

вредные советы от анонимуса:

купи USB удинитель и реле от обдуринки. Распотроши удлинитель и найди жилу питания и порви ее. На нормально замкнутые выводы реле соедини жилу питания. На реле подавай сигнал от ком порта :) Будет рвать питание когда в ком порт что-то посылаешь…

цена 100 рублей

anonymous
()
Ответ на: комментарий от antonfender

Дорогое решение. Думаю, что сам спаяю что-нить:)

так я и предлагаю самому спаять. Атмега8 - 20 руб/шт, один резистор 10 кОм - ну пусть рубль, еще один резистор чтоб ограничить ток базы транзистора 1 кОм – еще рубль, транзистор bc546 - 10 руб, переходник usb-uart – 50 руб. Пара USB-разъемов по 10 руб и кусочек текстолита 10 руб.

В принципе контроллер можно и подешевле, но, как видишь это не сильно повлияет на цену.

Если хочешь, обращайся, я тебе схемку накидаю и даже платку могу помочь развести в KiCAD-е. Если надо немножко – сам спаяешь, если тыщу штук – закажешь в китае платки заводские и детальки, тоже сам спаяешь за недельку-дургую ))

// «прогу» накидать в мегу тоже могу помочь, , тулчейн есть в любом линуксе

pihter ★★★★★
()
Ответ на: комментарий от anonymous

На реле подавай сигнал от ком порта :)

если вместо реле в твоей схеме воткнуть транзистор с резистором, то не только ЭДС самоиндукции и током потребеления реле комп не спалишь, а еще и работать будет :)

pihter ★★★★★
()
Ответ на: комментарий от anonymous

А, ну тогда не такой уж и вредный совет :)

pihter ★★★★★
()
Ответ на: комментарий от pihter

переходник usb-uart – 50 руб

Это где такое? И зачем atmega, если будет отдельный переходник usb-uart, к нему можно транзистор зацепить напрямую.

транзистор bc546

И как он потянет 0,3-0,5 А?

Ещё забыли хлорное железо, лазерный принтер, утюг посчитать :)

И вобще это очень оптимистично думать, что человек без опыта сможет изготовить и запаять плату под SOIC корпуса. ИМХО, ТС максимум сможет транзистор с обвязкой на куске макетной платы спаять, и подключть это к купленному распаяному на плате usb-uart переходнику. Но всё это подразумевает, что у него на устройстве есть два usb-порта...

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.