Доброго Здоровья!
Имеется плата на AM3359 ( на основе Beagle Bone Black) с запущенным linux 3.12, в качестве файловой системы использован слегка модифицированный линукс Angstrom.
На USB1 запаян FT2232H. Стоит задача включать/выключать питание USB, для перезапуска FT2232H чипа (+ кое какая перефирия питается от +5В USB.).
Начальные условия:
CODE
# lsusb
Bus 001 Device 002: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# ls /sys/bus/usb/devices/
1-0:1.0 1-1 1-1:1.0 1-1:1.1 2-0:1.0 usb1 usb2
Мои мытарства.
Способ N1. Пытаемся воспользоваться старым приемом, записать в /sys/bus/usb/devices/usb1/power/level значение "suspend".
Говорит, что инвалид аргумент, кроме того, радостно сообщает, что " WARNING! power/level is deprecated; use power/control instead".
Пробуем с power/control -- тоже самое. Лезем в документацию и исходники, и выясняем, что теперь туда можно записать только значения
"on" и "auto".
Способ N2.. На импортных форумах рекомендуют для отключения/включения питания отбиндить, а затем заново забиндить устройство.
Пытаюсь сделать это так:
CODE
echo '1-0:1.0' > /sys/bus/usb/drivers/usb/unbind
echo '1-1' > /sys/bus/usb/drivers/usb/unbind
echo '1-1:1.0' > /sys/bus/usb/drivers/usb/unbind
echo '1-1:1.1' > /sys/bus/usb/drivers/usb/unbind
На все потуги ответ один: sh: write error: No such device
До бинда дело не доходит.
Как отключить питание на линии USB?