Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EVDI-Kernel 5.13.2 Issues #296

Closed
FBobbioC opened this issue Jul 20, 2021 · 7 comments
Closed

EVDI-Kernel 5.13.2 Issues #296

FBobbioC opened this issue Jul 20, 2021 · 7 comments

Comments

@FBobbioC
Copy link

  • Are you using the latest driver? Yes, 5.4
  • Are you using the latest EVDI version? Yes, 1.9.1
  • If you are using a DisplayLink device, have you checked 'troubleshooting'
    on DisplayLink's website? Yes, DisplayLink compiles without any issues
  • Is this issue related to evdi/kernel? Yes, the issue is related to evdi-kernel
  • Linux distribution and its version -- Slackware64-current
  • Linux kernel version -- 5.13.2
  • Xorg version (if used) -- 1.20.12
  • Desktop environment in use -- Plasma 5.22.3 (KDE)

I tried the fixes listed here: #275

I still have the issue when compiling with kernel 5.13.2

make[1]: Entering directory '/usr/src/linux-5.13.2'
CC [M] /tmp/SBo/evdi-1.9.1/module/evdi_modeset.o
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:331:19: error: initialization of ‘void (*)(struct drm_plane *, struct drm_atomic_state )’ from incompatible pointer type ‘void ()(struct drm_plane *, struct drm_plane_state )’ [-Werror=incompatible-pointer-types]
331 | .atomic_update = evdi_plane_atomic_update,
| ^~~~~~~~~~~~~~~~~~~~~~~~
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:331:19: note: (near initialization for ‘evdi_plane_helper_funcs.atomic_update’)
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:332:16: error: ‘drm_gem_fb_prepare_fb’ undeclared here (not in a function); did you mean ‘drm_gem_fb_create’?
332 | .prepare_fb = drm_gem_fb_prepare_fb
| ^~~~~~~~~~~~~~~~~~~~~
| drm_gem_fb_create
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:336:19: error: initialization of ‘void (
)(struct drm_plane *, struct drm_atomic_state )’ from incompatible pointer type ‘void ()(struct drm_plane *, struct drm_plane_state *)’ [-Werror=incompatible-pointer-types]
336 | .atomic_update = evdi_cursor_atomic_update,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:336:19: note: (near initialization for ‘evdi_cursor_helper_funcs.atomic_update’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:273: /tmp/SBo/evdi-1.9.1/module/evdi_modeset.o] Error 1
make[1]: *** [Makefile:1847: /tmp/SBo/evdi-1.9.1/module] Error 2
make[1]: Leaving directory '/usr/src/linux-5.13.2'
make: *** [Makefile:77: module] Error 2

@FBobbioC
Copy link
Author

Same issue with 5.13.4

make[1]: Entering directory '/usr/src/linux-5.13.4'
CC [M] /tmp/SBo/evdi-1.9.1/module/evdi_platform_drv.o
CC [M] /tmp/SBo/evdi-1.9.1/module/evdi_platform_dev.o
CC [M] /tmp/SBo/evdi-1.9.1/module/evdi_sysfs.o
CC [M] /tmp/SBo/evdi-1.9.1/module/evdi_modeset.o
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:331:19: error: initialization of ‘void (*)(struct drm_plane *, struct drm_atomic_state )’ from incompatible pointer type ‘void ()(struct drm_plane *, struct drm_plane_state )’ [-Werror=incompatible-pointer-types]
331 | .atomic_update = evdi_plane_atomic_update,
| ^~~~~~~~~~~~~~~~~~~~~~~~
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:331:19: note: (near initialization for ‘evdi_plane_helper_funcs.atomic_update’)
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:332:16: error: ‘drm_gem_fb_prepare_fb’ undeclared here (not in a function); did you mean ‘drm_gem_fb_create’?
332 | .prepare_fb = drm_gem_fb_prepare_fb
| ^~~~~~~~~~~~~~~~~~~~~
| drm_gem_fb_create
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:336:19: error: initialization of ‘void (
)(struct drm_plane *, struct drm_atomic_state )’ from incompatible pointer type ‘void ()(struct drm_plane *, struct drm_plane_state *)’ [-Werror=incompatible-pointer-types]
336 | .atomic_update = evdi_cursor_atomic_update,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/SBo/evdi-1.9.1/module/evdi_modeset.c:336:19: note: (near initialization for ‘evdi_cursor_helper_funcs.atomic_update’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:273: /tmp/SBo/evdi-1.9.1/module/evdi_modeset.o] Error 1
make[1]: *** [Makefile:1852: /tmp/SBo/evdi-1.9.1/module] Error 2
make[1]: Leaving directory '/usr/src/linux-5.13.4'
make: *** [Makefile:77: module] Error 2

@GuilhermeBarile
Copy link

@FBobbioC it currently works with the devel branch

@dylanmtaylor
Copy link

I can confirm it works with devel. I'm using evdi-git on Arch with the latest non-LTS kernel and it is working fine. Honestly, would love this module to be part of the upstream kernel :)

@FBobbioC
Copy link
Author

Thank you, @GuilhermeBarile and @dylanmtaylor. I downloaded the zip file from the devel branch and replaced the content of the tar.gz file I had from 1.9.1 with the contents of the zip file and was able to repackage and install evdi-kernel. After a reboot, my Dell D3100 USB 3.0 docking station was able to display the monitors as usual. Thank you again for pointing me in the right direction.

@djallits
Copy link

@FBobbioC

I am trying to replicate your steps, but for some reason the module is not installing. modprobe fails when looking up evdi, which causes the displaylink-driver service to fail.

Any chance you can send step-by-step instructions on what you did?

@FBobbioC
Copy link
Author

FBobbioC commented Jul 24, 2021

@djallits,

May I assume that you are using Slackware or I am wrong on this assumption?

I am using Slackware64-current with an NVIDIA video card.

I had to modify the /etc/rc.d/rc.local file and add the following lines:
(This line is a comment) Load evdi after reboot (This line is a comment)
modprobe evdi
cd /usr/lib64/displaylink
./DisplayLinkManager &
(This line is a comment) Create missing nvidia device nodes after reboot (This line is a comment)
/usr/bin/nvidia-modprobe -c 0 -u

You may not need the last two lines if you are not using an NVIDIA video card.

The first step is to repackage and install dkms (https://github.com/dell/dkms/releases) using the dkms Slackbuild (http://cgit.ponce.cc/slackbuilds/tree/development/dkms).

The displaylink SlackBuild and the evdi and evdi-kernel SlackBuilds can also be downloaded from ponce (http://cgit.ponce.cc/slackbuilds/tree/system/displaylink http://cgit.ponce.cc/slackbuilds/tree/system/evdi http://cgit.ponce.cc/slackbuilds/tree/system/evdi-kernel) and downloaded the latest versions of DisplayLink and evdi from the appropriate pages (https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu https://github.com/DisplayLink/evdi/releases/).

The evdi-kernel required a bit of tinkering, since you have to click on "Code" and then on "Download ZIP" from the devel branch for evdi (https://github.com/DisplayLink/evdi/tree/devel), extract the contents, and copy each part into the evdi-1.9.1.tar.gz folders and then use the SlackBuild to repackage evdi-kernel, which then completed successfully.

These are the packages I use for installation. I have checked them before uploading them

DKMS
DisplayLink
EVDI
EVDI-kernel

@djallits
Copy link

Got it. Thank you for taking the time to write this all out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants