ピクセラのテレビチューナーボードをPCIパススルーしてみた
ピクセラのXIT-BRD100W というテレビチューナーボードをLinuxのKVM環境でPCIパススルーしたときのメモです。一体どこに需要があるのかという感じですが…
Libvirtの設定
まずはLinux上で lspci -nn
を実行して、デバイスの情報を調べます。自分の環境では以下のようになっていました。
06:00.0 Multimedia controller [0480]: Fujitsu Limited. Device [10cf:2038]
06:00.0なのでLibvirtの設定に下記の記述を追加します。
<hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </hostdev>
あとはKVM環境のWindows上で説明書に従ってドライバやアプリをインストールします。
アプリが落ちたり録画に失敗したりする場合
上記で普通にテレビを見たり録画したりできるかと思っていたのですが、たまにアプリが落ちたり録画に失敗したりしていました。再現性もなく困っていたのですが、 dmesg
してみると下記のようなエラーがたくさんログに残っていました。
pcieport 0000:00:1c.7: AER: Corrected error received: 0000:06:00.0 vfio-pci 0000:06:00.0: AER: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Transmitter ID) vfio-pci 0000:06:00.0: AER: device [10cf:2038] error status/mask=00001000/00002000 vfio-pci 0000:06:00.0: AER: [12] Timeout
ググってみたところ、こういうときは pci=nommconf
というカーネルオプションを追加すればいいらしいので、/boot/loader/entries/
以下のファイルに下記を追加してLinuxを再起動します。
options pci=nommconf