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 ()

Возможно ли каким-то либо образом отключать питание на 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 ()
Ответ на: комментарий от firkax

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

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

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

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

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

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

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

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

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

LamerOk ★★★★★ ()

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

USBDeview.exe /disable_enable "%MODEM_NAME%"

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

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

аналог под Linux

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

token_polyak ()
Последнее исправление: token_polyak (всего исправлений: 2)

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

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

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

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

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

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

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

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

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

цена 100 рублей

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

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

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

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

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

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

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

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

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

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

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

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

транзистор bc546

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

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

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

mky ★★★★★ ()