Qemu 用户模式仿真中的 USB 支持

Qemu 用户模式仿真中的 USB 支持

我有一个为 x86_64 编译的 CLI 程序,但我没有源代码(固件编程实用程序)。我想在 Raspberry Pi 上运行它。

该程序使用 Qemu 用户模式模拟运行良好,但未检测到 USB 设备。 USB 设备可以使用这种操作模式吗?如果是这样,我缺少什么配置?

为了设置仿真,我遵循了使用 QEMU 和 binfmt_misc 在 Linux 中透明地运行任何架构的二进制文件,除了相反的方向(ARM 上的 x86_64 而不是 x86_64 上的 ARM),并且目前我没有使用单独的 chroot,只是使用一个包含我需要的 x86_64 库的文件夹。

我使用的 USB 设备与 Raspberry Pi 上的其他(本机)软件配合良好。

一些更具体的细节(如果它们有用):

  • 树莓派 1B+
  • 连接到 STM32 Nucleo 编程器
  • 尝试运行STM32_Programmer_CLI或进行测试,lsusb
  • 操作系统:Raspbian Buster

环境设置:

$ sudo apt-get install qemu-user
$ ls -R ~/x86_64
x86_64:
lib
lib64
libc.so.6
libdl.so.2
libgcc_s.so.1
libglib-2.0.so.0
libgthread-2.0.so.0
libm.so.6
libpcre.so.1
libpthread.so.0
libstdc++.so.6
libudev.so.1
libusb-1.0.so.0
libz.so.1

x86_64/lib64:
ld-linux-x86-64.so.2
$ LD_LIBRARY_PATH=/home/pi/x86_64/ QEMU_LD_PREFIX=/home/pi/x86_64/ ./lsusb
# Would expect to see a listing of USB devices here, but there is no output.

PS:我知道使用该程序员与本机实用程序(st-link、openocd)的其他方法,但我在那里遇到了不同的问题。

相关内容