All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Teo En Ming (Zhang Enming)" <singapore.mr.teo.en.ming@gmail.com>
To: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	"Teo En Ming (Zhang Enming)" <singapore.mr.teo.en.ming@gmail.com>,
	Frank Lyon <franklyon@gmail.com>,
	David TECHER <davidtecher@yahoo.fr>,
	Casey DeLorme <cdelorme@gmail.com>,
	Tobias Geiger <tobias.geiger@vido.info>
Subject: 100% Perfect Success in Xen 4.2-unstable Changeset 25099 VGA Passthrough with NVIDIA Quadro 6000 (Frank Lyon's Xen VGA Passthrough Configuration Files)
Date: Mon, 24 Sep 2012 19:56:30 +0800	[thread overview]
Message-ID: <50604A6E.3040305@gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 3781 bytes --]

Dear All,

Frank Lyon (Singapore) engaged me to work on Xen VGA Passthrough for 
him. He started off contemplating VGA Passthrough using Xen Cloud 
Platform (XCP) but he couldn't get VGA Passthrough to work with it. Then 
he engaged a tech guy from a software consultancy firm in Singapore but 
the tech guy he engaged also couldn't get VGA Passthrough to work using 
Xen Cloud Platform. Finally Frank Lyon engaged me to work on Xen VGA 
Passthrough for him. I dropped XCP altogether because I have totally no 
experience with it at all. I finally got 100% perfect success in Xen VGA 
Passthrough with his NVIDIA Quadro 6000.

Here are Frank Lyon's hardware specifications:

Server: HP ProLiant DL370G6
Processors: 2x Intel Xeon CPU X5650 @ 2.67 GHz (2 Processors detected, 
12 total cores detected per processor)
Harddisks: 4X 1TB SAS MDL 6G DP 7.2K Harddisks
Memory: 48GB of memory
Display adapter: NVIDIA Quadro 6000

Here are Frank Lyon's software configuration:

Host Operating System: Ubuntu 12.04 LTS Server CD
HVM domU: Windows 7 64-bit and Windows 8 Pro 64-bit
Xen Hypervisor version: 4.2-unstable Changeset 25099
Linux Dom0 Kernel: 3.5.4 (I compiled it from sources)

Attached in this email are Xen VGA Passthrough configuration files and 
scripts I have configured for Frank Lyon's Xen VGA Passthrough server.

Reference guides/tutorials followed in setting up Frank Lyon's Xen VGA 
Passthrough server (hosted on Xen Wiki):

(1) 
http://wiki.xen.org/wiki/Building_and_Installing_Xen_4.x_and_Linux_Kernel_3.x_on_Ubuntu_and_Debian_Linux

(2) 
http://wiki.xen.org/wiki/Xen_VGA_Passthrough_to_Windows_8_with_Xen_4.2-unstable

The above two are guides/tutorials/HowTo/documentation I have written 
for (1) building and installing Xen 4.x and Linux Kernel 3.x on Ubuntu 
and Debian Linux and (2) Xen VGA Passthrough.

Dear Jean David Techer,

Now I have 100% success in getting Xen VGA Passthrough to work in Frank 
Lyon's Xen VGA Passthrough server, with Xen VGA Passthrough patches 
hosted at your personal website. The display adapter which was 100% 
successfully passed through in Frank Lyon's example is a NVIDIA Quadro 
6000. I still have no idea why I have PARTIAL (less than 100%) success 
with Xen VGA Passthrough with my own NVIDIA Geforce 8400 GS VGA card. As 
I have told you before, there is a yellow exclamation mark with my 
NVIDIA Geforce 8400 GS in Device Manager in Windows XP and Windows 8 HVM 
domUs. I am so totally astonished and elated and happy that I could get 
100% success in Xen VGA Passthrough with Frank Lyon's Xen VGA 
Passthrough server. The Xen VGA Passthrough patches hosted at your 
personal website definitely works. Thumbs up David Techer! There is 
***ABSOLUTELY NO*** yellow exclamation mark with Frank Lyon's NVIDIA 
Quadro 6000 in Device Manager in Windows 7 and Windows 8 HVM domUs. I 
really wondered what's the problem with my case. I could get somebody 
else's Xen VGA Passthrough to work but yet I could not get mine to work 
100%. Perhaps I should get another NVIDIA vga card to try out VGA 
Passthrough.

