[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Destroy laptop with pcistub



Le 18/11/2013 16:43, Konrad Rzeszutek Wilk a ÃcritÂ:
On Sun, Nov 17, 2013 at 01:08:03AM +0100, Chapuis Nicolas wrote:
Hi everybody.
For begin, congratulation for your excellent jobs...
xen work fine on my main server.
But I would to push with vga passtrough,
with an dell laptop latitude E6520.
modprobe pci-stub

echo "10de 1056" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:01:00.0" > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind
echo "0000:01:00.0" > /sys/bus/pci/drivers/pci-stub/bind
echo "10de 0e08" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:01:00.1" > /sys/bus/pci/devices/0000\:01\:00.1/driver/unbind
echo "0000:01:00.1" > /sys/bus/pci/drivers/pci-stub/bind
echo "8086 1c26" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1d.0" > /sys/bus/pci/devices/0000\:00\:1d.0/driver/unbind
echo "0000:00:1d.0" > /sys/bus/pci/drivers/pci-stub/bind
echo "8086 1c2d" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1a.0" > /sys/bus/pci/devices/0000\:00\:1a.0/driver/unbind
echo "0000:00:1a.0" > /sys/bus/pci/drivers/pci-stub/bind
echo "8086 1c20" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1b.0" > /sys/bus/pci/devices/0000\:00\:1b.0/driver/unbind
echo "0000:00:1b.0" > /sys/bus/pci/drivers/pci-stub/bind
echo "14e4 4727" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:03:00.0" > /sys/bus/pci/devices/0000\:03\:00.0/driver/unbind
echo "0000:03:00.0" > /sys/bus/pci/drivers/pci-stub/bind

here all was right, juste 01:00.0 and 01:00.1 doesn't work
for have screen given to domU....
for search little more, I have try (PCI express):
echo "8086 1c10" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1c.0" > /sys/bus/pci/devices/0000\:00\:1c.0/driver/unbind
echo "0000:00:1c.0" > /sys/bus/pci/drivers/pci-stub/bind
echo "8086 1c12" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1c.1" > /sys/bus/pci/devices/0000\:00\:1c.1/driver/unbind
echo "0000:00:1c.1" > /sys/bus/pci/drivers/pci-stub/bind
echo "8086 1c14" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1c.2" > /sys/bus/pci/devices/0000\:00\:1c.2/driver/unbind
echo "0000:00:1c.2" > /sys/bus/pci/drivers/pci-stub/bind
echo "8086 1c16" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1c.3" > /sys/bus/pci/devices/0000\:00\:1c.3/driver/unbind
echo "0000:00:1c.3" > /sys/bus/pci/drivers/pci-stub/bind

with Xen 4.4 and last linux kernel from :
git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git
Please use the Linus one.
After make an flash bios with an little cable between (+/-)
All is right, I trie to make an pci/vga passthrough
with an Nvidia Nvs 4200m
so for that, I try to give me all chance to have
an pci passthrough in linux kernel.
Why do you thing, it's better to use linus one?
Yes less unstable, but more advanced for Visualization? no?

      
that was good until 10-15minutes,
when an moment, .... shutdown...
Did you launch any guests?
Yes, 2 guest,
1 ubuntu installation (from disk iso, the lastest in destkop amd64) => but after boot no screen on my nvidia (gfx_passtrought try in 1 and 0)
01:00.0 and 01:00.1 try in pci passthrough successfully, so just "black screen" :) (and other like usb but no disk controller)
I have the sound but no screen.
So, Before I used to install linux, I had an windows 7 on the computer,
And after the crash of the first ubuntu boot
I have try to emulated this win7, but nothing, For the moment It's an another problem,
but is not the subject and not xen problem. (mbr boot I have to learn more about)

and never can reboot.
no bios access, sadly, I thing the laptop is dead.
What are some of the PCI devices you passed in? As, in what
does lspci show?

Did you by any chance pass in also your disk controller?

Linux xen 3.11.0-rc7+ #7 SMP Fri Nov 1 18:43:30 CET 2013 x86_64 GNU/Linux

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4)
00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b4)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b4)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QM67 Express Chipset Family LPC Controller (rev 04)
00:1f.2 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [Quadro NVS 4200M] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1)
03:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)

