# bhyve framebuffer and vncviewer



## aragats (Jan 27, 2017)

The issues described below probably have discussed, however I couldn't find actual solutions or good workarounds. Are there anything new on them?

When bhyve runs Windows 7 as a guest with framebuffer enabled:
1. X mouse cursor does not coincides with Windows cursor. Abruptly moving it beyond edges helps "fix" it by shifting it in a different direction.
2. In certain setups the keyboard is not working with message: `atkbd data buffer full`. However, in the same setup when booted from Windows 7 installer CD, the keyboard works.

Thanks for ideas!


----------



## grehan@ (Jan 27, 2017)

The cursor issue is because the PS2 mouse only supports relative coordinate reporting. Windows, and most guests, implement mouse acceleration, so the location of the cursor starts to rapidly drift away from the VNC cursor. Note that this is a general problem with VNC and hypervisors - KVM/Xen have the same issue.

The fix is to use a cursor input device that reports absolute coordinates. In bhyve, this is the XHCI tablet device. However, Win7 doesn't support XHCI in the base install. It is possible to post-install XHCI drivers, but there is a chicken-and-egg in that an XHCI device has to be present to install, but doing that in bhyve takes over the cursor from the PS2 mouse, rendering the system not particularly useful. That is a bug - bhyve should allow an XHCI controller to be present without a device attached.

(as a side note, bhyve implements an XHCI controller since that imposes a lot less load on the host than a usb2 EHCI controller, which has to software-poll descriptors. However, if anyone wants to go to the effort of implementing an EHCI controller emulation, by all means go for it 

Not sure about the keyboard issue. Does this happen immediately, or after some time ?


----------



## aragats (Jan 27, 2017)

grehan@ said:


> Not sure about the keyboard issue. Does this happen immediately, or after some time ?


Yes, it doesn't work from the very begining, but does work when booted from the Win7 installer.
It's not very critical since then I use rdesktop to connect with any geometry I want, but still annoying especially when you just set up a system.


----------



## aragats (Jan 28, 2017)

grehan@ said:


> In bhyve, this is the XHCI tablet device. However, Win7 doesn't support XHCI in the base install. It is possible to post-install XHCI drivers


I've downloaded a driver from Intel web site.
The device IDs correspond to ones in the .inf file, however, I have the following in the Win7 Device Manager:
	
	



```
Intel USB 3.0 eXtensible Host Controller
Intel USB 3.0 eXtensible Root Hub
Unknown Device
```
The unknown device's IDs field contains only `USB\UNKNOWN`.
Am I missing something? I've enabled XHCI in bhyve(8) with
	
	



```
bhyve ... -s 6,xhci,tablet ...
```


----------



## grehan@ (Jan 28, 2017)

Thanks for trying out the XHCI install. Was the driver one of these - https://downloadcenter.intel.com/product/65855/Intel-USB-3-0-eXtensible-Host-Controller-Driver ?

Hmmm, hard to say if the controller driver is working or not (would guess a better report would be given for the deivce). I'll give this a try and see how it goes.


----------



## aragats (Jan 28, 2017)

Yes, it's 1.0.10.255, it supports (as per .inf):
	
	



```
[Intel.NTAMD64.6.1]
%IUsb3XhcDeviceDesc01% = IUsb3XhcModel, PCI\VEN_8086&DEV_1E31&REV_00
%IUsb3XhcDeviceDesc01% = IUsb3XhcModel, PCI\VEN_8086&DEV_1E31&REV_01
%IUsb3XhcDeviceDesc01% = IUsb3XhcModel, PCI\VEN_8086&DEV_1E31&REV_02
%IUsb3XhcDeviceDesc01% = IUsb3XhcModel, PCI\VEN_8086&DEV_1E31&REV_03
%IUsb3XhcDeviceDesc01% = IUsb3XhcModel, PCI\VEN_8086&DEV_1E31&REV_04
```
The Device Manager reports PCI\VEN_8086&DEV_1E31&REV_00.
The second driver has different VEN/DEV ids.


----------



## abishai (Jan 28, 2017)

grehan@ said:


> Thanks for trying out the XHCI install. Was the driver one of these - https://downloadcenter.intel.com/product/65855/Intel-USB-3-0-eXtensible-Host-Controller-Driver ?
> 
> Hmmm, hard to say if the controller driver is working or not (would guess a better report would be given for the deivce). I'll give this a try and see how it goes.


I tried different drivers before, however the best result achieved was nothing (the worst was BSoD). With a lot of cursing I enabled RDP and forgot about mouse issues


----------



## aragats (Jan 28, 2017)

BSOD happens when I try a driver from Intel with
	
	



```
DriverVer=05/30/2014,3.0.0.34
```
Also if I use slot 30:
	
	



```
bhyve ... -s 30,xhci,tablet ...
```
the Device Manager shows only
	
	



```
Universal Serial Bus (USB) controller
```
and nothing else. The hardware IDs are the same.


----------



## EsTaF (Oct 31, 2017)

had test to add the C220/C610 usb 3.0 driver as oem one (\Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver_5.0.4.43\Drivers\Win7\x64 - will it be driver as oem?) with that howto https://community.spiceworks.com/ho...ive-to-install-windows-7-using-a-usb-3-0-port.

1. dism /mount-wim /wimfile:boot.wim /index:2 /mountdir:mount
2. copy ...Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver_5.0.4.43\Drivers\Win7\x64\* to driver dir
3. add driver to wim: dism /image:mount /add-driver:"driver" /recurse
4. dism /unmount-wim /mountdir:mount /commit

copy wim back to iso etc.

Maybe, if I'll install that drivers in normal mode (after windows install), so all're ok. In oem mode (boot.wim env.), had 0 result.


----------

