Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

NVIDIA passthrough

Featured Replies

I bought a NVIDIA Quadro 2000 as it is listed as "Multi-OS" capable: http://wiki.xen.org/wiki/Xen_VGA_Passthrough_Tested_Adapters

 

There is indeed no issue with passthrough with Windows 8, but it fails on Ubuntu 12.04:

    pyGRUB  version 0.6
?????????????????????????????
? Ubuntu, with Linux 3.2.0-60-generic                                    ?
? Ubuntu, with Linux 3.2.0-60-generic (recovery mode)                    ?
? Ubuntu, with Linux 3.2.0-41-generic                                    ?
? Ubuntu, with Linux 3.2.0-41-generic (recovery mode)                    ?
?                                                                        ?
?                                                                        ?
?                                                                        ?
?                                                                        ?
?????????????????????????????
     Use the ^ and ? keys to select which entry is highlighted.
     Press enter to boot the selected OS, 'e' to edit the
     commands before booting, 'a' to modify the kernel arguments
     before booting, or 'c' for a command line.


libxl: error: libxl_pci.c:990:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:990:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 2905
FATAL: Error inserting vesafb (/lib/modules/3.2.0-60-generic/initrd/vesafb.ko): No such device
[    3.338086] error in i2c_read_reg
Loading the saved-state of the serial devices from /etc/serial.conf 
* Loading cpufreq kernel modules...                                     [fail] 
* CPUFreq Utilities: Setting ondemand CPUFreq governor...               [ OK ]  * disabled, governor not available...       
* Exporting directories for NFS kernel daemon...                        [ OK ] 
* Starting NFS kernel daemon                                                   [   16.653881] BUG: unable to handle kernel paging request at ffff8800040edda8
[   16.653889] IP: [<ffffffff81045974>] ptep_set_access_flags+0x54/0x70
[   16.653895] PGD 1c06067 PUD 1c0a067 PMD 4980067 PTE 80100000040ed065
[   16.653901] Oops: 0003 [#1] SMP 
[   16.653905] CPU 0 
[   16.653906] Modules linked in: snd_hda_intel(+) snd_hda_codec snd_hwdep snd_pcm snd_seq_midi stv090x snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device pata_jmicron(+) snd ngene(+) dvb_core soundcore cxd2099(C) snd_page_alloc nvidia(P) nfsd nfs lockd fscache auth_rpcgss nfs_acl sunrpc lp xen_pcifront parport
[   16.653931] 
[   16.653933] Pid: 1112, comm: ethtool Tainted: P        WC O 3.2.0-60-generic #91-Ubuntu  
[   16.653937] RIP: e030:[<ffffffff81045974>]  [<ffffffff81045974>] ptep_set_access_flags+0x54/0x70
[   16.653943] RSP: e02b:ffff880036829bd8  EFLAGS: 00010202
[   16.653945] RAX: 0000000000100001 RBX: ffff880038f036e0 RCX: 800000002fd5e167
[   16.653949] RDX: ffff8800040edda8 RSI: 00007f538bfb59d0 RDI: ffff880038f036e0
[   16.653952] RBP: ffff880036829bf8 R08: 0000000000000001 R09: a8000309fc000000
[   16.653955] R10: 57ffe6f604c27f00 R11: 0000000000000000 R12: 00007f538bfb59d0
[   16.653962] R13: 0000000000000001 R14: 00007f538bfb59d0 R15: ffff8800040edda8
[   16.653969] FS:  00007f538bfb5700(0000) GS:ffff88003fc00000(0000) knlGS:0000000000000000
[   16.653973] CS:  e033 DS: 0000 ES: 0000 CR0: 000000008005003b
[   16.653976] CR2: ffff8800040edda8 CR3: 0000000037e98000 CR4: 0000000000002660
[   16.653980] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   16.653983] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[   16.653987] Process ethtool (pid: 1112, threadinfo ffff880036828000, task ffff880039381700)
[   16.653991] Stack:
[   16.653993]  ffffea0000103b70 0000000000000000 ffff880038f036e0 00007f538bfb59d0
[   16.653999]  ffff880036829c88 ffffffff8113df2a ffffffff8100637d ffff880036829d55
[   16.654005]  ffff880038f036e0 ffff880038f182f8 ffff880000000000 ffff880036829c40
[   16.656055] Call Trace:
[   16.656055]  [<ffffffff8113df2a>] do_wp_page+0x37a/0x740
[   16.656055]  [<ffffffff8100637d>] ? pte_mfn_to_pfn+0x8d/0x110
[   16.656055]  [<ffffffff8100641e>] ? xen_pmd_val+0xe/0x10
[   16.656055]  [<ffffffff81005379>] ? __raw_callee_save_xen_pmd_val+0x11/0x1e
[   16.656055]  [<ffffffff8113feeb>] handle_pte_fault+0x1cb/0x200
[   16.656055]  [<ffffffff811410f9>] handle_mm_fault+0x269/0x370
[   16.656055]  [<ffffffff816657fe>] do_page_fault+0x17e/0x540
[   16.656055]  [<ffffffff81004ed6>] ? xen_mc_flush+0x1b6/0x1c0
[   16.656055]  [<ffffffff816493e9>] ? printk+0x51/0x53
[   16.656055]  [<ffffffff810683bc>] ? warn_slowpath_common+0x8c/0xc0
[   16.656055]  [<ffffffff81662435>] page_fault+0x25/0x30
[   16.656055]  [<ffffffff8131d3ad>] ? __put_user_4+0x1d/0x30
[   16.656055]  [<ffffffff810612b3>] ? schedule_tail+0x63/0xb0
[   16.656055]  [<ffffffff8166a203>] ret_from_fork+0x13/0x80
[   16.656055] Code: 45 85 c0 44 0f b6 e8 75 1e 44 89 e8 48 8b 5d e0 4c 8b 65 e8 4c 8b 6d f0 4c 8b 75 f8 c9 c3 66 0f 1f 84 00 00 00 00 00 84 c0 74 de <48> 89 0a 48 8b 3f 66 66 66 90 66 66 90 4c 89 e6 48 89 df e8 a4 
[   16.656055] RIP  [<ffffffff81045974>] ptep_set_access_flags+0x54/0x70
[   16.656055]  RSP <ffff880036829bd8>
[   16.656055] CR2: ffff8800040edda8
[   16.656055] ---[ end trace a885781317904cae ]---
[   16.771349] ------------[ cut here ]------------
[   16.771357] WARNING: at /build/buildd/linux-3.2.0/arch/x86/xen/multicalls.c:129 xen_mc_flush+0x1b6/0x1c0()
[   16.771361] Modules linked in: snd_hda_intel(+) snd_hda_codec snd_hwdep snd_pcm snd_seq_midi stv090x snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device pata_jmicron(+) snd ngene(+) dvb_core soundcore cxd2099(C) snd_page_alloc nvidia(P) nfsd nfs lockd fscache auth_rpcgss nfs_acl sunrpc lp xen_pcifront parport
[   16.771440] Pid: 1115, comm: sed Tainted: P      D WC O 3.2.0-60-generic #91-Ubuntu
[   16.771444] Call Trace:
[   16.771446] ---[ end trace a885781317904caf ]---

 

