Solidworks:アクティベーションライセンスモードは、この仮想環境ではサポートされていません(Qemu-KVM)


12

質問は実際は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テーブル。

今後数時間以内に上記のことを除外しますが、他にアイデアがあるかどうか知りたいです。

解決策

彼らは2つのことを検証することがわかりました:

  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を使用しました)ディスクモードも関連している可能性があると述べました。


このサイトは、サポート/サポート可能なソリューションに本質的に興味を持っているプロのシステム管理者向けです。
チョッパー

8
あなたが見ることができるように、何かが標準的な解決策でない限り、それがサポートできないことを意味しません。ここで問題が本当に見えないのですか?誰かが市販のツールを選択し、隠れていることを強制します-それは十分にテストされているからです。ハイパーバイザーの選択に関してはナンセンスです。OSのアンダーレイ用-はい、ただしアプリケーション用ではありません。
ミハルソコロウスキ

十分な料金を払っている顧客がKVMをサポートするSolidWorksの需要を投稿した場合、それらは強制されます。これは、オラクルがOELをリリースし、RHELへのインストールをブロックしようとしたときにすでに発生しました。ただ、プレッシャーの問題と、ビジネスを他の場所に持ち込む可能性があります。
dyasny

彼らはすでにやった。彼らはそれをサポートしています。たとえば、今日ライセンスをインストールするタスクがありました。
ミハルソコロウスキ

1
おそらく「QEMU」という単語を含むAHCIディスクの説明のため、これは仮想IDEブートディスクでは機能しませんでした。スクリーンショットに示されているように、ブートディスクをVirtIOに変更しました。ありがとう!

回答:


13

Intelハードウェアで実行される最新のハイパーバイザーはCPUIDを使用し、0x40000000以降を残します。ハイパーバイザーに関する情報をホストからゲストに渡す。

KVMXenVMwareおよびHyper-Vはすべてこの方法を使用します。

これは CPUIDリーフ0x1で設定されたハイパーバイザー機能フラグに追加され、マシンが仮想マシンであることを示します。

したがって、CPUID命令を呼び出して、これらのハイパーバイザーのいずれかで実行されているかどうかを判別できるプログラムにとっては簡単です。

KVMの最近のバージョンには、CPUID 0x40000000リーフを無効にするコマンドラインオプションが含まれています-cpu kvm=off


1
また、この方法は、パススルーでKVM VMをブロックするNVIDIAドライバーに対しても効果的であることがすでに証明されています。
dyasny

5

KVMでSolidworksサーバーをアクティベートする公式の方法は、「SolidWorksのアクティベーション免除ライセンス」を申請することです。これは再販業者を通じて行いますが、Solidworksサポートを通じて直接行うこともできます。

Solidworksは、Solidworks License Managerがサーバー管理タブの詳細オプションを介してロードするライセンスファイルを送信します。

過去2年間、Solidworksがライセンスファイルを送信するのに2週間以上かかっていたことを考えると、KVMをブラックリストに登録しないようにしてください。

Solidworksには、タイトル「Opening SNL Server support for VM KVM Qemu Libvirt」が付いた「Enhancement Request」があります。ER#1-9482749288 Solidworksポータルにログインし、エンハンスメントリクエストリンクを見つけ、KVMと入力することで見つけました。

この機能強化リクエストにコメントを残してください!KVMが合法的な仮想化環境であると判断されることを願っています。


AWSはKVMを使用しています!
FreeSoftwareServers

1
@FreeSoftwareServers AWSは最近、一部のマシンタイプでKVMに切り替えました。まだたくさんのXenがあります。
マイケルハンプトン

確かに、それがであると言っているだけlegitimate virtualization environmentです。
FreeSoftwareServers

それを私に言わないで、Solidworksに言ってください!:)
lickdragon

5

他の人が同様の状況にある場合に備えて、ここでも自分の経験を共有したかったです(virtualbox VMにsolidworksをインストールしようとしています)

私が試みたセットアップ:

xubuntu 16.04ホストOS、VirtualBox、Windows 10、Solidworks2015。上記と同じエラーが表示されていました。

ソリューション:

最終的に私が見つけた解決策hidevm.batは、SolidworksがVMで実行されていないと考えさせるために、Solidsquadクラックに含まれるスクリプトを使用することでした。正当なライセンスを持っている場合でも、.batファイルを使用できます(そうすることを望みます)。.batは、WindowsをホストOSとしても、VirtualBox VM内でSolidworksを実行するユーザーを対象としていますが、ホストOSとして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"

場合は、あなたのVMは、EFIを使用して、交換する必要があるファームウェアを使用するように設定されたpcbiosことにより、efiキーインチ 9.12を参照してくださいBIOS DMI情報の構成


これは私にとって失敗しました。私のシステムがUEFIを使用しているためかもしれません。
kyb

しかし、私はVBoxのドキュメント $ 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

私はWindows / Task 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をオフにしてからオンにして、テストします!


1
この構成、smbios引数、およびディスクとイーサネットの両方のドライバーとしてのVirtIOを使用して、Ubuntu 19.04上のqemuでSolidWorksを動作させました。
アバンマンダー

1
@Avamanderこれはすごいことです。SolidWorksで作業しているわけでもないが、OPの質問を解決するのを手伝ったようです。私が取り組んでいたことを忘れていますが、これは私にとっても他の何かのために働くようになりました、私はそれがゲーム関連であり、VMでゲームを実行しないと思います。私のVMは、ほとんどの人のゲーム用ラップトップよりも強力です
。P– FreeSoftwareServers

@Avamander興味がありますが、smbios引数なしで試しましたか?
FreeSoftwareServers

偽造なしではしませんでしたsmbios
アヴァンダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.