Питание USB-портов: различия между версиями
(не показано 19 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
<!--T:1--> | |||
== Wiren Board 7 == | |||
[[Image: wb7.2-7.3 usb power disable.png |300px|thumb|right| Отключение USB-порта в контроллерах Wiren Board 7]] | |||
Прежде, чем использовать этот метод в своих проектах, важно понять две вещи: | |||
# При обычной эксплуатации потребности отключать питание USB-порта нет. | |||
# Метод не переносим между ревизиями контроллеров и может в любом момент сломаться. Если вам очень надо на это завязаться и использовать в своих скриптах — напишите нам и мы подумаем, как это сделать нормально. | |||
Linux сам управляет питанием USB-портов, поэтому ручки «Отключить питание USB» нет, но есть обходное решение. | |||
В процессоре A40i, к одному физическому порту подключено два контроллера: OHCI (1Mbit, 12Mbit) и EHCI (480MBit), которые друг с другом договариваются и передают устройство на правильный. В системе это выглядит как два порта, что видно в lsusb. | |||
Чтобы выключить питание на порту, нужно отключить этот порт от обоих контроллеров. А так как питание больше никто не будет запрашивать, Linux его отключит. | |||
Отключить: | |||
<syntaxhighlight lang="bash"> | |||
</ | echo 1c14400.usb > /sys/bus/platform/drivers/ohci-platform/unbind | ||
echo 1c14000.usb > /sys/bus/platform/drivers/ehci-platform/unbind | |||
</syntaxhighlight> | |||
Включить: | |||
< | <syntaxhighlight lang="bash"> | ||
echo 1c14400.usb > /sys/bus/platform/drivers/ohci-platform/bind | |||
echo 1c14000.usb > /sys/bus/platform/drivers/ehci-platform/bind | |||
</syntaxhighlight> | |||
== Wiren Board 6 == | == Wiren Board 6 == <!--T:4--> | ||
<!--T:5--> | |||
Второй внешний USB-порт: | Второй внешний USB-порт: | ||
< | <!--T:6--> | ||
<syntaxhighlight lang="bash"> | |||
# выключить | # выключить | ||
$ hubpower 1: | $ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` power 4 off | ||
# включить | # включить | ||
$ hubpower 1: | $ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` power 4 on | ||
</ | </syntaxhighlight> | ||
<!--T:7--> | |||
Модуль Wi-Fi: | Модуль Wi-Fi: | ||
< | <!--T:8--> | ||
<syntaxhighlight lang="bash"> | |||
# выключить | # выключить | ||
$ hubpower | $ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` power 1 off | ||
# включить | # включить | ||
$ hubpower | $ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` power 1 on | ||
</ | </syntaxhighlight> | ||
Вместо | |||
<syntaxhighlight lang="bash"> | |||
$ hubpower `lsusb | grep "0424:2514" | sed 's/^Bus 0*\([[:digit:]]*\) Device 0*\([[:digit:]]*\).*$/\1:\2/g'` ... | |||
</syntaxhighlight> | |||
в большинстве случаев можно писать | |||
<syntaxhighlight lang="bash"> | |||
$ hubpower 2:2 ... | |||
</syntaxhighlight> | |||
== Wiren Board 5 == | == Wiren Board 5 == <!--T:9--> | ||
<!--T:10--> | |||
Внешний USB-порт: | Внешний USB-порт: | ||
<!--T:11--> | |||
<pre> | <pre> | ||
# выключить | # выключить | ||
Строка 52: | Строка 76: | ||
</pre> | </pre> | ||
<!--T:12--> | |||
Модуль Wi-Fi: | Модуль Wi-Fi: | ||
<!--T:13--> | |||
<pre> | <pre> | ||
# выключить | # выключить | ||
Строка 61: | Строка 87: | ||
</pre> | </pre> | ||
== Wiren Board 4 == | == Wiren Board 4 == <!--T:14--> | ||
<!--T:15--> | |||
Номера портов (для управления питанием): | Номера портов (для управления питанием): | ||
<pre> | <pre> | ||
Строка 69: | Строка 97: | ||
</pre> | </pre> | ||
<!--T:16--> | |||
Пример (отключение Wi-Fi): | Пример (отключение Wi-Fi): | ||
<!--T:17--> | |||
<pre> | <pre> | ||
hubpower 1:2 power 4 off | hubpower 1:2 power 4 off | ||
</pre> | </pre> | ||
== Wiren Board Smart Home rev. 3.5 == | == Wiren Board Smart Home rev. 3.5 == <!--T:18--> | ||
<!--T:19--> | |||
Номера портов (для управления питанием): | Номера портов (для управления питанием): | ||
<pre> | <pre> | ||
Строка 82: | Строка 114: | ||
1 - EThernet-часть LAN9514 | 1 - EThernet-часть LAN9514 | ||
</pre> | </pre> | ||
</translate> |
Текущая версия на 12:50, 3 августа 2023
Wiren Board 7
Прежде, чем использовать этот метод в своих проектах, важно понять две вещи:
- При обычной эксплуатации потребности отключать питание USB-порта нет.
- Метод не переносим между ревизиями контроллеров и может в любом момент сломаться. Если вам очень надо на это завязаться и использовать в своих скриптах — напишите нам и мы подумаем, как это сделать нормально.
Linux сам управляет питанием USB-портов, поэтому ручки «Отключить питание 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