Thunderbolt Dockingstation: PCI bridges and nested PCI devices

106 views
Skip to first unread message

Benjamin Richter

unread,
Dec 25, 2016, 9:49:44 AM12/25/16
to qubes-users
Hi,

as I described earlier (https://groups.google.com/forum/#!msg/qubes-users/uk11tSeu5yU/XtNtOErgDQAJ) I'm using an Asus Transformer Pro 3 with the Thunderbolt 3 docking station, but I cannot get the docks Ethernet device inside a qube.

I've not made any headway in solving this, but I noticed something that might be the reaseon:

/sys/bus/usb/devices/
├── 1-0:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0
├── 1-1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1
├── 1-1.1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1
├── 1-1:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0
├── 1-1.1:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.0
├── 1-1.1:1.1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.1
├── 1-1.1:1.2 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.2
├── 1-1.1:1.3 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.3
├── 1-4 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-4
├── 1-4:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0
├── 1-4:1.1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1
├── 1-7 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-7
├── 1-7:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0
├── 1-7:1.1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1
├── 1-8 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-8
├── 1-8:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0
├── 1-8:1.1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1
├── 1-8:1.2 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2
├── 2-0:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-0:1.0
├── 2-1 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-1
├── 2-1:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0
├── 3-0:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-0:1.0
├── 3-1 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1
├── 3-1.1 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1
├── 3-1:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1:1.0
├── 3-1.1:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1:1.0
├── 3-1.1.2 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1.2
├── 3-1.1.2:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1.2/3-1.1.2:1.0
├── 3-1.1.2:1.1 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1.2/3-1.1.2:1.1
├── 3-1.1.2:1.2 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1.2/3-1.1.2:1.2
├── 3-1.1.2:1.3 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1.2/3-1.1.2:1.3
├── 3-1.1.4 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1.4
├── 3-1.1.4:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1.4/3-1.1.4:1.0
├── 3-1.1.4:1.1 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.1/3-1.1.4/3-1.1.4:1.1
├── 4-0:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb4/4-0:1.0
├── 4-1 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb4/4-1
├── 4-1.1 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb4/4-1/4-1.1
├── 4-1:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb4/4-1/4-1:1.0
├── 4-1.1.1 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb4/4-1/4-1.1/4-1.1.1
├── 4-1.1:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb4/4-1/4-1.1/4-1.1:1.0
├── 4-1.1.1:1.0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb4/4-1/4-1.1/4-1.1.1/4-1.1.1:1.0
├── usb1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1
├── usb2 -> ../../../devices/pci0000:00/0000:00:14.0/usb2
├── usb3 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3
└── usb4 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb4


USB3 and USB4 are the USB devices on the docking station, as you can see those are nested deeper in the structure, below several PCI bridges.
I suppose this might be the reason I cannot assign those devices correctly to a qube. Neither assigning the USB device alone, nor all superordinate devices works.
Also I cannot enable permissive mode for these devices, it always says "no such device":

sudo sh -c 'echo 0000:00:1c.0 > /sys/bus/pci/drivers/pciback/permissive'
sh: line 0: echo: write error: No such device
sudo sh -c 'echo 0000:01:00.0 > /sys/bus/pci/drivers/pciback/permissive'
sh: line 0: echo: write error: No such device
sudo sh -c 'echo 0000:02:02.0 > /sys/bus/pci/drivers/pciback/permissive'
sh: line 0: echo: write error: No such device
sudo sh -c 'echo 0000:39:00.0 > /sys/bus/pci/drivers/pciback/permissive'
sh: line 0: echo: write error: No such device

Does anyone have experience with similar setups in qubes or xen? I really don't know how to proceed further.

Here further device infos:

lsusb
Bus 004 Device 004: ID 0bda:8153 Realtek Semiconductor Corp.
Bus 004 Device 003: ID 05e3:0620 Genesys Logic, Inc.
Bus 004 Device 002: ID 05e3:0620 Genesys Logic, Inc.
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 006: ID 1e4e:0898 Cubeternet
Bus 003 Device 005: ID 0572:1703 Conexant Systems (Rockwell), Inc.
Bus 003 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 006: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 011: ID 0b05:1838 ASUSTek Computer, Inc.
Bus 001 Device 004: ID 8087:0a2a Intel Corp.
Bus 001 Device 003: ID 04f2:b5b1 Chicony Electronics Co., Ltd
Bus 001 Device 015: ID 046d:0a1f Logitech, Inc. G930
Bus 001 Device 014: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 5, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 5, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 5, If 2, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 5, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 4: Dev 6, If 0, Class=, Driver=, 12M
|__ Port 4: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
|__ Port 1: Dev 6, If 0, Class=Hub, Driver=hub/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
|__ Port 1: Dev 14, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 15, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 1: Dev 15, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 1: Dev 15, If 2, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 1: Dev 15, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 4: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 4: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 7: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 7: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 8: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 8: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 8: Dev 11, If 2, Class=Human Interface Device, Driver=usbhid, 12M

lspci -t
-[0000:00]-+-00.0
+-02.0
+-04.0
+-05.0
+-13.0
+-14.0
+-14.2
+-14.3
+-15.0
+-15.1
+-15.2
+-16.0
+-17.0
+-1c.0-[01-39]----00.0-[02-39]--+-00.0-[03]--
| +-01.0-[04-38]--
| \-02.0-[39]----00.0
+-1d.0-[3a]----00.0
+-1f.0
+-1f.2
+-1f.3
\-1f.4
lspci
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
00:05.0 Multimedia controller: Intel Corporation Skylake Imaging Unit (rev 01)
00:13.0 Non-VGA unclassified device: Intel Corporation Device 9d35 (rev 21)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:14.3 Multimedia controller: Intel Corporation Device 9d32 (rev 01)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:15.2 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Device 9d1a (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 PCI bridge: Intel Corporation DSL6340 Thunderbolt 3 Bridge [Alpine Ridge 2C 2015]
02:00.0 PCI bridge: Intel Corporation DSL6340 Thunderbolt 3 Bridge [Alpine Ridge 2C 2015]
02:01.0 PCI bridge: Intel Corporation DSL6340 Thunderbolt 3 Bridge [Alpine Ridge 2C 2015]
02:02.0 PCI bridge: Intel Corporation DSL6340 Thunderbolt 3 Bridge [Alpine Ridge 2C 2015]
39:00.0 USB controller: Intel Corporation DSL6340 USB 3.1 Controller [Alpine Ridge]
3a:00.0 Network controller: Intel Corporation Wireless 7265 (rev 59)
Reply all
Reply to author
Forward
0 new messages