Qemu 사용자 모드 에뮬레이션의 USB 지원

Qemu 사용자 모드 에뮬레이션의 USB 지원

x86_64용으로 컴파일된 CLI 프로그램이 있지만 소스 코드(펌웨어 프로그래밍 유틸리티)가 없습니다. 라즈베리파이에서 실행하고 싶습니다.

Qemu 사용자 모드 에뮬레이션을 사용하면 프로그램이 제대로 실행되지만 USB 장치가 감지되지 않습니다. USB 장치가 이 작동 모드를 사용할 수 있습니까? 그렇다면 어떤 구성이 누락되어 있습니까?

내가 따라온 시뮬레이션을 설정하려면QEMU 및 binfmt_misc를 사용하여 Linux에서 모든 아키텍처의 바이너리를 투명하게 실행, 반대 방향(x86_64의 ARM 대신 ARM의 x86_64)을 제외하고 현재 별도의 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.

추신: 나는 이 프로그래머를 기본 유틸리티(st-link, openocd)와 함께 사용하는 다른 방법을 알고 있지만 거기에는 다른 문제가 있습니다.

관련 정보