SolidWorks :이 가상 환경 (Qemu-KVM)에서 활성화 라이센스 모드가 지원되지 않습니다


12

질문은 실제로 Solidworks에 관한 것이 아니므로 계속 읽으십시오.

가상화의 전체 아이디어는 하드웨어 독립적입니다. 우리의 눈앞에서 하이퍼 바이저에 대한 완전히 새로운 의존성 수준이 만들어지고 있습니다.

이 문제의 해결 방법을 찾기 위해 검색하는 방법을 알고있는 한, 해당 국가의 Solidworks 라이센스 및 현지 법률을 위반하지 않습니다.

클라이언트와 KVM 가상 머신에서 Solidworks 제품을 활성화하고 싶습니다. 몇 가지 이상한 이유로 (Hyper-V 및 VMware는 잘 테스트되어야합니다.) Solidworks 2015 PDM의 개발자 (개발자)는 Qemu-KVM에서 제품을 활성화하지 않기를 원합니다 (최종 2014 버전은 제대로 작동 함).

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

나는 사용하고있다 :

설정

보시다시피 Windows 2012 및 Solidworks PDM이 설치된 KVM 기반 VM입니다.

질문 : Qemu-KVM에서 VM을 실행하고 있는지 확인하는 것 외에 다른 것을 확인할 수 있습니다.

  • VM 이더넷 어댑터의 MAC 주소
  • 장치 드라이버 레이블,
  • CPU 모델,
  • ACPI 테이블.

앞으로 몇 시간 안에 위에서 언급 한 사항을 배제 할 예정이지만 다른 아이디어가 있는지 알고 싶습니다.

해결책 :

두 가지 사항을 확인합니다.

  1. Michael Hampton이 올바르게 지적했듯이 -cpu,kvm=off옵션이 있습니다.

CPUID 0x40000000 리프를 비활성화합니다.

  1. 게스트의 ACPI 테이블.

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

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>

증거로, 이제 다음을 활성화하려고합니다. 해킹

21.04.2017r 업데이트 DS Justice는 Qemu (이 예제에서는 virtio를 사용했습니다) 디스크 모드도 관련이 있다고 언급했습니다.


이 사이트는 기본적으로 지원 / 지원 가능한 솔루션에 관심이있는 전문 시스템 관리자를위한 사이트입니다.
Chopper3

8
무언가가 표준 솔루션이 아니라고해서 그것이 지원할 수 없다는 것을 의미하지는 않습니다. 여기서 문제가 실제로 보이지 않습니까? 그들은 테스트를 잘 받았기 때문에 누군가 상용 도구를 선택하고 숨길 것을 강요합니다. 하이퍼 바이저를 선택할 때 넌센스입니다. 기본 OS의 경우-예, 그러나 애플리케이션에는 해당되지 않습니다.
Michal Sokolowski

충분한 비용을 지불하는 고객이 KVM을 지원하기 위해 SolidWorks에 대한 요구를 게시 한 경우, 고객은 강제적입니다. 이는 Oracle이 OEL을 출시하고 RHEL에서 설치를 차단하려고 시도했을 때 발생했습니다. 압력과 다른 곳에서 비즈니스를 수행 할 가능성이 있습니다.
dyasny

그들은 이미했다. 예를 들어, 현재 라이센스를 설치하는 작업이있는 등의 지원을 제공합니다.
Michal Sokolowski

1
"QEMU"라는 단어가 포함 된 AHCI 디스크 설명으로 인해 가상 IDE 부팅 디스크에서는 작동하지 않습니다. 스크린 샷과 같이 부팅 디스크를 VirtIO로 변경했으며 황금색입니다. 감사!
가을

답변:


13

인텔 하드웨어에서 실행되는 대부분의 최신 하이퍼 바이저는 CPUID를 0x40000000 이하로 남겨 둡니다. 호스트에서 게스트로 하이퍼 바이저에 대한 정보를 전달합니다.

KVM , Xen , VMwareHyper-V 모두이 방법을 사용합니다.

이것은 CPUID 리프 0x1에 설정된 하이퍼 바이저 기능 플래그 에 추가 되며, 이는 머신이 가상 머신임을 나타냅니다.

따라서 이러한 하이퍼 바이저 중 하나에서 실행 중인지 여부를 판별하기 위해 CPUID 명령을 호출 할 수있는 프로그램은 쉽지 않습니다.

최신 버전의 KVM에는 CPUID 0x40000000 리프를 비활성화 하는 명령 줄 옵션 이 포함되어 -cpu kvm=off있습니다.


1
또한이 방법은 패스 스루에서 KVM VM을 차단하는 NVIDIA 드라이버에 대해 이미 효과적인 것으로 입증되었습니다.
dyasny

5

KVM에서 Solidworks 서버를 활성화하는 공식적인 방법은 "SolidWorks에 대한 활성화 면제 라이센스"를 신청하는 것입니다. 리셀러를 통해이 작업을 수행하지만 Solidworks 지원을 통해 직접 수행 할 수도 있습니다.

