Solidworks: mode lisensi aktivasi tidak didukung di lingkungan virtual ini (Qemu-KVM)

12

Pertanyaannya sebenarnya bukan seputar Solidworks , jadi silakan lanjutkan membaca.

Seluruh ide virtualisasi adalah perangkat keras yang independen. Di depan mata kita, tingkat ketergantungan yang sama sekali baru diciptakan - melekat pada hypervisor.

Sejauh yang saya tahu mencari cara untuk menemukan solusi dari masalah ini bukan pelanggaran terhadap lisensi Solidworks dan hukum setempat di negara saya.

Klien saya dan saya ingin mengaktifkan Produk Solidworks di mesin virtual KVM. Untuk beberapa alasan aneh (Hyper-V dan VMware seharusnya diuji dengan baik :) mereka (pengembang) dari Solidworks 2015 PDM tidak ingin produk mereka diaktifkan (versi 2014 lalu bekerja dengan baik) di Qemu-KVM.

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

Saya menggunakan:

mempersiapkan

Seperti yang Anda lihat, VM berbasis KVM dengan instalasi Windows 2012 dan Solidworks PDM.

Pertanyaan : Apa lagi yang bisa mereka periksa jika saya menjalankan VM saya di Qemu-KVM selain memeriksa:

  • Alamat MAC adaptor Ethernet VM,
  • Label driver perangkat,
  • Model CPU,
  • Tabel ACPI.

Saya akan mengesampingkan hal-hal yang disebutkan di atas dalam beberapa jam mendatang, tetapi saya ingin tahu apakah Anda punya ide lain.

Solusi :

Ternyata mereka memvalidasi dua hal:

  1. Ketika Michael Hampton menunjuk dengan benar ada -cpu,kvm=offpilihan

untuk menonaktifkan daun CPUID 0x40000000.

  1. ACPI Tables pada tamu.

Bagian yang relevan dari parameter baris perintah 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

Sintaks file konfigurasi 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>

Sebagai bukti, sekarang ia ingin mengaktifkan: dengan retas

Perbarui 21.04.2017r. DS Justice menyebutkan bahwa mode disk Qemu (saya menggunakan virtio dalam contoh ini) mungkin relevan juga.

Michal Sokolowski
sumber
Situs ini untuk sysadmin profesional yang secara inheren tertarik pada dukungan / solusi yang dapat didukung, kami benar-benar berusaha sangat keras untuk bekerja 'di dalam garis'.
Chopper3
8
Selama sesuatu bukanlah solusi standar, bukan berarti itu tidak dapat didukung, seperti yang Anda lihat. Apakah kamu tidak benar-benar melihat masalah di sini? Mereka memaksa seseorang untuk memilih alat komersial dan bersembunyi di belakang - karena sudah teruji dengan baik. Ini omong kosong ketika memilih hypervisor. Untuk OS yang mendasari - ya, tetapi tidak untuk aplikasi.
Michal Sokolowski
Jika cukup banyak pelanggan yang membayar mengajukan permintaan untuk SolidWorks untuk mendukung KVM, mereka akan dipaksa untuk melakukannya. Ini sudah terjadi ketika Oracle merilis OEL dan mencoba untuk memblokir instalasi di RHEL, hanya masalah tekanan dan potensi membawa bisnis Anda ke tempat lain.
dyasny
Mereka sudah melakukannya. Mereka mendukungnya, misalnya mereka mempunyai tugas untuk menginstal lisensi hari ini.
Michal Sokolowski
1
Ini tidak berhasil bagi saya dengan disk boot IDE virtual, mungkin karena deskripsi disk AHCI yang mengandung kata "QEMU". Mengubah disk boot saya menjadi Virtio seperti yang ditunjukkan pada tangkapan layar Anda, dan saya senang. Terima kasih!
Musim Gugur

Jawaban:

13

Sebagian besar hypervisor saat ini yang berjalan pada perangkat keras Intel menggunakan CPUID meninggalkan 0x40000000 et seq. untuk menyampaikan informasi tentang hypervisor dari host ke tamu.

KVM , Xen , VMware dan Hyper-V semuanya menggunakan metode ini.

Ini merupakan tambahan pada flag fitur hypervisor yang diatur dalam CPUID leaf 0x1, yang menunjukkan bahwa mesin tersebut adalah mesin virtual.

Karena itu sepele untuk sebuah program yang dapat memanggil instruksi CPUID untuk menentukan apakah itu berjalan di bawah salah satu hypervisors ini.

Versi terbaru KVM termasuk opsi baris perintah untuk menonaktifkan daun CPUID 0x40000000 , -cpu kvm=off.

Michael Hampton
sumber
1
Dan metode ini sudah terbukti efektif terhadap driver NVIDIA yang memblokir KVM VMs pada passthrough juga.
dyasny
5

Cara resmi mengaktifkan server Solidworks pada KVM adalah dengan mengajukan "Lisensi Pengecualian Aktivasi untuk SolidWorks". Kami melakukan ini melalui pengecer, tetapi mungkin bisa dilakukan langsung melalui dukungan Solidworks.

