ProxmoxVE4でPCIパススルーを行ってみた

以前、Proxmox VE 3.1でPCIパススルーを行っているが、それと同様の処理をProxmox VE 4でも行ってみる。
前回と同じく、まずは以下のコマンドでgrubを編集し、Intel VT-dを有効にする。

sed -i '/GRUB_CMDLINE_LINUX_DEFAULT/cGRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt intel_iommu=on vfio_iommu_type1.allow_unsafe_interrupts=1"' /etc/default/grub
update-grub

再起動後、以下のコマンドでInter VT-dが有効になっている事(「IOMMU enabled」という記述があること)を確認する。

dmesg | grep -e DMAR -e IOMMU

上記が確認出来たら、仮想マシンの設定ファイルを編集しパススルー設定を行う。
まず、lspciコマンドで対象のPCIバスを確認する。出力の一番左にある「03:00.0」が指定するBUSにあたる。

lspci | grep Multimedia

root@BS-PHY-PROX-01:~# lspci | grep Multimedia
03:00.0 Multimedia controller: Altera Corporation Device 4c15 (rev 01)

次に、この値をパススルーする仮想マシンの設定ファイル(基本的には「/etc/pve/nodes/PROXMOXホスト名/qemu-server/仮想マシンID.conf」)に、以下の内容を追記する。

hostpci0: PCIのBUS(今回の場合「03:00.0」)

これで、後は対象の仮想マシンを起動するだけだ。
起動後、仮想マシン上でlspciを実行した結果がこちら。

基本的には、ProxmoxVE3.1と変わりないようだ。