Dear All,

Although I have 100% success in Xen VGA Passthrough in Frank Lyon's 
case, it was done with Xen 4.2-unstable Changeset 25099. I couldn't get 
Xen VGA Passthrough to work with Xen 4.3-unstable. Perhaps the Xen 
developers could look into this problem?

In addition, I cannot passthrough TWO NVIDIA Quadro 6000 to a single 
Windows 7 or Windows 8 HVM guest. Anybody knows how I could passthrough 
two GPUs to a single HVM? Windows 7 and Windows 8 HVM guests would go 
haywire with the 2nd NVIDIA Quadro 6000 plugged in. The 2nd NVIDIA 
Quadro 6000 needs to be unplugged. Anybody knows why?

Please advise. Thank you very much for your kind attention.

-- 
Yours sincerely,
Mr. Teo En Ming (Zhang Enming)
Singapore

[-- Attachment #2: 40_custom --]
[-- Type: text/plain, Size: 785 bytes --]

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'Ubuntu 12.04 amd64 Release with Xen 4.3-unstable and Linux Kernel 3.5.4-xen-frank.lyon-sgp' --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
search --no-floppy --fs-uuid --set=root d5ec6b7f-e1db-4b46-b050-d0bd46403f59
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root d5ec6b7f-e1db-4b46-b050-d0bd46403f59
multiboot /xen.gz
module /vmlinuz-3.5.4-xen-frank.lyon-sgp placeholder root=/dev/mapper/snow-root dom0_mem=1024 console=tty quiet splash vt.handoff=7 nomodeset
module /initrd.img-3.5.4-xen-frank.lyon-sgp
}

