DisplayLink / evdi

Extensible Virtual Display Interface
MIT License
717 stars 187 forks source link

Failed to install evdi while installing displalink drivers #452

Closed Haislich closed 9 months ago

Haislich commented 9 months ago

Not really sure if this is a strictly kernel, evdi or displaylink problem. I have a surface device and need a specific kernel version in order to make everything work. While trying to install Displaylink I run into trubles installing evdi, in particular

ERROR (dkms apport): binary package for evdi: 1.14.1 not found
Error! Bad return status for module build on kernel: 6.7.2-surface-1 (x86_64)
Consult /var/lib/dkms/evdi/1.14.1/build/make.log for more information.
[[ Installing module configuration files ]]
[[ Installing EVDI library ]]
make: Entering directory '/tmp/tmp.XqjZHRRwiB/evdi/library'
cc -I../module -std=gnu99 -fPIC -D_FILE_OFFSET_BITS=64  $(pkg-config --cflags-only-I libdrm)   -c -o evdi_lib.o evdi_lib.c
cc evdi_lib.o -shared -Wl,-soname,libevdi.so.1 -o libevdi.so.1.14.1 -lc -lgcc 
cp libevdi.so.1.14.1 libevdi.so
ln -sf libevdi.so.1.14.1 libevdi.so.1

Here's the evdi log for reference. The very same thing happended while trying to install from apt.

iam-TJ commented 9 months ago

The precise cause is:

/var/lib/dkms/evdi/1.14.1/build/evdi_fb.c: In function ‘evdifb_create’:
/var/lib/dkms/evdi/1.14.1/build/evdi_fb.c:421:23: error: ‘FBINFO_DEFAULT’ undeclared (first use in this function)
  421 |         info->flags = FBINFO_DEFAULT;
      |                       ^~~~~~~~~~~~~~

The symbol FBINFO_DEFAULT (that equates to 0) was removed from the kernel by commit b4f470aef449 with:

git describe --contains b4f470aef449
v6.6-rc1~97^2~254

$ git show b4f470aef449
commit b4f470aef4492315190bca1dadc693f2a52b0fad
Author: Thomas Zimmermann <tzimmermann@suse.de>
Date:   Sat Jul 15 20:51:53 2023 +0200

    media: Remove flag FBINFO_FLAG_DEFAULT from fbdev drivers

    The flag FBINFO_FLAG_DEFAULT is 0 and has no effect, as struct
    fbinfo.flags has been allocated to zero by kzalloc(). So do not
    set it.

    Flags should signal differences from the default values. After cleaning
    up all occurrences of FBINFO_DEFAULT, the token will be removed.

    v2:
            * fix commit message (Miguel)

    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Cc: Andy Walls <awalls@md.metrocast.net>
    Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
    Cc: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
iam-TJ commented 9 months ago

This was fixed in commit a38c5ff so you'll need the latest (v1.14.2) module source.

Haislich commented 9 months ago

Works perfectly thanks.

p91paul commented 9 months ago

Am I correct in saying that users of official package downloaded from displaylink website are out of luck right now, because it includes evdi 1.14.1?

displaylink-emajewsk commented 9 months ago

@p91paul evdi 1.14.2 is provided through our APT server and Github. If you're referring to the stand-alone installer that contains both the driver and evdi, then yes, it contains older evdi that the driver came out with.