I have a Dell Precision 3530 and a Dell TB16 docking station. Like many others, I'm having trouble using this dock, especially on Linux, but to some extent also on Windows. I'm running Kubuntu 16.04. I am currently running kernel 4.15.0-47, and the intel graphics drivers. (I don't have nvidia drivers installed currently.)
What works (at a clean boot):
- Charging
- Ethernet
- HDMI and DP external displays
- USB (external keyboard and mouse)
What doesn't work (at a clean boot):
- Sound (the taskbar volume icon lists a "USB audio headphone" when the dock is connected, but I get no sound output -- only through the internal speakers)
So far it's alright and usable. However, after I suspend and resume, I also lose the external monitor support, which is a bigger issue than not having external sound. I can see the external monitor, dimmed, in the display configuration dialog, but it is disabled, and even if I click to enable it and apply, it just goes back to being disabled.
I also sometimes (but not always) loose Ethernet connection after suspend and resume.
Looking at the output of sudo journalctl, the most relevant information about the network connection that I can see is
apr 24 06:38:02 dill dhclient[17767]: DHCPDISCOVER on enxc8f750474565 to 255.255.255.255 port 67 interval 11 (xid=0xa74c925b)
apr 24 06:38:06 dill NetworkManager[1056]: <warn> [1556080686.2978] dhcp4 (enxc8f750474565): request timed out
apr 24 06:38:06 dill NetworkManager[1056]: <info> [1556080686.2979] dhcp4 (enxc8f750474565): state changed unknown -> timeout
apr 24 06:38:06 dill NetworkManager[1056]: <info> [1556080686.3304] dhcp4 (enxc8f750474565): canceled DHCP transaction, DHCP client pid 17767
apr 24 06:38:06 dill NetworkManager[1056]: <info> [1556080686.3305] dhcp4 (enxc8f750474565): state changed timeout -> done
apr 24 06:38:06 dill NetworkManager[1056]: <info> [1556080686.3309] device (enxc8f750474565): state change: ip-config -> failed (reason 'ip-config-unavailable') [70 120 5]
apr 24 06:38:06 dill NetworkManager[1056]: <info> [1556080686.3311] policy: disabling autoconnect for connection 'Wired connection 1'.
apr 24 06:38:06 dill NetworkManager[1056]: <warn> [1556080686.3313] device (enxc8f750474565): Activation: failed for connection 'Wired connection 1'
apr 24 06:38:06 dill NetworkManager[1056]: <info> [1556080686.3317] device (enxc8f750474565): state change: failed -> disconnected (reason 'none') [120 30 0]
As for the monitor information, if I unplug the HDMI cable and replug it in, I don't get an image on the external monitor and journalctl tells me the following:
...skipping...
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0004: timeout 01119007
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0005: timeout 01119007
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0006: timeout 01119007
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0007: timeout 01119007
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0008: timeout 01119007
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0009: timeout 01119007
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0004: timeout 01119007
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0005: timeout 01119007
apr 24 11:09:15 dill kernel: nouveau 0000:01:00.0: i2c: aux 0006: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0007: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0008: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0009: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0004: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0005: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0006: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0007: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0008: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0009: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0004: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0005: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0006: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0007: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0008: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0009: timeout 01119007
apr 24 11:09:16 dill kernel: nouveau 0000:01:00.0: i2c: aux 0004: timeout 01119007
apr 24 11:09:17 dill kernel: nouveau 0000:01:00.0: i2c: aux 0005: timeout 01119007
apr 24 11:09:17 dill kernel: nouveau 0000:01:00.0: i2c: aux 0006: timeout 01119007
apr 24 11:09:17 dill kernel: nouveau 0000:01:00.0: i2c: aux 0007: timeout 01119007
apr 24 11:09:17 dill kernel: nouveau 0000:01:00.0: i2c: aux 0008: timeout 01119007
apr 24 11:09:17 dill kernel: nouveau 0000:01:00.0: i2c: aux 0009: timeout 01119007
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 1326 update
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 1
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc QObject(0x0)
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: false
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 1326 : connected = true , enabled = false
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: RRScreenChangeNotify
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Window: 39845892
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Root: 446
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Rotation: "Rotate_0"
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Size ID: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Size: 1920 1080
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: SizeMM: 506 285
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: RRotify_OutputChange
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Output: 1326
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: CRTC: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Mode: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Rotation: "Rotate_0"
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Connection: "Connected"
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xcb.helper: Subpixel Order: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 1326 update
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc QObject(0x0)
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: false
apr 24 11:09:17 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 1326 : connected = true , enabled = false
apr 24 11:09:18 dill org.kde.KScreen[1568]: kscreen.xrandr: Emitting configChanged()
apr 24 11:09:18 dill org.kde.KScreen[1568]: kscreen: Primary output changed from KScreen::Output(Id: 108 , Name: "eDP-1" ) ( "eDP-1" ) to KScreen::Output(Id: 108 , Name: "eDP-1" ) ( "eDP-1" )
apr 24 11:09:18 dill sudo[29036]: martin : TTY=pts/5 ; PWD=/home/martin ; USER=root ; COMMAND=/bin/journalctl
On the other hand, if I plug the HDMI cable directly into the laptop instead of the TB16 dock, I do get an image on the external monitor and journalctl says:
...skipping...
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 108 : connected = true , enabled = true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 109 update
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc XRandRCrtc(0x11055f0)
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 106
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 773
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: false
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 109 : connected = true , enabled = true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 108 update
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc XRandRCrtc(0x11054f0)
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 105
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 115
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 108 : connected = true , enabled = true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 109 update
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc XRandRCrtc(0x11055f0)
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 106
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 773
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: false
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 109 : connected = true , enabled = true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 108 update
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc XRandRCrtc(0x11054f0)
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 105
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 115
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 108 : connected = true , enabled = true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 109 update
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc XRandRCrtc(0x11055f0)
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 106
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 773
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: false
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 109 : connected = true , enabled = true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 108 update
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc XRandRCrtc(0x11054f0)
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 105
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 115
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 108 : connected = true , enabled = true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: XRandROutput 109 update
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_connected: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: m_crtc XRandRCrtc(0x11055f0)
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: CRTC: 106
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: MODE: 773
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Connection: 0
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Primary: false
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Output 109 : connected = true , enabled = true
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen.xrandr: Emitting configChanged()
apr 24 11:10:29 dill org.kde.KScreen[1568]: kscreen: Primary output changed from KScreen::Output(Id: 108 , Name: "eDP-1" ) ( "eDP-1" ) to KScreen::Output(Id: 108 , Name: "eDP-1" ) ( "eDP-1" )
apr 24 11:10:37 dill sudo[29147]: martin : TTY=pts/7 ; PWD=/home/martin ; USER=root ; COMMAND=/bin/journalctl
apr 24 11:10:37 dill sudo[29147]: pam_unix(sudo:session): session opened for user root by martin(uid=0)
So the most apparent thing is that the nouveau driver spits out a lot of timeout warnings when the HDMI is connected to the dock. Perhaps installing the nvidia driver instead might help. I will try that next.
Based on info from another thread, I also tried kernels 4.15.0-43 and 4.15.0-45, but they work even less for me. Then I have no Ethernet connection through the dock, only via the laptop connector, and no wifi.
I have upgraded the firmware of the dock to the latest version.
Does anyone know of a configuration that works with 16.04 and Dell thunderbolt docks?
Under Windows 10, the dock works but the external monitor flickers off and on every now and then.