Linux kernel version 6 not supported - patch available
- Are you using the latest driver? yes * Are you using the latest EVDI version?
- If you are using a DisplayLink device, have you checked 'troubleshooting' on DisplayLink's website? yes
- Is this issue related to evdi/kernel? yes, kernel v6
- Linux distribution and its version - Fedora 36 Workstation
- Linux kernel version : Linux fedora 6.0.5-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 26 15:55:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
- Xorg version (if used) - no Wayland
- Desktop environment in use Gnome
Installing the driver fails on kernel version 6 and up. This has been reported here, including a patch : https://github.com/DisplayLink/evdi/issues/376
problem: Building module: Cleaning build area... make -j16 KERNELRELEASE=6.0.5-200.fc36.x86_64 all INCLUDEDIR=/lib/modules/6.0.5-200.fc36.x86_64/build/include KVERSION=6.0.5-200.fc36.x86_64 DKMS_BUILD=1...(bad exit status: 2) Error! Bad return status for module build on kernel: 6.0.5-200.fc36.x86_64 (x86_64)
This is the same issue as on Ubuntu
Snippet of end of log :
+1: =jump_label --hacks=noinstr --orc --retpoline --rethunk --sls --static-call --uaccess --module /var/lib/dkms/evdi/1.12.0/build/evdi_ioc32.o
./scripts/check-local-export /var/lib/dkms/evdi/1.12.0/build/evdi_debug.o
{ echo ; echo '/var/lib/dkms/evdi/1.12.0/build/evdi_debug.o: $(wildcard ./tools/objtool/objtool)' ; } >> /var/lib/dkms/evdi/1.12.0/build/.evdi_debug.o.cmd
./scripts/check-local-export /var/lib/dkms/evdi/1.12.0/build/evdi_params.o
{ echo ; echo '/var/lib/dkms/evdi/1.12.0/build/evdi_params.o: $(wildcard ./tools/objtool/objtool)' ; } >> /var/lib/dkms/evdi/1.12.0/build/.evdi_params.o.cmd
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_encoder.c:21:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_platform_dev.c:30:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_painter.c:23:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_encoder.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c: In function ‘copy_primary_pixels’:
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c:175:42: _error: invalid use of undefined type ‘struct drm_framebuffer’_
175 | const int src_offset = fb->offsets[0] +
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c:176:42: error: invalid use of undefined type ‘struct drm_framebuffer’
176 | fb->pitches[0] * r->y1 + byte_offset;
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c:195:34: error: invalid use of undefined type ‘struct drm_framebuffer’
195 | src += fb->pitches[0];
| ^~
./scripts/check-local-export /var/lib/dkms/evdi/1.12.0/build/evdi_sysfs.o
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c: In function ‘evdi_painter_mode_changed_notify’:
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c:756:28: error: invalid use of undefined type ‘struct drm_framebuffer’
756 | bits_per_pixel = fb->format->cpp[0] * 8;
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c:757:26: error: invalid use of undefined type ‘struct drm_framebuffer’
757 | pixel_format = fb->format->format;
| ^~
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_platform_dev.o] Error 1
{ echo ; echo '/var/lib/dkms/evdi/1.12.0/build/evdi_sysfs.o: $(wildcard ./tools/objtool/objtool)' ; } >> /var/lib/dkms/evdi/1.12.0/build/.evdi_sysfs.o.cmd
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_ioc32.c:34:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c: In function ‘evdi_painter_disconnect’:
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c:925:17: error: implicit declaration of function ‘drm_framebuffer_put’ [-Werror=implicit-function-declaration]
925 | drm_framebuffer_put(&painter->scanout_fb->base);
| ^~~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_ioc32.o] Error 1
./scripts/check-local-export /var/lib/dkms/evdi/1.12.0/build/evdi_platform_drv.o
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_connector.c:19:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:29:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.c:31:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
{ echo ; echo '/var/lib/dkms/evdi/1.12.0/build/evdi_platform_drv.o: $(wildcard ./tools/objtool/objtool)' ; } >> /var/lib/dkms/evdi/1.12.0/build/.evdi_platform_drv.o.cmd
In file included from ./include/linux/container_of.h:5,
from ./include/linux/list.h:5,
from ./include/linux/smp.h:12,
from ./include/linux/lockdep.h:14,
from ./include/linux/seqlock.h:18,
from ./include/drm/drm_vblank.h:27,
from /var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:16:
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c: In function ‘evdi_plane_atomic_update’:
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:92:23: note: in expansion of macro ‘container_of’
92 | #define to_evdi_fb(x) container_of(x, struct evdi_framebuffer, base)
| ^~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:268:48: note: in expansion of macro ‘to_evdi_fb’
268 | struct evdi_framebuffer *efb = to_evdi_fb(fb);
| ^~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:271:33: error: invalid use of undefined type ‘struct drm_framebuffer’
271 | 0, 0, fb->width, fb->height
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:271:44: error: invalid use of undefined type ‘struct drm_framebuffer’
271 | 0, 0, fb->width, fb->height
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:278:23: error: invalid use of undefined type ‘struct drm_framebuffer’
278 | fb->format && old_fb->format &&
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:278:41: error: invalid use of undefined type ‘struct drm_framebuffer’
278 | fb->format && old_fb->format &&
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:279:23: error: invalid use of undefined type ‘struct drm_framebuffer’
279 | fb->format->format != old_fb->format->format)
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:279:49: error: invalid use of undefined type ‘struct drm_framebuffer’
279 | fb->format->format != old_fb->format->format)
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:291:43: error: invalid use of undefined type ‘struct drm_framebuffer’
291 | state->src.x2 = fb->width << 16;
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:292:43: error: invalid use of undefined type ‘struct drm_framebuffer’
292 | state->src.y2 = fb->height << 16;
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c: In function ‘evdi_cursor_atomic_update’:
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:92:23: note: in expansion of macro ‘container_of’
92 | #define to_evdi_fb(x) container_of(x, struct evdi_framebuffer, base)
| ^~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:336:48: note: in expansion of macro ‘to_evdi_fb’
336 | struct evdi_framebuffer *efb = to_evdi_fb(fb);
| ^~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:355:57: error: invalid use of undefined type ‘struct drm_framebuffer’
355 | uint32_t stride = 4 * fb->width;
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:359:51: error: invalid use of undefined type ‘struct drm_framebuffer’
359 | fb->width,
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:360:51: error: invalid use of undefined type ‘struct drm_framebuffer’
360 | fb->height,
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_modeset.c:363:51: error: invalid use of undefined type ‘struct drm_framebuffer’
363 | fb->format->format,
| ^~
make[2]: *** [scripts/Makefile.build:250: /var/lib/dkms/evdi/1.12.0/build/evdi_connector.o] Error 1
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_gem.c:24:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c: In function ‘evdi_painter_grabpix_ioctl’:
/var/lib/dkms/evdi/1.12.0/build/evdi_painter.c:1060:9: error: implicit declaration of function ‘drm_framebuffer_get’ [-Werror=implicit-function-declaration]
1060 | drm_framebuffer_get(&efb->base);
| ^~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:31:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_cursor.c:33:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
In file included from ./include/linux/container_of.h:5,
from ./include/linux/list.h:5,
from ./include/linux/preempt.h:11,
from ./include/linux/spinlock.h:55,
from ./include/linux/mmzone.h:8,
from ./include/linux/gfp.h:7,
from ./include/linux/slab.h:15,
from /var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:14:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdi_user_framebuffer_create_handle’:
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.o] Error 1
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:92:23: note: in expansion of macro ‘container_of’
92 | #define to_evdi_fb(x) container_of(x, struct evdi_framebuffer, base)
| ^~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:311:40: note: in expansion of macro ‘to_evdi_fb’
311 | struct evdi_framebuffer *efb = to_evdi_fb(fb);
| ^~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdi_user_framebuffer_destroy’:
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:92:23: note: in expansion of macro ‘container_of’
92 | #define to_evdi_fb(x) container_of(x, struct evdi_framebuffer, base)
| ^~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:318:40: note: in expansion of macro ‘to_evdi_fb’
318 | struct evdi_framebuffer *efb = to_evdi_fb(fb);
| ^~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_cursor.c: In function ‘evdi_cursor_compose_and_copy’:
/var/lib/dkms/evdi/1.12.0/build/evdi_cursor.c:235:54: error: invalid use of undefined type ‘struct drm_framebuffer’
235 | mouse_pix_x < (int)fb->width &&
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_cursor.c:236:54: error: invalid use of undefined type ‘struct drm_framebuffer’
236 | mouse_pix_y < (int)fb->height;
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_cursor.c:244:64: error: invalid use of undefined type ‘struct drm_framebuffer’
244 | fbsrc = (int *)(efb->obj->vmapping + fb->offsets[0]);
| ^~
/var/lib/dkms/evdi/1.12.0/build/evdi_cursor.c:245:50: error: invalid use of undefined type ‘struct drm_framebuffer’
245 | fb_value = *(fbsrc + ((fb->pitches[0]>>2) *
| ^~
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_modeset.o] Error 1
In file included from /var/lib/dkms/evdi/1.12.0/build/evdi_i2c.c:12:
/var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:87:32: error: field ‘base’ has incomplete type
87 | struct drm_framebuffer base;
| ^~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_cursor.o] Error 1
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_painter.o] Error 1
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_i2c.o] Error 1
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_gem.o] Error 1
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:327:9: error: implicit declaration of function ‘drm_framebuffer_cleanup’; did you mean ‘drm_encoder_cleanup’? [-Werror=implicit-function-declaration]
327 | drm_framebuffer_cleanup(fb);
| ^~~~~~~~~~~~~~~~~~~~~~~
| drm_encoder_cleanup
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: At top level:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:331:21: error: variable ‘evdifb_funcs’ has initializer but incomplete type
331 | static const struct drm_framebuffer_funcs evdifb_funcs = {
| ^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:332:10: error: ‘const struct drm_framebuffer_funcs’ has no member named ‘create_handle’
332 | .create_handle = evdi_user_framebuffer_create_handle,
| ^~~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:332:26: warning: excess elements in struct initializer
332 | .create_handle = evdi_user_framebuffer_create_handle,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:332:26: note: (near initialization for ‘evdifb_funcs’)
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:333:10: error: ‘const struct drm_framebuffer_funcs’ has no member named ‘destroy’
333 | .destroy = evdi_user_framebuffer_destroy,
| ^~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:333:20: warning: excess elements in struct initializer
333 | .destroy = evdi_user_framebuffer_destroy,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:333:20: note: (near initialization for ‘evdifb_funcs’)
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:335:10: error: ‘const struct drm_framebuffer_funcs’ has no member named ‘dirty’
335 | .dirty = drm_atomic_helper_dirtyfb,
| ^~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:335:18: warning: excess elements in struct initializer
335 | .dirty = drm_atomic_helper_dirtyfb,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:335:18: note: (near initialization for ‘evdifb_funcs’)
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdi_framebuffer_init’:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:349:16: error: implicit declaration of function ‘drm_framebuffer_init’; did you mean ‘evdi_framebuffer_init’? [-Werror=implicit-function-declaration]
349 | return drm_framebuffer_init(dev, &efb->base, &evdifb_funcs);
| ^~~~~~~~~~~~~~~~~~~~
| evdi_framebuffer_init
In file included from ./include/drm/drm_mm.h:51,
from ./include/drm/drm_vma_manager.h:26,
from ./include/drm/drm_gem.h:40,
from /var/lib/dkms/evdi/1.12.0/build/evdi_drm_drv.h:36:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdifb_create’:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:440:25: error: invalid use of undefined type ‘struct drm_framebuffer’
440 | fb->width, fb->height, efbdev->efb.obj->vmapping);
| ^~
./include/drm/drm_print.h:534:38: note: in definition of macro ‘DRM_DEBUG_KMS’
534 | __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:440:36: error: invalid use of undefined type ‘struct drm_framebuffer’
440 | fb->width, fb->height, efbdev->efb.obj->vmapping);
| ^~
./include/drm/drm_print.h:534:38: note: in definition of macro ‘DRM_DEBUG_KMS’
534 | __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdi_fbdev_destroy’:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:472:17: error: implicit declaration of function ‘drm_framebuffer_unregister_private’ [-Werror=implicit-function-declaration]
472 | drm_framebuffer_unregister_private(&efbdev->efb.base);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: At top level:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:331:43: error: storage size of ‘evdifb_funcs’ isn’t known
331 | static const struct drm_framebuffer_funcs evdifb_funcs = {
| ^~~~~~~~~~~~
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdi_framebuffer_init’:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:350:1: error: control reaches end of non-void function [-Werror=return-type]
350 | }
| ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/evdi/1.12.0/build/evdi_fb.o] Error 1
make[1]: *** [Makefile:1856: /var/lib/dkms/evdi/1.12.0/build] Error 2
make[1]: Leaving directory '/usr/src/kernels/6.0.5-200.fc36.x86_64'
make: *** [Makefile:33: all] Error 2
[2022-11-01 09:08:22 vgerris@fedora:~/Hämtningar/DisplayLink USB Graphics Software for Ubuntu5.6.1-EXE]
Apologies, I missed : https://github.com/DisplayLink/evdi/pull/381 So it seems the fix is applied. Will this be released soon and can the issue be used to track that? Otherwise feel free to close it, thank you.
@VGerris in the meanwhile you can compile it yourself, as far as i can tell it should be automatically recompiled on kernel upgrade
Thats how i did it (written based on what i remember)
git clone [email protected]:DisplayLink/evdi.git
sudo mv evdi /usr/src/evdi
cd /usr/src
sudo mv evdi-1.12.0 evdi-1.12.0-backup
sudo ln -s evdi/module evdi-1.12.0
cd evdi-1.12.0
sudo make
sudo make install
This way you can also which branch / pull, adapt if changes are needed. If you reinstall or upgrade the package (rpm) the changes will be overridden.
hey guys, any chance when the merged patch can be released? I am left with one monitor only and it is an absolute pain. Cheers
That worked for me :-) Thank you @dominikzogg . perfect fix
@dominikzogg thanks for the help! I had to follow the steps from https://github.com/andikleen/simple-pt/issues/8#issuecomment-813438385 because I was getting the certs not found error, then ran sudo dkms add . after sudo make install so that I could get the driver to install properly because it kept failing with an error along the lines dkms module not found. After rebooting, I was able to use my USB type-c monitor 🎉 Thanks!
kernel: 6.0.6 os: pop_os 22.04
Btw 6.2 is going to need another patch:
var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdifb_create’:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:408:24: error: ‘struct drm_fb_helper’ has no member named ‘fbdev’; did you mean ‘dev’?
408 | efbdev->helper.fbdev = info;
| ^~~~~
| dev
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdi_fbdev_destroy’:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:462:28: error: ‘struct drm_fb_helper’ has no member named ‘fbdev’; did you mean ‘dev’?
462 | if (efbdev->helper.fbdev) {
| ^~~~~
| dev
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:463:39: error: ‘struct drm_fb_helper’ has no member named ‘fbdev’; did you mean ‘dev’?
463 | info = efbdev->helper.fbdev;
| ^~~~~
| dev
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c: In function ‘evdi_fbdev_unplug’:
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:540:28: error: ‘struct drm_fb_helper’ has no member named ‘fbdev’; did you mean ‘dev’?
540 | if (efbdev->helper.fbdev) {
| ^~~~~
| dev
/var/lib/dkms/evdi/1.12.0/build/evdi_fb.c:543:39: error: ‘struct drm_fb_helper’ has no member named ‘fbdev’; did you mean ‘dev’?
543 | info = efbdev->helper.fbdev;
| ^~~~~