4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エニプラAdvent Calendar 2021

Day 4

Raspberry Pi ZeroのUSB電源制御を試してみた

Last updated at Posted at 2021-12-04

この記事について

前回のイルミネーションでは物足りないので、USB式のイルミネーションをチカチカさせようとした結果失敗した、失敗談を書いています

やりたいことのイメージ

ラズパイ上のUSBの電源制御で、USBで接続した機器を点灯 / 消灯を繰り返すようにしてみたい
USB式のイルミネーションを探して、100均に行ってみたのですが、見つからなかったので、USBライトで代用しています

iOS の画像 (2).jpg

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への通電を止める」と「カードリーダーなどの端末を切断する」でネットの記事と認識がずれている気がした。。。)

参考サイト

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?