00:00.0 0600: 8086:0104 (rev 09)
00:01.0 0604: 8086:0101 (rev 09)
00:16.0 0780: 8086:1c3a (rev 04)
00:19.0 0200: 8086:1502 (rev 04)
00:1a.0 0c03: 8086:1c2d (rev 04)
00:1b.0 0403: 8086:1c20 (rev 04)
00:1c.0 0604: 8086:1c10 (rev b4)
00:1c.1 0604: 8086:1c12 (rev b4)
00:1c.2 0604: 8086:1c14 (rev b4)
00:1c.3 0604: 8086:1c16 (rev b4)
00:1d.0 0c03: 8086:1c26 (rev 04)
00:1f.0 0601: 8086:1c4f (rev 04)
00:1f.2 0104: 8086:282a (rev 04)
00:1f.3 0c05: 8086:1c22 (rev 04)
01:00.0 0300: 10de:1056 (rev a1)
01:00.1 0403: 10de:0e08 (rev a1)
03:00.0 0280: 14e4:4727 (rev 01)


I forget : the complete test I had made is :
modprobe pci-stub

echo "10de 1056" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:01:00.0" > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind
echo "0000:01:00.0" > /sys/bus/pci/drivers/pci-stub/bind

echo "10de 0e08" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:01:00.1" > /sys/bus/pci/devices/0000\:01\:00.1/driver/unbind
echo "0000:01:00.1" > /sys/bus/pci/drivers/pci-stub/bind

echo "8086 1c3a" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:16.0" > /sys/bus/pci/devices/0000\:00\:16.0/driver/unbind
echo "0000:00:16.0" > /sys/bus/pci/drivers/pci-stub/bind

echo "8086 1c10" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1c.0" > /sys/bus/pci/devices/0000\:00\:1c.0/driver/unbind
echo "0000:00:1c.0" > /sys/bus/pci/drivers/pci-stub/bind

echo "8086 1c12" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1c.1" > /sys/bus/pci/devices/0000\:00\:1c.1/driver/unbind
echo "0000:00:1c.1" > /sys/bus/pci/drivers/pci-stub/bind

echo "8086 1c14" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1c.2" > /sys/bus/pci/devices/0000\:00\:1c.2/driver/unbind
echo "0000:00:1c.2" > /sys/bus/pci/drivers/pci-stub/bind

echo "8086 1c16" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1c.3" > /sys/bus/pci/devices/0000\:00\:1c.3/driver/unbind
echo "0000:00:1c.3" > /sys/bus/pci/drivers/pci-stub/bind

echo "8086 1c26" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1d.0" > /sys/bus/pci/devices/0000\:00\:1d.0/driver/unbind
echo "0000:00:1d.0" > /sys/bus/pci/drivers/pci-stub/bind

echo "8086 1c2d" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1a.0" > /sys/bus/pci/devices/0000\:00\:1a.0/driver/unbind
echo "0000:00:1a.0" > /sys/bus/pci/drivers/pci-stub/bind

echo "8086 1c20" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:00:1b.0" > /sys/bus/pci/devices/0000\:00\:1b.0/driver/unbind
echo "0000:00:1b.0" > /sys/bus/pci/drivers/pci-stub/bind

echo "14e4 4727" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:03:00.0" > /sys/bus/pci/devices/0000\:03\:00.0/driver/unbind
echo "0000:03:00.0" > /sys/bus/pci/drivers/pci-stub/bind

xl pci-assignable-list
----------------------------------------------------------------------
modprobe xen-pciback

echo "0000:01:00.0" > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind
echo "0000:01:00.0" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:01:00.0" > /sys/bus/pci/drivers/pciback/bind

echo "0000:01:00.1" > /sys/bus/pci/devices/0000\:01\:00.1/driver/unbind
echo "0000:01:00.1" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:01:00.1" > /sys/bus/pci/drivers/pciback/bind

