Ubuntuの下から、Xenでビデオカードを転送する

背景



ビデオカードの仮想マシンへの正常な転送に関する記事を読んだ後、ビデオアダプターが2つあるときに同じことをすることにしました。 2番目のアダプターが登場し、 タンバリンビデオカードで遊ぶことにした場合、さまざまなドキュメントを調べるのに半日かかりましたが、最終的にはすべてが一緒に成長したので、それを繰り返す方法と起こったことを学ぶことに興味がある人は誰でも猫に招待されます。



ハードウェア



ASRock 990FX Extreme3​​マザーボード

プロセッサーAMD FX-8120 8x4.0 GHz

RAM 2x4 GB 1600 MHz

ビデオカードGigabyte Radeon HD 5450 Silent 1024Mb 64bit

HIS Radeon HD 6670 1GB GDDR5グラフィックスカード

メインシステム用のSATA3 SSD

ビデオカードを転送するマシン用のUSB 3.0 HDD



USB HDDは空き容量が多いため、USB 3.0の速度で十分です。



ソフトウェア部



Ubuntu 12.10 x64メインシステム(3.6-rc1コア)

Windows 7/8 x64で転送します-関係ありません。両方がチェックされました。

仮想化は、リポジトリにある最新のXen 4.1によって提供されます(今朝は、起動時に絶望的にクラッシュする前に、BulldozerアーキテクチャのプロセッサでXenを実行できるようにするアップデートが来ました)。



準備する



私自身は最も単純な例が好きなので、非常に簡潔で簡単になります。

もう1つの注意-この命令はAMDプラットフォームに適しています。Intelでは、対応するハードウェアがないため、ハードウェアの仮想化にいくつかの違いがあります-確認できません。



BIOSを調べる必要があります。AMD89xおよびAMD 99xチップセットは、 IOMMUをサポートする必要があります。BIOSにそのようなオプションがあり、無効になっている場合は、必ず有効にしてください。



次に、Xenと必要なコンポーネントをインストールします。



$ sudo apt-get install xen-hypervisor-4.1-amd64 xen-tools xenwatch qemu-utils qemu-common
      
      





それで十分でしょう。

構成ファイル/etc/xen/xend-config.sxpを調整して、ネットワークが機能するようにします。 行のコメントを解除します。



  #(network-script network-bridge) 


次に、カーネルブートコマンドを微調整する必要があります。 / etc / default / grubを開き、 GRUB_CMDLINE_LINUXを探して、見てみましょう:



GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush xen-pciback.hide=(04:00.0)(04:00.1)"





したがって、LOOPデバイスの数を増やし、AMDのIOMMUサポートを有効にし、2番目のビデオカードを無効にして、Windows用に予約します。



グラフィックカードの詳細をご覧ください。 どのカードが挿入されているか、たとえば、どのように見えるかを確認する必要があります。



