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.

PS:私はこのプログラマをデフォルトのユーティリティ(st-link、openocd)で使用する他の方法を知っていますが、そこには他の問題があります。

関連情報