Python でUSBデバイスをあやつる。 | 世界的日曜WEBプログラマー日記

世界的日曜WEBプログラマー日記

一年後に世界的なWEBサービスを運営するにはどうすればいいのか書いていく(予定)

PythonでUSBデバイスを操る方法。

pyusbなどをインストールしたはいいものの、

usb.core.USBError: [Errno 13] Access denied (insufficient permissions)


などでエラーが出てしまう。sudoをつければいいのだが、例えばcron化するときなどで、一般ユーザーのほうが手堅い場合がある。
そういう場合はudevの編集を行う。

/etc/udev/rules.dのフォルダに
10-any_name_is_ok.rules

というファイルをつくる。
注意が必ず.rulesという拡張子にすること。そうじゃないと読み込んでくれない。
lsusbなどで、デバイス情報を追加し、以下を記載する。

SUBSYSTEM=="usb", ATTR{idVendor}=="067b", ATTR{idProduct}=="2303", MODE="0666", GROUP="plugdev"

後はudevの再起動をすれば良い。

sudo gpasswd -a username plugdev
sudo chmod a+r /etc/udev/rules.d/10-any_name_is_ok.rules
sudo udevadm control –reload-rules
sudo restart udev

などを行っておくこと

株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house