如何在不成为beagle I2C分析仪的超级用户的情况下运行全阶段数据中心?

时间:2016-10-26 03:52:08

标签: linux ubuntu

我试图在Ubuntu 16.04上从完全阶段运行beagle I2C分析器,而不是超级用户。当我使用sudo运行它时,我能够看到beagle USB设备,当我以用户身份运行时,我收到错误"设备未找到"。

我已经安装了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

有关如何运行数据中心并连接到分析仪而不是超级用户的任何提示?

1 个答案:

答案 0 :(得分:2)

解决了问题!我已经设置了LIBUSBTP用于libusb可比性问题我曾经遇到过:http://www.totalphase.com/support/articles/200349996-libusb-compatibility-on-Linux导致了这个问题。

我以超级用户和我自己的方式对程序进行了操作,并且这两者的差异显示我使用32位二进制文​​件作为我的用户导致了问题。我取消了LIBUSBTP,应用程序正在以我的用户身份运行。

总阶段版本:aardvark-api-linux-x86_64-v5.15

====作为我的用户====

$ 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

====以root身份====

$ 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)