この記事について
前回のイルミネーションでは物足りないので、USB式のイルミネーションをチカチカさせようとした結果失敗した、失敗談を書いています
やりたいことのイメージ
ラズパイ上のUSBの電源制御で、USBで接続した機器を点灯 / 消灯を繰り返すようにしてみたい
USB式のイルミネーションを探して、100均に行ってみたのですが、見つからなかったので、USBライトで代用しています
hub-ctrlで制御してみる
- hub-ctrlをインストールする
$ sudo apt-get install libusb-dev
$ wget http://www.gniibe.org/oitoite/ac-power-control-by-USB-hub/hub-ctrl.c
$ gcc -O2 hub-ctrl.c -o hub-ctrl-armhf-static -lusb -static
$ sudo cp hub-ctrl-armhf-static /usr/local/bin/hub-ctrl
- (補足)wgetが通らなかったので、一時的にDNSの向き先を
8.8.8.8
にしています
$ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 8.8.8.8
- USBの状態を確認する
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
- hub-ctrlだとサポートしていない(というか認識していない?)
$ hub-ctrl
Hub #0 at 001:000
INFO: ganged switching.
WARN: Port indicators are NOT supported.
/sys/devicesを強引に書き換える
- USBの電源制御っぽいファイルがありました
$ cd /sys/devices/platform/soc/20980000.usb/
$ ls -al | grep power
-rw-r--r-- 1 root root 4096 11月 18 20:05 buspower
drwxr-xr-x 2 root root 0 11月 18 20:05 power
- いかにも電源っぽい内容です
$ cat buspower
Bus Power = 0x1
- buspowerを書き換えてみました
$ echo 0 | sudo tee /sys/devices/platform/soc/20980000.usb/buspower >/dev/null
$ cat buspower
Bus Power = 0x0
- が、制御できていないので、元に戻します
$ echo 1 | sudo tee /sys/devices/platform/soc/20980000.usb/buspower >/dev/null
$ cat buspower
Bus Power = 0x1
- ほかにpowerっぽいファイルも確認
$ ls -al power/
合計 0
drwxr-xr-x 2 root root 0 11月 18 20:05 .
drwxr-xr-x 5 root root 0 11月 18 20:01 ..
-rw-r--r-- 1 root root 4096 11月 18 20:06 autosuspend_delay_ms
-rw-r--r-- 1 root root 4096 11月 18 20:06 control
-r--r--r-- 1 root root 4096 11月 18 20:06 runtime_active_time
-r--r--r-- 1 root root 4096 11月 18 20:06 runtime_status
-r--r--r-- 1 root root 4096 11月 18 20:06 runtime_suspended_time
$ cat autosuspend_delay_ms
cat: autosuspend_delay_ms: 入力/出力エラーです
$ cat control
auto
$ cat runtime_active_time
0
$ cat runtime_status
unsupported
$ cat runtime_suspended_time
0
所感
ラズパイ上で「USBへの通電を止める」は難しかった(zeroだとできない?)
(「USBへの通電を止める」と「カードリーダーなどの端末を切断する」でネットの記事と認識がずれている気がした。。。)