Is that possible that an adapter can be passedthrough in one VM and fail in another?

Possibly.  Nvidia isn't known to be the most "linux-friendly" company out there which could be a part of the issue.  Please share all the config details for the VM and your base hardware.  These issues can be a bit of a "needle and a haystack" so the more information we have, the better we can help track this down.  Unfortunately I do not have a Quadro card of my own to test against...

  • Author

I heard this as well - this is the reason that I was choosing the Quadro 2000, that is listed. I need the NVIDIA card for VDPAU (VDR). Anyhow let me share the information that is needed. I have upgraded to the Kernel 3.8.0-38 and get less errors.

 

Base HW: see my signature under unRAID Backup

windows8.cfg:

name = 'Windows8'
builder = 'hvm'
vcpus = '4'
memory = '1024'
device_model_version="qemu-xen-traditional"
disk = [
        'file:/mnt/cache/.VMs/win8/win8.img,ioemu:hda,w'
        ]
vif = [ 'mac=00:16:3e:a1:bc:a8, bridge=br0, model=e1000' ] 
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
boot = 'dc'
acpi = '1'
apic = '1'
viridian = '1'
xen_platform_pci='1'
sdl = '0'
vnc = '1'
vnclisten = '0.0.0.0'
vncpasswd = ''
stdvga = '0'
usb = '1'
usbdevice = 'tablet'
pci = [ '01:00.0','01:00.1','05:00.0','06:00.0' ]
pci_permissive=1
extra ='iommu=soft'

