最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

[QEMU]USB 仿真

2022-07-21 23:10 作者:-小白之家-  | 我要投稿

QEMU可以模擬PCI UHCI,OHCI,EHCI或XHCI USB控制器。您可以插入虛擬 USB 設(shè)備或真正的主機(jī) USB 設(shè)備(僅適用于某些主機(jī)操作系統(tǒng))。QEMU 將根據(jù)需要自動(dòng)創(chuàng)建和連接虛擬 USB 集線器,以連接多個(gè) USB 設(shè)備。

USB 控制器

XHCI 控制器支持

QEMU 具有 XHCI 主機(jī)適配器支持。與EHCI和UHCI相比,XHCI硬件設(shè)計(jì)對(duì)虛擬化更加友好,因此XHCI仿真使用的資源更少(尤其是CPU)。因此,如果您的來(lái)賓支持 XHCI(對(duì)于 2010 年左右或之后發(fā)布的任何操作系統(tǒng),情況應(yīng)該如此),我們建議您使用它:

qemu-device qemu-xhci

XHCI支持USB 1.1,USB 2.0和USB 3.0設(shè)備,因此這是您唯一需要的控制器。由于系統(tǒng)中只有一個(gè) USB 控制器(因此只有一個(gè) USB 總線),因此在添加 USB 設(shè)備時(shí)無(wú)需使用 bus= 參數(shù)。

超寬帶控制器支持

QEMU EHCI 適配器支持 USB 2.0 設(shè)備。它可以單獨(dú)使用,也可以與USB 1.1設(shè)備的配套控制器(UHCI,OHCI)一起使用。配套控制器設(shè)置使用起來(lái)更方便,因?yàn)樗峁┝艘粋€(gè)支持 USB 2.0 和 USB 1.1 設(shè)備的 USB 總線。有關(guān)詳細(xì)信息,請(qǐng)參閱下一節(jié)。

在獨(dú)立模式下運(yùn)行 EHCI 時(shí),您也可以為 USB 1.1 設(shè)備添加 UHCI 或 OHCI 控制器。但是,每個(gè)控制器都會(huì)創(chuàng)建自己的總線,因此有兩個(gè)完全獨(dú)立的USB總線:一個(gè)由UHCI控制器驅(qū)動(dòng)的USB 1.1總線和一個(gè)由EHCI控制器驅(qū)動(dòng)的USB 2.0總線。設(shè)備必須手動(dòng)連接到正確的控制器。

將 UHCI 控制器添加到機(jī)器的最簡(jiǎn)單方法是交換機(jī)。QEMU將創(chuàng)建UHCI控制器作為PIIX3芯片組的功能。USB 1.1總線將帶有名稱。pc-usbusb-bus.0

可以使用標(biāo)準(zhǔn)交換機(jī)將 EHCI 控制器添加到虛擬機(jī)。強(qiáng)烈建議為控制器指定一個(gè) ID,以便 USB 2.0 總線獲得一個(gè)單獨(dú)的名稱,例如 。這將為您提供一個(gè)名為 的USB 2.0總線。-device-device?usb-ehci,id=ehciehci.0

使用交換機(jī)添加 USB 設(shè)備時(shí),可以指定它們應(yīng)連接到的總線。下面是一個(gè)完整的示例:-device

qemu-system-x86_64 -M pc ${otheroptions} ? ? ? ? ? ? ? ? ? ? ? ?\ ? ?-drive if=none,id=usbstick,format=raw,file=/path/to/image ? \ ? ?-usb ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\ ? ?-device usb-ehci,id=ehci ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\ ? ?-device usb-tablet,bus=usb-bus.0 ? ? ? ? ? ? ? ? ? ? ? ? ? ?\ ? ?-device usb-storage,bus=ehci.0,drive=usbstick

這會(huì)將 USB 平板電腦連接到 UHCI 適配器,將 USB 大容量存儲(chǔ)設(shè)備連接到 EHCI 適配器。

配套控制器支持

UHCI 和 OHCI 控制器可以連接到由 EHCI 創(chuàng)建的 USB 總線作為配套控制器。這是通過(guò)指定 和 屬性來(lái)完成的。 指定控制器應(yīng)附加到的總線名稱。 指定控制器應(yīng)連接到的第一個(gè)端口,這是必需的,因?yàn)橥ǔR粋€(gè)具有六個(gè)端口的 EHCI 控制器具有三個(gè) UHCI 配套控制器,每個(gè)控制器有兩個(gè)端口。masterbusfirstportmasterbusfirstport

