けさらんぱの自由帳

とあるFF14プレイヤーがFF14のこととか関係ないことを書いていく予定のブログです。記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

ピクセラのテレビチューナーボードをPCIパススルーしてみた

ピクセラのXIT-BRD100W というテレビチューナーボードをLinuxKVM環境で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

記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。