Go Back   DisplayLink Forum > DisplayLink Graphics Technology > Linux and Open Source

Reply
 
Thread Tools Search this Thread Display Modes
Old 01-19-2021, 06:18 AM   #1
andygoth
Junior Member
 
Join Date: Jan 2021
Posts: 4
Default Slackware support

I am working on adapting the DisplayLink driver to work on Slackware. The former maintainer of the DisplayLink SlackBuild script told me to go ahead and take over, since his last update was back in 2017. The driver seems to have changed in a few ways since then, for example installing to /opt/displaylink and requiring systemd, upstart, or runit.

Unfortunately, I still don't have things working right, and I can't be sure if the problem is with the driver, my Slackware adaptations, my hardware, Slackware64-current, or something else.

I'm using a Dell D3100 dock, whose Ethernet, keyboard, mouse, and sound are working fine. Here's the output of lsusb:

Code:
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 04f3:0903 Elan Microelectronics Corp. ELAN:Fingerprint
Bus 003 Device 004: ID 13d3:5a05 IMC Networks USB2.0 VGA UVC WebCam
Bus 003 Device 003: ID 13d3:3496 IMC Networks 
Bus 003 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 005: ID 17e9:436e DisplayLink Dell D3100 USB3.0 Dock
Bus 002 Device 004: ID 2109:0813 VIA Labs, Inc. USB3.0 Hub
Bus 002 Device 003: ID 17e9:436e DisplayLink Dell D3100 USB3.0 Dock
Bus 002 Device 002: ID 2109:0813 VIA Labs, Inc. USB3.0 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 13ba:0018 PCPlay Barcode PCP-BCG4209
Bus 001 Device 003: ID 2109:2813 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 002: ID 2109:2813 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Those two 17e9's look good. I also see related text in dmesg:

Code:
[    6.797257] usb 2-2.1: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[    6.810352] usb 2-2.1: New USB device found, idVendor=17e9, idProduct=436e, bcdDevice=31.34
[    6.810420] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    6.810475] usb 2-2.1: Product: Dell D3100 USB3.0 Dock
[    6.810513] usb 2-2.1: Manufacturer: DisplayLink
[    6.810549] usb 2-2.1: SerialNumber: 2010202407B
[...]
[    7.404132] usb 2-2.3: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
[    7.417935] usb 2-2.3: New USB device found, idVendor=17e9, idProduct=436e, bcdDevice=31.34
[    7.419685] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    7.421395] usb 2-2.3: Product: Dell D3100 USB3.0 Dock
[    7.423100] usb 2-2.3: Manufacturer: DisplayLink
[    7.424787] usb 2-2.3: SerialNumber: 2010202407
[...]
[   37.687498] evdi: loading out-of-tree module taints kernel.
[   37.702820] evdi: [I] Initialising logging on level 5
This ties into udev somewhat okay. It's not starting DisplayLinkManager on boot, but it does work after "udevadm trigger -c add". I know very little about udev and am not sure how to debug.

Here's /dev/displaylink:

Code:
$ ls -l /dev/displaylink/by-id/
total 0
lrwxrwxrwx 1 root root 20 Jan 18 23:46 usb-002-003-DisplayLink_Dell_D3100_USB3.0_Dock_2010202407B -> /dev/bus/usb/002/003
lrwxrwxrwx 1 root root 20 Jan 18 23:46 usb-002-005-DisplayLink_Dell_D3100_USB3.0_Dock_2010202407 -> /dev/bus/usb/002/005
At this moment, DisplayLinkManager is running. Yet, xrandr --listproviders appears to show only the onboard video:

Code:
$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x55 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 2 associated providers: 0 name:AMD Radeon(TM) Vega 8 Graphics @ pci:0000:05:00.0
What is the next thing I should be looking at?

How do I read /var/log/displaylink/DisplayLinkManager.log? It appears to be a bunch of base64-encoded lines, but they decode to binary or gibberish.

Are there any other Slackware users here? Would anyone care to test my SlackBuild script? It's still a work-in-progress (haven't added dkms support yet).

Edit: After poking around forum a bit more, it seems the kernel and evdi versions are of great importance. I have kernel 5.10.6 and evdi 1.9.0. I played around trying to build the bundled evdi, but even with 228.patch it has a few compile errors due to drm_prime_pages_to_sg() wanting a "struct drm_device *" but being given a "struct page **".

While on the topic of versions, I should be clear that I'm using DisplayLink 5.3.1.34.

Last edited by andygoth; 01-19-2021 at 06:36 AM. Reason: versions
andygoth is offline   Reply With Quote
Old 01-24-2021, 09:08 PM   #2
andygoth
Junior Member
 
Join Date: Jan 2021
Posts: 4
Default

I noticed that the release notes specifically calls out Linux kernel versions 4.15 through 5.5. I was using kernel 5.10.6 and have now switched to 5.4.92. I also switched from evdi 1.9.0 to the version bundled in the DisplayLink driver download, which I believe to be 1.7.0.

Despite all this, I get exactly the same indications as in my original post. Nothing has changed.

What diagnostics are available? How do I read DisplayLinkManager.log? How can I proceed?

Update: I was able to get things working to a limited degree by restarting the X server after doing "udevadm trigger -c add". I then had to go through the xrandr rigmarole before being able to enable the displays for use. Guess that's all on me to figure out what's stopping udev from working right at boot time. I'll post updates as I get this worked out.

The big problem now is the very poor display update rate. It seems like exactly the same problem described by "Notice to Ubuntu 20.04 users". However, I can't use the provided patch because I'm using X.org 1.20.10 on Slackware, not X.org 1.20.8 on Ubuntu. Also I have an AMD-only system, which the patch specifically calls out as not being supported.

Is the patch available in source code form? Maybe I could port it from 1.20.8 to 1.20.10 and rebuild for my architecture and distribution.

Last edited by andygoth; 01-24-2021 at 10:08 PM.
andygoth is offline   Reply With Quote
Old 01-25-2021, 05:41 PM   #3
andygoth
Junior Member
 
Join Date: Jan 2021
Posts: 4
Default

Getting afield of the Slackware angle, but I just disabled the internal laptop screen and WOW the frame rate went from bad to HORRENDOUS. I don't see anything spamming /var/log/syslog, as was suggested on some other forum. I also don't see excessively high CPU usage. Known issue I get it, but it's been more than half a year since the last official update, which was a binary-only rebuild of one specific version of X.org targeting one specific Linux distribution and excluding AMD CPUs. What is the status on this?
andygoth is offline   Reply With Quote
Old 01-29-2021, 06:45 AM   #4
andygoth
Junior Member
 
Join Date: Jan 2021
Posts: 4
Default

Having received exactly zero support, I decided to call it quits on this project, return my D3100 and my laptop, and instead go with Thunderbolt 3.

I predict it won't be long before USB 3 video will be forgotten altogether, replaced by USB 2 video at the low end and DisplayPort via Thunderbolt 3/USB 4 for any serious use.
andygoth is offline   Reply With Quote
Reply

Tags
d3100 docking station, linux, slackware

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:02 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, vBulletin Solutions, Inc.