Питание USB-портов: различия между версиями
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 2: | Строка 2: | ||
<translate> | <translate> | ||
<!--T:1--> | <!--T:1--> | ||
== Wiren Board 7 == | == Wiren Board 7.2-7.3 == | ||
[[Image: wb7.2-7.3 usb power disable.png |300px|thumb|right| Отключение USB-порта в контроллерах Wiren Board 7]] | [[Image: wb7.2-7.3 usb power disable.png |300px|thumb|right| Отключение USB-порта в контроллерах Wiren Board 7.2-7.3]] | ||
Прежде, чем использовать этот метод в своих проектах, важно понять две вещи: | Прежде, чем использовать этот метод в своих проектах, важно понять две вещи: | ||
# При обычной эксплуатации потребности отключать питание USB-порта нет. | # При обычной эксплуатации потребности отключать питание USB-порта нет. | ||
# Метод не переносим между ревизиями контроллеров и может в любом момент сломаться. Если вам очень надо на это завязаться и использовать в своих скриптах — напишите нам и мы подумаем, как это сделать нормально. | # Метод не переносим между ревизиями контроллеров и может в любом момент сломаться. Если вам очень надо на это завязаться и использовать в своих скриптах — напишите нам и мы подумаем, как это сделать нормально. | ||
В процессоре A40i, к одному физическому порту подключено два контроллера: OHCI (1Mbit, 12Mbit) и EHCI (480MBit), которые друг с другом договариваются и передают устройство на правильный. В системе это выглядит как два порта, что видно в lsusb. | В процессоре A40i, к одному физическому порту подключено два контроллера: OHCI (1Mbit, 12Mbit) и EHCI (480MBit), которые друг с другом договариваются и передают устройство на правильный. В системе это выглядит как два порта, что видно в lsusb. |
Версия 15:10, 2 мая 2023
Wiren Board 7.2-7.3
Прежде, чем использовать этот метод в своих проектах, важно понять две вещи:
- При обычной эксплуатации потребности отключать питание USB-порта нет.
- Метод не переносим между ревизиями контроллеров и может в любом момент сломаться. Если вам очень надо на это завязаться и использовать в своих скриптах — напишите нам и мы подумаем, как это сделать нормально.
В процессоре A40i, к одному физическому порту подключено два контроллера: OHCI (1Mbit, 12Mbit) и EHCI (480MBit), которые друг с другом договариваются и передают устройство на правильный. В системе это выглядит как два порта, что видно в lsusb.
Чтобы выключить питание на порту, нужно отключить этот порт от обоих контроллеров. А так как питание больше никто не будет запрашивать, Linux его отключит.
Отключить:
echo 1c14400.usb > /sys/bus/platform/drivers/ohci-platform/unbind
echo 1c14000.usb > /sys/bus/platform/drivers/ehci-platform/unbind
Включить:
echo 1c14400.usb > /sys/bus/platform/drivers/ohci-platform/bind
echo 1c14000.usb > /sys/bus/platform/drivers/ehci-platform/bind
Wiren Board 6
Второй внешний USB-порт:
# выключить
$ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` power 4 off
# включить
$ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` power 4 on
Модуль Wi-Fi:
# выключить
$ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` power 1 off
# включить
$ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` power 1 on
Вместо
$ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` ...
в большинстве случаев можно писать
$ hubpower 2:2 ...
Wiren Board 5
Внешний USB-порт:
# выключить $ hubpower 1:1 power 1 off # включить $ hubpower 1:1 power 1 on
Модуль Wi-Fi:
# выключить $ hubpower 2:1 power 1 off # включить $ hubpower 2:1 power 1 on
Wiren Board 4
Номера портов (для управления питанием):
4 - встроенный WiFi 3 - порты USB-Hub, выход 5V 1 - EThernet-часть LAN9514
Пример (отключение Wi-Fi):
hubpower 1:2 power 4 off
Wiren Board Smart Home rev. 3.5
Номера портов (для управления питанием):
4 - встроенный WiFi 3 - порты USB-Hub 1 - EThernet-часть LAN9514