LoginSignup
3
3

More than 5 years have passed since last update.

XenServer 7.0 で PCI-Passthrough

Last updated at Posted at 2016-08-10

はじめに

基本的にはPCI Passthrough in Xenserver 7 “Dundee”の補足というか、そんな感じです。
出てくる資料が少ない上に6系のが多かったので個人的なメモを兼ねて。

以下環境

  • XenServer 7.0.0を仕様
    • XS7004適用済み
  • sshでXenServerに接続して作業します
  • 間違いとかツッコミ歓迎
  • 自己責任でお願いします
  • オタクはすぐに鯖にWintermuteとかつける

目的のハードウェアを見つける

lspci

いろいろ出てくるだろうけれどgrepなりで目的のデバイスを引っ掛ける

# lspci | grep VGA
01:03.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] ES1000 (rev 02)

01:03.0 の部分があとで必要になるのでメモしておく
元の記事でB:D.fと読んでいるのでここでもそう呼びます。

VMにパラメータを渡す

VMの一覧とUUID取得

xe vm-list

こんな感じでリストが取れるので必要なVMのUUIDをメモ
今回はWS2012R2を使ってみる

uuid ( RO)           : d436e5d4-964c-47b1-a8b7-657f6f1cb1e3
     name-label ( RW): Control domain on host: Wintermute
    power-state ( RO): running


uuid ( RO)           : 22eb15fb-169c-ec9b-0ad4-231dc7210376
     name-label ( RW): Windows Server 2012 R2
    power-state ( RO): running


uuid ( RO)           : 5bd4e662-5b08-bd5b-896f-bc39c1f4248c
     name-label ( RW): XOA 4.15 Free
    power-state ( RO): halted

パラメータをセット 以下が書式

xe vm-param-set other-config:pci=0/0000:[B:D.f] uuid=[対象のUUID]

実際に渡してみる

xe vm-param-set other-config:pci=0/0000:01:03.0 uuid=22eb15fb-169c-ec9b-0ad4-231dc7210376

正常に通ると何も帰ってこないのでパラメータを取得してみる

xe vm-param-list uuid=22eb15fb-169c-ec9b-0ad4-231dc7210376 | grep pci

いろいろ帰ってくるけどこんなのが書かれていればOK

other-config (MRW): vgpu_pci: ; pci-0/0000:01:03.0: ;

PassthroughできるようにXenServerに手を入れる

/boot/grub/grub.cfgに手を入れて上げる必要があるので適当なエディタで編集
EFIな人は

 /boot/efi/EFI/xenserver/grub.cfg

らしいよ、うちはEFIで起動していないのでそんなファイルはなかった。

 vi /boot/grub/grub.cfg

自分の立ち上げている環境のパラメータを編集
まぁ他のはSafe Modeとか書かれてるし無印を使っている人が多いでしょう、多分。
module2の場所に
xen-pciback.hide=(B:D.f) を追記 複数ある場合は(B:D.f)を連続して書く

 menuentry 'XenServer' {
        search --label --set root root-cafyeg
        multiboot2 /boot/xen.gz dom0_mem=2048M,max:2048M watchdog ucode=scan dom0_max_vcpus=8 crashkernel=128M@256M vga=mode-0x0311
        module2 /boot/vmlinuz-3.10-xen root=LABEL=root-cafyeg ro nolvm hpet=disable xencons=hvc console=hvc0 quiet vga=785 splash plymouth.ignore-serial-consoles xen-pciback.hide=(0e:00.0)(01:03.0)
        module2 /boot/initrd-3.10-xen.img
}

XenServerの再起動

XenCenterからでもなんでもお好みの方法でXenServerを再起動

reboot

再起動後VMを起動してPassthroughされていればOK されていなかったらパラメータの名前とかを要チェック

Passthroughしたくなくなった時

xe vm-param-remove param-name=other-config param-key=pci uuid=[UUID]

あとは追加時と同じように確認して消えてればOK

おわり

今回オンボードなグラフィックチップをPassthroughさせたけど効果があるのかは謎、なぜなら元からWindowsに突っ込むと「Microsoft 基本ディスプレイ アダプター」と言われてしまうため。
ただまぁ、WS2012R2とか入れた時にCPUが常時50%食われている問題(レンダリング周りでソフトウェアが頑張ってた?)が解決されたのでまぁいいかといった感じ。XenCenterのコンソールはそのまま使えている。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3