[-- Attachment #3: dsdt.asl --]
[-- Type: text/plain, Size: 15788 bytes --]

/******************************************************************************
 * DSDT for Xen with Qemu device model
 *
 * Copyright (c) 2004, Intel Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms and conditions of the GNU General Public License,
 * version 2, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 * Place - Suite 330, Boston, MA 02111-1307 USA.
 */

DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
{
    Name (\PMBS, 0x0C00)
    Name (\PMLN, 0x08)
    Name (\IOB1, 0x00)
    Name (\IOL1, 0x00)
    Name (\APCB, 0xFEC00000)
    Name (\APCL, 0x00010000)
    Name (\PUID, 0x00)

    /* _S3 and _S4 are in separate SSDTs */
    Name (\_S5, Package (0x04)
    {
        0x00,  /* PM1a_CNT.SLP_TYP */
        0x00,  /* PM1b_CNT.SLP_TYP */
        0x00,  /* reserved */
        0x00   /* reserved */
    })

    Name(PICD, 0)
    Method(_PIC, 1)
    {
        Store(Arg0, PICD) 
    }

    Scope (\_SB)
    {
       /* ACPI_INFO_PHYSICAL_ADDRESS == 0xFC000000 */
       OperationRegion(BIOS, SystemMemory, 0xFC000000, 24)
       Field(BIOS, ByteAcc, NoLock, Preserve) {
           UAR1, 1,
           UAR2, 1,
           LTP1, 1,
           HPET, 1,
           Offset(4),
           PMIN, 32,
           PLEN, 32,
           MSUA, 32, /* MADT checksum address */
           MAPA, 32, /* MADT LAPIC0 address */
           VGIA, 32  /* VM generation id address */
       }

        /* Fix HCT test for 0x400 pci memory:
         * - need to report low 640 MB mem as motherboard resource
         */
       Device(MEM0)
       {
           Name(_HID, EISAID("PNP0C02"))
           Name(_CRS, ResourceTemplate() {
               QWordMemory(
                    ResourceConsumer, PosDecode, MinFixed,
                    MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0x0009ffff,
                    0x00000000,
                    0x000a0000)
           })
       }

       Device (PCI0)
       {
           Name (_HID, EisaId ("PNP0A03"))
           Name (_UID, 0x00)
           Name (_ADR, 0x00)
           Name (_BBN, 0x00)

           /* Make cirrues VGA S3 suspend/resume work in Windows XP/2003 */
           Device (VGA)
           {
               Name (_ADR, 0x00020000)

               Method (_S1D, 0, NotSerialized)
               {
                   Return (0x00)
               }
               Method (_S2D, 0, NotSerialized)
               {
                   Return (0x00)
               }
               Method (_S3D, 0, NotSerialized)
               {
                   Return (0x00)
               }
           }

           Method (_CRS, 0, NotSerialized)
           {
               Name (PRT0, ResourceTemplate ()
               {
                   /* bus number is from 0 - 255*/
                   WordBusNumber(
                        ResourceProducer, MinFixed, MaxFixed, SubDecode,
                        0x0000,
                        0x0000,
                        0x00FF,
                        0x0000,
                        0x0100)
                    IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                    WordIO(
                        ResourceProducer, MinFixed, MaxFixed, PosDecode,
                        EntireRange,
                        0x0000,
                        0x0000,
                        0x0CF7,
                        0x0000,
                        0x0CF8)
                    WordIO(
                        ResourceProducer, MinFixed, MaxFixed, PosDecode,
                        EntireRange,
                        0x0000,
                        0x0D00,
                        0xFFFF,
                        0x0000,
                        0xF300)

                    /* reserve memory for pci devices */
                    DWordMemory(
                        ResourceProducer, PosDecode, MinFixed, MaxFixed,
                        Cacheable, ReadWrite,
                        0x00000000,
                        0x000A0000,
                        0x000BFFFF,
                        0x00000000,
                        0x00020000)

                    /* reserve MMIO BARs of gfx for 1:1 mapping */
                    DWordMemory(
                        ResourceProducer, PosDecode, MinFixed, MaxFixed,
                        Cacheable, ReadWrite,
                        0x00000000,
                        0xF8000000,
                        0xF9FFFFFF,
                        0x00000000,
                        0x02000000)

                    DWordMemory(
                        ResourceProducer, PosDecode, MinFixed, MaxFixed,
                        NonCacheable, ReadWrite,
                        0x00000000,
                        0xD8000000,
                        0xDFFFFFFF,
                        0x00000000,
                        0x08000000)

                    DWordMemory(
                        ResourceProducer, PosDecode, MinFixed, MaxFixed,
                        Cacheable, ReadWrite,
                        0x00000000,
                        0xD4000000,
                        0xD7FFFFFF,
                        0x00000000,
                        0x04000000)

                    DWordMemory(
                        ResourceProducer, PosDecode, MinFixed, MaxFixed,
                        Cacheable, ReadWrite,
                        0x00000000,
                        0xFB000000,
                        0xFB07FFFF,
                        0x00000000,
                        0x00080000,                        
			,, _Y01)
                })

                CreateDWordField(PRT0, \_SB.PCI0._CRS._Y01._MIN, MMIN)
                CreateDWordField(PRT0, \_SB.PCI0._CRS._Y01._MAX, MMAX)
                CreateDWordField(PRT0, \_SB.PCI0._CRS._Y01._LEN, MLEN)

                Store(\_SB.PMIN, MMIN)
                Store(\_SB.PLEN, MLEN)
                Add(MMIN, MLEN, MMAX)
                Subtract(MMAX, One, MMAX)

                Return (PRT0)
            }

            Device(HPET) {
                Name(_HID,  EISAID("PNP0103"))
                Name(_UID, 0)
                Method (_STA, 0, NotSerialized) {
                    If(LEqual(\_SB.HPET, 0)) {
                        Return(0x00)
                    } Else {
                        Return(0x0F)
                    }
                }
                Name(_CRS, ResourceTemplate() {
                    DWordMemory(
                        ResourceConsumer, PosDecode, MinFixed, MaxFixed,
                        NonCacheable, ReadWrite,
                        0x00000000,
                        0xFED00000,
                        0xFED003FF,
                        0x00000000,
                        0x00000400 /* 1K memory: FED00000 - FED003FF */
                    )
                })
            }

            Device (ISA)
            {
                Name (_ADR, 0x00010000) /* device 1, fn 0 */

                OperationRegion(PIRQ, PCI_Config, 0x60, 0x4)
                Scope(\) {
                    Field (\_SB.PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) {
                        PIRA, 8,
                        PIRB, 8,
                        PIRC, 8,
                        PIRD, 8
                    }
                }
                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x01)
                    Name (CRS, ResourceTemplate ()
                    {
                        /* TODO: list hidden resources */
                        IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
                        IO (Decode16, 0x0022, 0x0022, 0x00, 0x0C)
                        IO (Decode16, 0x0030, 0x0030, 0x00, 0x10)
                        IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
                        IO (Decode16, 0x0062, 0x0062, 0x00, 0x02)
                        IO (Decode16, 0x0065, 0x0065, 0x00, 0x0B)
                        IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
                        IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
                        IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
                        IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
                        IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
                        IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
                        IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1C)
                        IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
                        IO (Decode16, 0x08A0, 0x08A0, 0x00, 0x04)
                        IO (Decode16, 0x0CC0, 0x0CC0, 0x00, 0x10)
                        IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
                        IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
                        IRQNoFlags () {2}
                    })
                }

                Device (DMA0)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        DMA (Compatibility, BusMaster, Transfer8) {4}
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x10)
                        IO (Decode16, 0x0081, 0x0081, 0x00, 0x03)
                        IO (Decode16, 0x0087, 0x0087, 0x00, 0x01)
                        IO (Decode16, 0x0089, 0x0089, 0x00, 0x03)
                        IO (Decode16, 0x008F, 0x008F, 0x00, 0x01)
                        IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20)
                        IO (Decode16, 0x0480, 0x0480, 0x00, 0x10)
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x00, 0x04)
                        IRQNoFlags () {0}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
                        IRQNoFlags () {8}
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0061, 0x0061, 0x00, 0x01)
                    })
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Name (_CID, 0x130FD041)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CID, 0x0B03D041)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
                        IRQNoFlags () {1}
                    })
                }

                Device (FDC0)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Method (_STA, 0, NotSerialized)
                    {
                          Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                        IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                        IRQNoFlags () {6}
                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
                    })
                }

                Device (UAR1)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_UID, 0x01)
                    Method (_STA, 0, NotSerialized)
                    {
                        If(LEqual(\_SB.UAR1, 0)) {
                            Return(0x00)
                        } Else {
                            Return(0x0F)
                        }
                    }

                    Name (_CRS, ResourceTemplate()
                    {
                        IO (Decode16, 0x03F8, 0x03F8, 8, 8)
                        IRQNoFlags () {4}
                    })
                }

                Device (UAR2)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_UID, 0x02)
                    Method (_STA, 0, NotSerialized)
                    {
                        If(LEqual(\_SB.UAR2, 0)) {
                            Return(0x00)
                        } Else {
                            Return(0x0F)
                        }
                    }

                    Name (_CRS, ResourceTemplate()
                    {
                        IO (Decode16, 0x02F8, 0x02F8, 8, 8)
                        IRQNoFlags () {3}
                    })
                }

                Device (LTP1)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Name (_UID, 0x02)
                    Method (_STA, 0, NotSerialized)
                    {
                        If(LEqual(\_SB.LTP1, 0)) {
                            Return(0x00)
                        } Else {
                            Return(0x0F)
                        }
                    }

                    Name (_CRS, ResourceTemplate()
                    {
                        IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
                        IRQNoFlags () {7}
                    })
                } 

                Device(VGID) {
                    Name(_HID, EisaID ("XEN0000"))
                    Name(_UID, 0x00)
                    Name(_CID, "VM_Gen_Counter")
                    Name(_DDN, "VM_Gen_Counter")
                    Method(_STA, 0, NotSerialized)
                    {
                        If(LEqual(\_SB.VGIA, 0x00000000)) {
                            Return(0x00)
                        } Else {
                            Return(0x0F)
                        }
                    }
                    Name(PKG, Package ()
                    {
                        0x00000000,
                        0x00000000
                    })
                    Method(ADDR, 0, NotSerialized)
                    {
                        Store(\_SB.VGIA, Index(PKG, 0))
                        Return(PKG)
                    }
                }
            }
        }
    }
}