非表示のテキスト
  $ lspci
 00:00.0ホストブリッジ:Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCIブリッジ(外部gfx0ポートB)(rev 02)
 00:00.2 IOMMU:Advanced Micro Devices [AMD] nee ATI RD990 I / Oメモリ管理ユニット(IOMMU)
 00:02.0 PCIブリッジ:Advanced Micro Devices [AMD]ニーATI RD890 PCI to PCIブリッジ(PCI Express gppポートB)
 00:05.0 PCIブリッジ:Advanced Micro Devices [AMD]ニーATI RD890 PCI to PCIブリッジ(PCI Express gppポートE)
 00:0a.0 PCIブリッジ:Advanced Micro Devices [AMD]ニーATI RD890 PCI to PCIブリッジ(外部gfx1ポートA)
 00:0b.0 PCIブリッジ:Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCIブリッジ(NB-SBリンク)
 00:11.0 SATAコントローラー:Advanced Micro Devices [AMD]ニーATI SB7x0 / SB8x0 / SB9x0 SATAコントローラー[AHCIモード](rev 40)
 00:12.0 USBコントローラー:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 USB OHCI0コントローラー
 00:12.2 USBコントローラー:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 USB EHCIコントローラー
 00:13.0 USBコントローラー:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 USB OHCI0コントローラー
 00:13.2 USBコントローラー:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 USB EHCIコントローラー
 00:14.0 SMBus:Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller(rev 42)
 00:14.1 IDEインターフェイス:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 IDE Con​​troller(rev 40)
 00:14.2オーディオデバイス:Advanced Micro Devices [AMD] nee ATI SBx00 Azalia(Intel HDA)(rev 40)
 00:14.3 ISAブリッジ:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 LPCホストコントローラー(rev 40)
 00:14.4 PCIブリッジ:Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge(rev 40)
 00:14.5 USBコントローラー:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 USB OHCI2コントローラー
 00:16.0 USBコントローラー:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 USB OHCI0コントローラー
 00:16.2 USBコントローラー:Advanced Micro Devices [AMD] nee ATI SB7x0 / SB8x0 / SB9x0 USB EHCIコントローラー
 00:18.0ホストブリッジ:Advanced Micro Devices [AMD] Family 15h Processor Function 0
 00:18.1ホストブリッジ:Advanced Micro Devices [AMD] Family 15h Processor Function 1
 00:18.2ホストブリッジ:Advanced Micro Devices [AMD] Family 15h Processor Function 2
 00:18.3ホストブリッジ:Advanced Micro Devices [AMD] Family 15h Processor Function 3
 00:18.4ホストブリッジ:Advanced Micro Devices [AMD] Family 15h Processor Function 4
 00:18.5ホストブリッジ:Advanced Micro Devices [AMD] Family 15h Processor Function 5
 01:00.0 VGA互換コントローラー:Advanced Micro Devices [AMD]ニーATI Cedar PRO [Radeon HD 5450 / Radeon HD 6350]
 01:00.1オーディオデバイス:Advanced Micro Devices [AMD]ニーATIシーダーHDMIオーディオ[Radeon HD 5400/6300シリーズ]
 02:00.0 USBコントローラー:Etron Technology、Inc.  EJ168 USB 3.0ホストコントローラー(rev 01)
 03:00.0イーサネットコントローラー:Broadcom Corporation NetLink BCM57781 Gigabit Ethernet PCIe(rev 10)
 04:00.0 VGA互換コントローラー:Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6670]
 04:00.1オーディオデバイス:Advanced Micro Devices [AMD]ニーATIタークス/ウィスラーHDMIオーディオ[Radeon HD 6000シリーズ] 


次の行に興味があります。



  01:00.0 VGA互換コントローラー:Advanced Micro Devices [AMD]ニーATI Cedar PRO [Radeon HD 5450 / Radeon HD 6350]
 01:00.1オーディオデバイス:Advanced Micro Devices [AMD]ニーATIシーダーHDMIオーディオ[Radeon HD 5400/6300シリーズ]
 ...
 04:00.0 VGA互換コントローラー:Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6670]
 04:00.1オーディオデバイス:Advanced Micro Devices [AMD]ニーATIタークス/ウィスラーHDMIオーディオ[Radeon HD 6000シリーズ] 


最初の2つはUbuntuを離れるグラフィックカードに対応し、最後の2つはWindowsを提供します。 2-ビデオカードは同時にビデオおよびオーディオデバイスとして表示されるため、それらを一緒に装着/持ち運ぶ必要があります。 行の先頭には、カーネルブートオプションに入力する数字があります。 彼らはUbuntuから2番目のビデオカードを隠します。



実際、起動時に「Xen 4.1-amd64」サブセクションからカーネルを選択して正常に起動した場合、準備は完了です。 サブセクションをリストの最初にする場合は、ファイルの名前を変更します



  /etc/grub.d/20_linux_xen 
  /etc/grub.d/09_linux_xen 


仮想マシンをインストールして構成する



インストールするには、ハードディスクイメージが必要です。 私たちは作成します:



 $ dd if=/dev/zero of=/media/Windows/HDD bs=1G count=90
      
      





仮想マシンが配置される/メディア/ Windowsディレクトリに90 GBのディスクファイルが作成されます。



同じディレクトリで、次の内容のconfig.cfg構成ファイルを作成します。

カーネル= "/usr/lib/xen-4.1/boot/hvmloader"

ビルダー= 'hvm'

