Solidworks: режим активации лицензии не поддерживается в этой виртуальной среде (Qemu-KVM)

Solidworks: режим активации лицензии не поддерживается в этой виртуальной среде (Qemu-KVM)

Вопрос на самом деле не в Solidworks., поэтому, пожалуйста, продолжайте читать.

Вся идея виртуализации - быть аппаратно-независимой. На наших глазах создается совершенно новый уровень зависимости - привязка к гипервизору.

Насколько мне известно, поиск способа решения этой проблемы не является нарушением лицензии Solidworks и местного законодательства моей страны.

Мой клиент и я хотим активировать продукты Solidworks на виртуальной машине KVM. По каким-то странным причинам (Hyper-V и VMware должны быть хорошо протестированы :) они (разработчики) Solidworks 2015 PDM не хотят, чтобы их продукты активировались (последняя версия 2014 года работала просто отлично) на Qemu-KVM.

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

Я использую:

настраивать

Как видите, это виртуальная машина на базе KVM с установленной ОС Windows 2012 и Solidworks PDM.

Вопрос: Что еще они могут проверить, если я запускаю свою виртуальную машину в Qemu-KVM, помимо проверки:

  • MAC-адрес(а) Ethernet-адаптера виртуальной машины,
  • Метки драйверов устройств,
  • Модель ЦП,
  • Таблицы ACPI.

Я собираюсь исключить вышеупомянутые вещи в течение следующих нескольких часов, но мне бы хотелось узнать, есть ли у вас другие идеи.

Решение:

Оказывается, они подтверждают две вещи:

  1. Как правильно заметил Майкл Хэмптон, есть -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) также может иметь значение.

решение1

Большинство современных гипервизоров, работающих на оборудовании Intel, используют CPUID leaves 0x40000000 и далее для передачи информации о гипервизоре от хоста к гостю.

КВМ,Ксен,VMwareиHyper-Vвсе используют этот метод.

Этокроме тогок флагу функции гипервизора, установленному в листе CPUID 0x1, который указывает, что машина является виртуальной машиной.

Поэтому для программы, которая может вызвать инструкцию CPUID, не составит труда определить, работает ли она под управлением одного из этих гипервизоров.

Последние версии KVM включают в себяпараметр командной строкичтобы отключить CPUID 0x40000000 лист, -cpu kvm=off.

решение2

Я просто хотел поделиться своим опытом здесь, на случай, если у других людей возникнет похожая ситуация (пытаюсь установить SolidWorks на виртуальную машину VirtualBox).

Моя попытка настройки:

Хост-ОС xubuntu 16.04, VirtualBox, Windows 10 и Solidworks 2015. Я увидел ту же ошибку, что обсуждалась выше.

Решение:

Решение, которое я в конце концов нашел, состояло в использовании hidevm.batскрипта, включенного в кряк Solidsquad, для обмана Solidworks, заставляя его думать, что он не запущен в виртуальной машине. Вы можете использовать файл .bat, даже если у вас есть законная лицензия (на что я надеюсь). Файл .bat предназначен для пользователей, запускающих Solidworks внутри виртуальной машины VirtualBox, с Windows в качестве хост-ОС, однако, если вы, как и я, пытаетесь запустить Linux в качестве хост-ОС, вы все равно можете открыть файл .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"

В случае, если ваша виртуальная машина настроена на использование прошивки EFI, вам необходимо заменить pcbiosна efiв ключах. Смотрите9.12 Настройка информации BIOS DMI.

решение3

Официальный способ активации сервера Solidworks на KVM — подать заявку на «лицензирование без активации для SolidWorks». Мы делаем это через реселлера, но, возможно, это можно сделать напрямую через службу поддержки Solidworks.

Solidworks отправляет файл лицензии, который Solidworks License Manager загружает через Дополнительные параметры на вкладке Администрирование сервера.

Учитывая, что в течение последних двух лет Solidworks требовалось более 2 недель для отправки файла лицензии, было бы неплохо, если бы они не вносили KVM в черный список.

В Solidworks открыт «Запрос на улучшение» с заголовком: «Предоставить поддержку сервера SNL для VM KVM Qemu Libvirt». ER # 1-9482749288 Я нашел его, войдя на портал Solidworks, найдя ссылку «Запрос на улучшение» и введя KVM.

Пожалуйста, оставьте комментарий к этому запросу на улучшение! Надеюсь, они решат, что KVM — это законная среда виртуализации.

решение4

Я решил поделиться своим методом, который сработал, чтобы скрыть VM от Windows/Task MGR (он также содержит меньше ненужных вещей и его легче читать). Я не пытался активировать Solidworks, но, по моему мнению, эта ветка больше о том, как скрыть работу в 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>

Выключите и снова включите виртуальную машину и протестируйте!

Связанный контент