USBデバイスを接続するには?

USBデバイスを接続するには?

センサーがあります。センサーはUSB経由で接続され、/ devフォルダにttyUSB0というファイル名があります。次のコマンドセットがあります。

1: -m 1024 \
2: -cpu core2duo \
3: -serial stdio \
4: -display none \
5: -hda /dev/sdb \
6: -usb \
7: -usb -device usb-host:productid=0x1a86,vendorid=0x7523 \
8: -drive file=/home/fedor/Git/usb.img \
9: -kernel $BUILD/$E_INIT/$BUILD_TARGET

USBデバイスを接続するコマンドは、6、7、8ラインにありますが、機能しません。次のエラーメッセージが表示されます。

-device usb-host:productid=0x1a86,vendorid=0x7523: Parameter 'driver' is missing

ファイルに完全な読み取り/書き込み権限が付与されます。 sudo chmod -R uog=rwx /dev/ttyUSB0

次のコマンドを使用してファイルイメージを作成します。mkisofs -J -o usb.img /dev/ttyUSB0

fedor@fedor-VirtualBox:~$ lsusb
Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

複数のソースを見てさまざまなオプションを試しましたが、デバイスが接続されていません。

追加の応答:

最初のリンク -ここにリンクの説明を入力してください

2番目のリンク -ここにリンクの説明を入力してください

3番目のリンク -ここにリンクの説明を入力してください

それはすべてです。私は他を探しません。はい、これらは実行指示です。拡張子が.shのファイルにあります。サイズが大きいが、ほんの一部です。 3行の代わりに-serial /dev/ttyUSB0を挿入すると、すべてがうまく機能しますが、デバイスとの交換は行われません。 USBデバイスをqemuに入れたいです。それがすべてです。


まとめるデバイスをリセットできません。なぜですか?わかりません。たぶん他の人が私に教えてくれるかもしれません。

1: sudo modprobe -r ch341すべてを元に戻すにはsudo modprobe ch341

2: sudo chown -R fedor /dev/bus/usb

サム: qemu-system-x86_64 -help端末に書き込んで「USBオプション」を取得します。

3.1: -usb enable on-board USB host controller (if not enabled by default)

3.2: -usbdevice name add the host or guest USB device 'name'

4: lsusb -v次に、私が書いた命令はlsusbではなくlsusb -vでした。 2行が見つかりました:idVendor 0x1a86 QinHeng ElectronicsidProduct 0x7523 CH340 serial converter

5:次に、qemuを開き、デバイスが表示されていることを確認します。私はターミナルに次のように書く: qemu-system-x86_64。 Qemuが開きます。

5.1:を押してqemu端末を開きます。Ctrl+Alt+2

5.2:私はqemuに書いてinfo usbhostから次の情報を得ます。 Bus 1, Addr 3, Port 2, Speed 12 Mb/s, Class ff: USB device 1a86:7523

6:デバイスが利用可能であることを確認したら、.sh拡張子を持つファイルに次のように書きました。

1:  -m 1024 \
2:  -cpu core2duo \
3:  -serial stdio \
4:  -display none \
5:  -hda /dev/sdb \
6:  -usb \
7:  -usbdevice host,vendorid=0x1a86,productid=0x7523 \
8:  -kernel $BUILD/$E_INIT/$BUILD_TARGET

6行と7行を追加しました。

7:次のエラーが表示されます。could not add USB device 'host,vendorid=0x1a86,productid=0x7523'

ベストアンサー1

ネストされた仮想化を実行しているようです。 VirtualBox VM内でLinuxを実行し、そのVM内で別のQemu VMを実行しようとしています。これは正しいですか?

また、使用しているLinuxディストリビューションの名前とバージョン、または少なくとも使用しているQemuのバージョンを指定する必要があります。

を使用する場合、-serial /dev/ttyUSB0センサーはQemu VMに「本物の」シリアルデバイスとしてマークする必要があります。つまり、/dev/ttyS0Qemu VMのオペレーティングシステムがLinuxまたはCOM1:Windowsのように見えるはずです。

Qemu VMの制御下でシリアル変換器(およびセンサー)をUSBデバイスとして提供する前に、VirtualBoxがLinux VMでそれを使用できるようにする必要があります。lsusbリストに表示されるので、すでに達成したものです。次のステップは、デバイスからLinux VMのusbserialドライバを切断することです。これを達成する方法はいくつかあります。

シリアルコンバータのサポートを担当するUSB​​シリアルドライバモジュールを取り外します。

sudo modprobe -r ch341

または、シリアルコンバータのUSBパス仕様を見つけて、ドライバにバインドを解除するように指示します。たとえば、

ls -l /sys/bus/usb-serial/devices/ttyUSB0
lrwxrwxrwx 1 root root 0 Dec  6 16:47 /sys/bus/usb-serial/devices/ttyUSB0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/ttyUSB0/

私の例では、USBパスは次のとおりです1-8:1.0。バインディングを解除する方法は次のとおりです。

echo -n "1-8:1.0" > sudo tee /sys/bus/usb/drivers/ch341/unbind

システムの正しいパスを見つける必要があります。

USBシリアルコンバータドライバがシャットダウンした後、Qemuが「raw」USBデバイスにアクセスできることを確認する必要があります。ユーザーとして仮想マシンを実行する場合fedor:

 sudo chown -R fedor /dev/bus/usb

その後、Qemu VMを起動し、独自にUSBシリアルコンバータデバイスを宣言することができます。

オプションのリストは-usb#6行と#7行で2回指定されます。一度だけで十分ではないでしょうか?

返品、Qemu 4.2.50用Qemu USBエミュレーションドキュメントUSB-deviceオプションが必要だと言う

-device usb-host,productid=0x1a86,vendorid=0x7523 \

あなたのものではなく

-device usb-host:productid=0x1a86,vendorid=0x7523 \

コロンの代わりにカンマを参照してください。これがエラーメッセージの原因である可能性があり、Qemuのバージョンによって構文が異なる場合があります。

3つのリンクのどれもmkisofsコマンドに言及しません。これにより、達成する目標はまだ明確ではありません。

おすすめ記事