お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2017-08-06 01:40:31

takumi5417
新しいメンバ
登録日: 2017-08-05

ubuntu14.04上のKVMからGPUパススルーを行おうとしたがディスプレイに信号が出力されない

海外サイト(https://www.pugetsystems.com/labs/articles/Multiheaded-NVIDIA-Gaming-using-Ubuntu-14-04-KVM-585/)
をgoogle翻訳を参考にKVMでのGPUパススルーをセットアップしていますが、
仮想マシンを立ち上げることは出来たもののウィンドウは真っ暗で、
パススルーに設定したGPUと接続しているモニターには信号が来ておらず。
何回かやり直したり自分なりに調べたりしてみましたが
解決できないため、質問させていただきました。
VT-D や VT-XはUEFIを見た感じ有効になっているかと思うのですが

ubuntuバージョン 14.04LTS

PCスペック

MB ASRock  Fatal1ty H87 Performance
CPU Core i7 4770
GPU MSI GTX950
RAM DDR3 20GB (8GBx2 4GBx2)

仮想マシン実行用スクリプトファイル(参考サイト元に書かれていたものを少し変更したものです)

コード:

#!/bin/bash

configfile=/etc/vfio-pci#.cfg

vfiobind() {
    dev="$1"
        vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
        device=$(cat /sys/bus/pci/devices/$dev/device)
        if [ -e /sys/bus/pci/devices/$dev/driver ]; then
                echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
        fi
        echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id

}

modprobe vfio-pci

cat $configfile | while read line;do
    echo $line | grep ^# >/dev/null 2>&1 && continue
        vfiobind $line
done

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 8096 -cpu host \
-smp 4,sockets=1,cores=4,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1,bus=root.1,addr=00.1 \
-drive file=/home/takumi/KVM_VM/windows10/windows10.img,id=disk,format=raw -device ide-hd,bus=ide.0,drive=disk 

-boot menu=on

exit 0

この動画と似たような環境をつくりたいのですが https://youtu.be/8FthrTZtlGQ

自分はLinuxやこのようなフォーラム利用については初心者であり
また足りない情報などがあるかと思いますが、その際はご指摘いただければ幸いです。

オフライン

 

#2 2017-08-06 14:07:26

takumi5417
新しいメンバ
登録日: 2017-08-05

Re: ubuntu14.04上のKVMからGPUパススルーを行おうとしたがディスプレイに信号が出力されない

GPUパススルーに関する問題はvirt-managerからパススルーすることで解決いたしました。
ですが今度はNVIDIAドライバーがKVMで動作しているのを検知し、
Error 43 を吐いてドライバーが動作してくれません。
調べたところ、vendor_idを偽装しドライバーを騙す必要があるとのことですが
今度はvendor_idの偽装方法が分かりません。
方法をご存知な方は回答お願いいたします。

オフライン

 

#3 2017-08-06 16:07:37

takumi5417
新しいメンバ
登録日: 2017-08-05

Re: ubuntu14.04上のKVMからGPUパススルーを行おうとしたがディスプレイに信号が出力されない

このサイト(https://www.redhat.com/archives/libvir-list/2014-August/msg00512.html)を参考に
sudo virsh edit 0ef7a091-78b9-47a1-64fa-9f5067b7017c にてVMのXMLファイル内の
<features>タグ内に
 

コード:

<kvm>
              <kvm state='off'>
            </kvm>
            <hyperv>
              <relaxed state='on'>
              ...
            </hyperv>

を書き込み保存しようとしたところ
 

コード:

エラー: (domain_definition):22: Opening and ending tag mismatch: relaxed line 20 and hyperv
     </hyperv>
--------------^
失敗しました。 再試行しますか ? [y,n,f,?]:

と表示され保存されません。解決策をご存じの方は
回答お願いいたします。

オフライン

 

#4 2017-08-06 19:36:19

takumi5417
新しいメンバ
登録日: 2017-08-05

Re: ubuntu14.04上のKVMからGPUパススルーを行おうとしたがディスプレイに信号が出力されない

調べた結果自分の環境のソフトウェアバージョンが古いことが判明しました。

コード:

takumi@takumi-desktop:~$ virsh version
コンパイル時に使用したライブラリ: libvirt 1.2.2
使用中のライブラリ: libvirt 1.2.2
使用中の API: QEMU 1.2.2
実行中のハイパーバイザー: QEMU 2.9.91

QEMMUはなんとかソースからビルド方法を調べ、アップデート出来ましたが
その他のソフトウェに関してはビルド方法が不明なため
自力で解決できなかった場合別でポストを建てるかもしれません。
その際はよろしくお願いいたします

オフライン

 

Board footer

Powered by FluxBB