KVMスイッチでArch LinuxとWindowsを切り替えられる環境を整えた

公開日:2019-03-26
最終更新:2019-03-28

タイトルのKVMはKernel-based Virtual Machineの方じゃなくてKeyboard, Video (Visual unit), Mouse スイッチの方です。

ふだんはWindowsを使っている人がいろいろつらくなったので、意を決して実機にArch Linuxを入れて開発環境を移行した日記です。

前日譚

  • Windows で開発は辛い
  • でもゲームをするのでWindowsの環境を潰したくはない
  • デュアルブートもすぐに切り替えられないから嫌だ
  • 仮想環境にLinuxを入れよう
  • VMware Workstation PlayerにFedoraを入れる
    • GNOMEが辛くてやめてしまった
    • 必要なアプリが起動しなくて心が折れた
    • Archにdeepin入れてみたら重かった
  • Hyper-VにArch Linuxを入れる
    • やたらとXが重い、30fpsくらいしかでない
    • Ubuntuを入れたときも重かったのでHyper-VはGUIで使うのは微妙だと判断した
  • 仮想環境ではだめか

したいこと

  • Linuxでの開発環境とWindowsの遊び環境をすぐ切り替えて使えるようにする
  • そのさい同じキーボード、同じマウス、同じディスプレイを使うようにする
  • 1ボタンで環境を切り替えられるととても良い

できたこと

  • 60HzでArch Linuxが動くようになった
  • ボタン1つでサブディスプレイとマウスとキーボードを切り替えられるようになった
    • メインディスプレイは手動で入力切替

ハードウェア

Windows

  • MB: Asus - Z170 PRO GAMING
    • 出力: DisplayPort x1, HDMI x1
  • CPU: Intel - Core i7-6700K
  • GPU: EVGA - GeForce GTX 1080
    • 出力: DisplayPort x3, HDMI x1
      • このHDMIはViveが刺さってるので実質的につかえない

Arch Linux

  • MB: MSI - Z68A-G43
    • 出力: DVI x1, VGA x1
  • CPU: Intel - Core i5-2500K
  • GPU: Asus - GeForce GT 710
    • 出力: DVI-DL x1, HDMI x1, VGA x1

ディスプレイ

縦置きサブディスプレイ

  • Dell - U2715H
    • WQHD(2560x1440)
    • 60Hz
    • 入力: DisplayPort x2, HDMI x1

メインディスプレイ

  • Asus - PG279Q
    • WQHD(2560x1440)
    • 165Hz
    • 入力: DisplayPort x1, HDMI x1

したこと

余ってるパーツと+αでPCを組む

2017年にPCを新調して余ったパーツを使ってFedora Serverを立てていたが、ルーター周りがうまく行かなくて自宅鯖はとして使うには厳しそうだったのでこれにArch Linuxを入れることにした

Arch Linuxを入れる

ここはあまり本質ではないので手短に

インストールガイドに沿ってインストールをしたあと、xorg-server, plasma, sddmあたりを入れてKDEでデスクトップ環境を整えた。

インストールガイド - ArchWiki

インストール後の操作はHackMDにまとめたりまとめなかったりした。

https://hackmd.io/-r7yF0sASCes5FSHNCVWWg

GPUをつける

もともとサーバー機なのでGPUをつけていなかった。

Sandy Bridge(第2世代)についている内蔵グラフィックではWQHD 60Hzの2画面出力は不可能なのでGPUをつける必要があった。

第 2 世代および第 3 世代インテル® Core™ プロセッサーの場合、サポートされている最大解像度は次のとおりです。

DisplayPort 1.1 = 2560x1600 (60 Hz)
HDMI 1.4 = 1920x1200 (60 Hz)
DVI (シングルリンク) = 1920x1200 (60 Hz)
VGA = 2048x1536 (75 Hz)

インテル® グラフィックス・テクノロジーが対応する最大解像度を確認する

このての「ゲームはしないがとりあえず画面を増やしたい需要」には、Geforce GT 710やRadeon HD 6450が人気のようだった。

この2つはインターフェイスもスペックもだいたい同じだが、なぜかGT 710にDisplayPortが付いていると勘違いして購入してしまった。実際にはどちらもHDMI 1.4とDVI-DL、VGAである。

ので今回はGT 710を取り付けた。

