Systemctl cannot start displaylink.service

I am trying to use displaylink for my docking station. However, when typing

sudo systemctl status displaylink.service

I get the response

Unit displaylink.service could not be found.

Through further investigation, I noticed that

sudo lsmod | grep evdi

does not output anything. I already installed the evdi module via dkms.

If evdi module is something you manually compiled and it does not get automatically updated with each kernel update, such as akmods do, then a single kernel update will prevent use of that module until you manually recompile it.

The module must be compiled to match the kernel in use. Akmod packages handle that automatically for you but manual compiled packages require a manual recompile.

The displaylink.service OTOH is another issue. Did you install displaylink from an rpm repo or create it manually? Was that service ever active? or installed?

I have not updated the kernel yet since the installation of the evdi module.

I installed displaylink through a rpm package from a github repo: Releases · displaylink-rpm/displaylink-rpm · GitHub
The service was never active as systemctl cannot find it.

I see a displaylink-driver.service unit file in the spec, but no displaylink.service:

Are you following some documentation that suggests displaylink.service? Best to check with rpm -ql <package name> to see what files it contains.

I am following this article: Article - Using DisplayLink devices o...

When I am trying to enable displaylink-driver.service instead, I get

The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.
 
Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit's
  .wants/ or .requires/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
  instance name specified.

The output of rpm -ql displaylink:

/etc/X11/xorg.conf.d/20-displaylink.conf
/etc/logrotate.d/displaylink
/etc/modprobe.d/evdi.conf
/etc/udev/rules.d/99-displaylink.rules
/usr/lib/.build-id
/usr/lib/.build-id/3e
/usr/lib/.build-id/3e/0d6f053a7addc5f87ab3d5be76577460018a87
/usr/lib/.build-id/9e
/usr/lib/.build-id/9e/37deaee4708434a4418c3f9b8f1c6ec0955d51
/usr/lib/systemd/system-preset/95-displaylink.preset
/usr/lib/systemd/system-sleep/displaylink.sh
/usr/lib/systemd/system/displaylink-driver.service
/usr/libexec/displaylink
/usr/libexec/displaylink/DisplayLinkManager
/usr/libexec/displaylink/ella-dock-release.spkg
/usr/libexec/displaylink/firefly-monitor-release.spkg
/usr/libexec/displaylink/libevdi.so
/usr/libexec/displaylink/libevdi.so.1.10.1
/usr/libexec/displaylink/ridge-dock-release.spkg
/usr/libexec/displaylink/udev.sh
/usr/share/licenses/displaylink
/usr/share/licenses/displaylink/LICENSE
/usr/src/evdi-1.10.1
/usr/src/evdi-1.10.1/Kconfig
/usr/src/evdi-1.10.1/LICENSE
/usr/src/evdi-1.10.1/Makefile
/usr/src/evdi-1.10.1/dkms.conf
/usr/src/evdi-1.10.1/evdi_connector.c
/usr/src/evdi-1.10.1/evdi_cursor.c
/usr/src/evdi-1.10.1/evdi_cursor.h
/usr/src/evdi-1.10.1/evdi_debug.c
/usr/src/evdi-1.10.1/evdi_debug.h
/usr/src/evdi-1.10.1/evdi_drm.h
/usr/src/evdi-1.10.1/evdi_drm_drv.c
/usr/src/evdi-1.10.1/evdi_drm_drv.h
/usr/src/evdi-1.10.1/evdi_encoder.c
/usr/src/evdi-1.10.1/evdi_fb.c
/usr/src/evdi-1.10.1/evdi_gem.c
/usr/src/evdi-1.10.1/evdi_i2c.c
/usr/src/evdi-1.10.1/evdi_i2c.h
/usr/src/evdi-1.10.1/evdi_ioc32.c
/usr/src/evdi-1.10.1/evdi_modeset.c
/usr/src/evdi-1.10.1/evdi_painter.c
/usr/src/evdi-1.10.1/evdi_params.c
/usr/src/evdi-1.10.1/evdi_params.h
/usr/src/evdi-1.10.1/evdi_platform_dev.c
/usr/src/evdi-1.10.1/evdi_platform_dev.h
/usr/src/evdi-1.10.1/evdi_platform_drv.c
/usr/src/evdi-1.10.1/evdi_platform_drv.h
/usr/src/evdi-1.10.1/evdi_sysfs.c
/usr/src/evdi-1.10.1/evdi_sysfs.h
/var/log/displaylink
1 Like

That’s probably outdated then :frowning:

I expect this means that you don’t explicitly enable the service—something else should as required.

It’s probably worth asking the folks on the GitHub repo who are providing the rpm for instructions on what needs to be done if they don’t already provide them?

Thank you very for the help. The GitHub repo stated that I should sign the module because of secure boot. The displaylink-driver.service is now active and I can use my docking station.

1 Like