|
|
| (同じ利用者による、間の25版が非表示) |
| 1行目: |
1行目: |
| == 概要 == | | == 概要 == |
| ここでは、Linuxホスト上にWindows10の仮想マシンを構築して、グラフィックボードやUSBポートを物理PCと同様に使用できるように設定する。<br>
| | ここでは、Linuxホスト上にlibvirtd + QEMUで仮想マシンを構築して、グラフィックボードやUSBポートを物理PCと同様に使用できるように設定する。<br> |
| <br> | | <br> |
| Linuxの欠点の1つは、利用できるゲームがそれほど多くないことである。<br>
| | Linuxの欠点の1つは、利用できるソフトウェアがそれほど多くないことである。<br> |
| 最近では、多くのゲームがLinuxに移植されたのは事実であるが、一般的には、ゲームはほぼWindows専用に開発されている。<br>
| | 最近では、多くのソフトウェアがLinuxに移植されたのは事実であるが、まだまだWindows専用に開発されたソフトウェアが多い。<br> |
| Linuxユーザとして、これらのWindowsゲームをプレイするために、4つの方法がある。<br>
| |
| * Wineを使用してプレイする(Wineは、通常、古いゲームで機能する)
| |
| * デュアルブートセットアップを使用して、ゲームをプレイするたびにWindowsをブートする。(手間が掛かる)
| |
| * Windowsの仮想マシンでプレイする。(グラフィック性能が活かせない)
| |
| * GPUパススルーを備えたWindowsの仮想マシンを使用する。(ハードウェアの前提条件がいくつかあり、特定のCPUとGPUでのみ機能するが、適切なハードウェアがあれば可能である)
| |
| <br> | | <br> |
| 基本的な設定の流れは、以下のようになる。<br>
| | Linuxでは、これらのWindows専用ソフトウェアを使用するために、以下に示す4つの方法がある。<br> |
| | * Wineを使用する。 |
| | *: ただし、Wineは、古いソフトウェアなら機能する場合が多い。 |
| | * デュアルブートセットアップを使用して、Windows専用ソフトウェアを使用するたびにWindowsをブートする。 |
| | *: ただし、手間が掛かる。 |
| | * ホストOS型の仮想化ソフトウェアにWindowsの仮想マシンを構築する。 |
| | *: ただし、グラフィック性能が活かせない。 |
| | * GPUパススルーを備えたWindowsの仮想マシンを使用する。 |
| | *: ハードウェアの前提条件がいくつかある (特定のCPUとGPUでのみ機能する) が、適切なハードウェアがあれば可能である。 |
| | <br> |
| | 基本的な設定の流れは、次のようになる。<br> |
| # CPUの仮想化支援機能(Intel VT-xまたはAMD-Vi)を有効にする | | # CPUの仮想化支援機能(Intel VT-xまたはAMD-Vi)を有効にする |
| # グラフィックボードのパススルー設定 | | # グラフィックボードのパススルー設定 |
| ## IOMMUの有効化 | | #* IOMMUの有効化 |
| ## Linuxホストのグラフィックボード無効化 | | #* Linuxホストのグラフィックボード無効化 |
| # kvm / qemuのインストール | | # KVM / QEMUのインストール |
| # ゲストOS作成 | | # ゲストOS作成 |
| ## チューニング -> インストール | | #* 仮想マシンのチューニングを行った後に仮想マシンをインストールする。 |
| # グラフィックボードのパススルー | | # グラフィックボードのパススルー |
| # USBポートのパススルー設定 | | # USBデバイスのパススルー設定を行う。<br>または、SynergyあるいはBarrier (開発停止) を使用する。<br><br>Synergyのインストールは、[[インストール - マウス・キーボード共有ソフトウェア]]のページを参照すること。 |
| <br> | | <br> |
| <br> | | <br> |
| ここでは、実際に設定を行うPCの環境は、以下の通りである。<br> | | ここでは、実際に設定を行うPCの環境は、以下の通りである。<br> |
| * CPU : Ryzen 3900X | | * CPU |
| * マザーボード : GIGABYTE X570 UD(BIOS F12e) | | *: Ryzen 3900X |
| * GPU1 : 玄人志向 Radeon RX550 LP | | * M/B |
| * GPU2 : GIGABYTE GeForce GT1030 | | *: GIGABYTE X570 UD(BIOS F37e) |
| * OS : SUSE(カーネル : 4.12.14-lp151.28.52-default) | | * GPU 1 |
| | *: 玄人志向 Radeon RX550 LP |
| | * GPU 2 |
| | *: GIGABYTE GeForce GT1030 |
| | * OS |
| | *: SLE (Linuxカーネル 5.14.21) |
| <br><br> | | <br><br> |
|
| |
|
| 87行目: |
97行目: |
| 後は、下記の[ゲストOSの作成]セクションに移動して、VMの作成および設定を行う。<br> | | 後は、下記の[ゲストOSの作成]セクションに移動して、VMの作成および設定を行う。<br> |
| <br> | | <br> |
| なお、この方法は、https://www.youtube.com/watch?v=Nu2bHV8mA6c を参考にしている。<br>
| | なお、この手順は以下に示す動画を参考にしている。<br> |
| | <center><embedvideo service="youtube">https://youtu.be/Nu2bHV8mA6c</embedvideo></center><br> |
| <br><br> | | <br><br> |
|
| |
|
| 113行目: |
124行目: |
| <br> | | <br> |
| [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso こちらのWebサイト]から、VirtIOドライバをダウンロードする。<br> | | [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso こちらのWebサイト]から、VirtIOドライバをダウンロードする。<br> |
| | <br><br> |
| | |
| | == ラップトップPC上のdGPUを通過させるための手順 == |
| | この手順は、ACPIの呼び出しを使用してdGPUファームウェアを読み込まないラップトップPCにのみ適用される。<br> |
| | dGPUファームウェアを読み込むためにACPIの呼び出しを使用するラップトップPCについては、u/jscinoz'sのoptimus-vfio-docsを参照すること。<br> |
| | <br> |
| | 現状、ACPIの呼び出しでdGPUがファームウェアを読み込むかどうかを確認する方法は不明である。<br> |
| | <br> |
| | 最近の多くのOptimusなラップトップPCはMUXレス方式を採用しているが、<br> |
| | HP/Thinkpad/Dellモバイルワークステーション、Clevo P650、Alienwareの一部等はMUXed方式を採用している。<br> |
| | <br> |
| | Optimusソリューションが登場する前の時代には、グラフィックスカードを切り替えるために再起動が必要で、1度に1つしか使用できない古いMUXed方式があったが、<br> |
| | 最新のMUXed方式では、OptimusとdGPUのみを切り替えることができ、Optimus使用時にはディスプレイ出力ポートをdGPUに直接接続することもできる。(一部のラップトップPCにのみ適用)<br> |
| | <br> |
| | MUXレス方式でCode 43(エラーコード)に遭遇したPCは、(ゲストOSでdGPUを見ることができ、NVIDIAドライバも問題なくインストールできるにもかかわらず)<br> |
| | [https://www.reddit.com/r/VFIO/comments/6q7bf5/short%20report%20wip%20got%20the%20nvidia%20gpu%20to/ ACPIの呼び出しがdGPUファームウェアの読み込みに失敗したため]である。<br> |
| | <br> |
| | これは、NVIDIAドライバがvfio-pciを通して提供されたROMを使用する代わりに、UEFIからdGPUのROMを読み込もうとしているからである。<br> |
| | <br> |
| | このような問題が発生した場合は、[https://github.com/jscinoz/optimus-vfio-docs u/jscinozのoptimus-vfio-docs]を参照すること。<br> |
| | <br> |
| | MUXレスの成功報告があるラップトップPCを以下に示す。<br> |
| | * MSI GS60-040XFR |
| | * MSI GS60 2PC |
| | * ASUS G751JM |
| | <br> |
| | [[ファイル:KVM GPU Passthrough Laptop 1.jpg|フレームなし|中央]] |
| | <br> |
| | この手順で可能になる事柄を以下に示す。<br> |
| | * Bumblebeeを使用することにより、オンデマンドでNVIDIA dGPUの電源オン / オフすることが可能である。 |
| | * ホストPCにNVIDIA dGPUが不要の場合は、ゲストOSにNVIDIA dGPUを渡すことができる。 |
| | * ゲストOSのシャットダウン時にdGPUを戻すことができる。 |
| | * dGPUのバインド / アンバインドプロセス中に再起動する必要はない。 |
| | * 外部ディスプレイは必須ではない。(ハードウェアとVMが実行しているWindowsのバージョンに依存する) |
| | * また、外部ディスプレイを直接ゲストOSに接続することができる。 |
| | <br> |
| | 使用しているNVIDIAグラフィックスカード (dGPU) がMUXedまたはMUXlessかどうかを確認する。<br> |
| | BIOS/UEFIオプションにおいて、<u>integrated graphics</u> / <u>PCI graphics</u>が選択できる場合、MUXedである。<br> |
| | 選択できない場合はMUXレスである。<br> |
| | <br> |
| | MUXedの場合は、https://gist.github.com/Misairu-G/616f7b2756c488148b7309addc940b28 を参照すること。<br> |
| | MUXレスの場合、https://github.com/jscinoz/optimus-vfio-docs を参照すること。<br> |
| <br><br> | | <br><br> |
|
| |
|
| 188行目: |
241行目: |
| <u>'''2つのグラフィックボードがそれぞれ異なる場合(nVidia製とATI製)'''</u><br> | | <u>'''2つのグラフィックボードがそれぞれ異なる場合(nVidia製とATI製)'''</u><br> |
| /lib/modprobe.d/50-blacklist.confファイル、または、/etc/modprobe.d/50-blacklist.confファイルを編集して、以下の内容を追記する。<br> | | /lib/modprobe.d/50-blacklist.confファイル、または、/etc/modprobe.d/50-blacklist.confファイルを編集して、以下の内容を追記する。<br> |
| # SUSE 15.4の場合 | | # SUSE 15.4以降の場合 |
| sudo vi /lib/modprobe.d/50-blacklist.conf | | sudo vi /lib/modprobe.d/50-blacklist.conf |
| | | |
| 205行目: |
258行目: |
| まず、/lib/modprobe.d/gpu-passthrough.confファイル、または、/etc/modprobe.d/gpu-passthrough.confファイルを作成して、以下のように編集する。<br> | | まず、/lib/modprobe.d/gpu-passthrough.confファイル、または、/etc/modprobe.d/gpu-passthrough.confファイルを作成して、以下のように編集する。<br> |
| ここで、<VMで使用するGPUのベンダー>と<VMで使用するGPUのモデルID>は、上記セクションで実行したlsIOMMU.shの出力結果に記載されている。<br> | | ここで、<VMで使用するGPUのベンダー>と<VMで使用するGPUのモデルID>は、上記セクションで実行したlsIOMMU.shの出力結果に記載されている。<br> |
| # SUSE 15.4の場合 | | # SUSE 15.4以降の場合 |
| sudo vi /lib/modprobe.d/gpu-passthrough.conf | | sudo vi /lib/modprobe.d/gpu-passthrough.conf |
| | | |
| 216行目: |
269行目: |
| <br> | | <br> |
| 例えば、上記セクションの結果から、以下のように記述する。<br> | | 例えば、上記セクションの結果から、以下のように記述する。<br> |
| また、<code>options vfio-pci disable_vga=1</code>は、ホストPCが4.1以降のカーネルかつゲストOSがUEFIの場合のみ有効である。<br> | | また、<code>options vfio-pci disable_vga=1</code>は、ホストPCがLinuxカーネル 4.1以降、かつ、ゲストOSがUEFIの場合のみ有効である。<br> |
| VGAアービトレーションがホストデバイスに干渉するのを防ぐのに役立つ。<br> | | VGAアービトレーションがホストデバイスに干渉するのを防ぐのに役立つ。<br> |
| | # /lib/modprobe.d/gpu-passthrough.confファイル |
| | # または |
| # /etc/modprobe.d/gpu-passthrough.confファイル | | # /etc/modprobe.d/gpu-passthrough.confファイル |
| | | |
| 226行目: |
281行目: |
| しかし、Linuxカーネル 5.9.1以降はこのオプションが問題を引き起こすという報告がある。<br> | | しかし、Linuxカーネル 5.9.1以降はこのオプションが問題を引き起こすという報告がある。<br> |
| 個人的には、<code>kvm.ignore_msrs=1</code>オプションを付加して、問題が発生する場合は当オプションを削除する方法を推奨する。<br> | | 個人的には、<code>kvm.ignore_msrs=1</code>オプションを付加して、問題が発生する場合は当オプションを削除する方法を推奨する。<br> |
| # SUSE 15.4の場合 | | # SUSE 15.4以降の場合 |
| sudo vi /lib/modprobe.d/gpu-passthrough.conf | | sudo vi /lib/modprobe.d/gpu-passthrough.conf |
| | | |
| 406行目: |
461行目: |
| # [Add New Virtual Hardware]画面左の[USB Host Device]を選択して、キーボードとマウスを追加する。 | | # [Add New Virtual Hardware]画面左の[USB Host Device]を選択して、キーボードとマウスを追加する。 |
| # <u>Windows 10 / 11の場合、[Add New Virtual Hardware]画面左の[TPM]を選択して、</u><br><u>[種類]プルダウンから[Emulated]、[モデル]プルダウンから[TIS]、[バージョン]プルダウンから[2.0]を選択して、追加する。</u> | | # <u>Windows 10 / 11の場合、[Add New Virtual Hardware]画面左の[TPM]を選択して、</u><br><u>[種類]プルダウンから[Emulated]、[モデル]プルダウンから[TIS]、[バージョン]プルダウンから[2.0]を選択して、追加する。</u> |
| # 同様に、不要なデバイス(タブレット、ディスプレイスパイス、コンソール、チャンネルスパイス、ビデオQXL等)を全て削除する。<br>ディスプレイにサウンド出力がない場合またはVGA経由で接続する場合は、サウンドカードが必要である。<br>1000円程度の安価なUSBサウンドカードを購入してPCに取り付けた場合、キーボードとマウスを追加した際と同様にして追加する。 | | # 同様に、不要なデバイス(タブレット、ディスプレイスパイス、シリアル、コンソール、チャンネルスパイス等)を全て削除する。<br><u>RHELやSLE等の場合は、Synergy / Barrierの動作に支障があるため、ビデオQXLを有効にして、ディスプレイSpiceおよびビデオは削除しない。</u><br><br>ディスプレイにサウンド出力がない場合またはVGA経由で接続する場合は、サウンドカードが必要である。<br>1000円程度の安価なUSBサウンドカードを購入してPCに取り付けた場合、キーボードとマウスを追加した際と同様にして追加する。 |
| # VMに割り当てたばかりのグラフィックボードをディスプレイに接続し、[Begin Installation]ボタンを押下する。<br>全て正しく設定されていれば、そのディスプレイにVMが起動していることがわかる。 | | # VMに割り当てたばかりのグラフィックボードをディスプレイに接続し、[Begin Installation]ボタンを押下する。<br>全て正しく設定されていれば、そのディスプレイにVMが起動していることがわかる。 |
| # Windows10をインストール画面の手順に従ってインストールする。<br>インストール完了後、Windows10のデバイスマネージャーを起動して、マウントされているvirtio-win-<バージョン名>.isoファイルから各種ドライバをインストールする。 | | # Windows10をインストール画面の手順に従ってインストールする。<br>インストール完了後、Windows10のデバイスマネージャーを起動して、マウントされているvirtio-win-<バージョン名>.isoファイルから各種ドライバをインストールする。 |
| <br> | | <br> |
| | |
| ==== Windows 7の場合 ==== | | ==== Windows 7の場合 ==== |
| # Virtual Machine Managerを起動して、新しいVMを作成する。<br>[Architecture Option]画面では、[Local Install Media]と[x86_64]を選択する。 | | # Virtual Machine Managerを起動して、新しいVMを作成する。<br>[Architecture Option]画面では、[Local Install Media]と[x86_64]を選択する。 |
| 432行目: |
488行目: |
| # [Add New Virtual Hardware]画面左の[Storage]を選択して、[管理]ボタンを押下して、<br>"KVM / QEMUのインストール"セクションでダウンロードしたvirtio-win-<バージョン名>.isoファイルを選択する。<br>[デバイスの種類]項目には、[CD-ROMデバイス]を選択する。 | | # [Add New Virtual Hardware]画面左の[Storage]を選択して、[管理]ボタンを押下して、<br>"KVM / QEMUのインストール"セクションでダウンロードしたvirtio-win-<バージョン名>.isoファイルを選択する。<br>[デバイスの種類]項目には、[CD-ROMデバイス]を選択する。 |
| # [Add New Virtual Hardware]画面左の[USB Host Device]を選択して、キーボードとマウスを追加する。 | | # [Add New Virtual Hardware]画面左の[USB Host Device]を選択して、キーボードとマウスを追加する。 |
| # <u>分離されたGPUとサウンドカード(ここでは、PCIデバイス03:00.0とPCIデバイス03:00.1)は追加しないことに注意する。</u> | | # <u>分離されたGPUとサウンドカード(下図では、PCIデバイス03:00.0とPCIデバイス03:00.1)は追加しないことに注意する。</u> |
| #: ここまでの設定を行うことにより、下図のようになる。 | | #: ここまでの設定を行うことにより、下図のようになる。 |
| #: [[ファイル:KVM GPU Passthrough for Windows7 1.png|フレームなし|中央]] | | #: [[ファイル:KVM GPU Passthrough for Windows7 1.png|フレームなし|中央]] |
| # [Begin Installation]ボタンを押下して、ゲストOSを起動する。 | | # [Begin Installation]ボタンを押下して、ゲストOSを起動する。 |
| # UEFIシェル(仮想マシンのブート設定画面)を起動して、セキュアブートを無効に設定する。 | | # UEFIシェル(仮想マシンのブート設定画面)を起動して、[Device Manager] - [Secure Boot Configuration] - [Attempt Secure Boot]チェックボックスのチェックを外して、セキュアブートを無効にする。 |
| # <u>設定を保存した後、すぐに仮想マシンをシャットダウンする。(まだ、Windows 7はインストールしない)</u> | | # <u>設定を保存した後、すぐに仮想マシンをシャットダウンする。</u><br><u>※まだ、Windows 7はインストールしないことに注意する。</u> |
| # 仮想マシンの設定ファイル(XML拡張子)を、以下に示すように編集する。 | | # 仮想マシンの設定ファイル(XML拡張子)を、以下に示すように編集する。 |
| #: <code>sudo virsh edit <仮想マシン名></code> | | #: <code>sudo virsh edit <仮想マシン名></code> |
| 443行目: |
499行目: |
| #: # 最初の行を変更する | | #: # 最初の行を変更する |
| #: <code><domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'></code> | | #: <code><domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'></code> |
| | #: または |
| | #: <code><domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm"></code> |
| #: <br> | | #: <br> |
| #: # ファイルの最下行にある<code></devices></code>と<code></domain></code>の間に追記する | | #: # ファイルの最下行にある<code></devices></code>と<code></domain></code>の間に追記する |
| 513行目: |
571行目: |
| * windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu | | * windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu |
| *: https://www.catalog.update.microsoft.com/Search.aspx?q=kb3125574 | | *: https://www.catalog.update.microsoft.com/Search.aspx?q=kb3125574 |
| * windows6.1-kb976932-x64_74865ef2562006e51d7f9333b4a8d45b7a749dab.exe (SP1をインストールしていない場合のみ) | | * windows6.1-kb976932-x64_74865ef2562006e51d7f9333b4a8d45b7a749dab.exe<br><u>※ SP1をインストールしていない場合のみ</u> |
| *: https://www.catalog.update.microsoft.com/Search.aspx?q=kb976932 | | *: https://www.catalog.update.microsoft.com/Search.aspx?q=kb976932 |
| <br> | | <br> |
| 575行目: |
633行目: |
| </syntaxhighlight> | | </syntaxhighlight> |
| <br> | | <br> |
| 更にパフォーマンスを向上させるため、以下のように、hypervエレメントを設定する。<br>
| | 更にパフォーマンスを向上させるため、<code><features></code>タグ内に<code><hyperv></code>タグとそのエレメントを設定する。<br> |
| <syntaxhighlight lang="xml"> | | <syntaxhighlight lang="xml"> |
| <!-- ゲストOSがWindows 10 / 11の場合 --> | | <!-- ゲストOSがWindows 10 / 11の場合 --> |
| 692行目: |
750行目: |
| <br><br> | | <br><br> |
|
| |
|
| == SynergyまたはBarrierのインストール == | | == Synergy または DeskFlow のインストール == |
| Windows10のインストール完了後、[https://symless.com/synergy Synergy(有償ソフトウェア)]または[https://github.com/debauchee/barrier/releases Barrier]をインストールできる。<br>
| | ゲストOSのインストールが完了した後、Synergy (有償ソフトウェア)] または DeskFow、InputLeapをインストールすることを推奨する。<br> |
| これらは、物理的なKVM(Keyboard-Video-Mouse)スイッチなしで、複数のPCで同じキーボードとマウスを使用できる。<br> | | これらは、物理的なKVM (Keyboard-Video-Mouse) スイッチなしで、複数のPCで同じキーボードとマウスを使用できる。<br> |
| <br>
| |
| 以下に、SynergyとBarrierのインストール手順を記載する。<br>
| |
| <br>
| |
| ==== Synergy ====
| |
| Synergyは有償ソフトウェアであるが、一部の機能(通信の暗号化機能)を除いて、無償でも使用することができる。<br>
| |
| <br>
| |
| まず、以下のコマンドを実行して、LinuxにSynergyをインストールする。<br>
| |
| * パッケージ管理システムからインストール (非推奨 : Synergyのパッケージが古いため)
| |
| *: <code>sudo zypper install libdns_sd qsynergy synergy</code>
| |
| *: <br>
| |
| * ソースコードからインストール
| |
| *: まず、Synergyのビルドに必要な依存関係のライブラリをインストールする。
| |
| *: <code># CentOS</code>
| |
| *: <code>sudo yum groupinstall "Development Tools"</code>
| |
| *: <code>sudo yum install epel-release cmake3 boost-static git libXtst-devel qt5-qtbase-devel qt5-qtdeclarative-devel libcurl-devel openssl-devel</code>
| |
| *: <br>
| |
| *: <code># SUSE</code>
| |
| *: <code>sudo zypper install glib2-devel gdk-pixbuf-devel avahi-compat-mDNSResponder-devel dbus-1-devel libnotify-devel fixesproto-devel \</code>
| |
| *: <code>libXrandr-devel libXext-devel libXfixes-devel libXinerama-devel libXi-devel libXtst-devel xextproto-devel libxkbfile-devel \</code>
| |
| *: <code>inputproto-devel recordproto-devel libSM-devel libcurl-devel libopenssl-1_1-devel libopenssl-devel libavahi-devel \</code>
| |
| *: <code>libQt5Core-devel libQt5Gui-devel libQt5Network-devel libqt5-qtbase-common-devel libQt5Widgets-devel libQt5DBus-devel libqt5-linguist-devel</code>
| |
| *: <br>
| |
| ** 各バージョンのソースコードからインストールする場合
| |
| **: [https://github.com/symless/synergy-core/releases SynergyのGithub]からソースコードをダウンロードする。
| |
| **: ダウンロードしたファイルを解凍する。
| |
| **: <code>tar xf synergy-core-<バージョン>.tar.gz</code>
| |
| **: <code>cd synergy-core-<バージョン></code>
| |
| **: <br>
| |
| **: Synergyのビルドに必要なサブモジュールをダウンロードする。
| |
| **: <code>git clone https://github.com/mohabouje/WinToast ext/WinToast</code>
| |
| **: <code>git clone https://github.com/google/googletest.git ext/googletest</code>
| |
| **: <code>git clone https://github.com/zeux/pugixml ext/pugixml</code>
| |
| **: <br>
| |
| **: Synergyをビルドおよびインストールする。
| |
| **: <code>mkdir build && cd build</code>
| |
| **: <code>cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<Synergyのインストールディレクトリ> ..</code>
| |
| **: <code>make -j $(nproc) または cmake --build . -j $(nproc)</code>
| |
| **: <code>make install または cmake --install .</code>
| |
| *: <br>
| |
| ** <code>git clone</code>コマンドを使用して、ソースコードからインストールする場合
| |
| **: <code>git clone https://github.com/symless/synergy-core.git</code>
| |
| **: <code>cd synergy-core</code>
| |
| **: 最新安定版 : <code>git checkout master</code>
| |
| **: 最新開発版 : <code>git checkout vX.Y.Z</code>
| |
| **: <br>
| |
| **: Synergyのビルドディレクトリを作成して、Synergyをビルドおよびインストールする。
| |
| **: <code>cd synergy-core && mkdir build && cd build</code>
| |
| **: <code>cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<Synergyのインストールディレクトリ> ..</code>
| |
| **: <code>make -j $(nproc) または cmake --build . -j $(nproc)</code>
| |
| **: <code>make install または cmake --install .</code>
| |
| <br>
| |
| Synergyの実行ファイルが存在するディレクトリに、以下のようなシェルスクリプトを作成する。<br>
| |
| vi /<Synergyの実行ファイルがあるディレクトリ>/bin/synergy.sh
| |
| <br>
| |
| <syntaxhighlight lang="sh">
| |
| # /<Synergyの実行ファイルがあるディレクトリ>/bin/synergy.shファイル
| |
|
| |
| #!/usr/bin/env sh
| |
|
| |
| appname="synergy"
| |
|
| |
| # use -f to make the readlink path absolute
| |
| dirname="$(dirname -- "$(readlink -f -- "${0}")" )"
| |
|
| |
| if [ "$dirname" = "." ]; then
| |
| dirname="${PWD}/${dirname}"
| |
| fi
| |
|
| |
| cd ${dirname}
| |
|
| |
| # Initialize interpreter path
| |
| export PATH="${dirname}:${PATH}"
| |
| export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib:${LD_LIBRARY_PATH}"
| |
|
| |
| # Run Synergy binary
| |
| "${dirname}/${appname}" "$@"
| |
| </syntaxhighlight>
| |
| <br>
| |
| 次に、Windows用のSynergyをダウンロードしてインストールする。<br>
| |
| インストール後、Synergyの設定を行う。<br>
| |
| <br>
| |
| * Synergyのアンインストール
| |
| ** Windowsの場合
| |
| **# [プログラムの追加と削除](または[アプリと機能])で、Synergyをアンインストールする。<br>この時、"アプリとその関連情報がアンインストールされます"というメッセージが表示されるので、再度、[アンインストール]ボタンを押下する。
| |
| **# [アプリを終了する必要があります]メッセージ、および、アプリを自動的に終了させるかどうかを尋ねられるので、これを選択する。
| |
| **# 次に、regeditを実行して、以下に示すレジストリキーを削除する。(存在する場合)
| |
| **#* HKEY_CURRENT_USER\Software\Symless
| |
| **#* HKEY_CURRENT_USER\Software\Synergy
| |
| **#* HKEY_LOCAL_MACHINE\SOFTWARE\Synergy
| |
| **#: <br>
| |
| **# 以下のディレクトリが存在する場合は、削除する。
| |
| **#* C:\ProgramData\Symless
| |
| **#* C:\ProgramData\Synergy
| |
| **#* C:\ProgramData\Synergy v2
| |
| **#* %USERPROFILE%\AppData\Local\Synergy
| |
| **#* %USERPROFILE%\AppData\Local\Symless
| |
| **#: <br>
| |
| **# 次に、SystemConfig.iniファイルを削除する。<br>この時、以前に保存した設定は失われる。
| |
| **#: C:\Program Files\Synergy\SystemConfig.ini
| |
| **#: <br>
| |
| **# 最後に、Windowsを再起動する。
| |
| **: <br>
| |
| ** Linuxの場合
| |
| **# パッケージ管理システムを使用して、Synergyを削除する。
| |
| **# 次に、以下のコマンドを実行して、Synergyの設定を削除する。
| |
| **#* <code>rm -rf ~/.config/Symless/</code>
| |
| **#* <code>rm -rf ~/.config/Synergy/</code>
| |
| **#* <code>rm -rf ~/.synergy/</code>
| |
| **#* <code>rm -rf ~/.symless/</code>
| |
| **#: <br>
| |
| **# 次に、SystemConfig.iniファイルを削除する。<br>この時、以前に保存した設定は失われる。
| |
| **#: <code>sudo rm -rf /usr/local/etc/Symless/SystemConfig.ini</code>
| |
| <br>
| |
| | |
| ==== Barrier (推奨) ====
| |
| ===== パッケージ管理システムからインストール =====
| |
| まず、以下のコマンドを実行して、LinuxにBarrierをインストールする。<br>
| |
| sudo zypper install barrier
| |
| <br>
| |
| 次に、[https://github.com/debauchee/barrier/releases BarrierのGiHub]にアクセスして、Windows向けのBarrierの実行ファイルをダウンロードしてインストールする。<br>
| |
| インストール後、Barrierの設定を行う。<br>
| |
| <br>
| |
| ===== ソースコードからインストール =====
| |
| まず、Barrierをビルドするため、依存関係のライブラリをインストールする。<br>
| |
| # CentOS (EPELリポジトリの追加が必要)
| |
| sudo yum groupinstall "Development Tools"
| |
|
| |
| sudo yum install 'dnf-command(config-manager)'
| |
| sudo yum config-manager --set-enabled PowerTools
| |
|
| |
| sudo yum install cmake3 libcurl-devel avahi-compat-libdns_sd-devel libX11-devel libXtst-devel desktop-file-utils openssl-devel \
| |
| qt5-qtbase-devel
| |
|
| |
| # SUSE
| |
| sudo zypper install --type pattern devel_basis
| |
| sudo zypper install libdrm-devel libglvnd-devel libICE-devel \
| |
| libcurl-devel avahi-compat-mDNSResponder-devel libXtst-devel libopenssl-devel \
| |
| libSM-devel libXinerama-devel libXrandr-devel Mesa-devel \
| |
| libQt5Core-devel libQt5Gui-devel libQt5Network-devel libqt5-qtbase-common-devel libQt5Widgets-devel
| |
| <br>
| |
| 次に、[https://github.com/debauchee/barrier/releases BarrierのGiHub]にアクセスして、Barrierのソースコードをダウンロードする。<br>
| |
| ダウンロードしたファイルを解凍して、ビルド向けディレクトリを作成する。<br>
| |
| # Tarballからビルドする場合
| |
| tar xf barrier-<バージョン>-release.tar.gz
| |
| cd barrier-<バージョン>-release && mkdir build && cd build
| |
|
| |
| # Gitからビルドする場合
| |
| git clone https://github.com/debauchee/barrier.git barrier && cd barrier
| |
| git submodule update --init --recursive
| |
| ./clean_build.sh
| |
| cd build
| |
| <br>
| |
| <u>※注意</u><br>
| |
| <u>Tarballをダウンロードした時、Barrierディレクトリのext/gmockディレクトリ、ext/gtestディレクトリ、ext/gulrak-filesystemディレクトリが空の場合、</u><br>
| |
| <u>以下のモジュールのソースコードをダウンロードする必要がある。</u><br>
| |
| # Tarballのモジュールをダウンロードする場合
| |
| wget https://github.com/google/googletest/archive/refs/tags/release-<バージョン>.tar.gz
| |
| wget https://github.com/gulrak/filesystem/archive/refs/tags/<バージョン>.tar.gz
| |
| tar xf googletest-release-<バージョン>.tar.gz
| |
| tar xf filesystem-<バージョン>.tar.gz
| |
|
| |
| # Gitを使用してモジュールをダウンロードする場合
| |
| git clone https://github.com/google/googletest.git
| |
| git clone https://github.com/gulrak/filesystem
| |
| <br>
| |
| <u>Barrierのビルドに必要なソースコードを、Barrierディレクトリのext/gmockディレクトリ、ext/gtestディレクトリ、ext/gulrak-filesystemディレクトリにコピーする。</u><br>
| |
| # Tarballのモジュールをダウンロードした場合
| |
| cp -r googletest-release-<バージョン>/googlemock <Barrierディレクトリ>/ext/gmock
| |
| cp -r googletest-release-<バージョン>/googletest <Barrierディレクトリ>/ext/gtest
| |
| cp -r filesystem-<バージョン>/* <Barrierディレクトリ>/ext/gulrak-filesystem
| |
|
| |
| # Gitを使用してモジュールをダウンロードした場合
| |
| cp -r googletest/googlemock/* <Barrierディレクトリ>/ext/gmock
| |
| cp -r googletest/googletest/* <Barrierディレクトリ>/ext/gtest
| |
| cp -r filesystem/* <Barrierディレクトリ>/ext/gulrak-filesystem
| |
| <br>
| |
| Barrierをビルドおよびインストールする。<br>
| |
| # Tarballからインストールする場合
| |
| cmake -DCMAKE_INSTALL_PREFIX=${HOME}/InstallSoftware/Barrier -DCMAKE_BUILD_TYPE=Release ..
| |
| make -j $(nproc)
| |
| make install
| |
|
| |
| # Gitからインストールする場合
| |
| make DESTDIR=${HOME}/InstallSoftware/Barrier install
| |
| <br>
| |
| Barrierの起動スクリプトを作成する。<br>
| |
| vi ~/InstallSoftware/Barrier/barrier.sh
| |
| <br>
| |
| <syntaxhighlight lang="sh">
| |
| # ~/InstallSoftware/Barrier/barrier.sh
| |
|
| |
| #!/usr/bin/env sh
| |
|
| |
| appname="barrier"
| |
|
| |
| # use -f to make the readlink path absolute
| |
| dirname="$(dirname -- "$(readlink -f -- "${0}")" )"
| |
|
| |
| if [ "$dirname" = "." ]; then
| |
| dirname="${PWD}/${dirname}"
| |
| fi
| |
|
| |
| cd ${dirname}
| |
|
| |
| # Initialize interpreter path
| |
| export PATH="${dirname}:${PATH}"
| |
| export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib:${LD_LIBRARY_PATH}"
| |
|
| |
| # Run Barrier binary
| |
| "${dirname}/${appname}" "$@"
| |
| </syntaxhighlight>
| |
| <br>
| |
| Barrierの起動スクリプトに実行権限を付加する。<br>
| |
| chmod u+x ~/InstallSoftware/Barrier/barrier.sh
| |
| <br>
| |
| Barrierの実行に必要な依存関係のパッケージをインストールする。<br>
| |
| sudo zypper install libdns_sd
| |
| <br>
| |
| Barrierのデスクトップエントリファイルを、~/.local/share/applicationsディレクトリに作成する。<br>
| |
| # ~/.local/share/applications/Barrier.desktop
| |
|
| |
| [Desktop Entry]
| |
| Type=Application
| |
| Name=Barrier <バージョン>
| |
| GenericName=Barrier
| |
| Comment=Keyboard and mouse sharing solution
| |
| Exec=/home/<ユーザ名>/InstallSoftware/Barrier/bin/barrier.sh
| |
| Icon=/home/<ユーザ名>/InstallSoftware/Barrier/barrier
| |
| Terminal=false
| |
| Categories=Utility;
| |
| Keywords=keyboard;mouse;sharing;network;share;
| |
| <br>
| |
| 次に、[https://github.com/debauchee/barrier/releases BarrierのGiHub]にアクセスして、Windows向けのBarrierの実行ファイルをダウンロードする。<br>
| |
| KVMのゲストOSであるWindowsに、Barrierをインストールする。<br>
| |
| <br>
| |
| Barrierのインストール完了後、Barrierの設定を行う。<br>
| |
| <br>
| |
| Windowsにおいて、Barrierを自動起動する場合は以下の手順を行う。<br>
| |
| # まず、[スタート]ボタンを押下して、起動時に実行するソフトウェアを右クリックする。
| |
| # コンテキストメニューから[その他] - [ファイルの場所を開く]を選択して、ソフトウェアのショートカットが保存されているディレクトリを開く。<br>もし、[ファイルの場所を開く]オプションが表示されない場合、そのソフトウェアは起動時に実行できないことを意味する。
| |
| # 次に、[Super]キー + [R]キーを同時押下して、<code>shell:startup</code>と入力、[OK]ボタンを押下する。
| |
| # [スタートアップ]ディレクトリが開くので、ソフトウェアのショートカットが保存されているディレクトリから、ショートカットを[スタートアップ]ディレクトリにコピーする。
| |
| <br>
| |
| | |
| ===== Barrierのアンインストール =====
| |
| * Windows
| |
| *# Barrierをアンインストールする前に、Barrierを終了する。<br><u>Barrierを起動したままでアンインストールした場合、ほとんどのBarrierに関するファイルが残ってしまうため注意すること。</u>
| |
| *# Barrierのサービスを停止するため、管理者権限でPowershellまたはコマンドプロンプトを起動して、<code>net stop</code>コマンドを実行する。<br>これは、<code>sc stop</code>コマンドでは非同期で実行されるため、<code>sc delete</code>コマンドが失敗して、アンインストール後にbarrierd.exeが残るからである。
| |
| *# <code>net stop</code>コマンドを実行する。<br><code>net stop</code>コマンドは、Barrierのサービスが停止するまで同期で実行するため、<code>sc delete</code>コマンドが成功する。
| |
| *# [設定] - [アプリ]画面または[コントロールパネル] - [プログラムと機能]画面から、Barrierをアンインストールする。
| |
| *# 次に、C:\Program Files\BarrierフォルダおよびC:\ProgramData\Barrierフォルダを削除する。
| |
| *# C:\Users\<ユーザ名>\AppData\Local\Barrierディレクトリを削除する。
| |
| *# C:\Users\<ユーザ名>\AppData\Local\Tempディレクトリに存在する"Barrier."から始まるファイル群を削除する。
| |
| *# regeditを実行して、\HKEY_USERS\S-<Windows11の現在のビルド番号>\SOFTWARE\Debaucheeを削除する。
| |
| *# %LocalAppData%\Barrierフォルダ(レジストリ設定、Barrierの設定ファイル、証明書、フィンガープリント)を削除する。
| |
| *# 必要ならば、Barrierに関するファイヤーウォールのルールを削除する。
| |
| *: <br>
| |
| * Linux
| |
| *# まず、Barrierのインストールディレクトリを削除する。
| |
| *#: <code>rm -rf <Barrierのインストールディレクトリ></code>
| |
| *# 次に、Barrierの設定ファイルが存在するディレクトリを削除する。
| |
| *#: <code>rm -rf ~/.local/share/barrier</code>
| |
| *#: <code>rm -rf ~/.config/Debauchee</code>
| |
| <br>
| |
| | |
| ==== SynergyおよびBarrierが接続できない場合 ====
| |
| SUSE以外の各ディストリビューションでは、以下のコマンドを実行することで接続できる可能性がある。<br>
| |
| sudo firewall-cmd --permanent --add-port=24800/tcp
| |
| または
| |
| sudo firewall-cmd --permanent --zone=libvirt --add-port=24800/tcp
| |
|
| |
| sudo firewall-cmd --reload
| |
| <br>
| |
| SUSEの場合および上記のコマンドで接続できない場合は、以下の設定を行う。<br>
| |
| <br>
| |
| まず、/usr/lib/firewalld/services/barrier.xmlファイルを作成する。<br>
| |
| (このファイルは不要の可能性があることに注意すること)<br>
| |
| sudo vi /usr/lib/firewalld/services/barrier.xml
| |
| <br> | | <br> |
| <syntaxhighlight lang="xml">
| | SynergyおよびDeskFlowの概要およびインストール手順を知りたい場合は、[[インストール - マウス・キーボード共有ソフトウェア]]のページを参照すること。<br> |
| <?xml version="1.0" encoding="utf-8"?>
| |
| <service>
| |
| <short>Synergy</short>
| |
| <description>Share a mouse and keyboard on KVM.</description>
| |
| <port protocol="tcp" port="24800"/>
| |
| </service>
| |
| </syntaxhighlight>
| |
| <br> | |
| 次に、/usr/lib/firewalld/zones/libvirt.xmlファイルにおいて、<br>
| |
| <code></zone></code>タグの上部に<code><port port="24800" protocol="tcp"/></code>を追記する。<br>
| |
| sudo nano /usr/lib/firewalld/zones/libvirt.xml
| |
| <br>
| |
| <syntaxhighlight lang="xml">
| |
| <?xml version="1.0" encoding="utf-8"?>
| |
| <zone target="ACCEPT">
| |
|
| |
| <!-- ...略 -->
| |
|
| |
| <port port="24800" protocol="tcp"/>
| |
| </zone>
| |
| </syntaxhighlight>
| |
| <br>
| |
| 最後に、上記の設定を有効にするため、ファイアーウォールを再読み込みまたはPCを再起動する。<br>
| |
| または、PCを再起動する。<br>
| |
| sudo firewall-cmd --reload
| |
| sudo systemctl restart firewalld
| |
| または
| |
| sudo shutdown -r now
| |
| <br><br> | | <br><br> |
|
| |
|
| 1,028行目: |
780行目: |
| その時は、/run/libvirt/network/default.xmlファイルを作成して、以下に示す内容を記述する。(デフォルトネットワークを作成する)<br> | | その時は、/run/libvirt/network/default.xmlファイルを作成して、以下に示す内容を記述する。(デフォルトネットワークを作成する)<br> |
| <br> | | <br> |
| # /run/libvirt/network/default.xmlファイル | | <syntaxhighlight lang="xml"> |
| | <!-- /run/libvirt/network/default.xmlファイル --> |
| | | |
| <networkstatus> | | <networkstatus> |
| 1,050行目: |
803行目: |
| </network> | | </network> |
| </networkstatus> | | </networkstatus> |
| | </syntaxhighlight> |
| <br> | | <br> |
| 次に、そのネットワークをKVMホストに永続的に追加するには、以下のコマンドを実行する。<br> | | 次に、そのネットワークをKVMホストに永続的に追加するには、以下のコマンドを実行する。<br> |
| sudo virsh net-define --file default.xml | | sudo virsh net-define --file default.xml |
| <br> | | <br> |
| | |
| ==== ファイアーウォール ==== | | ==== ファイアーウォール ==== |
| VM起動時に下記のエラーが出力されて、VMが起動できないことがある。<br> | | VM起動時に下記のエラーが出力されて、VMが起動できないことがある。<br> |
| 1,074行目: |
829行目: |
| sudo zypper install dnsmasq | | sudo zypper install dnsmasq |
| <br><br> | | <br><br> |
| | |
| | |
| | {{#seo: |
| | |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |
| | |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |
| | |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |
| | |image=/resources/assets/MochiuLogo_Single_Blue.png |
| | }} |
|
| |
|
| __FORCETOC__ | | __FORCETOC__ |
| [[カテゴリ:RHEL]][[カテゴリ:SUSE]] | | [[カテゴリ:RHEL]][[カテゴリ:SUSE]] |