DisplayLink / evdi

Extensible Virtual Display Interface
MIT License
689 stars 179 forks source link

Kernel module fails to build on mainline kernel 6.6-rc5 #433

Closed mrscottie closed 3 months ago

mrscottie commented 9 months ago

The kernel module is failing to build on the latest mainline kernel (6.6-rc5). Below is the output from executing make:

make -C /lib/modules/6.6.0-rc5-1-mainline/build M=$PWD make[1]: Entering directory '/usr/lib/modules/6.6.0-rc5-1-mainline/build' CC [M] /usr/src/evdi/module/evdi_platform_drv.o gcc: warning: include/drm: linker input file unused because linking not done CC [M] /usr/src/evdi/module/evdi_platform_dev.o gcc: warning: include/drm: linker input file unused because linking not done CC [M] /usr/src/evdi/module/evdi_sysfs.o gcc: warning: include/drm: linker input file unused because linking not done CC [M] /usr/src/evdi/module/evdi_modeset.o gcc: warning: include/drm: linker input file unused because linking not done CC [M] /usr/src/evdi/module/evdi_connector.o gcc: warning: include/drm: linker input file unused because linking not done CC [M] /usr/src/evdi/module/evdi_encoder.o gcc: warning: include/drm: linker input file unused because linking not done CC [M] /usr/src/evdi/module/evdi_drm_drv.o /usr/src/evdi/module/evdi_drm_drv.c:127:31: error: ‘drm_gem_prime_fd_to_handle’ undeclared here (not in a function) 127 | .prime_fd_to_handle = drm_gem_prime_fd_to_handle, | ^~~~~~ /usr/src/evdi/module/evdi_drm_drv.c:129:31: error: ‘drm_gem_prime_handle_to_fd’ undeclared here (not in a function) 129 | .prime_handle_to_fd = drm_gem_prime_handle_to_fd, | ^~~~~~ make[3]: [scripts/Makefile.build:243: /usr/src/evdi/module/evdi_drm_drv.o] Error 1 make[2]: [/usr/lib/modules/6.6.0-rc5-1-mainline/build/Makefile:1913: /usr/src/evdi/module] Error 2 make[1]: [Makefile:234: __sub-make] Error 2 make[1]: Leaving directory '/usr/lib/modules/6.6.0-rc5-1-mainline/build' make: [Makefile:86: module] Error 2

The same output is produced if using dkms to build the module. I have uninstalled and reinstalled both the linux-mainline and linux-mainline-headers packages; however, the result is always the same.

This module was building and working fine on mainline kernel 6.3. After upgrading to mainline kernel 6.4 the module has failed to build.

I am currently using the kernel module for kernel 6.5.6 without issues.

L422Y commented 8 months ago

It also fails on 6.6-rc1

CFLAGS="-isystem./include -isystem./include/uapi -Werror -Wextra -Wall -Wno-error=missing-field-initializers -Werror=sign-compare -Wmissing-prototypes -Wstrict-prototypes -Werror=discarded-qualifiers " make -C module
make[1]: Entering directory '/root/evdi/module'
make -C /lib/modules/6.6.0-rc1-edge-rockchip-rk3588/build M=$PWD
make[2]: Entering directory '/usr/src/linux-headers-6.6.0-rc1-edge-rockchip-rk3588'
  CC [M]  /root/evdi/module/evdi_platform_drv.o
  CC [M]  /root/evdi/module/evdi_platform_dev.o
  CC [M]  /root/evdi/module/evdi_sysfs.o
  CC [M]  /root/evdi/module/evdi_modeset.o
  CC [M]  /root/evdi/module/evdi_connector.o
  CC [M]  /root/evdi/module/evdi_encoder.o
  CC [M]  /root/evdi/module/evdi_drm_drv.o
/root/evdi/module/evdi_drm_drv.c:127:31: error: ‘drm_gem_prime_fd_to_handle’ undeclared here (not in a function)
  127 |         .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/root/evdi/module/evdi_drm_drv.c:129:31: error: ‘drm_gem_prime_handle_to_fd’ undeclared here (not in a function)
  129 |         .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [scripts/Makefile.build:243: /root/evdi/module/evdi_drm_drv.o] Error 1
make[3]: *** [/usr/src/linux-headers-6.6.0-rc1-edge-rockchip-rk3588/Makefile:1913: /root/evdi/module] Error 2
make[2]: *** [Makefile:234: __sub-make] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-6.6.0-rc1-edge-rockchip-rk3588'
make[1]: *** [Makefile:86: module] Error 2
make[1]: Leaving directory '/root/evdi/module'
make: *** [Makefile:10: all] Error 2
ziasquinn commented 8 months ago

Can confirm:

make: *** [Makefile:10: all] Error 2
error: builder for '/nix/store/by4r6ygvs9r3mw9b9kc1nkl0i2x1jqrc-evdi-1.14.1.drv' failed with exit code 2
error: 1 dependencies of derivation '/nix/store/a1flmsznpk7mdl3hvjmihmnpf6xfzpim-displaylink-5.8.0-63.33.drv' failed to build
error: 1 dependencies of derivation '/nix/store/j03j48cbijs1vag278l159kjs5z9qxq4-kernel-modules.drv' failed to build
error (ignored): error: cannot unlink '/tmp/nix-build-nvidia-x11-545.23.06-6.6.0-xanmod1.drv-7/NVIDIA-Linux-x86_64-545.23.06/kernel': Directory not empty
error: 1 dependencies of derivation '/nix/store/f6x7z4agf7cj8ibdgq12myknjb5gj4x6-linux-6.6.0-xanmod1-modules.drv' failed to build
error: 1 dependencies of derivation '/nix/store/vf82qlsznacl3vjyaqci2aaw45nk2k7a-nixos-system-mother-23.11pre542330.0cbe9f69c234.drv' failed to build
dominikzogg commented 8 months ago

Kernel 6.6 was release and will arrive in Fedora in about 2 weeks and probably earlier in Arch. Any update on this?

