Solidworks Standalone in a VM

Virtualbox

Solidworks with education licenses doesn't like VirtualBox. I get the error using a standalone license for solidworks is not supported in this virtual environment. Since I exclusively run Arch as my daily driver, this is a bummer.

Turns out you have to trick windows into thinking it isn't running in a VM. Found this bash script so I'm cloning it here for posterity.

nano bash.sh

past and save this, change __my_vm='W10' to the name of the VM you're working on

#!/bin/bash

__get_random_string () {

    openssl rand -hex "${1}" | cut -c "1-${1}"

}

__my_vm='W10'

VBoxManage setextradata "${__my_vm}" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" "American Megatrends Inc"
VBoxManage setextradata "${__my_vm}" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" "2.1.0"
VBoxManage setextradata "${__my_vm}" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "ASUSTek Computer"
VBoxManage setextradata "${__my_vm}" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "$(__get_random_string 9)"
VBoxManage setextradata "${__my_vm}" "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "$(__get_random_string 20)"
VBoxManage setextradata "${__my_vm}" "VBoxInternal/Devices/ahci/0/Config/Port0/FirmwareRevision" "$(__get_random_string 8)"
VBoxManage setextradata "${__my_vm}" "VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" "SEAGATE ST3750525AS"

exit
chmod +x bash.sh
./bash.sh

QEMU

First, you will need to set a CPU type in virt-manager. The default QEMU virtual CPU cannot have its hypervisor flag removed within libvirt.

For best performance and functionality, you should just select "Copy host CPU configuration" and "Apply". This will allow you to use nested virtualization, running 64-bit accelerated virtual machines inside this virtual machine.

next

under CPU in the XML add:

<feature policy='disable' name='hypervisor'/>

next,

add

 <kvm>
    <hidden state='on'/>
  </kvm>

into the features section

Windows now thinks its a real boy. Yay.