echo "0000:00:16.0" > /sys/bus/pci/devices/0000\:00\:16.0/driver/unbind
echo "0000:00:16.0" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:00:16.0" > /sys/bus/pci/drivers/pciback/bind
Â{
echo "0000:00:1f.0" > /sys/bus/pci/devices/0000\:00\:1f.0/driver/unbind
echo "0000:00:1f.0" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:00:1f.0" > /sys/bus/pci/drivers/pciback/bind

echo "0000:00:1f.3" > /sys/bus/pci/devices/0000\:00\:1f.3/driver/unbind
echo "0000:00:1f.3" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:00:1f.3" > /sys/bus/pci/drivers/pciback/bind
} => that is not pci passtrought able (I thing I have make that by despair)
And like you have said, Yes I stupidly try to pass disk controller :( just I would
confined in 1f.2, sorry....

echo "0000:00:1d.0" > /sys/bus/pci/devices/0000\:00\:1d.0/driver/unbind
echo "0000:00:1d.0" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:00:1d.0" > /sys/bus/pci/drivers/pciback/bind

echo "0000:00:1a.0" > /sys/bus/pci/devices/0000\:00\:1a.0/driver/unbind
echo "0000:00:1a.0" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:00:1a.0" > /sys/bus/pci/drivers/pciback/bind

echo "0000:00:1b.0" > /sys/bus/pci/devices/0000\:00\:1b.0/driver/unbind
echo "0000:00:1b.0" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:00:1b.0" > /sys/bus/pci/drivers/pciback/bind

echo "0000:03:00.0" > /sys/bus/pci/devices/0000\:03\:00.0/driver/unbind
echo "0000:03:00.0" > /sys/bus/pci/drivers/pciback/new_slot
echo "0000:03:00.0" > /sys/bus/pci/drivers/pciback/bind

with :
builder='hvm'
memory = 4096
vcpus = 3
nameÂÂ = 'ubuntu.darkweb.mfg.com'
#vifÂÂÂ = ['bridge=xenbr0']
#diskÂÂ = ['phy:/dev/xenlvm/ubuntu.darkweb.mfg.com,hda,w', 'file:/home/chapuis/ubuntu-13.10-desktop-amd64.iso,hdc:cdrom,r']
#diskÂÂ = ['phy:/dev/xenlvm/ubuntu.darkweb.mfg.com,hda,w']
diskÂÂ = ['phy:/dev/sda1,hda,w']
acpiÂÂ = 1
#pci = [ '01:00.0', '01:00.1' ]
gfx_passthru = 0
#pci = [ '00:1d.0' , '00:1a.0', '00:1b.0', '03:00.0' ]
pci = [ '01:00.0', '01:00.1','00:1a.0','00:1b.0','00:1d.0', '03:00.0' ]

#device_model = 'qemu-dm'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
#boot="dc" # boot cdrom en premiere
boot="c" # boot disque only

#monitor=1
pci_power_mgmt=1
xen_platform_pci=1
pci_msitranslate=1
viridian=1
hpet=1
#acpi=1
apic=1
pae=1
#sdl=0
#serial='pty'
vfb = [ 'type=vnc,vnclisten=0.0.0.0,vncdisplay=2' ]
#vnc=2
#vnclisten=""
vncpasswd=""


on_rebootÂÂ = 'restart'
on_crashÂÂÂ = 'restart'




      
I'm so sorry, I can have more information about kernel conf,
just not forgetten with in begin the last debian installation server.7

thanks for heard me.
good luck and fine jobs.
I think in the end, I can't use pciback or pcistub with nvidia Quadro nvs 4200M
I'm ready to try :
http://wiki.xen.org/mediawiki/images/6/63/Xen_VGA_Passthrough_to_Windows_8_Consumer_Preview_64-bit_English_HVM_domU_and_Windows_XP_Home_Edition_SP3_HVM_domU_with_Xen_4.2-unstable_Changeset_25070_and_Linux_Kernel_3.3.0_in_Ubuntu_11.10_oneiric_ocelot_amd64_Final_Release_Dom0.pdf
But no nvflash work for save the bin rom nvidia :
nvflash.exe âsave vgabios.rom => echec unknow rom

Just If someone know where I can find the rom for nvidia Quadro nvs 4200M
or an generic rom, I'm ready now to make in the end the tutorial from :
Author: Teo En Ming (Zhang Enming)


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

    
Thanks a lot to have heard me :)

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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.