Solidworks: Der Aktivierungslizenzmodus wird in dieser virtuellen Umgebung (Qemu-KVM) nicht unterstützt.

Solidworks: Der Aktivierungslizenzmodus wird in dieser virtuellen Umgebung (Qemu-KVM) nicht unterstützt.

Die Frage dreht sich eigentlich nicht um Solidworks, also lesen Sie bitte weiter.

Die Grundidee der Virtualisierung besteht darin, hardwareunabhängig zu sein. Vor unseren Augen entsteht dabei eine völlig neue Abhängigkeitsebene – die Anbindung an den Hypervisor.

Soweit mir bekannt ist, stellt die Suche nach einer Problemumgehung für dieses Problem keinen Verstoß gegen die Solidworks-Lizenz und die lokalen Gesetze meines Landes dar.

Mein Kunde und ich möchten Solidworks-Produkte auf einer virtuellen KVM-Maschine aktivieren. Aus seltsamen Gründen (Hyper-V und VMware sind angeblich gut getestet :) möchten sie (die Entwickler) von Solidworks 2015 PDM nicht, dass ihre Produkte auf Qemu-KVM aktiviert werden (die letzte Version von 2014 funktionierte einwandfrei).

http://www.solidworks.com/sw/support/11168_ENU_HTML.htm http://www.solidworks.com/sw/support/11168_ENU_HTML.htm

Ich benutze:

aufstellen

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 von Folgendem noch überprüfen, wenn ich meine VM in Qemu-KVM ausführe:

  • MAC-Adresse(n) des Ethernet-Adapters der VM,
  • Gerätetreiber-Labels,
  • CPU-Modell,
  • ACPI-Tabellen.

Ich werde die oben genannten Dinge in den nächsten Stunden ausschließen, würde aber gerne wissen, ob Sie noch andere Ideen haben.

Lösung:

Es stellt sich heraus, dass sie zwei Dinge bestätigen:

  1. Wie Michael Hampton richtig bemerkte, gibt es -cpu,kvm=offdie Möglichkeit

um das CPUID 0x40000000-Blatt zu deaktivieren.

  1. 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 nun aktivieren: mit Hack

Update 21.04.2017r. DS Justice erwähnte, dass der Festplattenmodus von Qemu (ich habe in diesem Beispiel Virtio verwendet) ebenfalls relevant sein könnte.

Antwort1

Die meisten aktuellen Hypervisoren, die auf Intel-Hardware laufen, verwenden CPUID-Blätter 0x40000000 usw., um Informationen über den Hypervisor vom Host an den Gast weiterzugeben.

KVM,Xen,VMwareUndHyper-Valle verwenden diese Methode.

Das istZusätzlichzum im CPUID-Blatt 0x1 festgelegten Hypervisor-Funktionsflag, das angibt, dass es sich bei der Maschine um eine virtuelle Maschine handelt.

Daher ist es für ein Programm, das die CPUID-Anweisung aufrufen kann, trivial, festzustellen, ob es unter einem dieser Hypervisoren ausgeführt wird.

Neuere Versionen von KVM beinhalten eineBefehlszeilenoptionum das CPUID 0x40000000-Leaf zu deaktivieren -cpu kvm=off.

Antwort2

Ich wollte hier auch nur meine Erfahrungen teilen, falls andere in einer ähnlichen Situation sind (beim Versuch, Solidworks auf einer Virtualbox-VM zu installieren).

Mein versuchter Aufbau:

xubuntu 16.04-Host-Betriebssystem, VirtualBox, Windows 10 und Solidworks 2015. Bei mir ist derselbe Fehler aufgetreten, der oben besprochen wurde.

Die Lösung:

Die Lösung, die ich schließlich fand, bestand darin, das im Solidsquad-Crack enthaltene Skript zu verwenden hidevm.bat, um Solidworks vorzutäuschen, dass es nicht in einer VM ausgeführt wird. Sie können die .bat-Datei auch verwenden, wenn Sie über eine gültige Lizenz verfügen (was ich hoffe). Die .bat-Datei ist für Benutzer gedacht, die Solidworks in einer VirtualBox-VM ausführen, ebenfalls mit Windows als Host-Betriebssystem. Wenn Sie jedoch wie ich versuchen, Linux als Host-Betriebssystem auszuführen, können Sie trotzdem die .bat-Datei öffnen, die relevanten Befehle auswählen, sie für Linux anpassen und sie ausführen. Die geänderten relevanten Befehle sind:

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"

Falls Ihre VM für die Verwendung von EFI-Firmware konfiguriert ist, müssen Sie in den Schlüsseln pcbiosdurch ersetzen. Sieheefi9.12. Konfigurieren der BIOS-DMI-Informationen.

Antwort3

Die offizielle Möglichkeit, den Solidworks-Server auf KVM zu aktivieren, besteht darin, eine „Activation Exempt“-Lizenz für SolidWorks zu beantragen. Wir erledigen dies über den Wiederverkäufer, aber möglicherweise könnte es auch direkt über den Solidworks-Support erfolgen.

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.

Solidworks hat eine „Verbesserungsanfrage“ mit dem Titel: „Bereitstellung von SNL-Server-Unterstützung für VM KVM Qemu Libvirt.“ geöffnet. ER # 1-9482749288 Ich habe sie gefunden, indem ich mich beim Solidworks-Portal angemeldet, den Link zur Verbesserungsanfrage gesucht und KVM eingegeben habe.

Bitte hinterlassen Sie einen Kommentar zu diesem Verbesserungsvorschlag! Hoffentlich entscheiden sie, dass KVM eine legitime Virtualisierungsumgebung ist.

Antwort4

Ich dachte, ich teile meine Methode, mit der ich die VM vor Windows/Task Manager verbergen konnte (sie enthält auch weniger unnötigen Kram und ist leichter zu lesen). Ich habe nicht versucht, Solidworks zu aktivieren, aber meiner Meinung nach geht es in diesem Thread eher darum, das Ausführen in einer VM zu verbergen, und vielleicht sollte er entsprechend bearbeitet werden. Wie auch immer …

Fügen Sie Ihrer domain.xml Folgendes hinzu und stellen Sie sicher, dass Sie den CPU-Abschnitt vollständig entfernen

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

Schalten Sie die VM aus, wieder ein und testen Sie sie!

verwandte Informationen