cedricroijakkers commented 8 months ago

I'm just here waiting for the response from the DisplayLink maintainers saying that Arch/Nix/Fedora is not a supported distribution.

dominikzogg commented 8 months ago

@cedricroijakkers i do not believe that beeing passive agressive will convince the team to change the supported distribution(s). And within the last two years using it they were fast in adapt to new kernels long before they're used in Ubuntu, some versions never were.

Crashdummyy commented 8 months ago

I'm just here waiting for the response from the DisplayLink maintainers saying that Arch/Nix/Fedora is not a supported distribution.

Besides that doesnt even matter as this is the kernel module that wont compile on ubuntu as well.

https://github.com/torvalds/linux/commit/71a7974ac7019afeec105a54447ae1dc7216cbb3

It appears the header file doesnt expose it anymore

Crashdummyy commented 8 months ago

No diea what I broke with this but my journal does not get flushed and all 3 screens are working fine again.

diff --git a/module/evdi_drm_drv.c b/module/evdi_drm_drv.c
index 09a9da0..00b7402 100644
--- a/module/evdi_drm_drv.c
+++ b/module/evdi_drm_drv.c
@@ -124,9 +124,7 @@ static struct drm_driver driver = {

        .fops = &evdi_driver_fops,

-       .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
        .gem_prime_import = drm_gem_prime_import,
-       .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 #if KERNEL_VERSION(5, 11, 0) <= LINUX_VERSION_CODE || defined(EL8)
 #else
        .preclose = evdi_driver_preclose,
diff --git a/module/evdi_fb.c b/module/evdi_fb.c
index 3789b33..4a4fb6a 100644
--- a/module/evdi_fb.c
+++ b/module/evdi_fb.c
@@ -418,7 +418,6 @@ static int evdifb_create(struct drm_fb_helper *helper,
        info->fix.smem_start = (unsigned long)efbdev->efb.obj->vmapping;

 #if KERNEL_VERSION(4, 20, 0) <= LINUX_VERSION_CODE || defined(EL8)
-       info->flags = FBINFO_DEFAULT;
 #else
        info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT;
 #endif
             .',;::::;,'.
         .';:cccccccccccc:;,.
      .;cccccccccccccccccccccc;.         crashdummy@crashphyrus 
    .:cccccccccccccccccccccccccc:.       ---------------------- 
  .;ccccccccccccc;.:dddl:.;ccccccc;.     OS: Fedora release 39 (Thirty Nine) x86_64 
 .:ccccccccccccc;OWMKOOXMWd;ccccccc:.    Host: ROG Zephyrus G15 GA503RW_GA503RW 1.0 
.:ccccccccccccc;KMMc;cc;xMMc:ccccccc:.   Kernel: 6.6.1-0.rc1.350.vanilla.fc39.x86_64 
,cccccccccccccc;MMM.;cc;;WW::cccccccc,   Uptime: 7 mins 
:cccccccccccccc;MMM.;cccccccccccccccc:   Packages: 3580 (rpm), 68 (flatpak) 
:ccccccc;oxOOOo;MMM0OOk.;cccccccccccc:   Shell: bash 5.2.15 
cccccc:0MMKxdd:;MMMkddc.;cccccccccccc;   Resolution: 2560x1440 
ccccc:XM0';cccc;MMM.;cccccccccccccccc'   DE: GNOME 45.1 
ccccc;MMo;ccccc;MMW.;ccccccccccccccc;    WM: Mutter 
ccccc;0MNc.ccc.xMMd:ccccccccccccccc;     WM Theme: Sweet-Dark 
cccccc;dNMWXXXWM0::cccccccccccccc:,      Theme: Sweet-Dark-v40 [GTK2/3] 
cccccccc;.:odl:.;cccccccccccccc:,.       Icons: candy-icons [GTK2/3] 
:cccccccccccccccccccccccccccc:'.         Terminal: terminator 
.:cccccccccccccccccccccc:;,..            CPU: AMD Ryzen 9 6900HS with Radeon Graphics (16) @ 4.925GHz 
  '::cccccccccccccc::;,.                 GPU: NVIDIA Geforce RTX 3070 Ti Laptop GPU 
                                         GPU: AMD ATI Radeon 680M 
                                         Memory: 5270MiB / 31323MiB 
Kevinjil commented 7 months ago

No diea what I broke with this but my journal does not get flushed and all 3 screens are working fine again.

diff --git a/module/evdi_drm_drv.c b/module/evdi_drm_drv.c
index 09a9da0..00b7402 100644
--- a/module/evdi_drm_drv.c
+++ b/module/evdi_drm_drv.c
@@ -124,9 +124,7 @@ static struct drm_driver driver = {

        .fops = &evdi_driver_fops,

-       .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
        .gem_prime_import = drm_gem_prime_import,
-       .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 #if KERNEL_VERSION(5, 11, 0) <= LINUX_VERSION_CODE || defined(EL8)
 #else
        .preclose = evdi_driver_preclose,
diff --git a/module/evdi_fb.c b/module/evdi_fb.c
index 3789b33..4a4fb6a 100644
--- a/module/evdi_fb.c
+++ b/module/evdi_fb.c
@@ -418,7 +418,6 @@ static int evdifb_create(struct drm_fb_helper *helper,
        info->fix.smem_start = (unsigned long)efbdev->efb.obj->vmapping;

 #if KERNEL_VERSION(4, 20, 0) <= LINUX_VERSION_CODE || defined(EL8)
-       info->flags = FBINFO_DEFAULT;
 #else
        info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT;
 #endif
             .',;::::;,'.
         .';:cccccccccccc:;,.
      .;cccccccccccccccccccccc;.         crashdummy@crashphyrus 
    .:cccccccccccccccccccccccccc:.       ---------------------- 
  .;ccccccccccccc;.:dddl:.;ccccccc;.     OS: Fedora release 39 (Thirty Nine) x86_64 
 .:ccccccccccccc;OWMKOOXMWd;ccccccc:.    Host: ROG Zephyrus G15 GA503RW_GA503RW 1.0 
.:ccccccccccccc;KMMc;cc;xMMc:ccccccc:.   Kernel: 6.6.1-0.rc1.350.vanilla.fc39.x86_64 
,cccccccccccccc;MMM.;cc;;WW::cccccccc,   Uptime: 7 mins 
:cccccccccccccc;MMM.;cccccccccccccccc:   Packages: 3580 (rpm), 68 (flatpak) 
:ccccccc;oxOOOo;MMM0OOk.;cccccccccccc:   Shell: bash 5.2.15 
cccccc:0MMKxdd:;MMMkddc.;cccccccccccc;   Resolution: 2560x1440 
ccccc:XM0';cccc;MMM.;cccccccccccccccc'   DE: GNOME 45.1 
ccccc;MMo;ccccc;MMW.;ccccccccccccccc;    WM: Mutter 
ccccc;0MNc.ccc.xMMd:ccccccccccccccc;     WM Theme: Sweet-Dark 
cccccc;dNMWXXXWM0::cccccccccccccc:,      Theme: Sweet-Dark-v40 [GTK2/3] 
cccccccc;.:odl:.;cccccccccccccc:,.       Icons: candy-icons [GTK2/3] 
:cccccccccccccccccccccccccccc:'.         Terminal: terminator 
.:cccccccccccccccccccccc:;,..            CPU: AMD Ryzen 9 6900HS with Radeon Graphics (16) @ 4.925GHz 
  '::cccccccccccccc::;,.                 GPU: NVIDIA Geforce RTX 3070 Ti Laptop GPU 
                                         GPU: AMD ATI Radeon 680M 
                                         Memory: 5270MiB / 31323MiB 

Tried applying this patch. The module builds with the patch, but no displays are detected.

DocMAX commented 7 months ago

Same here. No display. Going back to 6.5.9 works.

cedricroijakkers commented 7 months ago

This PR https://github.com/DisplayLink/evdi/pull/436 has fixed the issue for me. It's now working on Arch Linux using DisplayLink 5.8, the devel branch of this repo i.e the evdi-git package, and kernel 6.6.1. The maintainers only need to create a new release, or you can build the module straight from git.

DocMAX commented 7 months ago

ok, now maintainers please merge. thanks.

Crashdummyy commented 7 months ago

No diea what I broke with this but my journal does not get flushed and all 3 screens are working fine again.

diff --git a/module/evdi_drm_drv.c b/module/evdi_drm_drv.c
index 09a9da0..00b7402 100644
--- a/module/evdi_drm_drv.c
+++ b/module/evdi_drm_drv.c
@@ -124,9 +124,7 @@ static struct drm_driver driver = {

        .fops = &evdi_driver_fops,

-       .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
        .gem_prime_import = drm_gem_prime_import,
-       .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 #if KERNEL_VERSION(5, 11, 0) <= LINUX_VERSION_CODE || defined(EL8)
 #else
        .preclose = evdi_driver_preclose,
diff --git a/module/evdi_fb.c b/module/evdi_fb.c
index 3789b33..4a4fb6a 100644
--- a/module/evdi_fb.c
+++ b/module/evdi_fb.c
@@ -418,7 +418,6 @@ static int evdifb_create(struct drm_fb_helper *helper,
        info->fix.smem_start = (unsigned long)efbdev->efb.obj->vmapping;

 #if KERNEL_VERSION(4, 20, 0) <= LINUX_VERSION_CODE || defined(EL8)
-       info->flags = FBINFO_DEFAULT;
 #else
        info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT;
 #endif
             .',;::::;,'.
         .';:cccccccccccc:;,.
      .;cccccccccccccccccccccc;.         crashdummy@crashphyrus 
    .:cccccccccccccccccccccccccc:.       ---------------------- 
  .;ccccccccccccc;.:dddl:.;ccccccc;.     OS: Fedora release 39 (Thirty Nine) x86_64 
 .:ccccccccccccc;OWMKOOXMWd;ccccccc:.    Host: ROG Zephyrus G15 GA503RW_GA503RW 1.0 
.:ccccccccccccc;KMMc;cc;xMMc:ccccccc:.   Kernel: 6.6.1-0.rc1.350.vanilla.fc39.x86_64 
,cccccccccccccc;MMM.;cc;;WW::cccccccc,   Uptime: 7 mins 
:cccccccccccccc;MMM.;cccccccccccccccc:   Packages: 3580 (rpm), 68 (flatpak) 
:ccccccc;oxOOOo;MMM0OOk.;cccccccccccc:   Shell: bash 5.2.15 
cccccc:0MMKxdd:;MMMkddc.;cccccccccccc;   Resolution: 2560x1440 
ccccc:XM0';cccc;MMM.;cccccccccccccccc'   DE: GNOME 45.1 
ccccc;MMo;ccccc;MMW.;ccccccccccccccc;    WM: Mutter 
ccccc;0MNc.ccc.xMMd:ccccccccccccccc;     WM Theme: Sweet-Dark 
cccccc;dNMWXXXWM0::cccccccccccccc:,      Theme: Sweet-Dark-v40 [GTK2/3] 
cccccccc;.:odl:.;cccccccccccccc:,.       Icons: candy-icons [GTK2/3] 
:cccccccccccccccccccccccccccc:'.         Terminal: terminator 
.:cccccccccccccccccccccc:;,..            CPU: AMD Ryzen 9 6900HS with Radeon Graphics (16) @ 4.925GHz 
  '::cccccccccccccc::;,.                 GPU: NVIDIA Geforce RTX 3070 Ti Laptop GPU 
                                         GPU: AMD ATI Radeon 680M 
                                         Memory: 5270MiB / 31323MiB 

Tried applying this patch. The module builds with the patch, but no displays are detected.

Sorry I'm late to respond. The metnioned PR is basically exactly the same implementation. It just added some compiler flags to allow backwards compatibility.

I tested it on about 20 devices running either EOS, Fedora or Ubuntu. I had some issues with upgrading from 1.12.0 in the past maybe that one happened here again.

You can try applying the patch of the PR as well. If you're on Fedora 37/38/39 I can provide you a rpm package if you want to

Kevinjil commented 7 months ago

[snip] Sorry I'm late to respond. The metnioned PR is basically exactly the same implementation. It just added some compiler flags to allow backwards compatibility.

I tested it on about 20 devices running either EOS, Fedora or Ubuntu. I had some issues with upgrading from 1.12.0 in the past maybe that one happened here again.

You can try applying the patch of the PR as well. If you're on Fedora 37/38/39 I can provide you a rpm package if you want to

At this point I'm kind of puzzled what DocMAX and I did wrong yesterday. The latest devel branch does also build but actually functions correctly.

cedricroijakkers commented 7 months ago

@Kevinjil I did have some funkyness too, a restart of the displaylink service or a reboot did the trick however.

displaylink-emajewsk commented 7 months ago

Once loaded, evdi will stay in the kernel until a reboot. Just a hunch, but if you've had an earlier version of evdi loaded, the displaylink driver will detect the discrepancy and refuse serving the displays.

DocMAX commented 7 months ago

i deleted the dkms evdi folder and recompiled the module with no errors. but doesn't work with 6.6. worked on 6.5 though. with "modprobe udl" and restarting displaylink.service the screens have been detected now. so i will put udl to my /etc/modules-load.d folder.

DocMAX commented 7 months ago

hmm, no, that wasn't the solution. no idea why the displays are detected randomly. with this log no displays in xfce:

[Do, 16. Nov 2023, 14:35:45] evdi: [I] (card2) Connected with Task 2489 (DesktopManagerE) of process 2477 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:35:45] evdi: [I] (card2) Connector state: connected
[Do, 16. Nov 2023, 14:35:52] evdi: [I] (card0) Opened by Task 2489 (DesktopManagerE) of process 2477 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:35:52] evdi: [I] (card0) Added i2c adapter bus number 23
[Do, 16. Nov 2023, 14:35:52] evdi: [I] (card0) Connected with Task 2489 (DesktopManagerE) of process 2477 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:35:52] evdi: [I] (card0) Connector state: connected
[Do, 16. Nov 2023, 14:35:58] evdi: [I] (card2) Disconnected from Task 2489 (DesktopManagerE) of process 2477 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:35:58] evdi: [I] (card2) Removing i2c adapter bus number 22
[Do, 16. Nov 2023, 14:35:58] evdi: [I] (card2) Closed by Task 2489 (DesktopManagerE) of process 2477 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:35:58] evdi: [I] (card0) Disconnected from Task 2489 (DesktopManagerE) of process 2477 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:35:58] evdi: [I] (card0) Removing i2c adapter bus number 23
[Do, 16. Nov 2023, 14:35:58] evdi: [I] (card0) Closed by Task 2489 (DesktopManagerE) of process 2477 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:06] evdi: [I] (card2) Opened by Task 2888 (DesktopManagerE) of process 2875 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:06] evdi: [I] (card2) Added i2c adapter bus number 22
[Do, 16. Nov 2023, 14:36:06] evdi: [I] (card2) Connected with Task 2888 (DesktopManagerE) of process 2875 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:06] evdi: [I] (card2) Connector state: connected
[Do, 16. Nov 2023, 14:36:12] evdi: [I] (card0) Opened by Task 2888 (DesktopManagerE) of process 2875 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:12] evdi: [I] (card0) Added i2c adapter bus number 23
[Do, 16. Nov 2023, 14:36:12] evdi: [I] (card0) Connected with Task 2888 (DesktopManagerE) of process 2875 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:12] evdi: [I] (card0) Connector state: connected
[Do, 16. Nov 2023, 14:36:16] evdi: [I] (card2) Disconnected from Task 2888 (DesktopManagerE) of process 2875 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:16] evdi: [I] (card2) Removing i2c adapter bus number 22
[Do, 16. Nov 2023, 14:36:16] evdi: [I] (card2) Closed by Task 2888 (DesktopManagerE) of process 2875 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:16] evdi: [I] (card0) Disconnected from Task 2888 (DesktopManagerE) of process 2875 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:16] evdi: [I] (card0) Removing i2c adapter bus number 23
[Do, 16. Nov 2023, 14:36:16] evdi: [I] (card0) Closed by Task 2888 (DesktopManagerE) of process 2875 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:23] evdi: [I] (card2) Opened by Task 2999 (DesktopManagerE) of process 2987 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:23] evdi: [I] (card2) Added i2c adapter bus number 22
[Do, 16. Nov 2023, 14:36:23] evdi: [I] (card2) Connected with Task 2999 (DesktopManagerE) of process 2987 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:23] evdi: [I] (card2) Connector state: connected
[Do, 16. Nov 2023, 14:36:30] evdi: [I] (card0) Opened by Task 2999 (DesktopManagerE) of process 2987 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:30] evdi: [I] (card0) Added i2c adapter bus number 23
[Do, 16. Nov 2023, 14:36:30] evdi: [I] (card0) Connected with Task 2999 (DesktopManagerE) of process 2987 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:30] evdi: [I] (card0) Connector state: connected
[Do, 16. Nov 2023, 14:36:37] evdi: [I] (card0) Opened by Task 3140 (Xorg) of process 3140 (Xorg)
[Do, 16. Nov 2023, 14:36:37] evdi: [I] (card0) Closed by Task 3140 (Xorg) of process 3140 (Xorg)
[Do, 16. Nov 2023, 14:36:37] evdi: [I] (card2) Opened by Task 3140 (Xorg) of process 3140 (Xorg)
[Do, 16. Nov 2023, 14:36:37] evdi: [I] (card2) Closed by Task 3140 (Xorg) of process 3140 (Xorg)
[Do, 16. Nov 2023, 14:36:44] evdi: [I] (card2) Disconnected from Task 2999 (DesktopManagerE) of process 2987 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:44] evdi: [I] (card2) Removing i2c adapter bus number 22
[Do, 16. Nov 2023, 14:36:44] evdi: [I] (card2) Closed by Task 2999 (DesktopManagerE) of process 2987 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:44] evdi: [I] (card0) Disconnected from Task 2999 (DesktopManagerE) of process 2987 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:44] evdi: [I] (card0) Removing i2c adapter bus number 23
[Do, 16. Nov 2023, 14:36:44] evdi: [I] (card0) Closed by Task 2999 (DesktopManagerE) of process 2987 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:57] evdi: [I] (card2) Opened by Task 3880 (DesktopManagerE) of process 3867 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:57] evdi: [I] (card2) Added i2c adapter bus number 22
[Do, 16. Nov 2023, 14:36:57] evdi: [I] (card2) Connected with Task 3880 (DesktopManagerE) of process 3867 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:36:57] evdi: [I] (card2) Connector state: connected
[Do, 16. Nov 2023, 14:37:03] evdi: [I] (card0) Opened by Task 3880 (DesktopManagerE) of process 3867 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:37:03] evdi: [I] (card0) Added i2c adapter bus number 23
[Do, 16. Nov 2023, 14:37:03] evdi: [I] (card0) Connected with Task 3880 (DesktopManagerE) of process 3867 (DisplayLinkMana)
[Do, 16. Nov 2023, 14:37:03] evdi: [I] (card0) Connector state: connected
DocMAX commented 7 months ago