[-- Attachment #4: grub --]
[-- Type: text/plain, Size: 1236 bytes --]

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=13
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=50
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="nomodeset"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

[-- Attachment #5: rc.local --]
[-- Type: text/plain, Size: 481 bytes --]

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sudo ifconfig eth0 up
sudo route add default gw 192.168.25.1
sudo echo "nameserver 192.168.50.15" >> /etc/resolv.conf
sudo echo "nameserver 192.168.50.30" >> /etc/resolv.conf
exit 0

[-- Attachment #6: start-windows --]
[-- Type: text/plain, Size: 2853 bytes --]

#!/bin/sh
set -x
#
#Loads pci-stub kernel module
sudo modprobe pci-stub
#
#Passthrough NVIDIA Quadro 6000
# 
echo "Passthrough NVIDIA Quadro 6000 VGA card."
sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id
sudo chmod o+w /sys/bus/pci/devices/0000:0d:00.0/driver/unbind
sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind
echo "10de 06d8" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:0d:00.0" > /sys/bus/pci/devices/0000:0d:00.0/driver/unbind
echo "0000:0d:00.0" > /sys/bus/pci/drivers/pci-stub/bind
#
#Passthrough NVIDIA HD Audio Controller
# 
echo "Passthrough NVIDIA HD Audio Controller."
sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id
sudo chmod o+w /sys/bus/pci/devices/0000:0d:00.1/driver/unbind
sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind
echo "10de 0be5" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:0d:00.1" > /sys/bus/pci/devices/0000:0d:00.1/driver/unbind
echo "0000:0d:00.1" > /sys/bus/pci/drivers/pci-stub/bind
#
#Passthrough 2nd NVIDIA Quadro 6000
#
#echo "Passthrough 2nd NVIDIA Quadro 6000 VGA card."
#sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id
#sudo chmod o+w /sys/bus/pci/devices/0000:1b:00.0/driver/unbind
#sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind
#echo "10de 06d8" > /sys/bus/pci/drivers/pci-stub/new_id
#echo "0000:1b:00.0" > /sys/bus/pci/devices/0000:1b:00.0/driver/unbind
#echo "0000:1b:00.0" > /sys/bus/pci/drivers/pci-stub/bind
#
#Passthrough 2nd NVIDIA HD Audio Controller
#
#echo "Passthrough 2nd NVIDIA HD Audio Controller."
#sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id
#sudo chmod o+w /sys/bus/pci/devices/0000:1b:00.1/driver/unbind
#sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind
#echo "10de 0be5" > /sys/bus/pci/drivers/pci-stub/new_id
#echo "0000:1b:00.1" > /sys/bus/pci/devices/0000:1b:00.1/driver/unbind
#echo "0000:1b:00.1" > /sys/bus/pci/drivers/pci-stub/bind
#
#Passthrough USB 1.1 Controller #3
#
echo "Passthrough USB 1.1 Controller #3"
sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id
sudo chmod o+w /sys/bus/pci/devices/0000:00:1d.2/driver/unbind
sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind
echo "8086 3a36" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1d.2" > /sys/bus/pci/devices/0000:00:1d.2/driver/unbind
echo "0000:00:1d.2" > /sys/bus/pci/drivers/pci-stub/bind
#
#Passthrough USB 1.1 Controller #4
#
echo "Passthrough USB 1.1 Controller #4"
sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id
sudo chmod o+w /sys/bus/pci/devices/0000:00:1d.3/driver/unbind
sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind
echo "8086 3a39" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1d.3" > /sys/bus/pci/devices/0000:00:1d.3/driver/unbind
echo "0000:00:1d.3" > /sys/bus/pci/drivers/pci-stub/bind

#
#Wait for 10 seconds
#
sleep 10
#
#Start Windows HVM domU with VGA Passthrough
#
sudo xl create /etc/xen/Windows7
#sudo xl create /etc/xen/Windows8

[-- Attachment #7: Windows7 --]
[-- Type: text/plain, Size: 1859 bytes --]

# XL domain configuration file for Windows 8 Consumer Preview 64-bit English HVM domU
# Please refer to "man xl.cfg" for further explanations.
# See also docs/misc/xl-network-configuration.markdown and
# docs/misc/xl-disk-configuration.txt
# Written by Teo En Ming (Zhang Enming)
# Email: teo.en.ming@gmail.com
# Mobile Phone: +65-8369-2618
# Country: Singapore
# Date: 18 Mar 2012 Sun
name="Windows8"
# Product Key: WJBRX-2N7B2-CCBF6-VPP97-R88XV
builder="hvm"
vcpus=2
memory=2048
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
disk=[ 'format=raw, vdev=hda, access=rw, target=/etc/xen/images/windows7.img', 'format=raw, vdev=hdc, access=ro, devtype=cdrom, target=/home/flyon/windows7.iso' ]
vif=[ 'bridge=eth0,type=ioemu,model=e1000' ]
#boot=[c|d|n]
# Selects the emulated virtual device to boot from. Options are hard disk (c), cd-rom (d) or network/PXE (n).
# Multiple options can be given and will be attempted in the order they are given. e.g. to boot from cd-rom
# but fallback to the hard disk you can give dc. The default is cd.
boot="dc"
acpi=1
#xen_platform_pci=1
#viridian=1
#stdvga=1

vnc=1
vnclisten="192.168.25.50"
vncdisplay=0
vncunused=1
vncpasswd=""
sdl=0
usb=1
# Passthrough the USB Keyboard
usbdevice = "host:04f2:0110"
# Passthrough the USB Optical Mouse
usbdevice = "host:046d:c03d"
# Enable Xen VGA Passthrough
gfx_passthru=1
# VGA Passthrough NVIDIA Quadro 6000 and PCI Passthrough NVIDIA HD Audio Controller, then 2nd NVIDIA Quadro 6000 and 2nd NVIDIA HD Audio Controller
#pci = [ '0d:00.0','0d:00.1','1b:00.0','1b:00.1' ]
# The last 2 entries are USB 1.1 controllers.
pci = [ '0d:00.0','0d:00.1','00:1d.2','00:1d.3' ]

# PCI Passthrough Intel HD Audio Controller.
#pci = [ '00:1b.0' ]
# PCI Passthrough all the USB Controllers.
# pci = [ '00:1a.0','00:1a.1','00:1a.2','00:1a.7','00:1d.0','00:1d.1','00:1d.2','00:1d.7' ]


[-- Attachment #8: Windows8 --]
[-- Type: text/plain, Size: 1793 bytes --]

# XL domain configuration file for Windows 8 Consumer Preview 64-bit English HVM domU
# Please refer to "man xl.cfg" for further explanations.
# See also docs/misc/xl-network-configuration.markdown and
# docs/misc/xl-disk-configuration.txt
# Written by Teo En Ming (Zhang Enming)
# Email: teo.en.ming@gmail.com
# Mobile Phone: +65-8369-2618
# Country: Singapore
# Date: 18 Mar 2012 Sun
name="Windows8"
# Product Key: WJBRX-2N7B2-CCBF6-VPP97-R88XV
builder="hvm"
vcpus=2
memory=2048
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
disk=[ 'format=raw, vdev=hda, access=rw, target=/etc/xen/images/windows8.img', 'format=raw, vdev=hdc, access=ro, devtype=cdrom, target=/home/flyon/windows8.iso' ]
vif=[ 'bridge=eth0,type=ioemu,model=e1000' ]
#boot=[c|d|n]
# Selects the emulated virtual device to boot from. Options are hard disk (c), cd-rom (d) or network/PXE (n).
# Multiple options can be given and will be attempted in the order they are given. e.g. to boot from cd-rom
# but fallback to the hard disk you can give dc. The default is cd.
boot="dc"
acpi=1
#xen_platform_pci=1
#viridian=1
#stdvga=1

vnc=1
vnclisten="192.168.25.50"
vncdisplay=0
vncunused=1
vncpasswd=""
sdl=0
usb=1
# Passthrough the USB Keyboard
usbdevice = "host:04f2:0110"
# Passthrough the USB Optical Mouse
usbdevice = "host:046d:c03d"
# Enable Xen VGA Passthrough
gfx_passthru=1
# VGA Passthrough NVIDIA Quadro 6000 and PCI Passthrough NVIDIA HD Audio Controller, then 2nd NVIDIA Quadro 6000 and 2nd NVIDIA HD Audio Controller
#pci = [ '0d:00.0','0d:00.1','1b:00.0','1b:00.1' ]
pci = [ '0d:00.0','0d:00.1' ]

# PCI Passthrough Intel HD Audio Controller.
#pci = [ '00:1b.0' ]
# PCI Passthrough all the USB Controllers.
# pci = [ '00:1a.0','00:1a.1','00:1a.2','00:1a.7','00:1d.0','00:1d.1','00:1d.2','00:1d.7' ]


[-- Attachment #9: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

                 reply	other threads:[~2012-09-24 11:56 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50604A6E.3040305@gmail.com \
    --to=singapore.mr.teo.en.ming@gmail.com \
    --cc=cdelorme@gmail.com \
    --cc=davidtecher@yahoo.fr \
    --cc=franklyon@gmail.com \
    --cc=tobias.geiger@vido.info \
    --cc=xen-devel@lists.xen.org \
    --cc=xen-users@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.