PowerFlex: L'installazione di SDC non riesce su Debian con un errore di compilazione del modulo kernel dirname: operando mancante
Summary: Durante l'installazione di PowerFlex Storage Data Client (SDC) su un sistema basato su Debian, lo script build_driver.sh può indicare in modo fuorviante l'avanzamento, ma alla fine non riesce a compilare il driver scini con l'errore "dirname: missing operand". ...
Symptoms
- Esecuzione della compilazione on-demand del driver PowerFlex SDC come descritto nel seguente articolo della Knowledge Base di Dell: PowerFlex: Compilazione on-demand del driver PowerFlex SDC
- L'installazione di SDC non riesce sui sistemi basati su Debian quando si esegue il
build_driver.shcopione. Nonostante lo script stampi messaggi informativi che suggeriscono l'avanzamento, il processo di compilazione effettivo non riesce: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.
Impatto
La colonna scini Il modulo kernel non viene compilato a causa di dipendenze di intestazione mancanti, con conseguente incompletezza o interruzione dell'installazione dell SDC. Di conseguenza, il sistema non può funzionare come un SDC.
Cause
Lo script di installazione dell SDC (build_driver.sh) tenta di rilevare automaticamente l'origine e le intestazioni del kernel utilizzando realpath e dirname, ma fallisce quando Debian fornisce le intestazioni del kernel in una struttura di directory suddivise:
-
/usr/src/linux-headers-version-amd64<>/
-
/usr/src/linux-headers-version-common<>/
Resolution
Eseguire nuovamente il comando build_driver.sh Script con flag -o e -s espliciti per impostare correttamente le directory dell'oggetto e dell'origine:
./build_driver.sh -o /usr/src/linux-headers-<version>-amd64 -s /usr/src/linux-headers-<version>-common
Esempio:
./build_driver.sh -o /usr/src/linux-headers-6.1.0-34-amd64 -s /usr/src/linux-headers-6.1.0-34-common
Versioni interessate
PowerFlex SDC 3.x.x
PowerFlex SDC 4.x.x
Risolto nella versione
PowerFlex SDC 3.6.6
PowerFlex SDC 4.5.5
PowerFlex SDC 5.0