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

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

문제는 실제로 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. -cpu,kvm=offMichael Hampton이 올바르게 지적했듯이 옵션이 있습니다.

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>

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

2017년 4월 21일 업데이트. DS Justice는 Qemu(이 예에서는 virtio를 사용함) 디스크 모드도 관련이 있을 수 있다고 언급했습니다.

답변1

Intel 하드웨어에서 실행되는 대부분의 최신 하이퍼바이저는 CPUID 잎 0x40000000 et seq를 사용합니다. 호스트에서 게스트로 하이퍼바이저에 대한 정보를 전달합니다.

KVM,,VM웨어그리고하이퍼-V모두 이 방법을 사용합니다.

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

따라서 CPUID 명령을 호출할 수 있는 프로그램이 이러한 하이퍼바이저 중 하나에서 실행되고 있는지 확인하는 것은 쉽지 않습니다.

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

답변2

다른 사람들도 비슷한 상황(Virtualbox VM에 SolidWorks를 설치하려고 하는 경우)에 처해 있는 경우를 대비하여 여기에서도 내 경험을 공유하고 싶었습니다.

내가 시도한 설정:

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

해결책:

결국 내가 찾은 해결책은 hidevm.batSolidsquad 크랙에 포함된 스크립트를 사용하여 Solidworks가 VM에서 실행되지 않는다고 생각하도록 속이는 것이었습니다. 합법적인 라이센스가 있더라도 .bat 파일을 사용할 수 있습니다(제가 바라는 대로). .bat는 Windows를 호스트 OS로 사용하여 VirtualBox VM 내에서 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 정보 구성.

답변3

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

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

지난 2년 동안 솔리드웍스가 라이센스 파일을 보내는 데 2주 이상 걸렸다는 점을 고려하면 KVM을 블랙리스트에 올리지 않는 것이 좋을 것 같습니다.

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

이번 개선요청에 댓글을 남겨주세요! KVM이 합법적인 가상화 환경이라고 판단하길 바랍니다.

답변4

나는 Windows/작업 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을 껐다가 다시 켜고 테스트해보세요!

관련 정보