Питание USB-портов: различия между версиями

 
(не показаны 4 промежуточные версии 2 участников)
Строка 2: Строка 2:
<translate>
<translate>
<!--T:1-->
<!--T:1-->
пакет hubpower из нашего репозитория.
== Wiren Board 7 ==
[[Image: wb7.2-7.3 usb power disable.png |300px|thumb|right| Отключение USB-порта в контроллерах Wiren Board 7]]
Прежде, чем использовать этот метод в своих проектах, важно понять две вещи:
# При обычной эксплуатации потребности отключать питание USB-порта нет.
# Метод не переносим между ревизиями контроллеров и может в любом момент сломаться. Если вам очень надо на это завязаться и использовать в своих скриптах — напишите нам и мы подумаем, как это сделать нормально.


<!--T:2-->
Linux сам управляет питанием USB-портов, поэтому ручки «Отключить питание USB» нет, но есть обходное решение.
Работа:
<pre>
root@wirenboard:~# hubpower 1:2 status
Port  1 status: 0503  High-Speed Power-On Enabled Connected
Port  2 status: 0100  Power-On
Port  3 status: 0100  Power-On
Port  4 status: 0100  Power-On
Port  5 status: 0503  High-Speed Power-On Enabled Connected
</pre>


<!--T:3-->
В процессоре A40i, к одному физическому порту подключено два контроллера: OHCI (1Mbit, 12Mbit) и EHCI (480MBit), которые друг с другом договариваются и передают устройство на правильный. В системе это выглядит как два порта, что видно в lsusb.
Включение/выключение порта:
 
<pre>
Чтобы выключить питание на порту, нужно отключить этот порт от обоих контроллеров. А так как питание больше никто не будет запрашивать, Linux его отключит.
root@wirenboard:~# hubpower 1:2 power 4 off
 
Port 4 status: 0000  Power-Off
Отключить:
root@wirenboard:~# hubpower 1:2 power 4 on
<syntaxhighlight lang="bash">
Port 4 status: 0100  Power-On
echo 1c14400.usb >  /sys/bus/platform/drivers/ohci-platform/unbind
</pre>
 
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 == <!--T:4-->
== Wiren Board 6 == <!--T:4-->