LINUX.ORG.RU

можно ли программными средствами (написав например какой-то код) выключить подачу электричества на USB

 


0

4

Subj. Причем вопрос не до конца праздный, так как таким образом я пытался тестировать отключение hotspot’а (за hotspot «играл» WiFi-адаптер + hostapd и хотелось именно не прибить hostapd, а убить электричество, подаваемое на адаптер для большего реализма).

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

про квотезы не слышал?

не слышал, и даже не знаю что это такое
а почему мне должно быть стыдно? )))

вижу, что на главной странице ссылки на вики нет
то есть, за прошедшие 9 лет её могли тупо дропнуть
на стековерфлоу, например, под дебильным предлогом дропнули «documentation by example», куда многие (включая меня) вносили свой опыт по быстрому освоению ЯП
если вики тоже дропнули, то интересно почему

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

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

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

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

Потверждаю, что все эти echo suspend и прочие пляски с бубном не работали. Пытался разобраться с libusb, но тогда не понял (был глуп и наивен). Да и судя по ответам это ничего бы не дало.

Т.е. мне надо было просто купить хаб перечисленный тут: https://github.com/mvp/uhubctl, подклбючить к нему WiFi adapter, использовать собственно uhubctl и мои волосы стали бы шелковистыми? Ах, почему я был тогда так глуп и наивен. :(

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

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

В итоге подняли аж два сторонних зеркала, от @pelmeshechka и @mandala. А вот /books/ просто почил, что куда печальнее.

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

на практике встречается очень редко

Тогда почему винда при «безопасном отключении устройств» тушит светодиоды на флешках чуть ли не везде? А на GNU/Linux вроде как только вымодпробом модуля ядра можно провернуть такое.

mertvoprog ()

Можно вырубать отдельные порты например с помощью: uhubctl https://github.com/mvp/uhubctl

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

guskov_roman ()

USB power management например про USB клавиатуры есть костыль под названием Boot protoсol (6NKRO) vs. NKRO в более полноценном, suspend mode.

в итоге например некоторые USB клавиатуры могут не работать на момент загрузки ОС пока не пройдёт инициализация и драйвер USB HID в ОС не переведёт устройство из suspend mode в более полноценный.

можно и отдельные порты отключать/переводить в suspend mode.

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

Я четыре из пяти звезд набил отвечая на этот вопрос нет.

Так а почему таки можно ли программными средствами (написав например какой-то код) выключить подачу электричества на USB (комментарий) ? Или просто флэшки так устроены, что на саспенд реагируют выключением диода, а на самом деле какой-нибудь qnx там крутиться, передвигая биты с одного NAND gate в другой,

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

Светодиод на правильной флешке горит когда есть обмен данными. Это, кстати, используется при диагностике: допустим у ноута нет изображения. Вставляешь флешку, если горит, то инициализация проходит, и лучше посмотреть в сторону матрицы и шлейфа, если нет, то нет. Не всегда, конечно, но для оценки фронта работ подходит. А вот неправильные флешки горят всегда, когда на них есть питание 5в. А оно всегда есть, если аппарат не в коматозе, выше кусочек схемы с популярной la-7912 приводил. Такую никакая венда не потушит.

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

Ну подумай, усб 3 выдает ампер, то есть транзистор пропускающий питание через себя должен такой здоровенький быть, плюс обвязка, сколько этих усб на плате 4 минимум, два на морде. Имхо, 0.3 дм платы, оно вот производителю надо. Про резистор не верю, запаять транзисторы и нет резистора. Напрямую там питание идет. Флэшке выдается команда спать, но никто не заставляет её выполнять команду. Что там с запросами потребления тока по усб, чота сильно сомневаюсь.

ilovewindows ★★★★★ ()
Последнее исправление: ilovewindows (всего исправлений: 3)
Ответ на: комментарий от imatveev13

Я хотел именно симулировать «электричество сдохло». Это было тестирование перехода на «запасной» источник интернета для «хитрых телевизоров» (tm) и декодеров, если основной издох, соответственно в рамках тестирования фичи рассматривалось даже идея купить usb/ethernet управляемый power switch навроде https://www.amazon.com/Ethernet-Switch-Controller-Module-Network/dp/B07B48QNPN и эмулировать «электричество сдохло» при помощи него, но мне показалось, что достаточно будет просто что-то там накодить в это usb и оно выключит питание на порту, WiFi-адаптер выключится, что симулирует ситуацию «электричество сдохло на роутере». Оказывается нет.

