XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    old DVB card with PCI Passthrough

    Scheduled Pinned Locked Moved Compute
    10 Posts 4 Posters 610 Views 4 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R Offline
      rurich
      last edited by

      My machine:
      Server: DELL T3620 with E3-1245v6 and 16 GB ECC RAM
      OS: XCP-ng 8.2

      I could not forward a PCI DVB-C card to a VM.
      All needed steps for it were already done (see https://xcp-ng.org/docs/compute.html#pci-passthrough😞

      1. I need to forward the SATA Controller (00:17.0) and the DVB-C card (04:02.0)
      ]# lspci
      00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
      00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 05)
      00:02.0 VGA compatible controller: Intel Corporation HD Graphics P630 (rev 04)
      00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
      00:14.2 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem (rev 31)
      00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31)
      00:16.3 Serial controller: Intel Corporation 100 Series/C230 Series Chipset Family KT Redirection (rev 31)
      00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)
      00:1b.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #17 (rev f1)
      00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 (rev f1)
      00:1f.0 ISA bridge: Intel Corporation C236 Chipset LPC/eSPI Controller (rev 31)
      00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)
      00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)
      00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
      02:00.0 Non-Volatile memory controller: Sandisk Corp WD Black SN750 / PC SN730 NVMe SSD
      03:00.0 PCI bridge: Texas Instruments XIO2001 PCI Express-to-PCI Bridge
      04:02.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
      
      1. tell XCP-ng not to use this device ID for Dom0
      ]# /opt/xensource/libexec/xen-cmdline --set-dom0 "xen-pciback.hide=(00:17.0)(04:02.0)"
      ]# reboot
      
      1. list assignable devices
      ]# xl pci-assignable-list
      0000:00:17.0
      0000:04:02.0
      
      1. add DVB-C card to my VDR VM
      ]# xe vm-param-set other-config:pci=0/0000:04:02.0 uuid=799e9021-e4e1-8824-cfaa-7c53c04b216b
      
      1. starting VM
      ]# xe vm-start uuid=799e9021-e4e1-8824-cfaa-7c53c04b216b
      The server failed to handle your request, due to an internal error. The given message may give details useful for debugging the problem.
      message: xenopsd internal error: Cannot_add(0000:04:02.0, Xenctrlext.Unix_error(35, "3: No such process"))
      

      It is very strange. I don't have problems to forward the SATA controller to my TrueNAS VM. It works fine. But with the DVB-C card it doesn't work :'-(.
      For analysing here is the output of lshw:

              *-pci:2
                   description: PCI bridge
                   product: 100 Series/C230 Series Chipset Family PCI Express Root Port #1
                   vendor: Intel Corporation
                   physical id: 1c
                   bus info: pci@0000:00:1c.0
                   version: f1
                   width: 32 bits
                   clock: 33MHz
                   capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
                   configuration: driver=pcieport
                   resources: irq:180 memory:ef000000-ef0fffff
                 *-pci
                      description: PCI bridge
                      product: XIO2001 PCI Express-to-PCI Bridge
                      vendor: Texas Instruments
                      physical id: 0
                      bus info: pci@0000:03:00.0
                      version: 00
                      width: 32 bits
                      clock: 33MHz
                      capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
                      resources: memory:ef000000-ef0fffff
                    *-multimedia
                         description: Multimedia controller
                         product: SAA7146
                         vendor: Philips Semiconductors
                         physical id: 2
                         bus info: pci@0000:04:02.0
                         version: 01
                         width: 32 bits
                         clock: 33MHz
                         configuration: driver=pciback latency=32 maxlatency=38 mingnt=15
                         resources: irq:18 memory:ef000000-ef0001ff
      

      I tried already to forward (00:1c.0)(03:00.0)(04:02.0) without success.

      Here are the log entries from /var/log/xensource.log:

      Aug 26 14:28:33 xcp-ng xenopsd-xc: [debug||40 ||xenops] QMP command for domid 14: {"execute":"device_add","id":"qmp-000127-14","arguments":{"driver":"xen-pci-passthrough","id":"pci-pt-04_02.0","hostaddr":"0000:04:02.0","permissive":false}}
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [debug||40 ||xenops] received QMP response qmp-000127-14 (File "xc/device_common.ml", line 502, characters 49-56)
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [error||40 ||backtrace] Raised Xenctrlext.Unix_error(35, "3: No such process")
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [error||40 ||backtrace] 1/4 xenopsd-xc Raised at file xc/device.ml, line 1591
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [error||40 ||backtrace] 2/4 xenopsd-xc Called from file list.ml, line 110
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [error||40 ||backtrace] 3/4 xenopsd-xc Called from file xc/device.ml, line 1601
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [error||40 ||backtrace] 4/4 xenopsd-xc Called from file lib/backtrace.ml, line 114
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [error||40 ||backtrace]
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [ info||40 ||xenops_server] Caught Cannot_add(0000:04:02.0, Xenctrlext.Unix_error(35, "3: No such process")) executing ["VM_start",["799e9021-e4e1-8824-cfaa-7c53c04b216b",false]]: triggering cleanup actions
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [debug||40 |Async.VM.start R:ddd6575a2d3a|xenops_server] Task 5071 reference Async.VM.start R:ddd6575a2d3a: ["VM_check_state","799e9021-e4e1-8824-cfaa-7c53c04b216b"]
      Aug 26 14:28:33 xcp-ng xenopsd-xc: [debug||40 |Async.VM.start R:ddd6575a2d3a|xenops_server] VM.shutdown 799e9021-e4e1-8824-cfaa-7c53c04b216b
      

      What can I do else to get it working?

      R 1 Reply Last reply Reply Quote 0
      • R Offline
        rurich @rurich
        last edited by

        Does anyone have any idea why it is not working?

        1 Reply Last reply Reply Quote 0
        • olivierlambertO Offline
          olivierlambert Vates 🪐 Co-Founder CEO
          last edited by

          Hmm I have no idea, except for a typo somewhere in the PCI addresses 🤔

          R 1 Reply Last reply Reply Quote 0
          • R Offline
            rurich @olivierlambert
            last edited by

            @olivierlambert
            Thank you for your answer.
            If I list PCIs I get the following outpu:

            ...
            04:02.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
            ...
            

            Is it right, that I have to use '0000:04:02.0' to attach the device to my VM?
            What is the meaning of the first '0000:'?
            Have you any idea what the meaning/reason of the error can be?

            Cannot_add(0000:04:02.0, Xenctrlext.Unix_error(35, "3: No such process"))
            
            R 1 Reply Last reply Reply Quote 0
            • R Offline
              rurich @rurich
              last edited by

              Can anyone help me figure out what the problem is?
              Here is the /var/log/daemon.log: daemon.log.txt

              If you need other logs just let me know and I'll attach them too.

              1 Reply Last reply Reply Quote 0
              • olivierlambertO Offline
                olivierlambert Vates 🪐 Co-Founder CEO
                last edited by

                Are you sure about the log? I can't spot the "No such process" issue in there.

                R 1 Reply Last reply Reply Quote 0
                • R Offline
                  rurich @olivierlambert
                  last edited by

                  @olivierlambert thank you for your response.
                  Here is the /var/log/xensource.log where you can find the error: xensource.log.txt

                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    tompsweeney
                    last edited by

                    @rurich I'm curious if you ever managed to resolve this issue? I just encountered the same thing with an older PCI capture card (pcHDTV HD-5500) and am ready to give up on it.

                    R 1 Reply Last reply Reply Quote 0
                    • R Offline
                      rurich @tompsweeney
                      last edited by

                      @tompsweeney No, I still have the problem.

                      1 Reply Last reply Reply Quote 0
                      • GusymochisG Offline
                        Gusymochis
                        last edited by

                        I'm having exactly the same problem with a "Tiger Jet Network Inc. / ICP DAS Tiger3XX Modem/ISDN interface" card.
                        logs show this:

                        May  5 16:13:17 xcp-ng xapi: [debug||412529 |Async.VM.start R:f406c721ea1c|xenops] xapi_cache: creating cache for ae56aad1-bab7-e6eb-8599-8eea93291e54
                        May  5 16:13:17 xcp-ng xapi: [debug||412529 |Async.VM.start R:f406c721ea1c|xenops] xenops_cache: creating empty cache for ae56aad1-bab7-e6eb-8599-8eea93291e54
                        May  5 16:13:17 xcp-ng xapi: [debug||412529 |Async.VM.start R:f406c721ea1c|xapi_network] register_vif vif=OpaqueRef:8b603d12-373e-4086-a03b-e63e45afb21e network=OpaqueRef:de3a7251-596a-4052-a90a-0caa23d93947
                        May  5 16:13:17 xcp-ng xapi: [ info||412529 |Async.VM.start R:f406c721ea1c|xenops] xenops: VM.start ae56aad1-bab7-e6eb-8599-8eea93291e54
                        May  5 16:13:17 xcp-ng xapi: [ info||412529 |Async.VM.start R:f406c721ea1c|xenops] xenops: Queueing VM.unpause ae56aad1-bab7-e6eb-8599-8eea93291e54
                        May  5 16:13:24 xcp-ng xapi: [ info||412529 |Async.VM.start R:f406c721ea1c|xapi_network] Caught Xenops_interface.Xenopsd_error([S(Internal_error);S(Cannot_add(0000:06:00.0, Xenctrlext.Unix_error(35, "3: No such process")))]): detaching networks
                        May  5 16:13:24 xcp-ng xapi: [error||412529 |Async.VM.start R:f406c721ea1c|xenops] Caught exception starting VM: Xenops_interface.Xenopsd_error([S(Internal_error);S(Cannot_add(0000:06:00.0, Xenctrlext.Unix_error(35, "3: No such process")))])
                        May  5 16:13:24 xcp-ng xapi: [debug||412529 |Async.VM.start R:f406c721ea1c|xenops] VM ae56aad1-bab7-e6eb-8599-8eea93291e54 set_resident_on
                        May  5 16:13:24 xcp-ng xapi: [debug||412529 |Async.VM.start R:f406c721ea1c|xenops] Signalling xenapi event thread to re-register, and xenopsd events to sync
                        May  5 16:13:24 xcp-ng xapi: [ info||412529 |Async.VM.start R:f406c721ea1c|xenops] xenops: UPDATES.refresh_vm ae56aad1-bab7-e6eb-8599-8eea93291e54
                        May  5 16:13:24 xcp-ng xapi: [debug||412529 |Async.VM.start R:f406c721ea1c|xenops] Client.UPDATES.inject_barrier 6
                        May  5 16:13:24 xcp-ng xapi: [debug||412529 |Async.VM.start R:f406c721ea1c|xenops] triggering xapi event thread to re-register via session.logout
                        May  5 16:13:24 xcp-ng xapi: [error||412529 |Async.VM.start R:f406c721ea1c|xenops] Re-raising as INTERNAL_ERROR [ xenopsd internal error: Cannot_add(0000:06:00.0, Xenctrlext.Unix_error(35, "3: No such process")) ]
                        May  5 16:13:24 xcp-ng xapi: [error||412529 ||backtrace] Async.VM.start R:f406c721ea1c failed with exception Server_error(INTERNAL_ERROR, [ xenopsd internal error: Cannot_add(0000:06:00.0, Xenctrlext.Unix_error(35, "3: No such process")) ])
                        May  5 16:13:24 xcp-ng xapi: [error||412529 ||backtrace] Raised Server_error(INTERNAL_ERROR, [ xenopsd internal error: Cannot_add(0000:06:00.0, Xenctrlext.Unix_error(35, "3: No such process")) ])
                        May  5 16:13:24 xcp-ng xapi: [error||412529 ||backtrace] 1/1 xapi Raised at file (Thread 412529 has no backtrace table. Was with_backtraces called?, line 0
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post