The moment it worked there was: evdi: [I] Evdi platform_device create But no idea how i did it.

bf commented 7 months ago

I also get the following error on 6.6.1-arch1-1 when doing dkms install --no-depmod evdi/1.14.1 -k 6.6.1-arch1-1 --verbose. Did anybody resolve this issue?

make[3]: *** [scripts/Makefile.build:243: /var/lib/dkms/evdi/1.14.1/build/evdi_fb.o] Error 1
make[3]: *** Waiting for unfinished jobs....
/var/lib/dkms/evdi/1.14.1/build/evdi_drm_drv.c:127:31: error: ‘drm_gem_prime_fd_to_handle’ undeclared here (not in a function)
  127 |         .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.14.1/build/evdi_drm_drv.c:129:31: error: ‘drm_gem_prime_handle_to_fd’ undeclared here (not in a function)
  129 |         .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [scripts/Makefile.build:243: /var/lib/dkms/evdi/1.14.1/build/evdi_drm_drv.o] Error 1
make[2]: *** [/usr/lib/modules/6.6.1-arch1-1/build/Makefile:1913: /var/lib/dkms/evdi/1.14.1/build] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/lib/modules/6.6.1-arch1-1/build'
make: *** [Makefile:38: all] Error 2

dkms error:

Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Building module:
make clean KERNELRELEASE=6.6.1-arch1-1 DKMS_BUILD=1
/lib/modules/6.6.1-arch1-1/build
make KBUILD_VERBOSE=1 M=/var/lib/dkms/evdi/1.14.1/build SUBDIRS=/var/lib/dkms/evdi/1.14.1/build SRCROOT=/var/lib/dkms/evdi/1.14.1/build -C /lib/modules/6.6.1-arch1-1/build clean
make[1]: Entering directory '/usr/lib/modules/6.6.1-arch1-1/build'
make --no-print-directory -C /usr/lib/modules/6.6.1-arch1-1/build \
-f /usr/lib/modules/6.6.1-arch1-1/build/Makefile clean
make -f ./scripts/Makefile.clean obj=/var/lib/dkms/evdi/1.14.1/build
# cmd_rmfiles clean
  rm -rf /var/lib/dkms/evdi/1.14.1/build/Module.symvers /var/lib/dkms/evdi/1.14.1/build/modules.nsdeps /var/lib/dkms/evdi/1.14.1/build/compile_commands.json /var/lib/dkms/evdi/1.14.1/build/.thinlto-cache
