Skip to content

Windows Server in BHyve: mouse and keyboard doesn't works #4084

@extrowerk

Description

@extrowerk

Hi,

I wanted to install a recent Windows Server version in a bhyve zone, but mouse and keyboard doesn't works in recent Windows versions. LPC is already 31.

Versions I have tested:

Windows 2025 +updates till february 2026:  mouse : keyboard doesn't works.
Windows 2022 +updates till february 2026:  mouse : keyboard doesn't works.
Windows 2019 : works just fine

It seems BHyve emulates a PS2 mouse + keyboard. Can this be the culprit?

OS:

SunOS omnios 5.11 omnios-r151056-1acbca4f5bd i86pc i386 i86pc

Zone config in zadm, where I have attempted to add the "xhci-mouse" node as I have seen in a FreeBSD forum. I think it didn't helps.

acpi="on"
autoboot="false"
bootargs=""
bootrom="BHYVE"
brand="bhyve"
cloud-init="off"
diskif="ahci-hd"
fs-allowed=""
hostbridge="q35"
hostid=""
ip-type="exclusive"
limitpriv="default"
netif="virtio-net"
pool=""
ram="2G"
rng="off"
scheduling-class=""
type="windows"
uefivars="on"
vcpus="1"
xhci="off"
zonename="windows"
zonepath="/zones/windows"
bootorder=[
  "cd",
]
cdrom=[
  "/mnt/torrent/complete/2026_microsoft_windows_updated_feb/hu-hu_windows_server_2022_updated_feb_2026_x64_dvd_09efea0d.iso",
  "/zones/iso/virtio-win.iso",
]
extra=[
  "-w",
]
resolvers=[
  "10.0.0.2",
  "10.0.0.1",
]

[[attr]]
name="xhci-mouse"
type="string"
value="yes"

[[disk]]
blocksize="8K"
path="tank/zones/windows/root"
size="60G"
sparse="false"

[[net]]
allowed-address="10.0.0.13/24"
defrouter="10.0.0.1"
global-nic="e1000g0"
mac-addr="2:8:20:3f:85:9"
physical="z_windows0"

[vnc]
enabled="on"

Zone log:

root@omnios:~# cat /zones/windows/log/zone.log
[Thu Mar  5 15:51:22 CET 2026] Creating VNIC z_windows0/e1000g0 (mac: 2:8:20:3f:85:9, vlan: -)
[Thu Mar  5 15:51:22 CET 2026] BHYVE support z=windows p=/zones/windows c=poststate 2:0
[Thu Mar  5 15:51:22 CET 2026] BHYVE support z=windows p=/zones/windows c=prestate 2:1
INFO:root:Zone name: windows
DEBUG:root:Found custom acpi attribute - "on"
DEBUG:root:Found custom bootorder attribute - "cd"
DEBUG:root:  Alias expanded to path0,bootdisk,cdrom0
DEBUG:root:Found custom bootrom attribute - "BHYVE"
DEBUG:root:Found custom cloud-init attribute - "off"
DEBUG:root:Found custom diskif attribute - "ahci-hd"
DEBUG:root:Found custom hostbridge attribute - "q35"
DEBUG:root:Found custom netif attribute - "virtio-net"
DEBUG:root:Found custom ram attribute - "2G"
DEBUG:root:Found custom rng attribute - "off"
DEBUG:root:Found custom type attribute - "windows"
DEBUG:root:Found custom uefivars attribute - "on"
DEBUG:root:Found custom vcpus attribute - "1"
DEBUG:root:Found custom vnc attribute - "on"
DEBUG:root:  Alias expanded to unix=/tmp/vm.vnc
DEBUG:root:Found custom xhci attribute - "off"
INFO:root:Adjusting LPC PCI slot for windows
DEBUG:root:Final bootrom: /usr/share/bhyve/firmware/BHYVE.fd
INFO:root:Read zone UUID: 65cd9329-a487-44c1-b43f-e6d3b5cb0def
DEBUG:root:Final uuid: 65cd9329-a487-44c1-b43f-e6d3b5cb0def
DEBUG:root:cdrom list:
{0: '/mnt/torrent/complete/2026_microsoft_windows_updated_feb/hu-hu_windows_server_2022_updated_feb_2026_x64_dvd_09efea0d.iso',
 1: '/zones/iso/virtio-win.iso'}