PS Только не спрашивайте кто придумал эту чуш^Wдо-фичу.

За все ответы большое спасибо.

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

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

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

когда есть обмен данными

Так нету ведь. Это Unlocker’ом изи чекается. Или операционки их пингуют постоянно?

Вставляешь флешку, если горит, то инициализация проходит

Это когда жлобы не поставили ни VGA, ни HDMI, и даже звук логона выключен? Забавный костыль, угу.

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

Обмен там постоянно есть, сам интерфейс такой, операционка ни при чём. Сам осциллографом ткнись да посмотри.

Это когда жлобы не поставили ни VGA, ни HDMI, и даже звук логона выключен? Забавный костыль, угу.

А плата и не обязана выдавать картинку на внешку до загрузки ОС. Какие-то выдают, какие-то нет. Ещё раз подчеркну что это очень примерный оценочный способ. Может в видаке или хабе lvds на матрицу отбиты, и флешка будет вычитываться, и на внешку картинка будет, а на матрицу хер.

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

хотел именно симулировать «электричество сдохло». Это было тестирование перехода на «запасной» источник интернета для «хитрых телевизоров» (tm) и декодеров, если основной издох

тестировщик из тебя так себе, надо сказать. «электричество сдохло» симулируется сдыханием электричества, а не засыланием байтиков в написанный неизвестно кем линупс. и уж точно не засыланием байтиков в написанный неизвестно кем линупс по совету пасанов с лора.

рассматривалось даже идея купить usb/ethernet управляемый power switch навроде https://www.amazon.com/Ethernet-Switch-Controller-Module-Network/dp/B07B48QNPN и эмулировать «электричество сдохло» при помощи него

новости о гениальном изобретении под названием «реле» в ваше село не дошли? для тех, кому сложно спаять три провода, есть с уже приделанным чапельником, $2/пучок

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

тестировщик из тебя так себе

К сожалению да, но я старался как попроще.

электричество сдохло» симулируется сдыханием электричества

Ну как бы ты можешь в линупксе написать poweroff и «электричество сдохнет» правда ведь? Вот я думал, что протокол USB предусматривает управление питанием на хабе.

и уж точно не засыланием байтиков в написанный неизвестно кем линупс по совету пасанов с лора.

А почему собственно нет? Можно вон вообще память поломать засылая байтики: https://en.wikipedia.org/wiki/Row_hammer. Какая разница тянешь ты за ручку, которая открывает дверь или открываешь ее при помощи пульта дистанционного управления? Да и раз хабы, которые умеют выключать/включать питание, подключенному к ним устройству существуют и перечислены тут https://github.com/mvp/uhubctl. Почему мне запрещено не знать о том, что обычно usb хабы управлением питания не занимаются?

Новости о гениальном изобретении под названием «реле» в ваше село не дошли?

Ну реле. Управлять-то надо тестами какому-нибудь скрипту. Т.е. к реле все равно придется приделывать вход какой-то, управляющий включением, выключением липездричества, я не сварщик, я только каску нашел, а в линке выше там уже готовое через ethernet включает/выключает это самое электричество.

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

серьёзно?

Лампочка погаснет. Питание будет от лампочки отключено. Пусть той, которая turbo (была такая раньше, она все время «горело» если turbo нажать). Т.е. вроде как симуляция правильная - напряжения вокруг лампочки больше нет - электричество для лампочки сдохло, что не так?

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

Но если я правильно понял покупка соответствующего хаба и использование соответсвующей программы (читай «посылание байтиков»), а именно uhubctl «потушило» бы, например, мою «тестовую» usb-лампочку, пусть наприимер эту https://www.ikea.com/pl/pl/images/products/jansjoe-led-usb-lamp-black__0607576_PE683065_S5.JPG). Что не так с такой симуляцией?

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

Что не так с такой симуляцией?

Если я совсем пернул в лужу (хотя мне так не кажется), то могу себе вставить эту лампочку в ж.пу и выслать как флажок2.png, все ради науки и познания.

Но мне кажется ничего такого криминального в моих рассуждениях нет. Надо было или брать relay switch или хаб с поддержкой power switching (что одумав - стреляние по мухам из пушки) или вообще «твое» реле самому паять как тут https://habr.com/ru/post/384043/.

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

это что за убермеганищебродство такое? Скоро на изоляции для проводов экономить начнут!

Это не нищебродство, а умышленное урезание функционала. Тот usb-hub этой же фирмы, который потдерживает - стоил совсем других денег. Просто при производителю нет смысла закупать разные контролеры для масового производство. А разные модели, в разных ценовых котегориях выпускать надо. Вот так и урезают функционал простым способом.

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

