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.

Linux/Python : Merge d’un GPX et d’une video

Etape 1 : Installation : https://pypi.org/project/gopro-overlay/

$ python3 -m venv venv
$ venv/bin/pip install gopro-overlay
$ mkdir ~/.gopro-graphics/
$ cat ~/.gopro-graphics/ffmpeg-profiles.json
{
  "overlay": {
    "input": [],
    "output": ["-vcodec", "png"]
  }
}

Etape 2 : Premier test et premier drame

$ venv/bin/gopro-dashboard.py --use-gpx-only --gpx Nextcloud/Pipe/Video/BoucleResideo.gpx 1920x1080 Nextcloud/Pipe/Video/BoucleResideo.mov 
Starting gopro-dashboard version 0.100.0
ffmpeg version is 4.4.2-0ubuntu0.22.04.1
Using Python version 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0]
Traceback (most recent call last):
  File "/home/arias/venv/bin/gopro-dashboard.py", line 107, in 
    font = load_font(args.font)
  File "/home/arias/venv/lib/python3.10/site-packages/gopro_overlay/font.py", line 5, in load_font
    return ImageFont.truetype(font=font, size=size)
  File "/home/arias/venv/lib/python3.10/site-packages/PIL/ImageFont.py", line 1008, in truetype
    return freetype(font)
  File "/home/arias/venv/lib/python3.10/site-packages/PIL/ImageFont.py", line 1005, in freetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
  File "/home/arias/venv/lib/python3.10/site-packages/PIL/ImageFont.py", line 255, in __init__
    self.font = core.getfont(
OSError: cannot open resource

Etape 2b : Avec copie de la « font »

$ venv/bin/gopro-dashboard.py --use-gpx-only --gpx Nextcloud/Pipe/Video/BoucleResideo.gpx --overlay-size 1920x1080 Nextcloud/Pipe/Video/BoucleResideo.mov --font Nextcloud/Pipe/Video/Roboto-Medium.ttf 
Starting gopro-dashboard version 0.100.0
ffmpeg version is 4.4.2-0ubuntu0.22.04.1
Using Python version 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0]
GPX/FIT file:     2023-07-05T17:51:34+00:00 -> 2023-07-05T18:02:30+00:00
Timer(loading timeseries - Called: 1, Total: 2.99467, Avg: 2.99467, Rate: 0.33)
Generating overlay at Dimension(x=1920, y=1080)
Timeseries has 6561 data points
Processing....
Timer(processing - Called: 1, Total: 4.25000, Avg: 4.25000, Rate: 0.24)
FFMPEG Output is in /tmp/tmpkga_2k5h
Timelapse Factor = 1.000
Layout -> Include component 'date_and_time' = True
Layout -> Include component 'gps_info' = True
Layout -> Include component 'gps-lock' = True
Layout -> Include component 'big_mph' = True
Layout -> Include component 'gradient_chart' = True
Layout -> Include component 'gradient' = True
Layout -> Include component 'altitude' = True
Layout -> Include component 'temperature' = True
Layout -> Include component 'cadence' = True
Layout -> Include component 'heartbeat' = True
Layout -> Include component 'moving_map' = True
Layout -> Include component 'journey_map' = True
Executing 'ffmpeg -hide_banner -y -hide_banner -loglevel info -f rawvideo -framerate 10.0 -s 1920x1080 -pix_fmt rgba -i - -r 30 -vcodec libx264 -preset veryfast Nextcloud/Pipe/Video/BoucleResideo.mov'
...

Etape 3 : Shotcut : https://shotcut.org/

 

Mkdocs emoji reduction de la taille

En passant

J’ai fini par trouvé (j’ai ajouté css/extra.css ):

img.emoji {
   height: 16px;
   width: 16px;
   margin: 0 .05em 0 .1em;
   vertical-align: -0.1em;
}

.twemoji {
  width: 16px;
  height: 16px;
  display: inline-block;
  vertical-align: top;
}

Et maintenant c’est fixé.

Oracle Linux / Redhat : systemd change /dev/null permissions

Pour fixer le problème des changements de permission sur /dev/null par systemd j’ai fait la commande suivante :

# grep -riL "ExecStartPost" /usr/lib/systemd/system/*service | xargs grep "TTYPath=/dev/tty" | sed 's/:/ /g' | awk '{print $1}' | xargs sed -i '/^ExecStart.*/i ExecStartPost = -/usr/bin/xset -display :0 -dpms s off'

# systemctl daemon-reload

Pour tous les types TTY j’ai ajouté :

ExecStartPost = -/usr/bin/xset -display :0 -dpms s off

J’ai l’impression que le problème est fixé.