In my decades long effort to remove any proprietary software from my daily work use tools, I am now coming extremely close to achieving my goals. There are only a few remaining vestiges of software tools that are proprietary and needed for my daily work, but I could get them going on a VM. In fact I use a couple of VMWare VM’s with different needs set up specifically for particular hardware families I frequently diagnose or program for my customers. I know I can use virt-manager and libvirt on a standard workstation of Fedora 29 to achieve this goal, and will do that if needed, but I would like to try it first with Silverblue and was wondering of someone else has already done this.
I believe GNOME Boxes would be the way to go, though I’ve personally had some mixed luck:
- Flatpak and native under Wayland will make my cursor disappear, apparently trying to resize the window helps.
- Flatpak under X11 doesn’t have the keyboard working at all.
- Native under X11 makes the cursor randomly stop moving on the host for a few seconds randomly.
I’d try and contribute fixes, but Boxes has quite a few dependencies that take quite a while to build…
I’ve got both GNOME Boxes and Virtual Machine Manager installed via rpm-ostree
and I’ve disabled Wayland. That works at least for Linux VMs. I have not found another configuration that works - Virtual Machine Manager doesn’t exist in a flatpak and Wayland has rendering problems in both Boxes and VMM.
I can’t seem to get boxes to look at the usb drive and even contemplate the VMWare Win7 image. I copied the image to a sub dir off of my home directory and it does try to create a box with it, but fails.
Yeah, I was trying the pet container hoping I could do it that way but no glory after a morning of jury rigging. I figured by the end of it I would have to go the layering method. I prefer virt-manager for doing the Windows VM’s with, mainly because they actually worked for me with it. I could never get boxes to run any of my windows images properly.
As for video, usually what I’m running doesn’t eat a lot of resources. I require networking, usb/serial communications, and in a lot of cases the software wants/needs a fair bit of direct hardware control. Silverblue has been behaving fine for me with Wayland as the compositer, even with my oddball Saphire labeled AMD GPU.
I’ve successfully fired up the Windows VMs from https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ with Virtual Machine Manager. I forget whether it was the VirtualBox or VMware images that I used. In either case, qemu-img
may have been part of the tooling I used. I may have tossed away the virtual machine part and just reformatted the virtual disk to QCOW2.
It appears that one particular image I tried to use is the problem in this case. It is reporting as corrupt on the Windows box by vmware. I’ll try the other images I have this was the bare bones original I started with for all of them. Mainly I just want to replicate my windows capabilities and make my laptop into a Silverblue laptop. If I have to I’m going to go the route of a Fedora Workstation laptop with the VM’s but I would like to try this way first so I can do everything on my Silverblue desktop and get it working, then make the laptop switch. Plus, some of the things I’m going to have to figure out will be applicable for the guide I am working on for Silverblue. I’ll check out the msdn link you mention, I don’t mind lurking about the site.
EDIT
I found a Win7 Pro vmware image I was able to get going in boxes. I had to adjust the screen resolution, and it seems a bit sluggish and unresponsive. I’ll do some testing tomorrow with software I run normally on Windows to see how it behaves.
I have used qemu-img for converting vmdk images to qcow2 in the past. It works on Virt-Manager, at least it did for me when I ran Fedora Workstation. On Silverblue, I can get the image to work in Boxes, but not with Virt-Manager layered. In boxes, I can use normal USB connected things like thumb drives and keyboards/mice/tablets, but not communication devices since they don’t get mapped to /proc/bus/usb but to /dev/bus/usb. That leaves the software I need functional, but only partially since I cannot connect to external devices to download the programs I write for them. In the VM I can see the offending device as a pci device, that I cannot load a driver for. I do have the spice guest tools installed, did that first, then updates, then installed the desired programming software. Since I did accomplish this very thing as recently as F27 on workstation with Virt-Manager, I can only guess that it is due to Silverblue’s file system layout and how it handles usb networking, possibly the spice virtio stuff is not getting what it needs.
Flatpak’ed Boxes still has some limitations regarding access to host features. We need the Flatpak Devices portal to evolve so Boxes can support USB redirection, PCI passthrough, bridged network, etc… These things should work out of the Boxes if you have it layered.
Boxes supports VDI and VDMK disks. It currently will convert them to qcow2 during the “Import” stage, but for the next release I plan to make that optional. You’d just run from the disk directly and be offered the option to “Import” (aka convert to qcow2 and move to Boxes images’ folder) if you want (that would be desirable when you want to support qcow2 specific features such as snapshots).
Flatpak Devices portal, is there an interim command I can use to allow the access through the existing devices portal?
I did use the vmware disk originally in boxes, which it converted. The image runs and I have almost everything I need. Unfortunately, the usb communication thing is a show stopper for my work. Almost every piece of equipment I work on has something that I need to connect to usually with my usb communication cables
Off the top of my head, flatpak run --filesystem=/run/$USER/media
if that’s where the USBs are mounted, the devices themselves should already be available from --device=all
but I’m not sure of Boxes has the permissions to access them.
If it works make it permanent via flatpak override
.
I had the same problem. It turns out that layering virt-manager
does not bring in all of the dependencies required for it to run. There is also an SELinux issue - see https://bugzilla.redhat.com/show_bug.cgi?id=1631033 for the details.
On my machine, layering both GNOME Boxes and virt-manager
got me a working Virtual Machine Manager and GNOME Boxes, so that’s what I did.
So I layered Boxes on my Silverblue install, that already had Virt-Manager layered on it, and now Virt-Manager works with my Win7 Pro VM. I can see the USB network device and redirect it manually to the VM from the Host. I have to try communications with devices today maybe, at least this weekend. Hopefully I can connect to them and do some test programming, monitoring.
The problems reported (prior to layering Boxes) by Virt-Manager were noting that Virt-Manager was getting no access to something from libvirtd, permission denied. The other thing I noticed was the working setup is Okay in using the VM in a QEMU/KVM User session, but not in the standard QEMU/KVM session. I’m going to copy over some other VM’s today to see if they spin up for me.
Yep - I’m guessing everything will work. If you check the Bugzilla entry, I think I logged the RPMs that were missing from the virt-manager
dependencies that gnome-boxes
added to make things work.