La pregunta no es sobre Solidworks en realidad , así que continúe 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 fijación al hipervisor.
Hasta donde sé, buscar una manera de encontrar una solución a este problema no es una violación de la licencia de Solidworks y la ley local en mi país.
Mi cliente y yo queremos activar Solidworks Products en la máquina virtual KVM. Por algunas razones extrañas (se supone que Hyper-V y VMware están bien probados :) ellos (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
Estoy usando:
Como puede ver, es una VM basada en KVM con Windows 2012 y la 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 VM,
- Etiquetas de controlador de dispositivo,
- Modelo de CPU,
- Tablas ACPI.
Voy a descartar las cosas mencionadas anteriormente en las próximas horas, pero me gustaría saber si tiene alguna otra idea.
Solución :
Resulta que validan dos cosas:
- Como Michael Hampton señaló correctamente, hay una
-cpu,kvm=off
opción
para deshabilitar la hoja CPUID 0x40000000.
- Tablas ACPI en el invitado.
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:
Actualización 21.04.2017r. DS Justice mencionó que el modo de disco Qemu (utilicé virtio en este ejemplo) también puede ser relevante.
fuente
Respuestas:
La mayoría de los hipervisores actuales que se ejecutan en hardware Intel usan CPUID deja 0x40000000 et seq. para pasar información sobre el hipervisor de host a invitado.
KVM , Xen , VMware e Hyper-V utilizan este método.
Esto se suma al 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 para determinar si se está ejecutando en uno de estos hipervisores.
Las versiones recientes de KVM incluyen una opción de línea de comandos para desactivar la hoja de CPUID 0x40000000,
-cpu kvm=off
.fuente
La forma oficial de activar el servidor Solidworks en KVM es solicitar una "Licencia de activación exenta para SolidWorks". Hacemos esto a través del revendedor, pero posiblemente podría hacerse directamente a través del soporte de Solidworks.
Solidworks envía un archivo de licencia que el Administrador de licencias de Solidworks carga a través de las Opciones avanzadas de la pestaña Administración del servidor.
Dado que los últimos dos años han llevado más de 2 semanas para que Solidworks envíe el archivo de licencia, sería bueno no incluirlos en la lista negra de KVM.
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é al iniciar sesión en el portal de Solidworks, encontrar el enlace Solicitud de mejora y escribir KVM.
Por favor, deje un comentario sobre esta solicitud de mejora. Esperemos que decidan que KVM es un entorno de virtualización legítimo.
fuente
legitimate virtualization environment
.Solo quería compartir mi experiencia aquí también, en caso de que otros se encuentren en una situación similar (tratando de instalar solidworks en una VM virtualbox)
Mi intento de configuración:
Sistema operativo host xubuntu 16.04, VirtualBox, Windows 10 y Solidworks 2015. Estaba viendo el mismo error mencionado anteriormente.
La solución:
La solución que finalmente encontré fue utilizar el
hidevm.bat
script incluido en el crack de Solidsquad, para engañar a Solidworks para que piense que no se está ejecutando en una VM. puede usar el archivo .bat incluso si tiene una licencia legítima (como espero que lo haga). el .bat está destinado a usuarios que ejecutan Solidworks dentro de una VM VirtualBox, con Windows también como sistema operativo host, sin embargo, si usted está como yo tratando de ejecutar Linux como sistema operativo host, aún puede abrir el archivo .bat, seleccione elimine los comandos relevantes, ajústelos para Linux y ejecútelos. Los comandos relevantes modificados son:En caso de que su máquina virtual está configurado para utilizar Firmware EFI es necesario sustituir
pcbios
porefi
en las teclas. Ver 9.12. Configuración de la información del BIOS DMI .fuente
pcbios
porefi
en las teclas. Sugiero editar el mensaje.'/>
falta en EOL,<qemu:arg value='type=1,manufacturer=LENOVO
así que aquí están las modificaciones completas de la configuración de libvirt:fuente
Pensé que compartiría 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 tratando de activar Solidworks, pero en mi opinión, este hilo trata más sobre ocultar su ejecución en una VM y tal vez debería editarse como tal. De todas formas...
Agregue lo siguiente a su dominio.xml y asegúrese de eliminar completamente la Sección de CPU
¡Apague la VM y vuelva a encenderla y pruebe!
fuente
smbios
argumentos y VirtIO como el controlador para ambos discos y ethernet.smbios
argumentos?smbios
.