Solidworks: el modo de licencia de activación no es compatible con este entorno virtual (Qemu-KVM)

Solidworks: el modo de licencia de activación no es compatible con este entorno virtual (Qemu-KVM)

En realidad, la pregunta no es sobre Solidworks., así que continúa leyendo.

La idea general de la virtualización es ser independiente del hardware. Ante nuestros ojos se está creando un nivel de dependencia completamente nuevo: la conexión al hipervisor.

Hasta donde yo sé, buscar una manera de encontrar una solución a este problema no constituye una violación de la licencia de Solidworks ni de las leyes locales de mi país.

Mi cliente y yo queremos activar los productos Solidworks en la máquina virtual KVM. Por algunas extrañas razones (se supone que Hyper-V y VMware están bien probados :) ellos (los desarrolladores) de Solidworks 2015 PDM no quieren que sus productos se activen (la última versión de 2014 funcionó bien) en Qemu-KVM.

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

Estoy usando:

configuración

Como puede ver, es una máquina virtual basada en KVM con Windows 2012 e instalación de Solidworks PDM.

Pregunta: ¿Qué más pueden verificar si estoy ejecutando mi VM en Qemu-KVM además de verificar:

  • Dirección(es) MAC del adaptador Ethernet de la máquina virtual,
  • Etiquetas de controladores de dispositivos,
  • modelo de CPU,
  • Tablas ACPI.

Voy a descartar las cosas mencionadas anteriormente en las próximas horas, pero me gustaría saber si tienes alguna otra idea.

Solución:

Resulta que validan dos cosas:

  1. Como Michael Hampton señaló correctamente, hay -cpu,kvm=offopción

para deshabilitar la hoja CPUID 0x40000000.

  1. Tablas ACPI en el huésped.

Partes relevantes de los parámetros de la línea de comando 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

Sintaxis del archivo de configuración de 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>

Como prueba, ahora quiere activar: con hack

Actualización 21.04.2017r. DS Justice mencionó que el modo de disco Qemu (usé virtio en este ejemplo) también puede ser relevante.

Respuesta1

La mayoría de los hipervisores actuales que se ejecutan en hardware Intel utilizan CPUID hojas 0x40000000 y siguientes. para pasar información sobre el hipervisor del host al invitado.

KVM,xén,VMwareyHiper-Vtodos usan este método.

Esto esademásal indicador de función del hipervisor establecido en la hoja CPUID 0x1, que indica que la máquina es una máquina virtual.

Por lo tanto, es trivial para un programa que puede llamar a la instrucción CPUID determinar si se está ejecutando bajo uno de estos hipervisores.

Las versiones recientes de KVM incluyen unopción de línea de comandopara deshabilitar la hoja CPUID 0x40000000, -cpu kvm=off.

Respuesta2

Solo quería compartir mi experiencia aquí también, en caso de que otros se encuentren en una situación similar (intentando instalar solidworks en una máquina virtual virtualbox)

Mi intento de configuración:

Sistema operativo host xubuntu 16.04, VirtualBox, Windows 10 y Solidworks 2015. Estaba viendo el mismo error comentado anteriormente.

La solución:

La solución que finalmente encontré fue usar el hidevm.batscript incluido en el crack de Solidsquad, para engañar a Solidworks haciéndole creer que no se está ejecutando en una máquina virtual. puedes usar el archivo .bat incluso si tienes una licencia legítima (como espero que tengas). el .bat está destinado a usuarios que ejecutan Solidworks dentro de una máquina virtual VirtualBox, con Windows también como sistema operativo host; sin embargo, si eres como yo y intentas ejecutar Linux como sistema operativo host, aún puedes abrir el archivo .bat, selecciona ejecute los comandos relevantes, ajústelos para Linux y ejecútelos. los comandos relevantes modificados son:

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"

En caso de que su VM esté configurada para usar firmware EFI, deberá reemplazarla pcbiosen efilas claves. Ver9.12. Configuración de la información DMI del BIOS.

Respuesta3

La forma oficial de activar el servidor Solidworks en KVM es solicitar una "licencia exenta de activación para SolidWorks". Hacemos esto a través del revendedor, pero posiblemente podamos hacerlo directamente a través del soporte de Solidworks.

Solidworks envía un archivo de licencia que Solidworks License Manager carga a través de las Opciones avanzadas de la pestaña Administración del servidor.

Dado que en los últimos dos años Solidworks tardó más de 2 semanas en enviar el archivo de licencia, sería bueno que no incluyeran a KVM en la lista negra.

Solidworks tiene una "Solicitud de mejora" abierta con el título: "Proporcionar soporte de servidor SNL para VM KVM Qemu Libvirt". ER # 1-9482749288 Lo encontré iniciando sesión en el portal de Solidworks, buscando el enlace Solicitud de mejora y escribiendo KVM.

¡Deje un comentario sobre esta solicitud de mejora! Con suerte, decidirán que KVM es un entorno de virtualización legítimo.

Respuesta4

Pensé en compartir mi método que funcionó para ocultar VM de Windows/Task MGR (también tiene menos cosas innecesarias y es más fácil de leer). No estaba intentando activar Solidworks, pero en mi opinión, este hilo trata más sobre ocultar su ejecución en una máquina virtual y tal vez debería editarse como tal. De todos modos...

Agregue lo siguiente a su dominio.xml y asegúrese de eliminar completamente la sección 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>

¡Apague y vuelva a encender la VM y pruebe!

información relacionada