文檔中有一個(gè)配置文件,它將為您完成所有這些操作,您可以像這樣使用它:

qemu-system-x86_64 -readconfig docs/config/ich9-ehci-uhci.cfg

然后用于將 USB 設(shè)備分配到該總線。bus=ehci.0

將開關(guān)用于計(jì)算機(jī)將創(chuàng)建類似的 USB 控制器配置。-usbq35


連接 USB 設(shè)備

USB 設(shè)備可以使用命令行選項(xiàng)或監(jiān)視命令進(jìn)行連接??捎迷O(shè)備包括:-device?usb-...device_add

  • usb-mouse

  • 虛擬鼠標(biāo)。激活后,這將覆蓋 PS/2 鼠標(biāo)仿真。

  • usb-tablet

  • 使用絕對(duì)坐標(biāo)的指針設(shè)備(如觸摸屏)。這意味著QEMU能夠報(bào)告鼠標(biāo)位置,而無(wú)需抓住鼠標(biāo)。激活時(shí)還會(huì)覆蓋 PS/2 鼠標(biāo)仿真。

  • usb-storage,drive=drive_id

  • 由drive_id支持的大容量存儲(chǔ)設(shè)備(請(qǐng)參閱《系統(tǒng)仿真用戶指南》中的“磁盤映像”一章)。這是99%的USB記憶棒使用的經(jīng)典僅批量傳輸協(xié)議。此示例顯示它連接到 XHCI USB 控制器,并具有由原始格式磁盤映像支持的驅(qū)動(dòng)器:

    qemu-system-x86_64 [...] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \ -drive if=none,id=stick,format=raw,file=/path/to/file.img \ -device nec-usb-xhci,id=xhci ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\ -device usb-storage,bus=xhci.0,drive=stick

  • usb-uas

  • USB 連接的 SCSI 設(shè)備。這不會(huì)創(chuàng)建 SCSI 磁盤,因此您需要在命令行上顯式創(chuàng)建 or 設(shè)備,并使用該選項(xiàng)指定這些磁盤由哪些磁盤支持。一個(gè)設(shè)備可以處理多個(gè)邏輯單元(磁盤)。此示例創(chuàng)建三個(gè)邏輯單元:兩個(gè)磁盤和一個(gè) CDROM 驅(qū)動(dòng)器:scsi-hdscsi-cd-driveusb-uas

    qemu-system-x86_64 [...] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \ -drive if=none,id=uas-disk1,format=raw,file=/path/to/file1.img ?\ -drive if=none,id=uas-disk2,format=raw,file=/path/to/file2.img ?\ -drive if=none,id=uas-cdrom,media=cdrom,format=raw,file=/path/to/image.iso \ -device nec-usb-xhci,id=xhci ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\ -device usb-uas,id=uas,bus=xhci.0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \ -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=uas-disk1 ? ? ? \ -device scsi-hd,bus=uas.0,scsi-id=0,lun=1,drive=uas-disk2 ? ? ? \ -device scsi-cd,bus=uas.0,scsi-id=0,lun=5,drive=uas-cdrom

  • usb-bot

  • 僅批量傳輸存儲(chǔ)設(shè)備。這為來(lái)賓提供了與 相同的 USB 僅批量傳輸協(xié)議接口,但 QEMU 命令行選項(xiàng)的工作方式與 類似,不會(huì)自動(dòng)為您創(chuàng)建 SCSI 磁盤。 最多支持 16 個(gè) LUN。與 不同,LUN 編號(hào)必須是連續(xù)的,即對(duì)于三個(gè)設(shè)備,必須使用 0+1+2。上面示例中的 0+1+5 編號(hào)不適用于 。usb-storageusb-uasusb-botusb-uasusb-uasusb-bot

  • usb-mtp,rootdir=dir

  • 媒體傳輸協(xié)議設(shè)備,使用 dir 作為呈現(xiàn)給來(lái)賓的文件樹的根。

  • usb-host,hostbus=bus,hostaddr=addr

  • 通過(guò)總線和加法器標(biāo)識(shí)的主機(jī)設(shè)備

  • usb-host,vendorid=vendor,productid=product

  • 通過(guò)由供應(yīng)商和產(chǎn)品 ID 標(biāo)識(shí)的主機(jī)設(shè)備

  • usb-wacom-tablet

  • 虛擬 Wacom 數(shù)位筆合作伙伴平板電腦。該設(shè)備與上述設(shè)備類似,但它可以與tslib庫(kù)一起使用,因?yàn)槌擞|摸坐標(biāo)之外,它還報(bào)告觸摸壓力。tablet

  • usb-kbd

  • 標(biāo)準(zhǔn) USB 鍵盤。將覆蓋 PS/2 鍵盤(如果存在)。

  • usb-serial,chardev=id

  • 串行轉(zhuǎn)換器。這模擬連接到主機(jī)字符設(shè)備ID的FTDI FT232BM芯片。

  • usb-braille,chardev=id

  • 盲文設(shè)備。這將使用 BrlAPI 在 id 引用的真實(shí)或假設(shè)備上顯示盲文輸出。

  • usb-net[,netdev=id]

  • 支持 CDC 以太網(wǎng)和 RNDIS 協(xié)議的網(wǎng)絡(luò)適配器。id 指定用 定義的 netdev。例如,用戶模式網(wǎng)絡(luò)可以與-netdev?…,id=id

    qemu-system-x86_64 [...] -netdev user,id=net0 -device usb-net,netdev=net0

  • usb-ccid

  • 智能卡讀卡器設(shè)備

  • usb-audio

  • USB 音頻設(shè)備

  • u2f-{emulated,passthru}

  • 通用第二因素設(shè)備

  • canokey

  • 實(shí)現(xiàn)FIDO2,OpenPGP,PIV等的開源安全密鑰。有關(guān)詳細(xì)信息,請(qǐng)參閱?CanoKey QEMU。