В прототипе просто перепояли, и тестировали так.

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

Надо было или брать relay switch или хаб с поддержкой power switching (что одумав - стреляние по мухам из пушки) или вообще «твое» реле самому паять как тут https://habr.com/ru/post/384043/.

загугли уже USB Relay, Г-ди

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

загугли уже USB Relay, Г-ди

Обязательно, спасибо!

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

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

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

Кстати да, не первый раз наблюдаю. Может конкретно сейчас и не всё так печально, но тенденция есть. Это всё происки всяких поехавших завсегдатаев тут - которые своим неисправимым ламерством и троллингом раздражают всех, а сделать с ними ничего нельзя (воли нет, они привлекают посетителей в срачи, форум «живет»). И народ потихоньку, сам того не замечая, начинает раздражаться и злословить на пустом месте. ЛОР душный. Слово токсичный тут не любят. Так что душный - самое то.

Мне, например, тема очень интересна, и ТС (ты) проявляешь адеватность.

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

Можешь снять с флешки корпус и померить вольтметром напряжение vbus. Есть очень большой шанс, что флешка именно что чисто программно диод отключает, когда ОС перестает с ней работать. Собственно, а как может быть иначе. Ведь даже подключение и отключение устройства без питания не определить. Конечно, можно делать сложную схему переключаемого уровней ограничения тока, но это сложно и не очень практично (защита от КЗ это одно, а в теме речь о перезагрузке глючных устройств, от ограничения тока, как следствие, скачущего напряжения глюков будет только больше)

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

Полевые транзисторы на 1 ампер очень маленькие. И в ключевом режиме ты даже пальцем нагрев не почувствуешь, им и радиатор не нужен. Узнай уже про что-то кроме КТ315

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

В чём проблема просто выдернуть питание из роутера или выдернуть модем из USB? Или ты там решил автотесты сетевых настроек замутить? Зачем? Это же 1 раз настраивается

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

Очевидно, ставится ключ с запасом по току. В любом случае за миллисекунды времени срабатывания нагреться он не успеет, а сами по себе кристаллы транзисторов очень маленькие все, меньше корпуса (если речь не про экстрим на 1000 вольт 1000 ампер), размер корпуса обусловлен в первую очередь обусловлен рассеянием тепла и удобством монтажа. Ну и таки я закорачивал USB, защита отлично работает везде, проблемы могут быть разве что на лютой китайщине. Но эта защита на фиксированный ток, самый большой, что должен отдавать порт. Такого, что девайс следил именно за соблюдением потребления указанного в USB дескрипторе я ни разу не видел.

KivApple ★★★★★ ()

Блин, столько лет прошло с момента первого сообщения о программном управлении питания, а до сих пор ничего так и не сделали вменяемого!

Сейчас вот встал вопрос: как мне отключать/включать пару светодиодиков, запитанных от USB. А оказалось, что никак! Потому что ядро умеет отключать питание лишь хабов, но не отдельных портов (либо это — проблема материнки). А если рубануть питание на хабе, отвалится еще куча устройств, на нем висящих...

В общем, придется опять колхозить USB-релюшки…

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

Есть pci/pcie контроллеры (типа такого) на платах которых предусмотрена установка выключателей питания (выполняющих также функцию защиты), но как правило они не распаяны, а стоят просто предохранители.

Главное быть внимательным, иногда товар не соответсвует картинке, а IC-переключалки бывают с обратной логикой.

Потому что ядро умеет отключать питание лишь хабов

?!
Это некоторые хабы умеют отключать питание своих портов.

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

Блин, столько лет прошло с момента …

… но не отдельных портов (либо это — проблема материнки).

Если речь идёт о всё тех же устаревших хаб-чипах (или интегрированных), в которых физически отсутствует возможность программного управления VBUS, то сколько не жди - не появится.

А если нет, то выше давали уже ссылку на

uhubctl is utility to control USB power per-port on smart USB hubs. Smart hub is defined as one that implements per-port power switching.

(выделение жирным моё)

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

Если в /sys/bus/usb/devices/XX/power пусто, то хоть кол на голове теши — не получится. У меня на материнке два хаба, и лишь их питанием можно управлять. Возможно, на современных материнках и есть возможность каждый порт по-отдельности отключать.

Еще как вариант — сделать свой собственный USB-hub с интегрированным МК, управляющим питанием каждого отдельного порта.

Eddy_Em ☆☆☆☆☆ ()