Solidworks: โหมดใบอนุญาตการเปิดใช้งานไม่ได้รับการรองรับในสภาพแวดล้อมเสมือนจริงนี้ (Qemu-KVM)


12

คำถามไม่ได้อยู่ที่ SolidWorksดังนั้นโปรดอ่านต่อไป

แนวคิดทั้งหมดของการจำลองเสมือนคือการไม่ขึ้นกับฮาร์ดแวร์ ต่อหน้าต่อตาเรากำลังสร้างระดับการพึ่งพาใหม่ทั้งหมด - ติดอยู่กับไฮเปอร์ไวเซอร์

เท่าที่ฉันรู้ในการค้นหาวิธีการแก้ไขปัญหานี้ไม่ได้ละเมิดใบอนุญาต Solidworks และกฎหมายท้องถิ่นในประเทศของฉัน

ลูกค้าของฉันและฉันต้องการเปิดใช้งานผลิตภัณฑ์ Solidworks บนเครื่องเสมือน KVM ด้วยเหตุผลแปลก ๆ บางอย่าง (Hyper-V และ VMware ควรได้รับการทดสอบอย่างดี :) พวกเขา (นักพัฒนาซอฟต์แวร์) ของ Solidworks 2015 PDM ไม่ต้องการให้เปิดใช้งานผลิตภัณฑ์ของพวกเขา

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

ฉันใช้:

ติดตั้ง

อย่างที่คุณเห็นมันคือ VM-based VM พร้อมการติดตั้ง Windows 2012 และ Solidworks PDM

คำถาม : มีอะไรอีกบ้างที่พวกเขาสามารถตรวจสอบได้ถ้าฉันใช้ VM ใน Qemu-KVM นอกเหนือจากการตรวจสอบ:

  • ที่อยู่ MAC ของอะแดปเตอร์อีเธอร์เน็ตของ VM
  • ฉลากไดรเวอร์อุปกรณ์
  • รุ่น CPU
  • ตาราง ACPI

ฉันจะแยกแยะสิ่งที่กล่าวมาข้างต้นในอีกไม่กี่ชั่วโมงข้างหน้า แต่ฉันอยากรู้ว่าคุณมีความคิดอื่น ๆ

วิธีแก้ปัญหา :

ปรากฎว่าพวกเขาตรวจสอบสองสิ่ง:

  1. ในขณะที่ Michael Hampton ชี้ให้เห็นอย่างถูกต้องมี-cpu,kvm=offตัวเลือก

การปิดการใช้งานใบไม้ CPUID 0x40000000

  1. ACPI Tables สำหรับแขก

ส่วนที่เกี่ยวข้องของพารามิเตอร์บรรทัดคำสั่ง 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
ตราบใดที่สิ่งที่ไม่ใช่โซลูชันมาตรฐานไม่ได้หมายความว่าไม่สามารถทำได้อย่างที่คุณเห็น คุณไม่เห็นปัญหาจริงๆหรือ พวกเขาบังคับให้ใครบางคนเลือกใช้เครื่องมือเชิงพาณิชย์และซ่อนอยู่ข้างหลัง - เพราะผ่านการทดสอบอย่างดี มันไร้สาระเมื่อพูดถึงการเลือกไฮเปอร์ไวเซอร์ สำหรับการวางระบบปฏิบัติการ - ใช่ แต่ไม่ใช่สำหรับแอปพลิเคชัน
Michal Sokolowski

หากลูกค้าที่จ่ายเงินมากพอที่โพสต์ความต้องการสำหรับ SolidWorks เพื่อสนับสนุน KVM พวกเขาจะถูกบังคับให้ สิ่งนี้เกิดขึ้นเมื่อ Oracle ปล่อย OEL และพยายามบล็อกการติดตั้งบน RHEL เพียงเรื่องของความกดดันและศักยภาพในการทำธุรกิจของคุณที่อื่น
dyasny

พวกเขาทำไปแล้ว พวกเขาสนับสนุนมันตัวอย่างเช่นพวกเขามีงานที่ต้องติดตั้งใบอนุญาตในวันนี้
Michal Sokolowski

1
สิ่งนี้ไม่ได้ผลสำหรับฉันกับดิสก์สำหรับบูตเสมือน IDE น่าจะเป็นเพราะคำอธิบายดิสก์ AHCI ที่มีคำว่า "QEMU" เปลี่ยนดิสก์สำหรับบูตให้เป็น VirtIO ดังที่แสดงในสกรีนช็อตของคุณและฉันเปลี่ยนเป็นสีทอง ขอบคุณ!
ฤดูใบไม้ร่วง

คำตอบ:


13

ไฮเปอร์ไวเซอร์ปัจจุบันส่วนใหญ่ที่ทำงานบนฮาร์ดแวร์ของ Intel ใช้ CPUID ทิ้ง 0x40000000 และอื่น ๆ เพื่อส่งผ่านข้อมูลเกี่ยวกับไฮเปอร์ไวเซอร์จากโฮสต์ไปยังแขก

KVM , Xen , VMwareและHyper-Vทั้งหมดใช้วิธีนี้

นี่คือนอกเหนือจากการตั้งค่าสถานะคุณลักษณะ hypervisor ใน CPUID leaf 0x1 ซึ่งระบุว่าเครื่องเป็นเครื่องเสมือน

ดังนั้นจึงเป็นเรื่องเล็กน้อยสำหรับโปรแกรมที่สามารถเรียกคำสั่ง CPUID เพื่อตรวจสอบว่ามันทำงานภายใต้หนึ่งใน hypervisors เหล่านี้หรือไม่

รุ่นล่าสุดของ KVM รวมถึงตัวเลือกบรรทัดคำสั่งปิดการใช้งาน CPUID 0x40000000 -cpu kvm=offใบ


