Solidworks:激活许可证模式在此虚拟环境(Qemu-KVM)中不受支持

这个问题实际上不在Solidworks附近 ,所以请继续阅读。

虚拟化的整个想法是硬件独立的。 在我们眼前,正在创build一个全新的依赖关系级别 – hypervisor的附加。

据我所知,以某种方式寻找解决这个问题的办法并不违反我国的Solidworks许可证和当地法律。

我的客户和我想在KVM虚拟机上激活Solidworks产品。 出于一些奇怪的原因(Hyper-V和VMware应该被很好地testing:),他们(开发者)的Solidworks 2015 PDM不希望他们的产品在Qemu-KVM上被激活(最后的2014版本工作得很好)。

http://www.solidworks.com/sw/support/11168_ENU_HTML.htm http://www.solidworks.com/sw/support/11168_ENU_HTML.htm

我在用:

建立

正如您可以看到它是基于KVM的虚拟机与Windows 2012和Solidworks PDM安装。

问题 :除了检查外,他们还能检查我是否在Qemu-KVM中运行我的虚拟机:

  • VM的以太网适配器的MAC地址,
  • 设备驱动标签,
  • CPU型号,
  • ACPI表。

我将在接下来的几个小时内排除上述提到的事情,但是我想知道你有没有其他想法。

解答

事实certificate,他们validation了两件事情:

  1. 正如迈克尔·汉普顿正确指出那里是-cpu,kvm=off选项

禁用CPUID 0x40000000叶。

  1. 客人的ACPI表。

qemu命令行参数的相关部分:

 -cpu host,kvm=off -smbios type=0,vendor=LENOVO,version=FBKTB4AUS,date=07/01/2015,release=1.180 -smbios type=1,manufacturer=LENOVO,product=30AH001GPB,version=ThinkStation P300,serial=S4M88119,uuid=cecf333d-6603-e511-97d5-6c0b843f98ba,sku=LENOVO_MT_30AH,family=P300 

Libvirtdconfiguration文件语法:

 <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> # Please notice there is xmlns definition in <domain> tag. Without it # <qemu:commandline> and <qemu:arg> tags won't work. <name>acm-server</name> <uuid>d0e14081-b4a0-23b5-ae39-110a686b0e55</uuid> <memory unit='KiB'>81920000</memory> <currentMemory unit='KiB'>81920000</currentMemory> <vcpu placement='static'>4</vcpu> <os> <type arch='x86_64' machine='pc-1.1'>hvm</type> <boot dev='hd'/> <bootmenu enable='yes'/> </os> <features> <acpi/> <apic/> <pae/> </features> # Please notice there is no CPU definition on the top. <qemu:commandline> <qemu:arg value='-cpu'/> <qemu:arg value='host,kvm=off'/> <qemu:arg value='-smbios'/> <qemu:arg value='type=0,vendor=LENOVO,version=FBKTB4AUS,date=07/01/2015,release=1.180'/> <qemu:arg value='-smbios'/> <qemu:arg value='type=1,manufacturer=LENOVO,product=30AH001GPB,version=ThinkStation P300,serial=S4M88119,uuid=cecf333d-6603-e511-97d5-6c0b843f98ba,sku=LENOVO_MT_30AH,family=P3'/> </qemu:commandline> </domain> 

作为一个certificate,现在它想激活: 与黑客

更新21.04.2017r。 DS Justice提到Qemu(我在这个例子中使用了virtio)磁盘模式也可能是相关的。

在Intel硬件上运行的大多数目前的hypervisor使用CPUID离开0x40000000 et seq。 从主机到客户机传递有关虚拟机pipe理程序的信息。

KVM , Xen , VMware和Hyper-V都使用这种方法。

这是 CPUID叶0x1中设置的pipe理程序function标志的补充 ,这表示该机器是虚拟机。

对于一个可以调用CPUID指令来确定它是否在其中一个虚拟机pipe理程序下运行的程序,这是微不足道的。

最近版本的KVM包括一个命令行选项来禁用CPUID 0x40000000叶, -cpu kvm=off

在KVM上激活Solidworks服务器的官方方式是申请“SolidWorks的激活豁免许可”。 我们通过经销商来完成,但可能通过Solidworks支持直接完成。

Solidworks通过“服务器pipe理”选项卡的“高级选项”发送Solidworks许可证pipe理器加载的许可证文件。

鉴于最近两年Solidworks发送许可证文件花了2周多时间,最好让他们不要黑名单KVM。

Solidworks有一个“增强请求”打开,标题为:“提供对VM KVM Qemu Libvirt的SNL服务器支持”。 ER#1-9482749288我通过login到Solidworks门户find了增强请求链接并键入了KVM。

请对此增强请求留言! 希望他们会决定KVM是一个合法的虚拟化环境。

我只是想在这里分享我的经验,以防其他人遇到类似情况(尝试在虚拟机VM上安装solidworks)

我尝试的设置:

xubuntu 16.04主机操作系统,VirtualBox,Windows 10和Solidworks 2015.我看到上面讨论的同样的错误。

解决scheme:

我最终发现的解决scheme是使用Solidsquad破解中包含的hidevm.bat脚本来欺骗Solidworks,使其认为它不在虚拟机中运行。 你可以使用.bat文件,即使你有一个合法的许可证(我希望你这样做)。 .bat适用于在VirtualBox虚拟机内运行Solidworks的用户,Windows也作为主机操作系统,但是如果您像我一样尝试运行Linux作为主机操作系统,您仍然可以打开.bat文件,出来相关的命令,调整他们的Linux,并运行它们。 修改后的相关命令是:

 VMNAME=[whatever your VM name is] rand9="abcdefghi" #any 9 character string rand20="abdcefghijklmnopqrst" #any 20 character string rand8="abcdefgh" #any 8 character string VBoxManage setextradata $VMNAME "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" "American Megatrends Inc" VBoxManage setextradata $VMNAME "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" "2.1.0" VBoxManage setextradata $VMNAME "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "ASUSTek Computer" VBoxManage setextradata $VMNAME "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" $rand9 VBoxManage setextradata $VMNAME "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" $rand20 VBoxManage setextradata $VMNAME "VBoxInternal/Devices/ahci/0/Config/Port0/FirmwareRevision" $rand8 VBoxManage setextradata $VMNAME "VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" "SEAGATE ST3750525AS" 

如果您的虚拟机被configuration为使用EFI固件,您需要用pcbiosefireplacepcbios 。 见9.12。 configurationBIOS DMI信息 。

“'/>”在EOL上丢失“<qemu:arg value ='type = 1,manufacturer = LENOVO”所以这里是完整的libvirtconfiguration修改:

<domain type ='kvm'xmlns:qemu ='http://libvirt.org/schemas/domain/qemu/1.0'>
(……)

…请注意,顶部没有CPU定义。
<QEMU:命令行>
<qemu:arg value =' – cpu'/>
<qemu:arg value ='host,kvm = off'/>
<qemu:arg value =' – smbios'/>
<qemu:arg value ='type = 0,vendor = LENOVO,version = FBKTB4AUS,date = 07/01/2015,release = 1.180'/>
<qemu:arg value =' – smbios'/>
<qemu:arg value ='type = 1,manufacturer = LENOVO,product = 30AH001GPB,version = ThinkStation P300,serial = S4M88119,uuid = cecf333d-6603-e511-97d5-6c0b843f98ba,sku = LENOVO_MT_30AH,family = P3'/>
</ QEMU:命令行>
(……)