Вопрос не вокруг Solidworks на самом деле, поэтому продолжите читать.
Вся эта мысль о виртуализации состоит в том, чтобы быть аппаратно-независимой. На наших глазах совершенно новый уровень зависимости создается - присоединение к гипервизору.
Насколько я знаю, что поиск способом находит, что обходное решение этой проблемы не является нарушением лицензии Solidworks и локального закона в моей стране.
Мой клиент и я хотим активировать продукты Solidworks на виртуальной машине KVM. По некоторым странным причинам (Hyper-V и VMware, как предполагается, хорошо тестируются :) они (разработчики) Solidworks 2015 PDM не хотят, чтобы их продукты были активированы (в прошлом 2014, версия работала просто великолепно) на Qemu-KVM.
http://www.solidworks.com/sw/support/11168_ENU_HTML.htm
Я использую:
Поскольку Вы видите, что это - основанный на KVM VM с установкой Solidworks PDM и Windows 2012.
Вопрос: Что еще может они проверять, выполняю ли я свой VM в Qemu-KVM помимо проверки:
Я собираюсь исключить вышеупомянутые вещи через следующие несколько часов, но я хотел бы знать, есть ли у Вас какие-либо другие идеи.
Решение:
Оказывается, что они проверяют две вещи:
-cpu,kvm=off
опция отключить лист CPUID 0x40000000.
Соответствующие части 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 упомянул, что Qemu (я использовал virtio в этом примере), дисковый режим может быть релевантным также.
Большинство современных гипервизоров, работающих на оборудовании Intel, используют CPUID, оставляет 0x40000000 et seq. для передачи информации о гипервизоре от хоста к гостю.
KVM , Xen , VMware и Hyper-V используют этот метод.
Это в дополнение к флагу функции гипервизора, установленному в листе CPUID 0x1, который указывает, что машина является виртуальной машиной.
Следовательно, это тривиально для программы, которая может вызвать инструкцию CPUID для определения работает ли он под одним из этих гипервизоров.
Последние версии KVM включают параметр командной строки , чтобы отключить лист CPUID 0x40000000, -cpu kvm = off
.
Официальный способ активации сервера Solidworks на KVM - подать заявку на «Лицензирование без активации для SolidWorks». Мы делаем это через посредника, но, возможно, это можно сделать напрямую через службу поддержки Solidworks.
Solidworks отправляет файл лицензии, который Solidworks License Manager загружает через Расширенные параметры вкладки Администрирование сервера.
Учитывая, что последние два года он Solidworks потребовалось более 2 недель для отправки файла лицензии, было бы неплохо, если бы они не занесли KVM в черный список.
Solidworks имеет «Запрос на улучшение», открытый с заголовком: «Обеспечить поддержку SNL-сервера для VM KVM Qemu Libvirt . " ER # 1-9482749288 Я нашел его, войдя на портал Solidworks, найдя ссылку Enhancement Request и набрав KVM.
Пожалуйста, оставьте комментарий к этому Enhancement Request! Надеюсь, они решат, что KVM - это законная среда виртуализации.
Я просто хотел поделиться своим опытом здесь, на случай, если другие находятся в аналогичной ситуации (пытается установить solidworks на виртуальную машину виртуального бокса)
Моя попытка установки:
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. Настройка информации DMI BIOS .
Я подумал, что поделюсь своим методом, который работал, чтобы скрыть виртуальную машину от Windows / Task MGR (в нем также меньше ненужных вещей и его легче читать). Я не пытался активировать Solidworks, но IMO этот поток больше касается сокрытия вашей работы в виртуальной машине и, возможно, его следует отредактировать как таковой. В любом случае ...
Добавьте следующий код в свой domain.xml и убедитесь, что полностью удалили раздел ЦП
<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>
Выключите и снова включите виртуальную машину и проверьте!