2016-10-26 3 views
0

私はスーパーユーザーでなくても、Ubuntu 16.04のトータルフェーズからビーグルI2Cアナライザを実行しようとしています。私がsudoで実行すると、ビーグルのUSBデバイスを見ることができます。ユーザーとして実行すると、「デバイスが見つかりません」というエラーが表示されます。ビーグルI2Cアナライザのスーパーユーザーでなくてもトータルフェーズデータセンターを実行するには?

私はLinuxのudevルールをインストールしました。デバイスが世界で読み書き可能なので動作しているようです。

$ lsusb | grep -i beagle 
Bus 001 Device 083: ID 1679:2001 Total Phase Beagle Protocol Analyzer 
$ ls -la /dev/bus/usb/001/083 
crw-rw-rw- 1 root root 189, 82 Oct 25 20:20 /dev/bus/usb/001/083 

データセンターを実行し、スーパーユーザーではなくアナライザに接続する方法に関するヒントを教えてください。

答えて

0

問題を解決しました!問題を引き起こしていたhttp://www.totalphase.com/support/articles/200349996-libusb-compatibility-on-Linuxあたりに持っていたlibusb比較可能性問題のためにLIBUSBTPを設定しました。

私はプログラム上でスーパーユーザーとしてstraceを実行しました。自分自身とその2人のdiffは、問題の原因となったユーザーとして32ビットのバイナリを使用していることを明らかにしました。私はLIBUSBTPを解除し、アプリケーションは自分のユーザーとして実行されています。

総位相バージョン:ツチブタ-API-のlinux-x86_64版 - v5.15

====私のユーザー====としてrootとして

$ strace -ttvfo /tmp/aadetect.log -s 1024 sudo python aadetect.py 
write(1, "Detecting Aardvark adapters...\n", 31) = 31 
open("/lib/i386-linux-gnu/libusb-0.1.so.4", O_RDONLY|O_CLOEXEC) = 3 

==== === =

$ sudo strace -ttvfo /tmp/aadetect-sudo.log -s 1024 python aadetect.py 
write(1, "Detecting Aardvark adapters...\n", 31) = 31 
open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 

==== ====修正

$ echo $LIBUSBTP 
/lib/i386-linux-gnu/libusb-0.1.so.4 
$ unset LIBUSBTP 
$ echo $LIBUSBTP 

$ python aadetect.py 
Detecting Aardvark adapters... 
1 device(s) found: 
    port = 0 (avail) (2238-385546) 
関連する問題