> #include <string.h> #include <libusb-1.0/libusb.h> #define DRIVER_VENDOR_NUM 0x0525 /* NetChip */ active config descriptor"); return LIBUSB_ERROR_OTHER; } { const struct libusb_interface */ err = libusb_init(NULL); if (err < 0) { fprintf(stderr, "failed to initialise libusb */ libusb_release_interface(dev_handle, interface_num); libusb_close(dev_handle); libusb_exit # 查找 libusb 开发包 sudo apt install libusb-1.0-0-dev # 安装 libusb 开发包 gcc -o zero_app
qemu-2.8.0-rc4/hw/usb/host-libusb.c中实现。作者选择的是 qemu-2.8.0-rc4的代码,依然不支持host的usb使用bus,port的方式。 3,libusb qemu中操作host的usb设备,通过libusb代码(https://sourceforge.net/projects/libusb/? libusb的代码,作者简单翻了一下,跑了一下测试代码,看了一下trace,大概意思就是分析/sys/bus/usb/devices目录下的文件/文件夹,进而可以打开usb设备,或者获取usb设备的attr usb的设备虚拟化,则和其他usb设备一样,guest中对usb设备进行操作,则qemu把对应的操作通过libusb透传给host的usb设备。 后记: 作者对usb协议并不熟悉,关于libusb的解释也未必完全准确。 请教过一个kernel高手的朋友,见我不会usb,还鄙视了我一下~囧
加载共享库出错 在安装scrcpy时通过sudo pacman -S scrcpy顺利安装,但是运行报错 scrcpy: error while loading shared libraries: libusb 但是运行之后出现了新的问题 libusb-compat: 文件系统中已存在 /usr/lib/libusb-0.1.so.4 libusb-compat: 文件系统中已存在 /usr/lib/libusb -0.1.so.4.4.4 libusb-compat: 文件系统中已存在 /usr/lib/libusb-0.1.so.4.4.4 一般来说已经有的库就不要动它了,运行sudo pacman -Syu 没有解决,会报同样的错误,说明libusb这个文件不是包管理器提供的,那就删掉现有的库然后让pacman帮我们安装 sudo rm -f /usr/lib/libusb-0.1.so.4 sudo rm -f /usr/lib/libusb-0.1.so.4.4.4 sudo rm -f /usr/lib/libusb-0.1.so.4.4.4 sudo pacman -S libusb-compat
/*.c") add_packages("libusb") 如果用户系统上确实没有安装 libusb,那么 xmake 会自动下载 libusb 库源码,自动编译安装集成,没啥问题。 但如果用户通过 apt install libusb-1.0 安装了 libusb 库到系统,那么按理 xmake 应该会自动优先查找用户安装到系统环境的 libusb 包,直接使用,避免额外的下载编译安装 因为通过 apt 安装的 libusb 包名是 libusb-1.0, 而不是 libusb。 我们只能通过 pkg-config --cflags libusb-1.0 才能找到它,但是 xmake 内部的默认 find_package 逻辑并不知道 libusb-1.0 的存在,所以找不到。 因此为了更好地适配不同系统环境下,系统库的查找,我们可以通过 add_extsources("pkgconfig::libusb-1.0") 去让 xmake 改进查找逻辑,例如: package("libusb
https://github.com/ufrisk/MemProcFS.git 然后使用下列命令安装该工具所需的依赖组件: sudo apt-get install make gcc pkg-config libusb -1.0 libusb-1.0-0-dev libfuse2 libfuse-dev libpython3-dev lz4 liblz4-dev 然后运行下列构建命令即可: ~$ sudo apt-get install make gcc pkg-config libusb-1.0 libusb-1.0-0-dev libfuse2 libfuse-dev lz4 liblz4-dev ~$ mkdir pip install memprocfs 或: pip3 install memprocfs 依赖组件安装命令如下: sudo apt-get install make gcc pkg-config libusb -1.0 libusb-1.0-0-dev libfuse2 libfuse-dev lz4 liblz4-dev 工具使用样例 打开命令行接口,然后使用下列命令即可开始使用MemProcFS。
如果出现报错: Package libusb-1.0 was not found in the pkg-config search path. No package ‘libusb-1.0’ found fel.c:21:20: 致命错误:libusb.h:没有那个文件或目录 编译中断。 make: *** [fel] 错误 1 如果是ubuntu用户,用apt-get install libusb-dev可以搞定。 但是如果和我一样是用fedora用户的话,就稍微麻烦点了。 首先要去下一个叫libusb-1.0.9(版本号无所谓了)的包,解压进入目录 . /configure make CROSS_COMPILER=arm-unknown-linux-gnueabi- make install cp libusb/libusb.h /usr/include
具体使用过程: 下载并安装pyusb backend 连接usb device,使用pyusb backend安装驱动,我选择libusb,一般可以正常使用。不行就换其他的。 0x03fd, pid = 0x0100) class hardware_usb(): def __init__(self, vid, pid, read_length = 512, backend='libusb pid: product id read_length : buffer length for reading backend: select one from ['libusb self.read_length = read_length self.backend = backend if backend == 'libusb bytes(buffer[:leng.value]) else: ret = b'' elif self.backend == 'libusb
https://sourceforge.net/projects/libusb/files/libusb-1.0/ 直接下载 - Linux: - LibUSB 1.0.x sudo apt-get install libusb-1.0-0 - LibUDEV sudo apt-get install libudev0 - FreeGLUT3 sudo apt-get install Linux ----- - GCC 4.x sudo apt-get install g++ - Python 2.6+/3.x sudo apt-get install python - LibUSB 1.0.x sudo apt-get install libusb-1.0-0-dev - LibUDEV sudo apt-get install libudev-dev - JDK
enable devtoolset-8 -- bash 禁用防火墙, 或者自己放行端口 systemctl disable firewalld systemctl stop firewalld 安装 LibUSB 如果未安装LibUSB,编译RTL-SDR驱动会出现如下错误 -- Checking for module 'libusb-1.0' -- Package 'libusb-1.0', required by 'virtual:world', not found CMake Error at CMakeLists.txt:88 (message): LibUSB 1.0 required to compile rtl-sdr 对于Ubuntu与Debian等系统可以尝试使用如下命令进行安装 sudo apt-get install libusb-1.0-0.dev 或者找到对应你系统版本的 libusbx-devel
编译libuvc过程如下:注意红色部分 `libuvc` is a cross-platform library for USB video devices, built atop `libusb`. access UVC devices in a generic fashion. ## Getting and Building libuvc Prerequisites: You will need `libusb 使用catkin_make,如果报错,注意libusb.h的位置。 使用locate libusb.h,并将其放到合适位置: ~$ sudo cp /usr/include/libusb-1.0/libusb.h /usr/local/include/libuvc/
Install the libusbK backend driver for libusb. \install_libusb_vs2013.cmd Or install_libusb_vs2015.cmd. Test OpenNI2 (optional) Copy freenect2-openni2.dll, and other dll files (libusb-1.0.dll, glfw.dll, etc , GLFW brew update brew install libusb brew tap homebrew/versions brew install glfw3 Install TurboJPEG (Ubuntu 14.04 only) sudo dpkg -i debs/libusb*deb (Other) sudo apt-get install libusb-1.0-0-dev Install
install git build-essential linux-libc-dev sudo apt-get install cmake cmake-gui sudo apt-get install libusb -1.0-0-dev libusb-dev libudev-dev sudo apt-get install mpi-default-dev openmpi-bin openmpi-common sudo
只需要 2007 就行 用libusb-win32查看 \\. \libusb0-0001–0x2a45-0x0c03 2A45/0C03 Dev #1: Meizu - MX4- Serial Number: 750BBKT22W4L 如果不能看到这个设备
系统架构分析5.1 主要模块解析USB 设备管理模块:负责通过 LibUsb 库获取所有连接设备的列表,判断每个设备的状态(插入或拔出)。获取每个设备的描述符(包括设备类型、ID 等信息)。 (context, deviceList); if (result < 0) { System.err.println("无法获取设备列表: " + LibUsb.strError( (device, descriptor); if (result == LibUsb.SUCCESS) { String deviceId = Integer.toHexString (device, descriptor); if (result == LibUsb.SUCCESS) { String deviceId = Integer.toHexString : " + knownDevice); iterator.remove(); } } // 清理设备列表 LibUsb.freeDeviceList
=arm-linux-gnueabihf-g++ -DCMAKE_INSTALL_PREFIX=/opt/ubertoothone/libbtbb make sudo make install 编译libusb tar zxvf libusb-1.0.26.tar.gz cd libusb-1.0.26 .
我的输出如下所示,可以看到已经识别出了扫描仪 found USB scanner (vendor=0x04a9 [Canon], product=0x176d [MG2500 series]) at libusb 我这里识别出的扫描仪是found USB scanner (vendor=0x04a9 [Canon], product=0x176d [MG2500 series]) at libusb:001:008 ,libusb:001:008即/dev/bus/usb/001/008,使用如下命令查看权限 会获得如下输出 可以看到打印机归lp group的root所有,所以我们要把运行SANE守护进程的用户
一个可行的解决方案如下: 将.spec修改至如下所示(.spec文件会在第一次运行pyinstaller后出现): binaries = [ ('C:\\Windows\\System32\\libusb0 分析 这里出现的错误NoBackendError实际上是由于pyusb无法找到libusb*.dll引起的。手动将DLL复制到dist /project文件夹修复了该问题,应用程序将按预期工作。
svt-av1, leptonica, libb2, libarchive, pango, tesseract, xvid, libsodium, zeromq, zimg, ffmpeg and libusb ############################################################################### 100.0% ==> Fetching libusb ==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/bottles/libusb-1.0.27.arm64_sonom ##### ==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/bottles/libusb-1.0.27.arm64_sonom Already ==> Pouring libusb-1.0.27.arm64_sonoma.bottle.tar.gz /opt/homebrew/Cellar/libusb/1.0.27: 22 files,
分析 1,USB passthrough VS USB redirect USB passthrough的实现上,qemu通过libusb,直接访问host上的usb设备。 server监听TCP端口,通过socket和client进行通信,对于data请求,则通过libusb对host上的usb进行操作。 对比起来,就是数据经过TCP转发过一次,数据再经过libusb和host的kernel交互。
http://tieba.baidu.com/p/3237051512 下面就是安装必要的软件了: pi@raspberrypi ~ $ sudo apt-get install libusb-dev hidraw-dump cc -O2 -Wall -Wl,-Bsymbolic-functions sixpair.c -o bins/sixpair `pkg-config --cflags --libs libusb cc -O2 -Wall -Wl,-Bsymbolic-functions sixpair_kbd.c -o bins/sixpair-kbd `pkg-config --cflags --libs libusb