るいすときのこの物語

オタクエンジニアの雑記

【覚書】KVM / Proxmox で PCIパススルー がうまく動かない時に試すこと


仮想サーバーで録画鯖を建てるなら必ず必須なパススルー。 前回の記事でPCIパススルーに必要なことを書いたので覚書として方法でも書いてみる。

 

[bash]

/etc/default/grub を弄る。

vim /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"

 

grubの変更を適用する

update-grub

 

再起動する

reboot

 

下記コマンドでIOMMUが有効になってるか確認する

dmesg | grep -e DMAR -e IOMMU

Intel-IOMMU: enabled

↑のように表示されればおk

 

パススルーしたいPCIデバイスの識別番号を確認する

lspci

08:00.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01)

 

VM設定ファイルにパススルーの記述をする

vim /etc/pve/nodes/proxmox/qemu-server/100.conf

hostpci0: 08:00.0

 

起動してみる

[/bash]

 

もしこれでassign出来ませんとか、パーミッションがないよとか言われたら

[bash]

新規にファイルを作成する

vim /etc/modprobe.d/kvm.conf

options kvm allow_unsafe_assigned_interrupts=1 [/bash]

これでダメだったら知りません。諦めてください。

 

allow_unsafe_assigned_interrputs が何か調べてもよく分からない KVMのPCIパススルーではPCIデバイスの再マッピングを必要としているけど、ハードウェア(プラットフォーム)がサポートしない場合は KVMが必要としている再マッピングチェック機能を無視出来る的な・・・(?) 調べてみるとVT(VT-d)の中の一つの機能でサポートされてるっぽいんだけどなぁ・・・よく分からないです!