[vbox-dev] [Patch] Improved showvminfo USB information
Michal Necasek
michal.necasek at oracle.com
Tue Jan 9 10:30:39 UTC 2018
Hi Socratis,
The idea is good, but your suggestion is not much less confusing than
the current state. The problem is that the USB controller type does not
map to USB specification revisions at all.
The USB 1.0 specification defined low-and full-speed devices. USB 1.1
made minor changes which are not relevant to the host controller. USB
2.0 superseded USB 1.x and added high-speed devices. USB 3.0 did not
replace USB 2.0 but rather exists parallel to it, defining SuperSpeed
devices. (The various USB 3.x revisions are not relevant here.)
The actual USB host controller capabilities are:
OHCI - low- and full-speed devices, USB 1.0/1.1/2.0
EHCI - high-speed USB 2.0 devices, though see below
xHCI - all speeds, any USB 1.x/2.0/3.0 device
EHCI can in fact support low- and full-speed devices too, but
VirtualBox does not currently do that and routes those to OHCI. And
VirtualBox includes hacks that can make some high-speed USB 2.0 devices
work with the OHCI emulation when a VM has no EHCI configured.
Is it a big mess? Yes, but that's USB.
For showvminfo, just replacing 'USB' with 'OHCI' is probably the
simplest change that's not misleading and does not need to go into
excessive detail to be accurate.
The reason why it's this way is backwards compatibility, initially
there was just one switch in VirtualBox, USB on/off, and it meant
enabling or disabling the OHCI emulation.
For that reason, changing the machine readable output is a big no-no
and pointless -- it will break existing software that parses the output,
and does not help users who are not expected to look at it. Changing the
human-readable output is OTOH perfectly fine.
I'll also look at changing the modifyvm --usb option, or rather
leaving it in place but hidden and adding modifyvm --ohci.
Regards,
Michal
On 1/5/2018 7:38 PM, Kalogrianitis Socratis wrote:
> Just a small patch, which seems to make sense (at least to me). I got the idea from an understandable misunderstanding: https://forums.virtualbox.org/viewtopic.php?f=8&t=86126&p=410366#p410367
>
> -------------------------------------
> VBoxManage showvminfo "Debian9"
> ...
> USB: disabled
> EHCI: disabled
> XHCI: enabled
> ...
>
>
> User: I don't know why command "VBoxManage showvminfo "Debian9" " showed that USB is disabled...
> -------------------------------------
>
> I can see that having USB labeled as "disabled" could confuse some users. The patch modifies the output so that it's more in line with the VM settings, i.e. both numeric USB, and the *HCI ones.
>
> Socratis
>
>
> Index: src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp
> ===================================================================
> --- src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp (revision 70243)
> +++ src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp (working copy)
> @@ -1988,19 +1988,19 @@
> }
>
> if (details == VMINFO_MACHINEREADABLE)
> - RTPrintf("usb=\"%s\"\n", fOhciEnabled ? "on" : "off");
> + RTPrintf("ohci=\"%s\"\n", fOhciEnabled ? "on" : "off");
> else
> - RTPrintf("USB: %s\n", fOhciEnabled ? "enabled" : "disabled");
> + RTPrintf("USB 1.1 (OHCI): %s\n", fOhciEnabled ? "enabled" : "disabled");
>
> if (details == VMINFO_MACHINEREADABLE)
> RTPrintf("ehci=\"%s\"\n", fEhciEnabled ? "on" : "off");
> else
> - RTPrintf("EHCI: %s\n", fEhciEnabled ? "enabled" : "disabled");
> + RTPrintf("USB 2.0 (EHCI): %s\n", fEhciEnabled ? "enabled" : "disabled");
>
> if (details == VMINFO_MACHINEREADABLE)
> RTPrintf("xhci=\"%s\"\n", fXhciEnabled ? "on" : "off");
> else
> - RTPrintf("XHCI: %s\n", fXhciEnabled ? "enabled" : "disabled");
> + RTPrintf("USB 3.0 (xHCI): %s\n", fXhciEnabled ? "enabled" : "disabled");
> }
>
> ComPtr<IUSBDeviceFilters> USBFlts;
>
> _______________________________________________
> vbox-dev mailing list
> vbox-dev at virtualbox.org
> https://www.virtualbox.org/mailman/listinfo/vbox-dev
>
More information about the vbox-dev
mailing list