make[1]: Leaving directory '/usr/lib/modules/6.6.1-arch1-1/build'

{ make -j8 KERNELRELEASE=6.6.1-arch1-1 all INCLUDEDIR=/lib/modules/6.6.1-arch1-1/build/include KVERSION=6.6.1-arch1-1 DKMS_BUILD=1; } >> /var/lib/dkms/evdi/1.14.1/build/make.log 2>&1
(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.6.1-arch1-1 (x86_64)
Consult /var/lib/dkms/evdi/1.14.1/build/make.log for more information.
Typografikon commented 7 months ago

Any update to this issue?

mrscottie commented 7 months ago

The module builds for me and loads on kernel 6.6-rc5 and now 6.7-rc3.

cedricroijakkers commented 7 months ago

@mrscottie or one of the maintainers @displaylink-emajewsk @displaylink-dkurek @displaylink-mlukaszek: This issue can be closed, it has been resolved. Building from the git repo works now, possibly you need to create a new release to finalise it.

diomenezes commented 7 months ago

[dmenezes@alienware-f15 ~]$ neofetch .',;::::;,'. dmenezes@alienware-f15 .';:cccccccccccc:;,. ---------------------- .;cccccccccccccccccccccc;. OS: Fedora Linux 39 (Workstation Edition) x86_64 .:cccccccccccccccccccccccccc:. Host: Alienware m15 R6 .;ccccccccccccc;.:dddl:.;ccccccc;. Kernel: 6.6.2-201.fc39.x86_64 .:ccccccccccccc;OWMKOOXMWd;ccccccc:. Uptime: 33 mins .:ccccccccccccc;KMMc;cc;xMMc:ccccccc:. Packages: 2994 (rpm), 90 (flatpak) ,cccccccccccccc;MMM.;cc;;WW::cccccccc, Shell: bash 5.2.21 :cccccccccccccc;MMM.;cccccccccccccccc: Resolution: 1920x1080, 1920x1080, 1920x1080, 1080x1920 :ccccccc;oxOOOo;MMM0OOk.;cccccccccccc: DE: GNOME 45.1 cccccc:0MMKxdd:;MMMkddc.;cccccccccccc; WM: Mutter ccccc:XM0';cccc;MMM.;cccccccccccccccc' WM Theme: Adwaita ccccc;MMo;ccccc;MMW.;ccccccccccccccc; Theme: Adwaita-dark [GTK2/3] ccccc;0MNc.ccc.xMMd:ccccccccccccccc; Icons: Adwaita [GTK2/3] cccccc;dNMWXXXWM0::cccccccccccccc:, Terminal: gnome-terminal cccccccc;.:odl:.;cccccccccccccc:,. CPU: 11th Gen Intel i7-11800H (16) @ 4.600GHz :cccccccccccccccccccccccccccc:'. GPU: Intel TigerLake-H GT1 [UHD Graphics] .:cccccccccccccccccccccc:;,.. GPU: NVIDIA GeForce RTX 3070 Mobile / Max-Q '::cccccccccccccc::;,. Memory: 7180MiB / 64031MiB

[dmenezes@alienware-f15 ~]$ [dmenezes@alienware-f15 ~]$ sudo fpaste /var/lib/dkms/evdi/1.14.1/build/make.log Uploading (41.1KiB)... https://paste.centos.org/view/6ad05920

Crashdummyy commented 7 months ago

[dmenezes@alienware-f15 ~]$ neofetch .',;::::;,'. dmenezes@alienware-f15 .';:cccccccccccc:;,. ---------------------- .;cccccccccccccccccccccc;. OS: Fedora Linux 39 (Workstation Edition) x86_64 .:cccccccccccccccccccccccccc:. Host: Alienware m15 R6 .;ccccccccccccc;.:dddl:.;ccccccc;. Kernel: 6.6.2-201.fc39.x86_64 .:ccccccccccccc;OWMKOOXMWd;ccccccc:. Uptime: 33 mins .:ccccccccccccc;KMMc;cc;xMMc:ccccccc:. Packages: 2994 (rpm), 90 (flatpak) ,cccccccccccccc;MMM.;cc;;WW::cccccccc, Shell: bash 5.2.21 :cccccccccccccc;MMM.;cccccccccccccccc: Resolution: 1920x1080, 1920x1080, 1920x1080, 1080x1920 :ccccccc;oxOOOo;MMM0OOk.;cccccccccccc: DE: GNOME 45.1 cccccc:0MMKxdd:;MMMkddc.;cccccccccccc; WM: Mutter ccccc:XM0';cccc;MMM.;cccccccccccccccc' WM Theme: Adwaita ccccc;MMo;ccccc;MMW.;ccccccccccccccc; Theme: Adwaita-dark [GTK2/3] ccccc;0MNc.ccc.xMMd:ccccccccccccccc; Icons: Adwaita [GTK2/3] cccccc;dNMWXXXWM0::cccccccccccccc:, Terminal: gnome-terminal cccccccc;.:odl:.;cccccccccccccc:,. CPU: 11th Gen Intel i7-11800H (16) @ 4.600GHz :cccccccccccccccccccccccccccc:'. GPU: Intel TigerLake-H GT1 [UHD Graphics] .:cccccccccccccccccccccc:;,.. GPU: NVIDIA GeForce RTX 3070 Mobile / Max-Q '::cccccccccccccc::;,. Memory: 7180MiB / 64031MiB

[dmenezes@alienware-f15 ~]$ [dmenezes@alienware-f15 ~]$ sudo fpaste /var/lib/dkms/evdi/1.14.1/build/make.log Uploading (41.1KiB)... https://paste.centos.org/view/6ad05920

Looks like you dont use the applied patch. Can you try one of mine ? https://github.com/SimonSchwendele/displaylink-rpm/releases/tag/v1.14.1-3

nathan-weinberg commented 7 months ago

[dmenezes@alienware-f15 ~]$ neofetch .',;::::;,'. dmenezes@alienware-f15 .';:cccccccccccc:;,. ---------------------- .;cccccccccccccccccccccc;. OS: Fedora Linux 39 (Workstation Edition) x86_64 .:cccccccccccccccccccccccccc:. Host: Alienware m15 R6 .;ccccccccccccc;.:dddl:.;ccccccc;. Kernel: 6.6.2-201.fc39.x86_64 .:ccccccccccccc;OWMKOOXMWd;ccccccc:. Uptime: 33 mins .:ccccccccccccc;KMMc;cc;xMMc:ccccccc:. Packages: 2994 (rpm), 90 (flatpak) ,cccccccccccccc;MMM.;cc;;WW::cccccccc, Shell: bash 5.2.21 :cccccccccccccc;MMM.;cccccccccccccccc: Resolution: 1920x1080, 1920x1080, 1920x1080, 1080x1920 :ccccccc;oxOOOo;MMM0OOk.;cccccccccccc: DE: GNOME 45.1 cccccc:0MMKxdd:;MMMkddc.;cccccccccccc; WM: Mutter ccccc:XM0';cccc;MMM.;cccccccccccccccc' WM Theme: Adwaita ccccc;MMo;ccccc;MMW.;ccccccccccccccc; Theme: Adwaita-dark [GTK2/3] ccccc;0MNc.ccc.xMMd:ccccccccccccccc; Icons: Adwaita [GTK2/3] cccccc;dNMWXXXWM0::cccccccccccccc:, Terminal: gnome-terminal cccccccc;.:odl:.;cccccccccccccc:,. CPU: 11th Gen Intel i7-11800H (16) @ 4.600GHz :cccccccccccccccccccccccccccc:'. GPU: Intel TigerLake-H GT1 [UHD Graphics] .:cccccccccccccccccccccc:;,.. GPU: NVIDIA GeForce RTX 3070 Mobile / Max-Q '::cccccccccccccc::;,. Memory: 7180MiB / 64031MiB [dmenezes@alienware-f15 ~]$ [dmenezes@alienware-f15 ~]$ sudo fpaste /var/lib/dkms/evdi/1.14.1/build/make.log Uploading (41.1KiB)... https://paste.centos.org/view/6ad05920

Looks like you dont use the applied patch. Can you try one of mine ? https://github.com/SimonSchwendele/displaylink-rpm/releases/tag/v1.14.1-3

Just wanted to chime in - I'm on Fedora 38 with kernel 6.6.2-101.fc38.x86_64 - the current released version upstream for the displaylink-rpm stopped working for me but this RPM from the fork fixed the issue

Crashdummyy commented 7 months ago

[dmenezes@alienware-f15 ~]$ neofetch .',;::::;,'. dmenezes@alienware-f15 .';:cccccccccccc:;,. ---------------------- .;cccccccccccccccccccccc;. OS: Fedora Linux 39 (Workstation Edition) x86_64 .:cccccccccccccccccccccccccc:. Host: Alienware m15 R6 .;ccccccccccccc;.:dddl:.;ccccccc;. Kernel: 6.6.2-201.fc39.x86_64 .:ccccccccccccc;OWMKOOXMWd;ccccccc:. Uptime: 33 mins .:ccccccccccccc;KMMc;cc;xMMc:ccccccc:. Packages: 2994 (rpm), 90 (flatpak) ,cccccccccccccc;MMM.;cc;;WW::cccccccc, Shell: bash 5.2.21 :cccccccccccccc;MMM.;cccccccccccccccc: Resolution: 1920x1080, 1920x1080, 1920x1080, 1080x1920 :ccccccc;oxOOOo;MMM0OOk.;cccccccccccc: DE: GNOME 45.1 cccccc:0MMKxdd:;MMMkddc.;cccccccccccc; WM: Mutter ccccc:XM0';cccc;MMM.;cccccccccccccccc' WM Theme: Adwaita ccccc;MMo;ccccc;MMW.;ccccccccccccccc; Theme: Adwaita-dark [GTK2/3] ccccc;0MNc.ccc.xMMd:ccccccccccccccc; Icons: Adwaita [GTK2/3] cccccc;dNMWXXXWM0::cccccccccccccc:, Terminal: gnome-terminal cccccccc;.:odl:.;cccccccccccccc:,. CPU: 11th Gen Intel i7-11800H (16) @ 4.600GHz :cccccccccccccccccccccccccccc:'. GPU: Intel TigerLake-H GT1 [UHD Graphics] .:cccccccccccccccccccccc:;,.. GPU: NVIDIA GeForce RTX 3070 Mobile / Max-Q '::cccccccccccccc::;,. Memory: 7180MiB / 64031MiB [dmenezes@alienware-f15 ~]$ [dmenezes@alienware-f15 ~]$ sudo fpaste /var/lib/dkms/evdi/1.14.1/build/make.log Uploading (41.1KiB)... https://paste.centos.org/view/6ad05920

Looks like you dont use the applied patch. Can you try one of mine ? https://github.com/SimonSchwendele/displaylink-rpm/releases/tag/v1.14.1-3

Just wanted to chime in - I'm on Fedora 38 with kernel 6.6.2-101.fc38.x86_64 - the current released version upstream for the displaylink-rpm stopped working for me but this RPM from the fork fixed the issue

Great to hear. It's exactly as this ticket mentions, a more recent evdi is required. ( https://github.com/SimonSchwendele/displaylink-rpm/blob/master/evdiFix660.diff )

The patch shouldn't be needed anymore but evdi didn't create a new tag yet ( which in return will be used in the next release of displaylink-rpm )

cristobal87 commented 7 months ago

Hi @Crashdummyy, I am on fedora 39 (Linux 6.6.2-201.fc39.x86_64) and having the same issue as everybody here, and when I tried running your patched rpm, it displayed an error saying it was conflicting with the previous packages. I understand I need to remove the previous packages, but I am not exactly versed in how I can achieve that... any chance you could help me out and tell me how I can remove/clean the previous installation so I can install your version?

Thank you very much!

Crashdummyy commented 7 months ago

Hi @Crashdummyy, I am on fedora 39 (Linux 6.6.2-201.fc39.x86_64) and having the same issue as everybody here, and when I tried running your patched rpm, it displayed an error saying it was conflicting with the previous packages. I understand I need to remove the previous packages, but I am not exactly versed in how I can achieve that... any chance you could help me out and tell me how I can remove/clean the previous installation so I can install your version?

Thank you very much!

sudo dnf autoremove displaylink

Maybe thats not enough because the uninstaller might not work that great.

So you could check which versions are installed and kill them in dkms manually. sudo dkms remove evdi/<version> -a

Afterwards you can remove the loaded ones just to be safe: sudo rm -rf /var/lib/dkms/evdi

That way youre pretty much clean again. Now you can just reinstall the new version using the provided rpm.

I'm currently on 6.7-RC4 where it still works so I guess you'll be fine

cristobal87 commented 7 months ago

Amazing, worked like a charm. Thank you very much!!

vladgitdev commented 7 months ago

[dmenezes@alienware-f15 ~]$ neofetch .',;::::;,'. dmenezes@alienware-f15 .';:cccccccccccc:;,. ---------------------- .;cccccccccccccccccccccc;. OS: Fedora Linux 39 (Workstation Edition) x86_64 .:cccccccccccccccccccccccccc:. Host: Alienware m15 R6 .;ccccccccccccc;.:dddl:.;ccccccc;. Kernel: 6.6.2-201.fc39.x86_64 .:ccccccccccccc;OWMKOOXMWd;ccccccc:. Uptime: 33 mins .:ccccccccccccc;KMMc;cc;xMMc:ccccccc:. Packages: 2994 (rpm), 90 (flatpak) ,cccccccccccccc;MMM.;cc;;WW::cccccccc, Shell: bash 5.2.21 :cccccccccccccc;MMM.;cccccccccccccccc: Resolution: 1920x1080, 1920x1080, 1920x1080, 1080x1920 :ccccccc;oxOOOo;MMM0OOk.;cccccccccccc: DE: GNOME 45.1 cccccc:0MMKxdd:;MMMkddc.;cccccccccccc; WM: Mutter ccccc:XM0';cccc;MMM.;cccccccccccccccc' WM Theme: Adwaita ccccc;MMo;ccccc;MMW.;ccccccccccccccc; Theme: Adwaita-dark [GTK2/3] ccccc;0MNc.ccc.xMMd:ccccccccccccccc; Icons: Adwaita [GTK2/3] cccccc;dNMWXXXWM0::cccccccccccccc:, Terminal: gnome-terminal cccccccc;.:odl:.;cccccccccccccc:,. CPU: 11th Gen Intel i7-11800H (16) @ 4.600GHz :cccccccccccccccccccccccccccc:'. GPU: Intel TigerLake-H GT1 [UHD Graphics] .:cccccccccccccccccccccc:;,.. GPU: NVIDIA GeForce RTX 3070 Mobile / Max-Q '::cccccccccccccc::;,. Memory: 7180MiB / 64031MiB [dmenezes@alienware-f15 ~]$ [dmenezes@alienware-f15 ~]$ sudo fpaste /var/lib/dkms/evdi/1.14.1/build/make.log Uploading (41.1KiB)... https://paste.centos.org/view/6ad05920

Looks like you dont use the applied patch. Can you try one of mine ? https://github.com/SimonSchwendele/displaylink-rpm/releases/tag/v1.14.1-3

Finally I got it back on Fedora 39! Thank you @Crashdummyy.

A step-by-step list of what I did, in case it is useful for somebody:

sudo dnf install fedora-packager rpmdevtools
sudo dnf install libdrm-devel glibc-devel.i686

git clone https://github.com/SimonSchwendele/displaylink-rpm

cd displaylink-rpm

make

sudo dnf autoremove displaylink
sudo dkms remove evdi/<version> -a
sudo rm -rf /var/lib/dkms/evdi

sudo dnf install x86_64/displaylink-1.14.1-*.rpm

After the last command my external displays immediately came back to life.

mrscottie commented 6 months ago

Closing since this has been fixed.

proffalken commented 6 months ago

I'd argue that this is only "fixed" once a release has been cut?

I've just come back to using DisplayLink on a pop!_OS (Ubuntu variant) laptop running the ominously versioned 6.6.6-76060606-generic and the current apt packages do not contain the above fix.

I can build from source for now, but that still strikes me as half a solution rather than "just upgrade via the usual channels and everything will be working again"?

Crashdummyy commented 6 months ago

I'd argue that this is only "fixed" once a release has been cut?

I've just come back to using DisplayLink on a pop!_OS (Ubuntu variant) laptop running the ominously versioned 6.6.6-76060606-generic and the current apt packages do not contain the above fix.

I can build from source for now, but that still strikes me as half a solution rather than "just upgrade via the usual channels and everything will be working again"?

I guess both of you are somewhat correct. There are two components concerning this matter: The evdi kernel module ( this ) which is already fixed. Its only fixed in the devel branch as we've seen throughout releases they'll draft a release only when they're about to create a new ubuntu release which is the other component.

That being said its only a matter of perspective on whether this issue should be closed or remain open. I personally lean more towards closing it as the issue "Evdi fails to build on kernel 6.6-rc5" is not the case anymore.

Displaylink heavily relies on evdi it's not the other way around. The way we're getting displaylink to work on 6.6+ again is by using an unsupported evdi module. Unsupported as in "Not supported in displaylink v.1.14.1"

humanplayer2 commented 6 months ago

I'd argue that this is only "fixed" once a release has been cut?

I've just come back to using DisplayLink on a pop!_OS (Ubuntu variant) laptop running the ominously versioned 6.6.6-76060606-generic and the current apt packages do not contain the above fix.

I can build from source for now, but that still strikes me as half a solution rather than "just upgrade via the usual channels and everything will be working again"?

I, too, am on Pop with same kernel. Can you tell me what you did to build and install from source?

Crashdummyy commented 6 months ago

I'd argue that this is only "fixed" once a release has been cut? I've just come back to using DisplayLink on a pop!_OS (Ubuntu variant) laptop running the ominously versioned 6.6.6-76060606-generic and the current apt packages do not contain the above fix. I can build from source for now, but that still strikes me as half a solution rather than "just upgrade via the usual channels and everything will be working again"?

I, too, am on Pop with same kernel. Can you tell me what you did to build and install from source?

The easiest way should be.

clagiordano commented 5 months ago
  • Clone the evdi repo to someplace
  • Copy everything in the module directory to /usr/src/evdi-1.14.1

This worked for me on Debian Sid with kernel 6.6.13

Thanks!

pevogam commented 2 months ago

https://github.com/SimonSchwendele/displaylink-rpm

And better yet, Simon's page also has artifact RPM-s that are automatically posted in releases: https://github.com/displaylink-rpm/displaylink-rpm/releases

Crashdummyy commented 2 months ago

https://github.com/SimonSchwendele/displaylink-rpm

And better yet, Simon's page also has artifact RPM-s that are automatically posted in releases: https://github.com/displaylink-rpm/displaylink-rpm/releases

The above one is a fork. The main reason for this fork is that it automatically pushes them into my copr. https://copr.fedorainfracloud.org/coprs/crashdummy/Displaylink/

pevogam commented 2 months ago

https://github.com/SimonSchwendele/displaylink-rpm

And better yet, Simon's page also has artifact RPM-s that are automatically posted in releases: https://github.com/displaylink-rpm/displaylink-rpm/releases

The above one is a fork. The main reason for this fork is that it automatically pushes them into my copr. https://copr.fedorainfracloud.org/coprs/crashdummy/Displaylink/

I see, even better then!