Solidworks mengirimkan file lisensi yang dimuat Manajer Lisensi Solidworks melalui Opsi Tingkat Lanjut dari tab Administrasi Server.

Mengingat bahwa dua tahun terakhir ini sudah lebih dari 2 minggu bagi Solidworks untuk mengirim file lisensi, alangkah baiknya jika mereka tidak memasukkan KVM ke daftar hitam.

Solidworks memiliki "Permintaan Peningkatan" terbuka dengan judul: "Berikan dukungan Server SNL untuk VM KVM Qemu Libvirt." ER # 1-9482749288 Saya menemukannya dengan masuk ke portal Solidworks, menemukan tautan Permintaan Peningkatan, dan mengetik KVM.

Silakan tinggalkan komentar tentang Permintaan Peningkatan ini! Semoga mereka akan memutuskan KVM adalah lingkungan virtualisasi yang sah.

lickdragon
sumber
AWS menggunakan KVM!
FreeSoftwareServers
1
@FreeSoftwareServers AWS baru saja beralih ke KVM untuk beberapa jenis mesin. Masih ada BANYAK Xen di luar sana.
Michael Hampton
Benar, hanya mengatakan itu ADALAH legitimate virtualization environment.
FreeSoftwareServers
Jangan katakan itu padaku, katakan itu ke Solidworks! :)
lickdragon
5

Saya hanya ingin berbagi pengalaman saya di sini juga, kalau-kalau ada orang lain dalam situasi yang sama (mencoba menginstal solidworks pada VM virtualbox)

Penyiapan yang saya coba:

xubuntu 16,04 host OS, VirtualBox, Windows 10, dan Solidworks 2015. Saya melihat kesalahan yang sama dibahas di atas.

Solusinya:

Solusi yang akhirnya saya temukan adalah dengan menggunakan hidevm.batskrip yang disertakan dalam celah Solidsquad, untuk mengelabui Solidworks agar berpikir itu tidak berjalan di VM. Anda dapat menggunakan file .bat bahkan jika Anda memiliki lisensi yang sah (seperti yang saya harap Anda lakukan). .bat ditujukan untuk pengguna yang menjalankan Solidworks di dalam VirtualBox VM, dengan Windows sebagai OS host juga, namun jika Anda seperti saya mencoba menjalankan Linux sebagai OS host, Anda masih dapat membuka file .bat, pilih keluar perintah yang relevan, sesuaikan untuk linux, dan jalankan. perintah yang relevan yang dimodifikasi adalah:

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"

Jika VM Anda dikonfigurasikan untuk menggunakan firmware EFI, Anda perlu menggantinya pcbiosdengan efimenggunakan tombol. Lihat 9.12. Mengkonfigurasi informasi DMI BIOS .

Thomas Pfeifer
sumber
Ini gagal untuk saya. Mungkin karena sistem saya dengan UEFI.
kyb
Tapi saya menemukan solusi di VBox docs $ 9,12. > Jika VM Anda dikonfigurasikan untuk menggunakan firmware EFI, Anda perlu menggantinya pcbiosdengan efidi tombol. Saya sarankan untuk mengedit pesan.
kyb
4

'/>hilang pada EOL <qemu:arg value='type=1,manufacturer=LENOVOjadi di sini adalah modifikasi konfigurasi libvirt lengkap:

<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>
 (...)
THOBAD007
sumber
Terima kasih atas jawaban Anda, itu membantu saya membuat saya, saya baru saja menghapus kode yang tidak perlu.
FreeSoftwareServers
1

Saya pikir saya akan berbagi metode saya yang berfungsi untuk menyembunyikan VM dari Windows / Task MGR (Ini juga punya hal-hal yang kurang perlu dan lebih mudah dibaca). Saya tidak mencoba mengaktifkan Solidworks tetapi IMO utas ini lebih lanjut tentang menyembunyikan menjalankan Anda di VM dan mungkin harus diedit seperti itu. Bagaimanapun...

Tambahkan yang berikut ke domain Anda.xml dan pastikan untuk menyelesaikan menghapus Bagian 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>

Matikan VM dan nyalakan kembali dan uji!

FreeSoftwareServers
sumber
1
Saya membuat SolidWorks mengerjakan qemu di Ubuntu 19.04 dengan konfigurasi ini, smbiosargumen dan VirtIO sebagai driver untuk disk dan ethernet.
Avamander
1
@ Avamander Itu luar biasa, karena saya katakan saya bahkan tidak bekerja dengan SolidWorks tetapi sepertinya saya membantu menyelesaikan pertanyaan OP! Saya lupa apa yang sedang saya kerjakan, tetapi ini membuatnya bekerja untuk saya juga untuk sesuatu yang lain, saya pikir itu terkait game, tidak akan menjalankan game dalam VM. VM saya lebih kuat daripada kebanyakan laptop gaming orang: P
FreeSoftwareServers
@ Avanderander Saya hanya ingin tahu, apakah Anda mencoba tanpa smbiosargumen?
FreeSoftwareServers
Saya tidak mencoba tanpa dipalsukan smbios.
Avamander