vif = ['type = ioemu、bridge = eth0、ip = assigned-ip、ma​​c = 22:61:34:00:00:01']

アドレス= 'assigned-ip'

ネットマスク= '255.255.255.XXX'

メモリ= 1024

shadow_memory = 8

name = "windows"

cdrom = 'ファイル:/media/Archive/Windows.iso'

disk = ['file:/ media / Windows / HDD、hdc、w'、 'file:/media/Archive/Windows.iso,hdb:cdrom、r']

device_model = '/usr/lib/xen-4.1/bin/qemu-dm'



#フロッピー(a)、ハードディスク©またはCD-ROM(d)で起動

#デフォルト:ハードディスク、CD-ROM、フロッピー

####ブートは、cまたはcdに変更した後にWindowsをインストールするにはdcでなければなりません

boot = "dc"

#boot = "c"



vnc = 1#VNCを使用してウィンドウをインソールおよびセットアップします。その後、これを無効にできます。

vncconsole = 0

vncpasswd = ''

vncviewer = 1

vncunused = 1

vnclisten = '127.0.0.1'

vcpus = 2

stdvga = 0

シリアル= 'pty'

usbdevice = 'tablet'

on_reboot = 'restart'

on_crash = 'restart'



#pci = ['04:00.0 '、'04:00.1']



/media/Archive/Windows.iso-WindowsインストールDVDイメージへのパス

vnclisten = '127.0.0.1'-仮想マシンにアクセスするローカルコンピューターをリッスンします

メモリ= 1024-マシンのランダムアクセスメモリ(MB)

vcpus = 2-プロセッサコアの数

name = "windows" -仮想マシンのいわゆるドメインの名前。これにより、それを他のドメインと区別することができます。

pci = ['04:00.0 '、'04:00.1'] -予約済みのビデオカードを接続しますが、現時点では行をコメントアウトしたままにします



何かを得たら走ろうとする。



 $ sudo xm create /media/Windows/config.cfg Using config file "/media/Windows/config.cfg". Started domain windows (id=12)
      
      





結論も同様でなければなりません。 ハイパーバイザーの下で実行されているすべてのオペレーティングシステムを見てみましょう。



  $ sudo xmリスト
名前ID Mem VCPU状態時間(秒)
ドメイン-0 0 7007 8 r ----- 6881.3
窓12 1024 2 -b ---- 32.1


Ubuntuの最近のバージョンではデフォルトであるReminaなどを介して、VNCを介してマシンに接続します。







将来の時間を節約するために保存します。

接続した直後に、Windowsインストーラーが表示されます。 再起動後、Reminaは接続を切断する場合があります-再接続するだけです。 インストール後(すべては簡単です)、ビデオカード用の最新ドライバーをインストールし、Windowsをオフにします。

構成ファイルを編集し、ビデオカードの最後の行のコメントを解除して、仮想マシンを再起動します。 画像がフリーズし、2番目のモニター(OSごとに1つずつ)が長時間にわたって何も存在しない場合は、リセットしてください:



 $ sudo xm reset windows
      
      





再び起動すると、動作するはずです。







音が出ませんでした-同様に、USBハブの1つにUSBサウンドカードを転送しましたが、動作しました。

Windows 8はパフォーマンスインデックスをチェックすることを望まず、Windows 7は3Dで7.1、2Dで7.1を示しました。 ゲーム、もちろん、仕事)







便宜上、仮想マシンのドメインを保存し、構成パスを永続的に指定しないでください。



 $ sudo xm create /media/Windows/config.cfg $ sudo xm start windows $ sudo xm shutdown -w windows $ sudo xm start windows
      
      







インスピレーションと情報源:

http://help.ubuntu.ru/wiki/xen

http://umvirt.ru/node/69

http://www.virtualmin.com/documentation/cloudmin/windows

http://wiki.prgmr.com/mediawiki/index.php/Appendix_B:_The_Structure_of_the_Xen_Config_File



UPD:

私はWindowsの下から書いています、別のアセンブリをインストールしました、彼女はシステムの評価を与えることに同意しました:







カーネルと2 GBのRAMを用意しました。

システムは空で、ストックドライバーです(ビデオドライバー06/19/2012バージョン8.97.10.6の日付)。



All Articles