DisplayLink / evdi

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

linux-image-5.8.0-63-generic don't work #298

Open Le-Syl21 opened 3 years ago

Le-Syl21 commented 3 years ago

Hi,

I'm on Ubuntu 20.04 with kernel linux-image-5.8.0-63-generic drivers: Release: 5.4 | Apr 6, 2021 I doesn't work. To make it work I need to reboot on kernel 5.8.0-59-generic

Thx in adv

muellerjoel commented 3 years ago

It's the same issue like the latest Kernel Bug. Wait new pull of evdi which works with Kernel 5.13

peddanet commented 3 years ago

Can please someone explain me, how to use your actual code with kernel 5.13? I installed the official sources of displaylink driver from April 6th, but as you probably already know, these are not working with Ubuntu 20.04 anymore with a kernel of v5.13. At the moment I froze the kernel to v.5.4, but as I saw in your sources of evdi_modeset.c in line 211 and 378 you have found a promising workaround.

With Ubuntu 20.04 and the new kernel it obviously is not working with official version as it has - at least - two mismatchin prototypes of pointers (the one fixed in your version).

But I actually do not know how to apply it correctly! What is the dependencies here? Do I have to deinstall the displaylink driver v5.4 completely and the compile and build your code with make, make all and make install?

A small hint here would be appreciated which dependencies must be installed or applied to have a fully working evdi displaylink driver for my USB-C dock as I do not wish to bind the kernel version to 5.4 to use my external monitors.

Here is my steps:

root# displaylink-installer uninstall
DisplayLink Linux Software 5.4.0-55.153 install script called: uninstall
Distribution discovered: Ubuntu 21.04

Uninstalling

[ Removing EVDI from kernel tree, DKMS, and removing sources. ]
dkms remove evdi/1.9.1 --all

-------- Uninstall Beginning --------
Module:  evdi
Version: 1.9.1
Kernel:  5.4.0-050400-generic (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

evdi.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.4.0-050400-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod...

DKMS: uninstall completed.

------------------------------
Deleting module version: 1.9.1
completely from the DKMS tree.
------------------------------
Done.
rm -f -rf /usr/src/evdi-1.9.1
Stopping displaylink-driver systemd service
[ Removing suspend-resume hooks ]
[ Removing udev rule ]
[ Removing Core folder ]

Uninstallation steps complete.
Please note that the evdi kernel module is still in the memory.
A reboot is required to fully complete the uninstallation process.

After that my external monitors stopped working. I then did a git clone and tried the following:

root# make
CFLAGS="-Werror -Wextra -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-error=missing-field-initializers " make -C module 
make[1]: Entering directory '/home/pwein/Downloads/evdi/module'
make -C /lib/modules/5.4.0-050400-generic/build M=$PWD
make[2]: Entering directory '/usr/src/linux-headers-5.4.0-050400-generic'
  Building modules, stage 2.
  MODPOST 1 modules
make[2]: Leaving directory '/usr/src/linux-headers-5.4.0-050400-generic'
make[1]: Leaving directory '/home/pwein/Downloads/evdi/module'
CFLAGS="-I../module -Werror -Wextra -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-error=missing-field-initializers " make -C library 
make[1]: Entering directory '/home/pwein/Downloads/evdi/library'
make[1]: Nothing to be done for 'default'.
make[1]: Leaving directory '/home/pwein/Downloads/evdi/library'
root:# make install
make -C module install
make[1]: Entering directory '/home/pwein/Downloads/evdi/module'
make -C /lib/modules/5.4.0-050400-generic/build M=$PWD INSTALL_MOD_PATH= INSTALL_MOD_DIR=/kernel/drivers/gpu/drm/evdi modules_install
make[2]: Entering directory '/usr/src/linux-headers-5.4.0-050400-generic'
  INSTALL /home/pwein/Downloads/evdi/module/evdi.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
sign-file: certs/signing_key.pem: No such file or directory
  DEPMOD  5.4.0-050400-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[2]: Leaving directory '/usr/src/linux-headers-5.4.0-050400-generic'
true
make[1]: Leaving directory '/home/pwein/Downloads/evdi/module'
make -C library install
make[1]: Entering directory '/home/pwein/Downloads/evdi/library'
install -d /usr/local/lib
install -m 755 libevdi.so.1.9.1 /usr/local/lib/libevdi.so.1.9.1
ln -sf libevdi.so.1.9.1 /usr/local/lib/libevdi.so.0
ln -sf libevdi.so.0 /usr/local/lib/libevdi.so
make[1]: Leaving directory '/home/pwein/Downloads/evdi/library'
root#insmod /lib/modules/5.13.13-051313-generic//kernel/drivers/gpu/drm/evdi/evdi.ko

But I got these errors and the external monitors did not came back to work. Please only a small hint.

peddanet commented 3 years ago

A "very little" progress I made after reinstalling displaylink driver v5.4 and afterwards compiled and installed the most actual evdi driver from the git. The monitors were detected but afterwards the system was frozen and USB drivers and/or I2C went inaccessible, to be concrete, the system was blind against any input and must be shut down manually via "power button".

Any hint?

Here is my working solution.

This solution also works with the compiled version for kernel >v5.13 for kernel v5.4 funnily, even though the compile switches only work at compile time.

peddanet commented 3 years ago

Or is this only a driver and I am missing "what" user app to integrate into ubuntu? Thank you, cause I am blind for the solution, I just want this device to work flawlessly. If I could later contribute I would do... (but at the moment I seem far away from understanding enough)

[edit] Oh I see, I probably need to have the DisplayLinkManager sources..which are most probably closed source, shit! Sorry for asking! How did you use the library then?