Solidworks: o modo de licença de ativação não é suportado neste ambiente virtual (Qemu-KVM)

10

A questão não está ao redor do SolidWorks, na verdade , então continue lendo.

Toda a ideia da virtualização é ser independente de hardware. Diante dos nossos olhos, todo um novo nível de dependência está sendo criado - afixação ao hipervisor.

Tanto quanto eu saiba, pesquisar de forma a encontrar uma solução alternativa para esse problema não é violação da licença do SolidWorks e da lei local em meu país.

Meu cliente e eu quero 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 querem que seus produtos sejam ativados (a última versão de 2014 funcionou bem) no Qemu-KVM.

link

Estouusando:

Comovocêpodever,éaVMbaseadaemKVMcomainstalaçãodoWindows2012edoSolidWorksPDM.

Pergunta:OquemaiselespodemverificarseestouexecutandominhaVMnoQemu-KVMalémdeverificar:

  • endereço(s)MACdoadaptadorEthernetdaVM,
  • Etiquetasdedriverdedispositivo,
  • modelodeCPU,
  • tabelasACPI.

Voudescartarascoisasacimamencionadasnaspróximashoras,masgostariadesabersevocêtemoutrasidéias.

Solução:

Acontecequeelesvalidamduascoisas:

  1. ComoMichaelHamptonapontoucorretamente,há-cpu,kvm=offoption

todisabletheCPUID0x40000000leaf.

  • Tabelas ACPI no convidado.
  • Partes relevantes dos parâmetros da linha de comando do 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 do 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 quer ativar:

    Atualização 21.04.2017r. DS Justice mencionou que o modo de disco Qemu (usei virtio neste exemplo) também pode ser relevante.

        
    por Michal Sokolowski 07.10.2015 / 15:56

    5 respostas

    11

    Os hipervisores mais atuais que são executados em hardware Intel usam CPUID deixa 0x40000000 et seq. para passar informações sobre o hypervisor do host para o convidado.

    KVM , Xen , VMware e Hyper-V todos usam este método.

    Isso é além do sinalizador de recurso do hypervisor definido na folha de CPUID 0x1, 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 sob um desses hypervisors.

    As versões recentes do KVM incluem uma opção de linha de comando para desativar o CPUID 0x40000000 folha, -cpu kvm=off .

        
    por 07.10.2015 / 16:16
    6

    Eu só queria compartilhar minha experiência aqui também, no caso de outras pessoas estarem em situação semelhante (tentando instalar o solidworks em uma VM virtualbox)

    Minha tentativa de configuração:

    xubuntu 16.04 host OS, VirtualBox, Windows 10 e SolidWorks 2015. Eu estava vendo o mesmo erro discutido acima.

    A solução:

    A solução que acabei encontrando foi usar o script hidevm.bat incluído no crack do Solidsquad, para enganar o SolidWorks, achando que ele não está sendo executado em uma VM. você pode usar o arquivo .bat mesmo se você tiver uma licença legítima (como eu esperaria que você fizesse). o .bat é destinado a usuários que executam o Solidworks dentro de uma VM do VirtualBox, com o Windows como o sistema operacional hospedeiro, mas se você quiser que eu execute o Linux como o sistema operacional host, ainda é possível abrir o arquivo .bat, os comandos relevantes, ajuste-os para o linux e execute-os. os comandos relevantes modificados são:

    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"
    

    Caso sua VM esteja configurada para usar o firmware EFI, é necessário substituir pcbios por efi nas chaves. Veja 9.12. Configurando as informações do BIOS DMI .

        
    por 13.11.2016 / 00:03
    5

    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 pode ser feito diretamente através do suporte do Solidworks.

    O SolidWorks envia um arquivo de licença que o SolidWorks License Manager carrega por meio das Opções avançadas da guia Administração do servidor.

    Como os últimos dois anos levaram mais de duas semanas para o SolidWorks enviar o arquivo de licença, seria bom que eles não fizessem a lista negra do KVM.

    O Solidworks tem uma "Solicitação de Melhoria" aberta com o título: "Fornecer suporte ao Servidor SNL para VM KVM Qemu Libvirt." ER # 1-9482749288 Encontrei-o fazendo login no portal Solidworks, encontrando o link Solicitação de Aprimoramento e digitando KVM.

    Por favor, deixe um comentário sobre este pedido de aprimoramento! Espero que eles decidam que o KVM é um ambiente de virtualização legítimo.

        
    por 23.11.2015 / 18:23
    2

    "'/ >" ausente na EOL "< qemu: arg value = 'type = 1, manufacturer = LENOVO "então aqui está o libvirt completo modificações de configuração:

    < tipo de domínio = 'kvm' xmlns: qemu = 'http: //libvirt.org/schemas/domain/qemu/1.0'>
    (...)

    ... Por favor note que não há definição de CPU no topo.
    < qemu: linha de comando >
    < qemu: arg value = '- cpu' / >
    < qemu: arg value = 'host, kvm = off' / >
    < qemu: arg value = '- smbios' / >
    < qemu: arg value = 'type = 0, vendor = LENOVO, versão = FBKTB4AUS, data = 07/01/2015, release = 1.180' / >
    < qemu: arg value = '- smbios' / >
    < qemu: arg valor = 'tipo = 1, fabricante = LENOVO, produto = 30AH001GPB, versão = ThinkStation P300, serial = S4M88119, uuid = cecf333d-6603-e511-97d5-6c0b843f98ba, sku = LENOVO_MT_30AH, família = P3 '/ >
    < / qemu: linha de comando >
    (...)

        
    por 07.10.2016 / 13:32
    0

    Eu pensei em compartilhar meu método, que funcionava para esconder a VM do Windows / Tarefa MGR (ela também tem menos coisas desnecessárias e é mais fácil de ler). Eu não estava tentando ativar o Solidworks, mas IMO esta discussão é mais sobre como esconder sua execução em uma VM e talvez devesse ser editada como tal. Enfim ...

    Adicione o seguinte ao seu domínio.xml e certifique-se de remover completamente a Seção da 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>
    

    Desligue e ligue a VM e teste!

        
    por 30.11.2018 / 07:22