No, unfortunately it’s not legal to re-distribute a Windows ISO image (or VM image) which is why we can only provide the tool that generates it for yourself and can’t just make the result available as we do for our other images.
You can’t replace the default VGA adapter (virtio-vga), but you may indeed be able to add another one as QXL. Though you’ll most likely need to specify where on the PCIe bus it needs to sit to avoid getting into conflicts like you’re showing above.
Defining a new PCI bus dedicated for that device is the most likely way to avoid such issues.
Note that we’ve seen a fair bit of activity around a native virtio-gpu driver for Windows, so our hope is that in the near future this won’t be an issue anymore and we’ll get more than a plain VGA driver on Windows.
Windows installs the driver; the responsivness is similar to the default driver. In comparison a similar proxmox machine running the qxl driver with remote-viewer is quite usable.
Is the lagginess an issue with the virtio-gpu to spice or something with the display being routed through the lxc console command?
No complaints, just for information. I’ll use it with rdp.
RDP is always going to be the best experience, the QXL or virtio-gpu console is mostly really meant for installation. I need to test those new virtio-win drivers, last I played, you’d only get basic VGA, maybe that has now changed.
I had two problems when following the instructions:
1) Secure Boot
I needed to set security.secureboot=false to get my VM to boot
When booting the VM, the console shows
BdsDxe: loading Boot0004 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/Scsi(0x0
,0x1) BdsDxe: failed to load Boot0004 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/S
csi(0x0,0x1): Access Denied
2) Apt Repos for Arm64
The apt repos for arm64 are not available at the http://us.archive.ubuntu.com/ubuntu/ address in the instructions - I needed to find a mirror that hosted “ubuntu-ports”.
Details
Host System : RPi 4, 8Gb RAM, Ubuntu 21.04
Host LXD: installed via snap
Storage: ZFS with 1 pool on external USB block device, 512GB
VM: Ubuntu 18.04 (but tried other versions and they showed the same symptoms)
Yeah, those two things are indeed specific to Arm64, though I’ve seen at least our own recent images starting to behave with SecureBoot on ARM recently.
How can I connect with public ip address (host) externally from Windows or Ubuntu 20.04 at home? And is it possible to specify a port? I can’t open virt-viewer on the terminal with lxc console win10 --type=vga remotely.
The way you’d normally do that is by configuring LXD to listen on the network:
lxc config set core.https_address :8443
lxc config set core.trust_password some-password
Then on your Windows or Ubuntu 20.04 system, install LXD and remote-viewer.
For Windows that should be: choco install lxc virt-viewer
For Ubuntu: snap install lxd && apt install virt-viewer
Then add your remote server to LXD with:
lxc remote add my-server IP-ADDRESS
Accept the certificate and enter the trust password
lxc remote switch my-server (to have all commands sent to the server rather than local)
At which point you can issue lxc console win10 --type=vga from your Windows or Ubuntu system and that will talk to the remote LXD using its API and get you access to the VGA console.
Looks like we need to improve the doc a tiny bit to cover the defaults for virtual machines.
For containers, it’s correct that no limit means you get to see whatever the host has to offer. For VMs it’s not something we can do, so it defaults to 1 vCPU and 1GB of RAM.