Amazon USB温度計! USB thermometer
980円のUSB温度計を使ってLinuxから室温を計測する (infiniteloop.co.jp)
を参考にしてGitHubから測定プログラムtemperのソースコードを持ってくる。
temper : github bitplane / temper
修正、コンパイルなどは上記リンクやREADMEなどを見ながらやれば特に問題がないだろう。
ただ、このプログラムはそのままだとroot権限でしか実行出来ない。なのでtemper内のREADMEに従い、ソースに同梱されているudevルールのファイルを/etc/udev/rules.d/にコピーしてやる。
$ sudo cp ~/temper/60-temper.rules /etc/udev/rules.d/で、temperグループを作成しユーザーhogeを追加
$ sudo addgroup temper $ sudo gpasswd -a hoge temperudevをリロード
$ sudo service udev reloadこれで、温度計を抜いてもう一度挿せばユーザー権限でtemperが… できない。どこか間違っているようだ。
色々調べて見ると、この温度計はlsusbで
ID 1130:660c Tenx Technology, Inc.と表示されるものと
ID 0c45:7401 Microdiaと表示されるものがある模様。
lsusbを実行してみると、
Bus 002 Device 008: ID 0c45:7401 Microdiaと表示される。
temperに同梱されていた60-temper.rulesの内容は、
ATTR{idVendor}=="1130", ATTR{idProduct}=="660c", OWNER="root", GROUP="temper", MODE="0660"となり、Tenx Technologyの方の設定になっている。これをlsusbの内容に従って以下のように変更する。
ATTR{idVendor}=="0c45", ATTR{idProduct}=="7401", OWNER="root", GROUP="temper", MODE="0660"これを/etc/udev/rules.d/に置き、udevリロード以下の手順を実行すると、
$ temper 2013-04-17 21:29:15,23.324450今度は上手くいったようだ。
0 件のコメント:
コメントを投稿