KVMでWindowsとArchを切り替えれるようにする

これでハードウェアが別のArch LinuxとWindowsができた。このままだと表示と入力を切り替えるのにケーブルを抜いたり指したりしなくてはいけなくて大変めんどくさいのでなんとかする。

現状はこう

KVMを使ってサブディスプレイを切り替えるようにするとこうなる。

カオス

KVM刺さっているキーボードやマウス、ハブとして機能するディスプレイにUSBデバイスを挿すと、現在表示しているどちらかのPCに信号が向かう。

KVMはこれを使用した

TESmart - HDMI KVM スイッチ PC切替器 2入力1出力 HDMI KVMセレクター 2x1 HDMI KVM Switch 4k60hz、HDCP 2.2、HDMI2.0、HDR10、音声分離対応 IRリモコン付、USBキーボード・マウス、USB2.0、2ポート ホットキー切り替え TESmart® (グレー)

おそらく今変える最も安い HDMI2.0対応 のKVM。おそらく中華製。現状WQHD 60HzなのでHDMI2.0でなくても帯域としては使えると思うが、そのうち4Kディスプレイでも買ったら対応してないと困るのでHDMI2.0対応のものにした。
(いわゆる4K対応!と謳っているものは4K30Hzしか対応していないものも多い。)

メインディスプレイはHDMIとDPの入力を切り替えて使用するようにする。ディスプレイのポチポチを触らなくてはいけないのは面倒だが、WQHD 165Hzの帯域に耐えられるDisplayPortの切替器はアホみたいに高いのと、こちらのディスプレイは横なので比較的操作しやすいためこれで妥協することにした。
調べたときはKVMスイッチを探していたので切替器だけで調べれば安いのもあるかもしれない。

問題点・懸念点

Arch Linuxの方につけたGPU、GT 710は出力が足りないため後から購入したものだが買ったときはDisplayPortとHDMIが付いていると思いこんでいた。そのためDP-HDMIの変換を通せば165Hzとはいかなくとも60Hzは上回るリフレッシュレートでぬるぬるとArch Linuxを利用できると思っていたが実際はDVIだった。

DVIではDual LinkでもWQHDは60Hzが限界で、せっかく高いディスプレイを使っているのに(165Hzに比べると)カクカクしている少し悲しい結果になった。WindowsではDisplayPortを直接つないでいるので165Hzでるので大きな問題ではないのだが。

KVMの使い心地

ボタン1つ(とメインディスプレイポチポチ)で座ったまま環境が切り替えられるのは悪くない。

KVMを通すことでキーボードやマウスに違和感が出るのかは心配だったが今の所全く遅延は感じないので、ゲームでも問題なく使えそうだと感じた。

(このKVMにはキーボードとマウスを挿すポートがあるが、そこをつかうとキーエミュレーションが入るので遅延が発生する。どうしてもキーボードの入力 ( ScrLock ScrLock PageDown ) で切り替えたいのでなければ1つのパススルーポートにハブを挿して使用したほうが良い )

今回は余っているPCがあったので切り替える形にしたが、一度に1つのPCしか使わないのに2台用意するのはアホらしいので余っていないなら素直にデュアルブートにしたほうがいいと思った。デュアルブートなら面倒な配線も新たにHDMIケーブルを3個買うことも中古でGPUを買ってくる必要も8000円するKVMを買う必要もない。

ただ、ハードウェアが物理的に別なので、例えばやらかしてブートローダーふっとばしたりしても別のPCの方に影響はないのも安心感はある。

WindowsでDell Display Managerがつかえない

Dellのディスプレイでのみ使えるDell Display Managerというウィンドウ位置を好きに決めて使えるソフトがある。

これがKVMを通した環境だとDellのディスプレイだと認識されず、つかえなかった。

普段からMastodonのウインドウをピッタリ並べておきたいので少し困った。

フリーソフトで代替を探したが、Fit WinやAutoSizerはWindows 10のウィンドウ幅に対応していないようで微妙に隙間が空いてしまった。

Fit Win - ウィンドウを移動・サイズ変更するフリーソフト

Automatically Resize Your Programs - AutoSizer

MaxToならできそうだがシェアウェアなので検討中

Home Page - MaxTo

記事が少しでもいいなと思ったらクラップを送ってみよう!
34
+1

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする