windows-server-2012 – Solidworks:此虚拟环境不支持激活许可模式(Qemu-KVM)

实际上问题不在于Solidworks,所以请继续阅读.

虚拟化的整个想法是与硬件无关.在我们眼前,正在创建一个全新的依赖级别 – 添加到管理程序.

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

我的客户和我想要在KVM虚拟机上激活Solidworks产品.出于一些奇怪的原因(Hyper-V和VMware应该经过充分测试:)他们(开发人员)的Solidworks 2015 PDM不希望他们的产品在Qemu-KVM上被激活(2014年版本工作正常).

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

我在用:

正如您所看到的那样,它是基于KVM的VM,安装了Windows 2012和Solidworks PDM.

题:
除了检查之外,他们还可以检查我是否在Qemu-KVM中运行我的VM:

> VM的以太网适配器的MAC地址,
>设备驱动程序标签,
> cpu型号,
> ACPI表.

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

解:

事实证明他们验证了两件事:

>正如Michael Hampton正确指出的那样是-cpu,kvm = off选项

to disable the cpuID 0x40000000 leaf.

>客人的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

Libvirtd配置文件语法:

<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,release=1.180'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=1,family=P3'/>
  </qemu:commandline>
</domain>

作为证明,现在它想要激活:

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

在英特尔硬件上运行的大多数当前虚拟机管理程序使用cpuID离开0x40000000及以下.将主机管理程序的信息从主机传递给访客.

KVM,Xen,VMwareHyper-V都使用这种方法.

这是在cpuID叶0x1中设置的管理程序功能标志的补充,表示该计算机是虚拟机.

因此,对于可以调用cpuID指令以确定它是否在这些管理程序之一下运行的程序来说,这是微不足道的.

最近版本的KVM包括一个command line option来禁用cpuID 0x40000000叶子,-cpu kvm = off.

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...