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

Mic*_*ski 12 qemu windows-server-2012 kvm-virtualization

这个问题实际上并不围绕 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

我在用:

设置

如您所见,它是基于 KVM 的 VM,安装了 Windows 2012 和 Solidworks PDM。

问题:除了检查之外,他们还能检查我是否在 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
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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

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

Mic*_*ton 14

当前在 Intel 硬件上运行的大多数管理程序都使用 CPUID 留下 0x40000000 等。将有关管理程序的信息从主机传递给来宾。

KVMXenVMwareHyper-V都使用这种方法。

这是CPUID 叶 0x1 中设置的管理程序功能标志的补充,该标志指示该机器是虚拟机。

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

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


小智 6

我也只是想在这里分享我的经验,以防其他人处于类似情况(尝试在 virtualbox VM 上安装 Solidworks)

我尝试的设置:

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

解决方案:

我最终找到的解决方案是使用hidevm.batSolidsquad 破解中包含的脚本,诱使 Solidworks 认为它​​不在 VM 中运行。即使您拥有合法许可证,您也可以使用 .bat 文件(我希望您这样做)。.bat 适用于在 VirtualBox VM 中运行 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"
Run Code Online (Sandbox Code Playgroud)

如果你的虚拟机配置为使用EFI固件需要更换pcbiosefi在钥匙。见9.12。配置BIOS DMI信息


lic*_*gon 5

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

Solidworks 发送一个许可文件,Solidworks License Manager 通过服务器管理选项卡的高级选项加载该文件。

鉴于过去两年 Solidworks 发送许可证文件需要 2 个多星期的时间,最好不要让他们将 KVM 列入黑名单。

Solidworks 有一个“增强请求”,标题为:“为 VM KVM Qemu Libvirt 提供 SNL 服务器支持”。ER # 1-9482749288 我通过登录 Solidworks 门户找到了它,找到了增强请求链接,然后输入 KVM。

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