I'm trying to follow my own installation instructions here: USB to HDMI adapter that works with Ubuntu. They work great on Ubuntu 22.04, but not 20.04. On 20.04 when I do the sudo apt install displaylink-driver
step, I get:
$ sudo apt install displaylink-driver
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
displaylink-driver : Depends: evdi (>= 1.14.1) but it is not going to be installed
Depends: evdi (< 1.15.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
This answer recommends sudo apt install evdi-dkms
.
That results in more errors:
Building initial module for 5.15.0-41-generic
ERROR (dkms apport): kernel package linux-headers-5.15.0-41-generic is not supported
Error! Bad return status for module build on kernel: 5.15.0-41-generic (x86_64)
Consult /var/lib/dkms/evdi/1.6.0+dfsg/build/make.log for more information.
dpkg: error processing package evdi-dkms (--configure):
installed evdi-dkms package post-installation script subprocess returned error exit status 10
Setting up libevdi0 (1.6.0+dfsg-1ubuntu3) ...
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
Errors were encountered while processing:
evdi-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)
Full context:
$ sudo apt install evdi-dkms
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libevdi0
The following NEW packages will be installed:
evdi-dkms libevdi0
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 34.4 kB of archives.
After this operation, 173 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 evdi-dkms all 1.6.0+dfsg-1ubuntu3 [25.5 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 libevdi0 amd64 1.6.0+dfsg-1ubuntu3 [8,972 B]
Fetched 34.4 kB in 0s (74.8 kB/s)
Selecting previously unselected package evdi-dkms.
(Reading database ... 499689 files and directories currently installed.)
Preparing to unpack .../evdi-dkms_1.6.0+dfsg-1ubuntu3_all.deb ...
Unpacking evdi-dkms (1.6.0+dfsg-1ubuntu3) ...
Selecting previously unselected package libevdi0.
Preparing to unpack .../libevdi0_1.6.0+dfsg-1ubuntu3_amd64.deb ...
Unpacking libevdi0 (1.6.0+dfsg-1ubuntu3) ...
Setting up evdi-dkms (1.6.0+dfsg-1ubuntu3) ...
Loading new evdi-1.6.0+dfsg DKMS files...
Building for 5.15.0-41-generic
Building initial module for 5.15.0-41-generic
ERROR (dkms apport): kernel package linux-headers-5.15.0-41-generic is not supported
Error! Bad return status for module build on kernel: 5.15.0-41-generic (x86_64)
Consult /var/lib/dkms/evdi/1.6.0+dfsg/build/make.log for more information.
dpkg: error processing package evdi-dkms (--configure):
installed evdi-dkms package post-installation script subprocess returned error exit status 10
Setting up libevdi0 (1.6.0+dfsg-1ubuntu3) ...
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
Errors were encountered while processing:
evdi-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)
And now sudo apt install
installs on anything else. And sudo apt upgrade
fails with this:
$ sudo apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Setting up evdi-dkms (1.6.0+dfsg-1ubuntu3) ...
Removing old evdi-1.6.0+dfsg DKMS files...
------------------------------
Deleting module version: 1.6.0+dfsg
completely from the DKMS tree.
------------------------------
Done.
Loading new evdi-1.6.0+dfsg DKMS files...
Building for 5.15.0-41-generic
Building initial module for 5.15.0-41-generic
ERROR (dkms apport): kernel package linux-headers-5.15.0-41-generic is not supported
Error! Bad return status for module build on kernel: 5.15.0-41-generic (x86_64)
Consult /var/lib/dkms/evdi/1.6.0+dfsg/build/make.log for more information.
dpkg: error processing package evdi-dkms (--configure):
installed evdi-dkms package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
evdi-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)
So I run sudo dpkg -r evdi-dkms
, per my comment here to fix that, and I'm back at the beginning again. sudo apt upgrade
works again, thank goodness!--whew! But, sudo apt install displaylink-driver
is right back to the error at the beginning.
I tried upgrading to Ubuntu 22.04, and /boot
is too full.
Note: from the sudo apt install evdi-dkms
failure messages above, it says to:
Consult
/var/lib/dkms/evdi/1.6.0+dfsg/build/make.log
for more information.
Here's what is in that file:
From /var/lib/dkms/evdi/1.6.0+dfsg/build/make.log
:
DKMS make.log for evdi-1.6.0+dfsg for kernel 5.15.0-41-generic (x86_64)
Thu 28 Sep 2023 07:05:36 PM MST
make: Entering directory '/usr/src/linux-headers-5.15.0-41-generic'
CC [M] /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_drv.o
CC [M] /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_connector.o
CC [M] /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_modeset.o
CC [M] /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_encoder.o
CC [M] /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_main.o
CC [M] /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_fb.o
CC [M] /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_gem.o
/var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_drv.c:11:10: fatal error: drm/drmP.h: No such file or directory
11 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.build:285: /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_drv.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC [M] /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_painter.o
/var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_connector.c:14:10: fatal error: drm/drmP.h: No such file or directory
14 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
/var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_modeset.c:15:10: fatal error: drm/drmP.h: No such file or directory
15 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.b<drm/drmP.h>uild:285: /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_modeset.o] Error 1
make[1]: *** [scripts/Makefile.build:285: /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_connector.o] Error 1
/var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_encoder.c:14:10: fatal error: drm/drmP.h: No such file or directory
14 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.build:285: /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_encoder.o] Error 1
/var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_gem.c:11:10: fatal error: drm/drmP.h: No such file or directory
11 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.build:285: /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_gem.o] Error 1
/var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_main.c:15:10: fatal error: drm/drmP.h: No such file or directory
15 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.build:285: /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_main.o] Error 1
/var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_painter.c:12:10: fatal error: drm/drmP.h: No such file or directory
12 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.build:285: /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_painter.o] Error 1
/var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_fb.c:20:10: fatal error: drm/drmP.h: No such file or directory
20 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.build:285: /var/lib/dkms/evdi/1.6.0+dfsg/build/evdi_fb.o] Error 1
make: *** [Makefile:1875: /var/lib/dkms/evdi/1.6.0+dfsg/build] Error 2
make: Leaving directory '/usr/src/linux-headers-5.15.0-41-generic'
ERROR (dkms apport): kernel package linux-headers-5.15.0-41-generic is not supported
So apparently I'm missing the <drm/drmP.h>
header file if anyone knows how to get that.
The evdi
source code seems to be here: https://github.com/DisplayLink/evdi
I was unable to build it from scratch. make
fails with another missing header file.
(And this is why people use Windows, friends).
I'm trying to install libdrm-dev
, per these instructions: How to install DisplayLink software on Ubuntu 20.04 or (newer) How to install DisplayLink software on legacy Ubuntu versions
...but that doesn't work either.
New question: Cannot install libdrm-dev
on Ubuntu 20.04 because it requires dependencies which are older than what I have
If I manually build and install libdrm
from source, per my answer here, and then manually try to install the DisplayLink driver, the installer still blocks me:
~/Downloads/Install_Files/DisplayLink/DisplayLink USB Graphics Software for Ubuntu5.8-EXE$ sudo ./displaylink-driver-5.8.0-63.33.run
Verifying archive integrity... 100% MD5 checksums are OK. All good.
Uncompressing DisplayLink Linux Driver 5.8.0-63.33 100%
Distribution discovered: Ubuntu 20.04.4 LTS
[ Installing dependencies ]
Need to update package list.
apt update? (Y/n) n
Unsatisfied dependencies. Missing component: libdrm.
This is a fatal error, cannot install DisplayLink Linux Software.
Full instructions: installing displaylink-driver on Ubuntu 20.04 (also applies to 22.04 or later)
Note: these instructions also apply to Ubuntu 22.04 or later. The only part here that was specific to Ubuntu 20.04 was using
sudo aptitude install libdrm-dev
to installlibdrm-dev
, sincesudo apt install libdrm-dev
didn't work.I figured out a way! I got
libdrm-dev
installed by usingaptitude
:See my full answer, output, and description here: Cannot install
libdrm-dev
on Ubuntu 20.04 because it requires dependencies which are older than what I haveThen, once I had
libdrm-dev
successfully installed, installing the dependencies per the official instructions here worked: How to install DisplayLink software on legacy Ubuntu versions:And then my instructions in my answer here worked: USB to HDMI adapter that works with Ubuntu:
Disable Secure Boot in the BIOS, then reboot, and run the following:
Done!
After rebooting, you can plug in your $90, Club3D CSV-1477 USB 3.0 Type A to Dual Display Port 1.2 4K 60Hz External Graphics Video Adapter, for instance, and it will be recognized in 5 to 10 seconds or so and automatically begin displaying up to two simultaneous 4k at 60 Hz outputs over USB 3.0 USB-A plugs.
In case you're interested, here is my full output when I ran
sudo apt install displaylink-driver
. Notice that it explicitly told me to reboot:Other references