PowerFlex : Échec de l’installation du SDC sur Debian avec une erreur de build de module de noyau nom de répertoire : opérande manquant
Summary: Lors de l’installation du PowerFlex Storage Data Client (SDC) sur un système Debian, le script build_driver.sh peut indiquer de manière trompeuse la progression, mais ne parvient finalement pas à compiler le pilote scini avec l’erreur « dirname : missing operande ». ...
Symptoms
- Exécution de la compilation à la demande du pilote PowerFlex SDC, comme décrit dans l’article de la base de connaissances Dell suivant : PowerFlex : Compilation à la demande du pilote PowerFlex SDC
- L’installation de SDC échoue sur les systèmes Debian lors de l’exécution de la commande
build_driver.shscript. Bien que le script imprime des messages d’information suggérant la progression, le processus de génération réel ne réussit pas :root@debian-venus:/tmp/build# ./build_driver.sh 12-May-2025 12:03:38 INFO: Started. .... 12-May-2025 12:03:39 INFO: Checking /usr/src/linux-headers-6.1.0-34-amd64/include/generated/utsrelease.h ... 12-May-2025 12:03:39 INFO: Found fitting utsrelease.h in /usr/src/linux-headers-6.1.0-34-amd64 12-May-2025 12:03:39 INFO: Found include /usr/src/linux-headers-6.1.0-34-common/Makefile in /usr/src/linux-headers-6.1.0-34-amd64/Makefile realpath: /usr/src/linux-headers-6.1.0-34-amd64//usr/src/linux-headers-6.1.0-34-common/Makefile: No such file or directory dirname: missing operand Try 'dirname --help' for more information. 12-May-2025 12:03:39 INFO: Kernel source dir is determined as 12-May-2025 12:03:39 WARNING: Didn't find /Kconfig .... make: Entering directory '/usr/src/linux-headers-6.1.0-34-amd64' grep: ./include/linux/net.h: No such file or directory .. make[1]: *** [/usr/src/linux-headers-6.1.0-34-common/scripts/Makefile.build:255: /tmp/build/ini/./linux/api/api_mos.o] Error 1 make: *** [/usr/src/linux-headers-6.1.0-34-common/Makefile:2038: /tmp/build/ini] Error 2 make: Leaving directory '/usr/src/linux-headers-6.1.0-34-amd64' 12-May-2025 12:03:43 INFO: Success.
Impact
La commande scini La compilation du module noyau échoue en raison de dépendances d’en-tête manquantes, ce qui entraîne l’inachèvement ou l’abandon de l’installation du SDC. Par conséquent, le système ne peut pas fonctionner comme un SDC.
Cause
Le script d’installation SDC (build_driver.sh) tente de détecter automatiquement la source et les en-têtes du noyau à l’aide de realpath et dirname, mais échoue lorsque Debian fournit des en-têtes de noyau dans une structure de répertoires divisés :
-
/usr/src/linux-headers-version-amd64<>/
-
/usr/src/linux-headers-version-common<>/
Resolution
Exécutez la commande build_driver.sh script avec des balises -o et -s explicites pour définir correctement les répertoires d’objet et source :
./build_driver.sh -o /usr/src/linux-headers-<version>-amd64 -s /usr/src/linux-headers-<version>-common
Exemple :
./build_driver.sh -o /usr/src/linux-headers-6.1.0-34-amd64 -s /usr/src/linux-headers-6.1.0-34-common
Versions affectées
PowerFlex SDC 3.x.x
SDC PowerFlex 4.x.x
Problème résolu dans la version
SDC PowerFlex 3.6.6
SDC PowerFlex 4.5.5
PowerFlex SDC 5.0