物理端口尋址

對(duì)于上述所有 USB 設(shè)備,默認(rèn)情況下,QEMU 會(huì)將設(shè)備插入指定 USB 總線上的下一個(gè)可用端口,如果未顯式指定,則插入到某些可用的 USB 總線上。如果需要,還可以指定設(shè)備在來(lái)賓中顯示的物理端口。這可以使用該屬性完成。UHCI 有兩個(gè)根端口 (1,2)。EHCI 有六個(gè)根端口 (1-6),模擬 (1.1) USB 集線器有八個(gè)端口。port

將平板電腦插入 UHCI 端口 1 的工作原理如下:

-device usb-tablet,bus=usb-bus.0,port=1

將集線器插入 UHCI 端口 2 的工作原理如下:

-device usb-hub,bus=usb-bus.0,port=2

將虛擬 U 盤插入剛剛插入的集線器的端口 4,按如下方式工作:

-device usb-storage,bus=usb-bus.0,port=2.4,drive=...

在監(jiān)視器中,屬性規(guī)范。如果您也想拔下設(shè)備,則應(yīng)指定一些可用于引用設(shè)備的唯一ID。然后,您可以使用 稍后拔下設(shè)備。例如:device_add`?command?also?accepts?a?``portdevice_del

(qemu) device_add usb-tablet,bus=usb-bus.0,port=1,id=my-tablet(qemu) device_del my-tablet

熱插拔 USB 存儲(chǔ)

和 設(shè)備可以熱插拔。在熱插拔的情況下,它們被添加,因此在屬性顯式設(shè)置為 true 之前,來(lái)賓將看不到設(shè)備。這允許您在使設(shè)備對(duì)客戶機(jī)可見之前連接一個(gè)或多個(gè) scsi 設(shè)備。工作流如下所示:usb-botusb-uasattached?=?falseattached

  1. device-add?usb-bot,id=foo

  2. device-add?scsi-{hd,cd},bus=foo.0,lun=0

  3. (可選)添加更多設(shè)備(lun 1 ...35 千米賽

  4. scripts/qmp/qom-set?foo.attached?=?true


在 Linux 主機(jī)上使用主機(jī) USB 設(shè)備

警告:這是一項(xiàng)實(shí)驗(yàn)性功能。QEMU在使用它時(shí)會(huì)變慢。尚不支持需要實(shí)時(shí)流式傳輸?shù)?USB 設(shè)備(即 USB 攝像機(jī))。

  1. 如果使用早期的 Linux 2.4 內(nèi)核,請(qǐng)驗(yàn)證沒有 Linux 驅(qū)動(dòng)程序?qū)嶋H使用 USB 設(shè)備。一個(gè)簡(jiǎn)單的方法是通過(guò)將相應(yīng)的內(nèi)核模塊從 重命名為 來(lái)禁用它。mydriver.omydriver.o.disabled

  2. 驗(yàn)證它是否正常工作(默認(rèn)情況下,大多數(shù) Linux 發(fā)行版應(yīng)啟用它)。您應(yīng)該看到類似下面的內(nèi)容:/proc/bus/usb

    ls /proc/bus/usb001 ?devices ?drivers

  3. 由于只有 root 可以直接訪問 USB 設(shè)備,因此您可以以 root 身份啟動(dòng) QEMU,也可以更改要使用的 USB 設(shè)備的權(quán)限。對(duì)于測(cè)試,以下就足夠了:

    chown -R myuid /proc/bus/usb

  4. 啟動(dòng) QEMU 并在監(jiān)視器中執(zhí)行:

    info usbhost ?Device 1.2, speed 480 Mb/s ? ?Class 00: USB device 1234:5678, USB DISK

    你應(yīng)該會(huì)看到可以使用的設(shè)備列表(切勿嘗試使用集線器,這將不起作用)。

  5. 使用以下方法在 QEMU 中添加設(shè)備:

    device_add usb-host,vendorid=0x1234,productid=0x5678

    通常,來(lái)賓操作系統(tǒng)應(yīng)報(bào)告插入了新的 USB 設(shè)備。您可以使用該選項(xiàng)執(zhí)行相同的操作。-device?usb-host,...

  6. 現(xiàn)在,您可以嘗試在 QEMU 中使用主機(jī) USB 設(shè)備。

重新啟動(dòng) QEMU 時(shí),您可能需要拔下并再次插入 USB 設(shè)備才能使其再次工作(這是一個(gè)錯(cuò)誤)。

usb-host用于指定主機(jī)設(shè)備的屬性

上面的示例使用 和 來(lái)指定要傳遞的主機(jī)設(shè)備,但這不是指定主機(jī)設(shè)備的唯一方法。 支持以下屬性:vendoridproductidusb-host

  • hostbus=<nr>

  • 指定設(shè)備必須連接到的總線編號(hào)

  • hostaddr=<nr>

  • 指定來(lái)賓操作系統(tǒng)為設(shè)備分配的設(shè)備地址

  • hostport=<str>

  • 指定設(shè)備連接到的物理端口

  • vendorid=<hexnr>

  • 指定設(shè)備的供應(yīng)商 ID

  • productid=<hexnr>

  • 指定設(shè)備的產(chǎn)品 ID。

從理論上講,您可以根據(jù)需要組合所有這些屬性。在實(shí)踐中,只有少數(shù)組合是有用的:

  • vendorid和 – 匹配特定設(shè)備,當(dāng)它出現(xiàn)在主機(jī)中的某個(gè)位置時(shí),將其傳遞給來(lái)賓。productid

  • hostbus和 – 匹配主機(jī)中的特定物理端口,插入其中的任何設(shè)備都會(huì)傳遞給來(lái)賓。hostport

  • hostbus和 – 對(duì)于臨時(shí)傳遞最有用,因?yàn)?hostaddr 不穩(wěn)定。下次將設(shè)備插入主機(jī)時(shí),它將獲得一個(gè)新的hostaddr。hostaddr

請(qǐng)注意,在主機(jī)上,USB 1.1 設(shè)備由 UHCI/OHCI 處理,USB 2.0 由 EHCI 處理。這意味著插入主機(jī)上相同物理端口的不同 USB 設(shè)備可能會(huì)顯示在不同的主機(jī)總線上,具體取決于速度。假設(shè)插入給定物理端口的設(shè)備在 2.0 設(shè)備上顯示為總線 1 + 端口 1,對(duì)于 1.1 設(shè)備顯示為總線 3 + 端口 1,則可以通過(guò)插入該端口的任何設(shè)備,并將其分配給 QEMU 中的正確 USB 總線,如下所示:

qemu-system-x86_64 -M pc [...] ? ? ? ? ? ? ? ? ? ? ? ? ? ?\ ? ??

-usb ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \ ? ??

-device usb-ehci,id=ehci ? ? ? ? ? ? ? ? ? ? ? ? ? ? \ ? ??

-device usb-host,bus=usb-bus.0,hostbus=3,hostport=1 ?\ ? ??

-device usb-host,bus=ehci.0,hostbus=1,hostport=1


[QEMU]USB 仿真的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
昆明市| 新龙县| 西充县| 禹城市| 洪湖市| 望奎县| 隆林| 岫岩| 古浪县| 东莞市| 滨海县| 灵石县| 东莞市| 驻马店市| 曲阜市| 虎林市| 香格里拉县| 漳州市| 吕梁市| 大竹县| 定襄县| 双鸭山市| 澎湖县| 湛江市| 永昌县| 呼伦贝尔市| 华容县| 若羌县| 阳曲县| 确山县| 道孚县| 星座| 徐水县| 宁夏| 尖扎县| 中阳县| 涞水县| 芜湖市| 绥芬河市| 正镶白旗| 榆林市|