SolidWorks:此虚拟环境(Qemu-KVM)不支持激活许可模式


12

这个问题实际上与Solidworks无关,因此请继续阅读。

虚拟化的整体思想是与硬件无关。在我们眼前,正在创建一个全新的依赖级别-附加到虚拟机管理程序。

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

我的客户和我想在KVM虚拟机上激活Solidworks产品。出于某些奇怪的原因(应该对Hyper-V和VMware进行良好的测试:),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

我在用:

设定

如您所见,它是Windows 2012和Solidworks PDM安装的基于KVM的虚拟机。

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

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

接下来的几个小时,我将排除上述问题,但我想知道您是否还有其他想法。

解决方案

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

  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

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,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>

作为证明,现在它想激活: 与黑客

更新21.04.2017r。DS Justice提到Qemu(在此示例中,我使用了virtio)磁盘模式也很重要。


该站点适用于对支持/可支持解决方案有内在兴趣的专业系统管理员,我们真的非常努力地“在线”工作。
斩波器

8
正如您所看到的,只要不是标准解决方案,并不表示该解决方案不受支持。您不是真的在这里看到问题吗?他们迫使某人选择商业工具并躲在后面-因为它已经过充分的测试。在选择管理程序时,这是胡说八道。对于底层操作系统-是的,但对于应用程序则不是。
Michal Sokolowski

如果有足够的付费客户发布对SolidWorks的支持KVM的需求,他们将被迫这样做。当Oracle发布OEL并尝试阻止在RHEL上进行安装时,这已经发生了,这仅仅是压力和将您的业务转移到其他地方的潜力所致。
dyasny 2015年

他们已经做到了。他们支持它,例如,他们今天有任务安装许可证。
Michal Sokolowski

1
对于虚拟IDE引导磁盘,这对我不起作用,可能是因为AHCI磁盘描述中包含单词“ QEMU”。如您的屏幕快照所示,将我的启动磁盘更改为VirtIO,我很高兴。谢谢!
秋季,

Answers:


13

当前在Intel硬件上运行的大多数虚拟机管理程序都使用CPUID,其值为0x40000000等。从主机向来宾传递有关虚拟机管理程序的信息。

KVMXenVMwareHyper-V都使用此方法。

这是 CPUID叶0x1中设置的虚拟机监控程序功能标志的补充,该标志指示该计算机是虚拟机。

因此,对于可以调用CPUID指令确定它是否正在这些虚拟机管理程序之一下运行的程序而言,这是微不足道的。

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


1
事实证明,这种方法还可以有效防止NVIDIA驱动程序在直通时阻塞KVM VM。
dyasny 2015年

5

在KVM上激活Solidworks服务器的官方方法是申请“ SolidWorks免激活许可”。我们通过经销商进行此操作,但可能可以通过Solidworks支持直接进行。

SolidWorks通过服务器管理选项卡的高级选项发送由Solidworks许可管理器加载的许可文件。

鉴于最近两年来Solidworks发送许可证文件已经花费了2个多星期,因此最好不要让他们将KVM列入黑名单。

SolidWorks带有一个标题为“为VM KVM Qemu Libvirt提供SNL服务器支持”的“增强请求”。ER#1-9482749288我是通过登录Solidworks门户,找到“增强请求”链接并键入KVM来找到的。

请对此增强请求发表评论!希望他们能够确定KVM是合法的虚拟化环境。


AWS正在使用KVM!
FreeSoftwareServers

1
@FreeSoftwareServers AWS仅在某些机器类型上才切换到KVM。还有很多Xen。
迈克尔·汉普顿

是的,只是说这是一个legitimate virtualization environment
FreeSoftwareServers

不要告诉我,告诉Solidworks!:)
lickdragon

5

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

我尝试的设置:

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

解决方案:

我最终找到的解决方案是使用hidevm.batSolidsquad破解中包含的脚本,以诱使Solidworks认为它不在VM中运行。即使您具有合法的许可证,也可以使用.bat文件(我希望您这样做)。.bat适用于在VirtualBox VM中运行Solidworks的用户,并且Windows也作为主机OS,但是,如果您像我一样尝试将Linux作为主机OS运行,您仍然可以打开.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"

如果您的VM配置为使用EFI固件,则需要在密钥pcbios中用替换efi。见9.12。配置BIOS DMI信息


这对我来说失败了。可能是因为我的系统使用UEFI。
kyb

但是我在VBox docs $ 9.12中找到了解决方案。>如果您的VM配置为使用EFI固件,则需要在密钥pcbios中用替换efi。我建议编辑消息。
kyb

4

'/>在EOL上缺少,<qemu:arg value='type=1,manufacturer=LENOVO因此这里是完整的libvirt配置修改:

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

... 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>
 (...)

谢谢您的回答,它帮助我取得了成功,我只是删除了不必要的代码。
FreeSoftwareServers

1

我想我会分享我的方法,该方法可用于从Windows / Task MGR隐藏VM(它也减少了不必要的内容,更易于阅读)。我不是想激活Solidworks,但IMO这个线程更多的是关于在VM中隐藏您的运行,也许应该这样编辑。无论如何...

将以下内容添加到您的domain.xml中,并确保完全删除CPU部分

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
#Regaular Stuff
#No CPU Type Set
 <features>
    <acpi/>
    <apic/>
    <kvm>
      <hidden state='on'/>
    </kvm>
    <vmport state='off'/>
  </features>
#Add to Bottom of Domain.xml
  </devices>
  <qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='host,hv_time,kvm=off,hv_vendor_id=null,-hypervisor'/>
  </qemu:commandline>
</domain>

关闭虚拟机,然后重新打开并进行测试!


1
我让SolidWorks在Ubuntu 19.04上的qemu上使用此配置,smbios参数和VirtIO作为磁盘和以太网的驱动程序进行工作。
阿瓦曼德

1
@Avamander太好了,正如我所说的,我什至没有与SolidWorks合作,但看起来我帮助解决了OP的问题!我忘记了我在做什么,但是这也使它对我也有用,我认为这与游戏有关,无法在VM中运行游戏。我的VM比大多数人的游戏笔记本电脑更强大:P
FreeSoftwareServers

@Avamander我很好奇,您是否尝试了不带smbios参数?
FreeSoftwareServers

没有伪造,我就没有尝试过smbios
阿瓦曼德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.