yaVDR.cfg:

name = "yaVDR"
bootloader = "pygrub"
memory = 1024
vcpus = '1'
disk = [ 
        'file:/mnt/cache/.VMs/yaVDR/yaVDR.img,xvda,w'
]
vif = [ 'mac=00:16:3e:a1:bc:a7,bridge=br0' ]
pci = [ '01:00.0','01:00.1','05:00.0','06:00.0' ]
pci_permissive=1
extra ='iommu=soft'

 

root@yaVDR:~# lspci
00:00.0 VGA compatible controller: NVIDIA Corporation GF106GL [Quadro 2000] (rev a1)
00:00.1 Audio device: NVIDIA Corporation GF106 High Definition Audio Controller (rev a1)
00:01.0 Multimedia video controller: Micronas Semiconductor Holding AG nGene PCI-Express Multimedia Controller (rev 01)
00:02.0 IDE interface: JMicron Technology Corp. JMB368 IDE controller

 

root@yaVDR:~# dmesg | grep ngene
[    4.399109] ngene 0000:00:01.0: enabling device (0000 -> 0002)
[    4.399271] ngene 0000:00:01.0: Xen PCI mapped GSI18 to IRQ29
[    4.399280] ngene: Found Mystique SaTiX-S2 Dual (v2)
[    4.407526] ngene: Device version 1
[    4.412134] ngene: Loading firmware file ngene_18.fw.
[    4.833144] ngene 0000:00:01.0: DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...
[    4.872783] ngene 0000:00:01.0: DVB: registering adapter 1 frontend 0 (STV090x Multistandard)...

 

root@yaVDR:~# dmesg | grep nvidia
[    3.194061] nvidia: module license 'NVIDIA' taints kernel.
[    3.294685] nvidia 0000:00:00.0: enabling device (0000 -> 0003)
[    3.294805] nvidia 0000:00:00.0: Xen PCI mapped GSI16 to IRQ28

 

...after starting:

root@Tower2:/mnt/cache/.VMs/yaVDR# xl create yaVDR.cfg
Parsing config from yaVDR.cfg
libxl: error: libxl_pci.c:990:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:990:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 1981

 

Is there anything else that I can attach? What's your guidance where to look at next? Thanks a lot in advance.

you are not trying to pass-through the same card into both VM at the same time?

are you?

Ok a couple more questions.  First, if you try to do the passthrough to JUST the ubuntu VM (without even booting the Win8 VM), does it still not work?

 

Second, have you tried any other linux operating systems (aside from Ubuntu) to test against first?  Want to narrow this down...

 

Sent from my LG-V500 using Tapatalk

 

 

  • Author

Oh, you are so quick ... brings me under pressure  ;D

 

First of all: I either boot the Windows VM or the yaVDR VM (to check if Win 8 can deal with the Nvidia card). So, vl1969, the answer to your question is no.

 

Secondly: I booted an ArchVM - doesn't generate any error, but I can't test anything as the desktop environment is missing.

