Die Frage bezieht sich eigentlich nicht auf Solidworks , lesen Sie also bitte weiter.
Die gesamte Idee der Virtualisierung besteht darin, hardwareunabhängig zu sein. Vor unseren Augen wird eine ganz neue Abhängigkeitsebene geschaffen - die Anbringung am Hypervisor.
Soweit ich weiß, ist die Suche nach einer Problemumgehung für dieses Problem kein Verstoß gegen die Solidworks-Lizenz und die örtlichen Gesetze in meinem Land.
Mein Client und ich möchten Solidworks-Produkte auf einer virtuellen KVM-Maschine aktivieren. Aus seltsamen Gründen (Hyper-V und VMware sollten gut getestet sein :) möchten sie (Entwickler) von Solidworks 2015 PDM nicht, dass ihre Produkte auf Qemu-KVM aktiviert werden (die letzte Version von 2014 hat einwandfrei funktioniert).
http://www.solidworks.com/sw/support/11168_ENU_HTML.htm
Ich benutze:
Wie Sie sehen, handelt es sich um eine KVM-basierte VM mit Windows 2012- und Solidworks PDM-Installation.
Frage : Was können sie außer der Überprüfung noch überprüfen, ob ich meine VM in Qemu-KVM ausführe:
- MAC-Adresse (n) des Ethernet-Adapters der VM,
- Gerätetreiberetiketten,
- CPU-Modell,
- ACPI-Tabellen.
Ich werde die oben genannten Dinge in den nächsten Stunden ausschließen, aber ich würde gerne wissen, ob Sie andere Ideen haben.
Lösung :
Es stellt sich heraus, dass sie zwei Dinge bestätigen:
- Wie Michael Hampton richtig zeigte, gibt es eine
-cpu,kvm=off
Option
um die CPUID 0x40000000 Blatt zu deaktivieren.
- ACPI-Tabellen auf dem Gast.
Relevante Teile der qemu-Befehlszeilenparameter:
-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
Syntax der Libvirtd-Konfigurationsdatei:
<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>
Als Beweis will es jetzt aktivieren:
Update 21.04.2017r. DS Justice erwähnte, dass der Qemu-Festplattenmodus (ich habe in diesem Beispiel virtio verwendet) ebenfalls relevant sein könnte.
quelle
Antworten:
Die meisten aktuellen Hypervisoren, die auf Intel-Hardware ausgeführt werden, verwenden die CPUID und belassen 0x40000000 ff. Informationen über den Hypervisor vom Host an den Gast weitergeben.
KVM , Xen , VMware und Hyper-V verwenden diese Methode.
Dies gilt zusätzlich zu dem im CPUID-Blatt 0x1 gesetzten Hypervisor-Feature-Flag, das angibt, dass es sich bei der Maschine um eine virtuelle Maschine handelt.
Es ist daher trivial für ein Programm, das den CPUID-Befehl aufrufen kann, um festzustellen, ob es unter einem dieser Hypervisoren ausgeführt wird.
Neuere Versionen von KVM enthalten eine Befehlszeilenoption zum Deaktivieren der CPUID 0x40000000
-cpu kvm=off
.quelle
Die offizielle Möglichkeit, den Solidworks-Server in KVM zu aktivieren, besteht darin, eine "Aktivierung ohne Aktivierung für SolidWorks" zu beantragen. Wir tun dies über den Reseller, können dies jedoch möglicherweise direkt über den Solidworks-Support tun.
Solidworks sendet eine Lizenzdatei, die Solidworks License Manager über die erweiterten Optionen der Registerkarte Serververwaltung lädt.
Angesichts der Tatsache, dass Solidworks in den letzten zwei Jahren mehr als zwei Wochen gebraucht hat, um die Lizenzdatei zu senden, wäre es schön, wenn sie KVM nicht auf die schwarze Liste setzen würden.
In Solidworks ist eine "Erweiterungsanforderung" mit dem Titel "Bereitstellung von SNL-Server-Unterstützung für VM KVM Qemu Libvirt" geöffnet. ER # 1-9482749288 Ich habe es gefunden, indem ich mich beim Solidworks-Portal angemeldet, den Link für Erweiterungsanfragen gefunden und KVM eingegeben habe.
Bitte hinterlassen Sie einen Kommentar zu dieser Verbesserungsanfrage! Hoffentlich entscheiden sie, dass KVM eine legitime Virtualisierungsumgebung ist.
quelle
legitimate virtualization environment
.Ich wollte nur auch hier meine Erfahrungen teilen, falls sich andere in einer ähnlichen Situation befinden (versuchen, Solidworks auf einer Virtualbox-VM zu installieren)
Mein versuchter Aufbau:
xubuntu 16.04 Host-Betriebssystem, VirtualBox, Windows 10 und Solidworks 2015. Ich habe den gleichen Fehler wie oben beschrieben gesehen.
Die Lösung:
Die Lösung, die ich schließlich fand, bestand darin, das
hidevm.bat
im Solidsquad-Crack enthaltene Skript zu verwenden , um Solidworks dazu zu bringen, zu glauben, dass es nicht in einer VM ausgeführt wird. Sie können die .bat-Datei auch dann verwenden, wenn Sie eine legitime Lizenz haben (wie ich hoffe, dass Sie dies tun). Die .bat-Datei ist für Benutzer gedacht, die Solidworks in einer VirtualBox-VM mit Windows als Host-Betriebssystem ausführen. Wenn Sie jedoch wie ich versuchen, Linux als Host-Betriebssystem auszuführen, können Sie die .bat-Datei weiterhin öffnen Geben Sie die entsprechenden Befehle aus, passen Sie sie für Linux an und führen Sie sie aus. Die modifizierten relevanten Befehle sind:Falls Ihr VM konfiguriert verwenden EFI Firmware Sie ersetzen müssen
pcbios
durchefi
in die Tasten. Siehe 9.12. Konfigurieren der BIOS-DMI-Informationen .quelle
pcbios
durchefi
in die Tasten. Ich schlage vor, die Nachricht zu bearbeiten.'/>
fehlt in EOL,<qemu:arg value='type=1,manufacturer=LENOVO
daher hier die vollständigen Änderungen der libvirt-Konfiguration:quelle
Ich dachte, ich würde meine Methode teilen, die funktioniert, um VM vor Windows / Task MGR zu verbergen (es hat auch weniger unnötiges Zeug und ist einfacher zu lesen). Ich habe nicht versucht, Solidworks zu aktivieren, aber IMO, in diesem Thread geht es mehr darum, Ihre Ausführung in einer VM zu verbergen, und sollte möglicherweise als solche bearbeitet werden. Wie auch immer...
Fügen Sie Ihrer domain.xml Folgendes hinzu und entfernen Sie den CPU-Bereich vollständig
Schalten Sie die VM aus und wieder ein und testen Sie!
quelle
smbios
Argumenten und VirtIO als Treiber für Festplatten und Ethernet an qemu arbeiten lassen.smbios
Argumente versucht ?smbios
.