Solidworks는 서버 관리 탭의 고급 옵션을 통해 Solidworks License Manager가로드하는 라이센스 파일을 보냅니다.

지난 2 년 동안 SolidWorks가 라이센스 파일을 전송하는 데 2 ​​주 이상이 걸렸다는 점을 감안하면 KVM을 블랙리스트에 올리지 않는 것이 좋습니다.

Solidworks의 "향상된 요청"에는 "VM KVM Qemu Libvirt에 대한 SNL 서버 지원 제공"이라는 제목이 있습니다. ER # 1-9482749288 Solidworks 포털에 로그인하고 개선 요청 링크를 찾은 다음 KVM을 입력하여 발견했습니다.

이 개선 요청에 의견을 남겨주세요! KVM이 합법적 인 가상화 환경이라고 결정하기를 바랍니다.


AWS가 KVM을 사용하고 있습니다!
FreeSoftwareServers

1
@FreeSoftwareServers AWS는 최근 일부 머신 유형에 대해서만 KVM으로 전환했습니다. 여전히 많은 Xen이 있습니다.
Michael Hampton

사실, 그것은 단지라고 말합니다 legitimate virtualization environment.
FreeSoftwareServers

나에게 말하지 말고 Solidworks에 알려주십시오! :)
lickdragon

5

다른 사람들이 비슷한 상황에 처한 경우를 대비하여 여기에서 내 경험을 공유하고 싶었습니다 (virtualbox VM에 solidworks를 설치하려고 시도 함).

시도한 설정 :

xubuntu 16.04 호스트 OS, VirtualBox, Windows 10 및 Solidworks 2015. 위에서 설명한 것과 동일한 오류가 발생했습니다.

해결책:

내가 찾은 해결책은 hidevm.batSolidworks 균열에 포함 된 스크립트 를 사용하여 Solidworks가 VM에서 실행되고 있지 않다고 생각하도록 속이는 것입니다. 합법적 인 라이센스가 있더라도 .bat 파일을 사용할 수 있습니다 (원하는대로). .bat는 VirtualBox VM 내에서 Windows를 호스트 OS로 사용하여 Solidworks를 실행하는 사용자를위한 것이지만 Linux를 호스트 OS로 실행하려는 경우에도 .bat 파일을 열 수 있습니다. 관련 명령을 제거하고 Linux에 맞게 조정 한 후 실행하십시오. 수정 된 관련 명령은 다음과 같습니다.

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"

경우 귀하의 VM은 EFI는 교체 할 필요가 펌웨어 사용하도록 구성 pcbios하여 efi키입니다. 9.12를 참조하십시오 . BIOS DMI 정보 구성 .


이것은 나를 위해 실패했습니다. 내 시스템이 UEFI를 사용하기 때문일 수 있습니다.
kyb

그러나 VBox 문서에서 $ 9.12의 솔루션을 찾았습니다 . >이 경우 귀하의 VM은 EFI는 교체 할 필요가 펌웨어 사용하도록 구성 pcbios하여 efi키입니다. 메시지를 편집하는 것이 좋습니다.
kyb

4

'/>EOL에서 누락 <qemu:arg value='type=1,manufacturer=LENOVO되었으므로 여기에 완전한 libvirt 구성 수정 사항이 있습니다.

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
 (...)

... 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>
 (...)

귀하의 답변에 감사드립니다. 내 도움이되었습니다. 불필요한 코드를 제거했습니다.
FreeSoftwareServers

1

Windows / Task MGR에서 VM을 숨기는 데 도움이되는 방법을 공유한다고 생각했습니다 (필요한 내용이 적고 읽기 쉽습니다). Solidworks를 활성화하려고하지 않았지만 IMO이 스레드는 VM에서 실행을 숨기는 것에 대한 것이므로 편집해야합니다. 어쨌든...

domain.xml에 다음을 추가하고 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>

VM을 껐다가 다시 켜십시오!


1
이 구성, smbios인수 및 VirtIO를 디스크와 이더넷의 드라이버로 사용하여 Ubuntu 19.04에서 qemu를 SolidWorks로 작업했습니다 .
Avamander

1
@Avamander SolidWorks로 작업하지 않았지만 OP의 질문을 해결하는 데 도움이 된 것 같습니다. 나는 내가하고있는 일을 잊어 버렸지 만 이것이 나를 위해 다른 일을하기 위해 그것을 얻었습니다. 게임과 관련이 있고 VM에서 게임을 실행하지 않을 것이라고 생각합니다. 내 VM 년대는 노트북을 게임을 대부분의 사람들 더 강력 : P
FreeSoftwareServers

@Avamander 난 그냥 궁금해, 당신은 smbios논쟁 없이 시도 했 습니까?
FreeSoftwareServers

나는 단조없이 노력하지 않았다 smbios.
Avamander
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.