Ubuntu : Module evdi not found in directory for displaylink-driver.service

J’ai vu que j’avais en boucle dans syslog :

sh[30354]: modprobe: FATAL: Module evdi not found in directory /lib/modules/6.2.0-10018-tuxedo
sh[30396]: Kernel preparation unnecessary for this kernel. Skipping...
sh[30396]: Building module:
sh[30396]: cleaning build area...
sh[30396]: make -j16 KERNELRELEASE=6.2.0-10018-tuxedo all INCLUDEDIR=/lib/modules/6.2.0-10018-tuxedo/build/include KVERSION=6.2.0-10018-tuxedo DKMS_BUILD=1...(bad exit status: 2)
sh[31025]: ERROR (dkms apport): binary package for evdi: 1.10.1 not found
sh[31099]: Error! Bad return status for module build on kernel: 6.2.0-10018-tuxedo (x86_64)
sh[31099]: Consult /var/lib/dkms/evdi/1.10.1/build/make.log for more information.
systemd[1]: displaylink-driver.service: Control process exited, code=exited, status=10/n/a
systemd[1]: displaylink-driver.service: Failed with result 'exit-code'.
systemd[1]: Failed to start DisplayLink Driver Service.
systemd[1]: displaylink-driver.service: Consumed 7.320s CPU time.
systemd[1]: displaylink-driver.service: Scheduled restart job, restart counter is at 16.
systemd[1]: Stopped DisplayLink Driver Service.
systemd[1]: displaylink-driver.service: Consumed 7.320s CPU time.
systemd[1]: Starting DisplayLink Driver Service...

J’ai donc essayé manuellement avec plusieurs versions mais sans succès :

$ sudo dkms install -m evdi -v 1.12.0
Error! Could not find module source directory.
Directory: /usr/src/evdi-1.12.0 does not exist. 

Donc j’ai du me résoudre à prendre sur git et à faire le build :

$ git clone https://github.com/DisplayLink/evdi.git
Cloning into 'evdi'...
remote: Enumerating objects: 3065, done.
remote: Counting objects: 100% (1631/1631), done.
remote: Compressing objects: 100% (482/482), done.
remote: Total 3065 (delta 1253), reused 1294 (delta 1148), pack-reused 1434
Receiving objects: 100% (3065/3065), 6.21 MiB | 2.07 MiB/s, done.
Resolving deltas: 100% (2146/2146), done.

$ python3 -m pip install pybind11 

$ make

$ sudo make install

make -C module install
make[1]: Entering directory '/home/arias/GIT/evdi/module'
make -C /lib/modules/6.2.0-10018-tuxedo/build M=$PWD INSTALL_MOD_PATH= INSTALL_MOD_DIR=/kernel/drivers/gpu/drm/evdi modules_install
make[2]: Entering directory '/usr/src/linux-headers-6.2.0-10018-tuxedo'
  INSTALL /lib/modules/6.2.0-10018-tuxedo//kernel/drivers/gpu/drm/evdi/evdi.ko
  SIGN /lib/modules/6.2.0-10018-tuxedo//kernel/drivers/gpu/drm/evdi/evdi.ko
  DEPMOD  /lib/modules/6.2.0-10018-tuxedo
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[2]: Leaving directory '/usr/src/linux-headers-6.2.0-10018-tuxedo' 

Ensuite j’ai fait l’installation manuellement … et maintenant j’ai le displaylink-driver.service qui se lance et le display port qui fonctionne à nouveau.

Ubuntu 22.04.1 : GCC 11 ( -fcommon ) : Issue … Multiple definition of.

Avec GCC 11 on a changer la valeur par défaut.

Donc pour supprimer les problèmes (de facon rapide) il suffit d’ajouter la directive -fcommon. La solution idéale est de revoir le code … et surtout les .h.

Misère.

Pour information Ubuntu 22.04.1 utilise gcc 11.2.0-19 .

La doc : https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html

-fcommon

In C code, this option controls the placement of global variables defined without an initializer, known as tentative definitions in the C standard. Tentative definitions are distinct from declarations of a variable with the extern keyword, which do not allocate storage.

The default is -fno-common, which specifies that the compiler places uninitialized global variables in the BSS section of the object file. This inhibits the merging of tentative definitions by the linker so you get a multiple-definition error if the same variable is accidentally defined in more than one compilation unit.

The -fcommon places uninitialized global variables in a common block. This allows the linker to resolve all tentative definitions of the same variable in different compilation units to the same object, or to a non-tentative definition. This behavior is inconsistent with C++, and on many targets implies a speed and code size penalty on global variable references. It is mainly useful to enable legacy code to link without errors.

Ubuntu 20.04 : Thunderbirds impossible d’enregistrer un fichier

Il était impossible d’ouvrir un dossier ou d’enregistrer un fichier, j »ai donc vu qu’il manquait un package :

$ sudo apt-get install xdg-desktop-portal-gtk
...
Les paquets supplémentaires suivants seront installés :
  xdg-desktop-portal
Les NOUVEAUX paquets suivants seront installés :
  xdg-desktop-portal xdg-desktop-portal-gtk
...

Je pense qu’il manque donc une dépendence entre Thunderbirds et xdg-desktop-portal.

A suivre.

Ubuntu : VMware player : Suppression … « userif-3: sent link up event »

J’avais le problème de reset en boucle du soft …

$ dmesg | grep "userif-3" | tail
[169428.735247] userif-3: sent link down event.
[169428.735249] userif-3: sent link up event.
[169429.165362] userif-3: sent link down event.
[169429.165368] userif-3: sent link up event.
[169489.672222] userif-3: sent link down event.
[169489.672228] userif-3: sent link up event.
[169550.238633] userif-3: sent link down event.
[169550.238634] userif-3: sent link up event.
[169581.257563] userif-3: sent link down event.
[169581.257565] userif-3: sent link up event.

J’ai mis la dernière version mais le problème était persitant … j’ai donc supprimé

$ sudo vmware-installer -u vmware-workstation

Pour résoudre le problème j’ai essayé l’installation d’un patch :

$ sudo  /usr/bin/vmware-modconfig --console --install-all
...
$ systemctl restart vmware

Mon OS :

$ cat /etc/os-release | grep "PRETTY_NAME"
PRETTY_NAME="Ubuntu 20.04.2 LTS"