我有一个为 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)的其他方法,但我在那里遇到了不同的问题。