A questão não é sobre o Solidworks , portanto, continue lendo.
Toda a idéia de virtualização é ser independente de hardware. Diante de nossos olhos, um novo nível de dependência está sendo criado - afixação no hypervisor.
Tanto quanto sei, a busca de uma solução alternativa para esse problema não viola a licença Solidworks e a lei local do meu país.
Meu cliente e eu queremos ativar os Produtos Solidworks na máquina virtual KVM. Por algumas razões estranhas (o Hyper-V e o VMware devem ser bem testados :) eles (desenvolvedores) do Solidworks 2015 PDM não desejam que seus produtos sejam ativados (a última versão de 2014 funcionou bem) no Qemu-KVM.
http://www.solidworks.com/sw/support/11168_ENU_HTML.htm
Estou usando:
Como você pode ver, é uma VM baseada em KVM com instalação do Windows 2012 e Solidworks PDM.
Pergunta : O que mais eles podem verificar se estou executando minha VM no Qemu-KVM, além de verificar:
- Endereço (s) MAC do adaptador Ethernet da VM,
- Etiquetas de driver de dispositivo,
- Modelo de CPU,
- Tabelas ACPI.
Vou descartar as coisas acima mencionadas nas próximas horas, mas gostaria de saber se você tem outras idéias.
Solução :
Acontece que eles validam duas coisas:
- Como Michael Hampton apontou corretamente, há
-cpu,kvm=off
opção
para desativar a folha CPUID 0x40000000.
- Tabelas da ACPI no convidado.
Partes relevantes dos parâmetros da linha 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
Sintaxe do arquivo de configuração 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 prova, agora ele deseja ativar:
Atualização 21.04.2017r. O DS Justice mencionou que o modo de disco Qemu (usei virtio neste exemplo) também pode ser relevante.
fonte
Respostas:
A maioria dos hipervisores atuais executados no hardware Intel usa CPUID deixa 0x40000000 e seq. para passar informações sobre o hypervisor de host para convidado.
KVM , Xen , VMware e Hyper-V usam esse método.
Isso é um complemento ao sinalizador de recurso do hypervisor definido na folha 0x1 do CPUID, que indica que a máquina é uma máquina virtual.
Portanto, é trivial para um programa que pode chamar a instrução CPUID para determinar se está sendo executado em um desses hipervisores.
Versões recentes do KVM incluem uma opção de linha de comando para desativar a folha CPUID 0x40000000
-cpu kvm=off
,.fonte
A maneira oficial de ativar o servidor Solidworks no KVM é solicitar um "Licenciamento isento de ativação para o SolidWorks". Fazemos isso através do revendedor, mas possivelmente isso pode ser feito diretamente através do suporte ao Solidworks.
O Solidworks envia um arquivo de licença que o Solidworks License Manager carrega através das Opções avançadas da guia Administração do servidor.
Dado que nos últimos dois anos foram necessárias mais de duas semanas para o Solidworks enviar o arquivo de licença, seria bom não incluí-lo na KVM na lista negra.
O Solidworks possui uma "Solicitação de aprimoramento" aberta com o título: "Fornece suporte ao SNL Server para VM KVM Qemu Libvirt". ER # 1-9482749288 Encontrei-o efetuando login no portal Solidworks, localizando o link Solicitação de aprimoramento e digitando KVM.
Deixe um comentário sobre esta solicitação de aprimoramento! Espero que eles decidam que o KVM é um ambiente de virtualização legítimo.
fonte
legitimate virtualization environment
.Eu também queria compartilhar minha experiência aqui, caso outras pessoas estejam em uma situação semelhante (tentando instalar o solidworks em uma VM de caixa virtual)
Minha tentativa de configuração:
SO host do xubuntu 16.04, VirtualBox, Windows 10 e Solidworks 2015. Eu estava vendo o mesmo erro discutido acima.
A solução:
A solução que encontrei foi usar o
hidevm.bat
script incluído no crack do Solidsquad, para enganar o Solidworks a pensar que não está sendo executado em uma VM. você pode usar o arquivo .bat mesmo se tiver uma licença legítima (como eu espero que você faça). o .bat é destinado a usuários que executam o Solidworks dentro de uma VM do VirtualBox, com o Windows também como sistema operacional host; no entanto, se você gosta de tentar executar o Linux como sistema operacional host, ainda pode abrir o arquivo .bat. fora dos comandos relevantes, ajuste-os para linux e execute-os. os comandos relevantes modificados são:No caso de sua VM está configurado para usar EFI firmware que você precisa para substituir
pcbios
porefi
nas chaves. Ver 9.12. Configurando as informações da BIOS DMI .fonte
pcbios
porefi
nas chaves. Sugiro editar a mensagem.'/>
faltando no EOL,<qemu:arg value='type=1,manufacturer=LENOVO
então aqui estão as modificações completas na configuração da libvirt:fonte
Pensei em compartilhar meu método, que funcionou para ocultar a VM do Windows / Task MGR (também tem menos coisas desnecessárias e é mais fácil de ler). Eu não estava tentando ativar o Solidworks, mas na IMO esse tópico trata mais de ocultar sua execução em uma VM e talvez deva ser editado como tal. De qualquer forma...
Adicione o seguinte ao seu domain.xml e remova completamente a seção CPU
Desligue a VM e ligue-a novamente e teste!
fonte
smbios
argumentos e o VirtIO como o driver para discos e ethernet.smbios
argumentos?smbios
.