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 中執行我的虛擬機,除了檢查之外,他們還能檢查什麼:
- 虛擬機乙太網適配器的 MAC 地址,
- 設備驅動程序標籤,
- CPU型號,
- ACPI 表。
我將在接下來的幾個小時內排除上述情況,但我想知道您是否還有其他想法。
解決方案:
事實證明,他們驗證了兩件事:
- 正如邁克爾漢普頓正確指出的那樣,有
-cpu,kvm=off
選擇禁用 CPUID 0x40000000 葉。
- 來賓上的 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)磁碟模式也可能是相關的。
大多數目前在 Intel 硬體上執行的管理程序使用 CPUID 留下 0x40000000 et seq。將有關虛擬機管理程序的資訊從主機傳遞給來賓。
KVM、Xen、VMware和Hyper-V都使用這種方法。
這是對 CPUID 葉 0x1 中設置的管理程序功能標誌的補充,它指示機器是虛擬機。
因此,對於可以呼叫 CPUID 指令來確定它是否在這些管理程序之一下執行的程序來說,這是微不足道的。
最新版本的 KVM 包括一個命令行選項來禁用 CPUID 0x40000000 葉,
-cpu kvm=off
.