DEBUG:root:disk list:
{0: 'tank/zones/windows/root'}
DEBUG:root:ppt list:
{}
DEBUG:root:virtfs list:
{}
DEBUG:root:extra list:
{0: '-w'}
DEBUG:root:Final bootoptions:
{'cdrom': ('pci', '3.0'),
 'cdrom0': ('pci', '3.0'),
 'cdrom1': ('pci', '3.1'),
 'disk': ('pci', '5.0'),
 'disk0': ('pci', '5.0'),
 'net': ('pci', '6.0'),
 'net0': ('pci', '6.0'),
 'shell': ('app', '7c04a583-9e3e-4f1c-ad65-e05268d0b4d1')}
DEBUG:root:Boot0001 - ('pci', '3.0')
DEBUG:root:Boot0002 - ('pci', '3.1')
DEBUG:root:Boot0003 - ('pci', '5.0')
DEBUG:root:Boot0004 - ('app', '7c04a583-9e3e-4f1c-ad65-e05268d0b4d1')
DEBUG:root:Boot0005 - ('path', '\\EFI\\Microsoft\\Boot\\bootmgfw.efi')
DEBUG:root:-----------
DEBUG:root:('pci', '3.0') -> Boot0001
DEBUG:root:('pci', '3.1') -> Boot0002
DEBUG:root:('pci', '5.0') -> Boot0003
DEBUG:root:('app', '7c04a583-9e3e-4f1c-ad65-e05268d0b4d1') -> Boot0004
DEBUG:root:('path', '\\EFI\\Microsoft\\Boot\\bootmgfw.efi') -> Boot0005
DEBUG:root:('boot', 1) -> Boot0001
DEBUG:root:('boot', 2) -> Boot0002
DEBUG:root:('boot', 3) -> Boot0003
DEBUG:root:('boot', 4) -> Boot0004
DEBUG:root:('boot', 5) -> Boot0005
DEBUG:root:('path',) -> Boot0005
DEBUG:root:('path', 0) -> Boot0005
DEBUG:root:For requested bootorder path0,bootdisk,cdrom0
DEBUG:root:... setting to: [('path', 0), ('pci', '3.0')]
DEBUG:root:Final arguments:
['/usr/sbin/bhyve',
 '-U',
 '65cd9329-a487-44c1-b43f-e6d3b5cb0def',
 '-H',
 '-B',
 '1,manufacturer=OmniOS,product=OmniOS '
 'HVM,version=1.0,serial=65cd9329-a487-44c1-b43f-e6d3b5cb0def,sku=001,family=Virtual '
 'Machine',
 '-c',
 '1',
 '-m',
 '2G',
 '-l',
 'bootrom,/usr/share/bhyve/firmware/BHYVE.fd,/etc/uefivars',
 '-s',
 '0,hostbridge,model=q35',
 '-s',
 '31,lpc',
 '-l',
 'com1,/dev/zconsole',
 '-s',
 '3:0,ahci-cd,/mnt/torrent/complete/2026_microsoft_windows_updated_feb/hu-hu_windows_server_2022_updated_feb_2026_x64_dvd_09efea0d.iso,ro',
 '-s',
 '3:1,ahci-cd,/zones/iso/virtio-win.iso,ro',
 '-s',
 '5:0,ahci-hd,/dev/zvol/rdsk/tank/zones/windows/root',
 '-s',
 '6:0,virtio-net,z_windows0',
 '-s',
 '30:0,fbuf,vga=off,unix=/tmp/vm.vnc',
 '-w',
 '-o',
 'config.dump=1',
 'windows']
INFO:root:/usr/sbin/bhyve -U 65cd9329-a487-44c1-b43f-e6d3b5cb0def -H -B "1,manufacturer=OmniOS,product=OmniOS HVM,version=1.0,serial=65cd9329-a487-44c1-b43f-e6d3b5cb0def,sku=001,family=Virtual Machine" -c 1 -m 2G -l bootrom,/usr/share/bhyve/firmware/BHYVE.fd,/etc/uefivars -s 0,hostbridge,model=q35 -s 31,lpc -l com1,/dev/zconsole -s 3:0,ahci-cd,/mnt/torrent/complete/2026_microsoft_windows_updated_feb/hu-hu_windows_server_2022_updated_feb_2026_x64_dvd_09efea0d.iso,ro -s 3:1,ahci-cd,/zones/iso/virtio-win.iso,ro -s 5:0,ahci-hd,/dev/zvol/rdsk/tank/zones/windows/root -s 6:0,virtio-net,z_windows0 -s 30:0,fbuf,vga=off,unix=/tmp/vm.vnc -w -o config.dump=1 windows
DEBUG:root:Created temporary file at /zones/windows/root/etc/bhyve.0tc_3llt
INFO:root:Successfully created /zones/windows/root/etc/bhyve.cfg
[Thu Mar  5 15:51:22 CET 2026] BHYVE support z=windows p=/zones/windows c=poststate 2:1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions