From 81127011222a4800f7f361adc39cb73f2ef66a25 Mon Sep 17 00:00:00 2001 From: Tallagrand Thierry Date: Thu, 24 Sep 2026 13:07:21 +0200 Subject: [PATCH] charger-pilotes.sh : recherche dynamique des modules (mise a jour DSM 7.4) Le .17 passe en DSM 7.4.1 (saut majeur, noyau potentiellement different). Les .ko etaient charges par chemin fixe /lib/modules/ ; si 7.4.1 les deplace, insmod echouait. Desormais : modprobe si dispo (gere les dependances), sinon find du .ko dans /lib/modules et /usr/lib/modules. usbserial reste charge avant ftdi_sio. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj --- deploy/releve-cellules/charger-pilotes.sh | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/deploy/releve-cellules/charger-pilotes.sh b/deploy/releve-cellules/charger-pilotes.sh index d0d2212..79c4e8a 100755 --- a/deploy/releve-cellules/charger-pilotes.sh +++ b/deploy/releve-cellules/charger-pilotes.sh @@ -28,13 +28,24 @@ if [ "$(id -u)" -ne 0 ]; then exit 1 fi +# usbserial AVANT ftdi_sio (dependance). On ne code PAS le chemin en dur : une +# mise a jour DSM majeure (7.3 -> 7.4, 24/09) peut deplacer ou renommer les .ko. +# On tente modprobe (gere les dependances), sinon on cherche le .ko dans les +# arborescences de modules connues. for ko in usbserial ftdi_sio; do - if ! /sbin/lsmod | grep -q "^$ko "; then - /sbin/insmod "/lib/modules/$ko.ko" 2>/dev/null \ - && echo "$ko charge" \ - || echo "$ko : insmod en echec (deja charge ? autre pilote ?)" - else + if /sbin/lsmod | grep -q "^$ko "; then echo "$ko deja charge" + continue + fi + if command -v modprobe >/dev/null 2>&1 && modprobe "$ko" 2>/dev/null; then + echo "$ko charge (modprobe)" + continue + fi + kof=$(find /lib/modules /usr/lib/modules -name "$ko.ko" 2>/dev/null | head -1) + if [ -n "$kof" ] && /sbin/insmod "$kof" 2>/dev/null; then + echo "$ko charge ($kof)" + else + echo "$ko : introuvable ou insmod en echec (pilote absent de ce DSM ?)" fi done