1
และวิธีนี้ได้รับการพิสูจน์แล้วว่ามีประสิทธิภาพเมื่อเทียบกับไดรเวอร์ NVIDIA ที่ปิดกั้น KVM VM บน passthrough เช่นกัน
dyasny

5

วิธีที่เป็นทางการในการเปิดใช้งานเซิร์ฟเวอร์ Solidworks บน KVM คือการสมัคร "การอนุญาตให้ใช้สิทธิ์ยกเว้นสำหรับการเปิดใช้งาน SolidWorks" เราทำสิ่งนี้ผ่านผู้ค้าปลีก แต่อาจทำได้โดยตรงผ่านการสนับสนุน Solidworks

Solidworks ส่งไฟล์ลิขสิทธิ์ที่ SolidWork License Manager โหลดผ่านตัวเลือกขั้นสูงของแท็บ Server Administration

เนื่องจากสองปีที่ผ่านมาใช้เวลามากกว่า 2 สัปดาห์เพื่อให้ Solidworks ส่งไฟล์ลิขสิทธิ์มันจะดีถ้าพวกเขาไม่ใช่บัญชีดำ KVM

Solidworks มี "การเพิ่มประสิทธิภาพคำขอ" ที่เปิดด้วยชื่อเรื่อง: "ให้การสนับสนุนเซิร์ฟเวอร์ SNL สำหรับ VM KVM Qemu Libvirt" ER # 1-9482749288 ฉันพบโดยการล็อกอินเข้าสู่พอร์ทัล Solidworks ค้นหาลิงค์คำขอการปรับปรุงและพิมพ์ KVM

กรุณาแสดงความคิดเห็นในคำขอการปรับปรุงนี้! หวังว่าพวกเขาจะตัดสินใจว่า KVM เป็นสภาพแวดล้อมเสมือนจริงที่ถูกต้อง


AWS ใช้งาน KVM!
FreeSoftwareServers

1
@FreeSoftwareServers AWS เพิ่งเปลี่ยนเป็น KVM สำหรับเครื่องบางประเภทเท่านั้น ยังคงมี Xen อยู่มากมายที่นั่น
Michael Hampton

legitimate virtualization environmentทรูเพียงแค่บอกว่ามันเป็น
FreeSoftwareServers

อย่าบอกมาบอกฉันไปที่ Solidworks! :)
lickdragon

5

ฉันต้องการแบ่งปันประสบการณ์ของฉันที่นี่เช่นกันในกรณีที่คนอื่นอยู่ในสถานการณ์ที่คล้ายคลึงกัน (พยายามติดตั้ง solidworks บน virtualbox VM)

ฉันพยายามตั้งค่า:

xubuntu 16.04 โฮสต์ OS, VirtualBox, Windows 10 และ Solidworks 2015 ฉันเห็นข้อผิดพลาดเดียวกันที่กล่าวถึงข้างต้น

การแก้ไขปัญหา:

วิธีแก้ปัญหาที่ฉันพบในที่สุดก็คือการใช้hidevm.batสคริปต์ที่รวมอยู่ในการถอดรหัสของ Solidsquad เพื่อหลอกล่อ Solidworks ให้คิดว่ามันไม่ได้ทำงานใน VM คุณสามารถใช้ไฟล์. bat แม้ว่าคุณจะมีใบอนุญาตถูกต้องตามกฎหมาย (อย่างที่ฉันหวังว่าคุณจะทำ) . bat มีไว้สำหรับผู้ใช้ที่ใช้ Solidworks ภายใน VirtualBox VM โดยมี Windows เป็นโฮสต์ระบบปฏิบัติการด้วยเช่นกันอย่างไรก็ตามหากคุณต้องการให้ฉันพยายามเรียกใช้ Linux เป็นระบบปฏิบัติการโฮสต์คุณยังคงสามารถเปิดไฟล์. bat เลือก ออกคำสั่งที่เกี่ยวข้องปรับพวกเขาสำหรับลินุกซ์และเรียกใช้พวกเขา คำสั่งที่เกี่ยวข้องที่แก้ไขคือ:

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 docs $ 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

ฉันคิดว่าฉันต้องการแชร์วิธีการของฉันซึ่งทำงานเพื่อซ่อน VM จาก Windows / Task MGR (มันมีสิ่งที่ไม่จำเป็นน้อยกว่าและอ่านง่ายกว่า) ฉันไม่ได้พยายามเปิดใช้งาน 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
ฉันได้ SolidWorks ทำงานบน qemu บน Ubuntu 19.04 ด้วยการกำหนดค่านี้smbiosข้อโต้แย้งและ VirtIO เป็นไดรเวอร์สำหรับทั้งดิสก์และอีเธอร์เน็ต
Avamander

1
@Avamander มันยอดเยี่ยมอย่างที่ฉันบอกว่าฉันไม่ได้ทำงานกับ SolidWorks แต่ดูเหมือนว่าฉันช่วยแก้ปัญหาของ OP! ฉันลืมสิ่งที่ฉันกำลังทำอยู่ แต่มันทำให้ฉันได้ผลเช่นกันสำหรับสิ่งอื่นฉันคิดว่ามันเกี่ยวกับเกมไม่ทำงานใน VM VM ของฉันมีประสิทธิภาพมากกว่าแล็ปท็อปการเล่นเกมที่คนส่วนใหญ่: P
FreeSoftwareServers

@Avamander ฉันแค่อยากรู้อยากเห็นคุณลองโดยไม่มีsmbiosข้อโต้แย้ง?
FreeSoftwareServers

smbiosผมไม่ได้ลองโดยไม่ต้องมีการปลอมแปลง
Avamander
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.