[root@ArchVM ~]# dmesg | grep ngene
[    0.881797] ngene 0000:00:01.0: enabling device (0000 -> 0002)
[    0.882137] ngene 0000:00:01.0: Xen PCI mapped GSI18 to IRQ33
[    0.882204] ngene: Found Mystique SaTiX-S2 Dual (v2)
[    0.891128] ngene: Device version 1
[    0.891164] ngene 0000:00:01.0: Direct firmware load failed with error -2
[    0.891166] ngene 0000:00:01.0: Falling back to user helper
[    0.944675] ngene: Could not load firmware file ngene_18.fw.
[    0.944683] ngene: Copy ngene_18.fw to your hotplug directory!
[    0.945029] ngene: probe of 0000:00:01.0 failed with error -1

That is clear - I didn't copied the firmware into the respective directory. But it recognize the TV card.

 

[root@ArchVM ~]# dmesg | grep nvidia
[    1.169791] nvidia: module license 'NVIDIA' taints kernel.
[    1.710862] nvidia 0000:00:00.0: enabling device (0000 -> 0003)
[    1.714483] nvidia 0000:00:00.0: Xen PCI mapped GSI16 to IRQ34
[    1.721688] [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:00:00.0 on minor 0

[root@ArchVM ~]# dmesg | grep HDA
[    1.706928] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci-0/pci0000:00/0000:00:00.1/sound/card0/input4
[    1.707124] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci-0/pci0000:00/0000:00:00.1/sound/card0/input3
[    1.707281] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci-0/pci0000:00/0000:00:00.1/sound/card0/input2
[    1.707440] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci-0/pci0000:00/0000:00:00.1/sound/card0/input1

 

Issues at the very end:

[    1.765875] Call Trace:
[    1.765876]  <IRQ>  [<ffffffff81513754>] dump_stack+0x4d/0x6f
[    1.765886]  [<ffffffff810ba392>] __report_bad_irq+0x32/0xd0
[    1.765888]  [<ffffffff810ba821>] note_interrupt+0x1a1/0x1f0
[    1.765891]  [<ffffffff810b8219>] handle_irq_event_percpu+0xd9/0x210
[    1.765893]  [<ffffffff810b838d>] handle_irq_event+0x3d/0x60
[    1.765895]  [<ffffffff810bb32a>] handle_fasteoi_irq+0x5a/0x100
[    1.765898]  [<ffffffff81366ddf>] __xen_evtchn_do_upcall+0x21f/0x350
[    1.765901]  [<ffffffff81368dab>] xen_evtchn_do_upcall+0x2b/0x50
[    1.765904]  [<ffffffff815235fe>] xen_do_hypervisor_callback+0x1e/0x30
[    1.765905]  <EOI>  [<ffffffff810013aa>] ? xen_hypercall_sched_op+0xa/0x20
[    1.765910]  [<ffffffff810013aa>] ? xen_hypercall_sched_op+0xa/0x20
[    1.765913]  [<ffffffff8100aef0>] ? xen_safe_halt+0x10/0x20
[    1.765916]  [<ffffffff8101d61f>] ? default_idle+0x1f/0x110
[    1.765917]  [<ffffffff8101dfd6>] ? arch_cpu_idle+0x26/0x30
[    1.765919]  [<ffffffff810b77fa>] ? cpu_startup_entry+0x24a/0x2d0
[    1.765921]  [<ffffffff81505ad4>] ? rest_init+0x84/0x90
[    1.765923]  [<ffffffff818e9f64>] ? start_kernel+0x431/0x43c
[    1.765925]  [<ffffffff818e993c>] ? repair_env_string+0x5c/0x5c
[    1.765927]  [<ffffffff818e95ee>] ? x86_64_start_reservations+0x2a/0x2c
[    1.765929]  [<ffffffff818ebffb>] ? xen_start_kernel+0x55e/0x56a
[    1.765931] handlers:
[    1.765940] [<ffffffffa03633e0>] ata_bmdma_interrupt [libata]
[    1.765945] Disabling IRQ #34

 

I think that I'm going to install an Ubuntu 13.10 and see what happens. Would that be the right move?

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.