SPICEは仮想マシン上のディスプレイと通信するためのプロトコルです。SPICEプロトコルに対応したクライアントをいくつか紹介しましょう。
SPICEを有効化した仮想マシンを起動する
SPICEは仮想マシン上のディスプレイ・
- ※1
- SPICEにおいてQXLが必須というわけではありません。PCIパススルーなどで実デバイスを仮想マシンに見せる場合は,
QXLを使わなくてもSPICEプロトコルを利用可能です。また, 仕組み上はQEMUである必要もなく, 他の仮想マシンシステムでもSPICEサーバー (libspice-server) を利用するよう修正すれば, SPICEに対応することは可能なはずです。
SPICEでは単に画面のやりとりだけでなく,
まずはSPICEに対応したQEMUインスタンスを構築しましょう。といってもQEMUコマンドに渡すオプションを変えるだけで,
リモート側にQEMUを動かすための諸々をインストールしておきます。
$ sudo apt install qemu-system-x86 qemu-utils $ sudo adduser $USER kvm
CPUの仮想化支援機構を使いたいなら,
新規にイメージを構築するなら,
$ qemu-img create -f qcow2 ubuntu.qcow2 20G
UEFI対応のイメージにしたいなら,
$ sudo apt install ovmf $ cp /usr/share/OVMF/OVMF_VARS.fd vars.fd
Ubuntuをインストールするなら,
$ qemu-system-x86_64 \
-enable-kvm -M q35 -smp 2 -m 4G \
-drive format=qcow2,file=ubuntu.qcow2,if=virtio \
-net nic,model=virtio \
-net user,hostfwd=tcp::2222-:22 \
-machine vmport=off \
-vga qxl \
-spice port=5900,disable-ticketing \
-boot once=d -no-reboot -cdrom ubuntu-19.10-desktop-amd64.isoUEFIに対応させるなら次のように実行します。
$ qemu-system-x86_64 \
-enable-kvm -M q35 -smp 2 -m 4G \
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=vars.fd \
-drive format=qcow2,file=ubuntu.qcow2,if=virtio \
-net nic,model=virtio \
-net user,hostfwd=tcp::2222-:22 \
-machine vmport=off \
-vga qxl \
-spice port=5900,disable-ticketing \
-boot once=d -no-reboot -cdrom ubuntu-19.10-desktop-amd64.iso第592回と異なるのは次の4点です。
- 「
-machine vmport=off」が追加された - 「
-vga virtio」の代わりに 「 -vga qxl」になった - 「
-display gtk,grab-on-hover=on,gl=on」がなくなった - 「
-spice port=5900,disable-ticketing」が追加された
最初のvmport=offはVMWareのI/
QXLはSPICE用のグラフィックデバイスです。これとSPICEを組み合わせることで,
今回はリモートデスクトップを前提としているため,-display」
最後の-spice」port=5900」addr=」
「disable-ticketing」disable-ticketing」password=パスワード」
アドレスや認証関連はWAN経由でSPICEを使いたい場合に,
仮想マシンが立ち上がったので,