□Fedora18のQEMU-KVMでPCIパススルーではまった
先日、『□Fedora18+QEMU-KVMでのUSBパススルー』でWEBCAMのパススルーが
うまくいったあと、何かの拍子にホストOS側のIntel HD AudioのPCIパススルー
もうまくいったので、よかったよかったと思っていたのだけど、先日yum update
したらlibvirtとqemu周りをバージョンアップされて、PCIパススルーができなく
なってしまった。
もう、今まで何度か再起動しても動いていたものが動かなくなってしまったので
困り果てること数時間。ふとdmesgを見てみたら
> [ 435.135359] pci-stub 0000:00:1b.0: claimed by stub
> [ 435.210033] device vnet0 entered promiscuous mode
> [ 435.215064] br0: port 2(vnet0) entered forwarding state
> [ 435.215096] br0: port 2(vnet0) entered forwarding state
> [ 435.868082] kvm_iommu_map_guest: No interrupt remapping support, disallowing device assignment. Re-enble with “allow_unsafe_assigned_interrupts=1” module option.
> [ 435.869284] br0: port 2(vnet0) entered disabled state
> [ 435.870192] device vnet0 left promiscuous mode
> [ 435.870217] br0: port 2(vnet0) entered disabled state
というのがVMの起動のたびにでてきてた。
> allow_unsafe_assigned_interrupts=1
ってどこにいれたらいいの? qemu.confではないみたい…あ、grub?と思いつつ
何度も再起動とVMの起動を繰り返すけど違った。
で、ぐるぐるうろうろしていたら
http://forum.proxmox.com/threads/7534-PCI-Passthrough-No-interrupt-remapping-support
でモジュールのオプションに追加しろ、となっていた。
cat > /etc/modprobe.d/kvm_iommu_map_guest.conf
options kvm allow_unsafe_assigned_interrupts=1
で、再起動してVM起動したら…いけたー!!
もう、このネタは最初にいろいろ試してできてなかったときにもやったけど、
関係なかったのではずしたのに、またやれとでてきた。
頭にきたので夜中なのにもかかわらず一通りのオプションの確認をした。
カーネルオプション(grub)での
> pci=resource_alignment=00:1b.0
は要らない。
moduleのブラックリスト
blacklist snd_hda_intel
blacklist snd-usb-audio
blacklist uvcvideo
これも要らない。
要るのは、
・カーネルオプション(grub)での
intel_iommu=on
・qemu.confでの
user=”root”
group=”root”
clear_emulator_capabilities = 0
cgroup_device_acl = [
“/dev/null”, “/dev/full”, “/dev/zero”,
“/dev/random”, “/dev/urandom”,
“/dev/ptmx”, “/dev/kvm”, “/dev/kqemu”,
“/dev/rtc”,”/dev/hpet”,
“/dev/bus/usb/002/002”,
“/dev/bus/usb/002/003”,
“/dev/bus/usb/006/002”
]
くらいか。clear_emulator_capabilities = 0も要らないかもなー。
ま、もっともこの辺の設定もまたバージョンアップしたら変わるかも…ひぃぃぃ