Solidworks:此虛擬環境(Qemu-KVM)不支援啟動授權模式

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 http://www.solidworks.com/sw/support/11168_ENU_HTML.htm

我在用:

設定

如您所看到的,它是基於 KVM 的 VM,安裝了 Windows 2012 和 Solidworks PDM。

問題:如果我在 Qemu-KVM 中運行我的虛擬機,除了檢查之外,他們還能檢查什麼:

  • 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)磁碟模式也可能相關。

答案1

目前在 Intel 硬體上運行的大多數虛擬機器管理程式都使用 CPUID 保留 0x40000000 等。將虛擬機器管理程式的資訊從主機傳遞到來賓。

鍵盤虛擬機,Xen,虛擬機超V都用這個方法。

這是另外到 CPUID 葉 0x1 中設定的管理程式功能標誌,這表示機器是虛擬機器。

因此,對於可以呼叫 CPUID 指令來確定它是否在這些虛擬機器管理程式之一下運行的程式來說,這是微不足道的。

KVM 的最新版本包括命令列選項禁用 CPUID 0x40000000 葉,-cpu kvm=off.

答案2

我只是想在這裡分享我的經驗,以防其他人遇到類似的情況(嘗試在 virtualbox 虛擬機器上安裝solidworks)

我嘗試的設定:

xubuntu 16.04 主機作業系統、VirtualBox、Windows 10 和 Solidworks 2015。

解決方案:

我最終找到的解決方案是使用hidevm.batSolidsquad 破解中包含的腳本,欺騙 Solidworks 認為它沒有在虛擬機器中運行。即使您擁有合法許可證,您也可以使用 .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"

如果您的虛擬機器配置為使用 EFI 韌體,您需要替換pcbiosefi在金鑰中。看9.12.配置BIOS DMI信息

答案3

在 KVM 上啟動 Solidworks 伺服器的官方方法是申請「SolidWorks 免啟動許可」。我們透過經銷商來完成此操作,但也可以直接透過 Solidworks 支援來完成。

Solidworks 傳送 Solidworks License Manager 透過「伺服器管理」標籤的「進階選項」載入的許可證檔案。

鑑於過去兩年 Solidworks 發送許可證文件的時間超過了 2 週,因此最好不要讓他們將 KVM 列入黑名單。

Solidworks 有一個“增強請求”,標題為:“為 VM KVM Qemu Libvirt 提供 SNL 伺服器支援”。 ER # 1-9482749288 我透過登入 Solidworks 入口網站、找到增強請求連結並輸入 KVM 找到了它。

請對此增強請求發表評論!希望他們能夠認定 KVM 是一個合法的虛擬化環境。

答案4

我想我應該分享我的方法,該方法可以從 Windows/Task MGR 中隱藏 VM(它也減少了不必要的東西,並且更容易閱讀)。我並沒有嘗試啟動 Solidworks,但在我看來,該線程更多的是關於隱藏您在虛擬機器中的運行,也許應該這樣進行編輯。反正...

將以下內容新增至您的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>

關閉虛擬機器並重新開啟並測試!

相關內容