我试图在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
有关如何运行数据中心并连接到分析仪而不是超级用户的任何提示?
答案 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)