PowerFlex: SDC-Installation schlägt auf Debian mit einem Kernel-Modul-Build-Fehler fehl dirname: fehlender Operand
Summary: Bei der Installation des PowerFlex Storage Data Client (SDC) auf einem Debian-basierten System kann das build_driver.sh Skript den Fortschritt irreführend anzeigen, aber letztendlich kann der scini-Treiber mit dem Fehler "dirname: missing operand" nicht kompiliert werden. ...
Symptoms
- Durchführen einer On-Demand-Kompilierung des PowerFlex-SDC-Treibers wie im folgenden Dell Wissensdatenbank-Artikel beschrieben: PowerFlex: On-Demand-Kompilierung des PowerFlex-SDC-Treibers
- Die SDC-Installation schlägt auf Debian-basierten Systemen fehl, wenn der Befehl
build_driver.shSkript. Obwohl das Skript Informationsmeldungen ausgibt, die auf Fortschritt hinweisen, ist der eigentliche Build-Prozess nicht erfolgreich: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.
Auswirkungen
Die Spalte scini Das Kernel-Modul kann aufgrund fehlender Header-Abhängigkeiten nicht kompiliert werden, was dazu führt, dass die SDC-Installation unvollständig ist oder abgebrochen wird. Daher kann das System nicht als SDC fungieren.
Cause
Das SDC-Installationsskript (build_driver.sh) versucht, die Kernel-Quelle und die Header mithilfe von realpath und dirname, schlägt aber fehl, wenn Debian Kernel-Header in einer geteilten Verzeichnisstruktur bereitstellt:
-
/usr/src/linux-headers-version-amd64<>/
-
/usr/src/linux-headers-version-common<>/
Resolution
Führen Sie build_driver.sh Skript mit expliziten -O- und -S-Flags, um die Objekt- und Quellverzeichnisse korrekt festzulegen:
./build_driver.sh -o /usr/src/linux-headers-<version>-amd64 -s /usr/src/linux-headers-<version>-common
Beispiel:
./build_driver.sh -o /usr/src/linux-headers-6.1.0-34-amd64 -s /usr/src/linux-headers-6.1.0-34-common
Betroffene Versionen
PowerFlex-SDC 3.x.x
PowerFlex-SDC 4.x.x
Behoben in Version
PowerFlex-SDC 3.6.6
PowerFlex-SDC 4.5.5
PowerFlex-SDC 5.0