PowerFlex: SDC-installatie mislukt op Debian met een kernelmodule-buildfout DirName: ontbrekende operand
Summary: Tijdens het installeren van de PowerFlex Storage Data Client (SDC) op een Debian-systeem kan het script build_driver.sh op misleidende wijze de voortgang aangeven, maar uiteindelijk slaagt het er niet in om de scini-driver te compileren met de fout "dirname: missing operand". ...
Symptoms
- On-demand compilatie van de PowerFlex SDC-driver uitvoeren, zoals beschreven in de volgende Dell KB: PowerFlex: On-demand compilatie van de PowerFlex SDC driver
- De installatie van een SDC mislukt op Debian-systemen bij het uitvoeren van het
build_driver.shscript. Ondanks het feit dat het script informatieve berichten afdrukt die vooruitgang suggereren, slaagt het daadwerkelijke bouwproces niet: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
De scini Kernelmodule kan niet worden gecompileerd vanwege ontbrekende headerafhankelijkheden, waardoor de SDC-installatie onvolledig is of is afgebroken. Als gevolg hiervan kan het systeem niet als SDC functioneren.
Cause
Het SDC-installatiescript (build_driver.sh) probeert de kernelbron en headers automatisch te detecteren met behulp van realpath als dirname, maar mislukt wanneer Debian Kernel-headers in een gesplitste mapstructuur levert:
-
/usr/src/linux-headers-version-amd64<>/
-
/usr/src/linux-headers-version-common<>/
Resolution
Start de build_driver.sh script met expliciete -o- en -s-vlaggen om de object- en bronmappen correct in te stellen:
./build_driver.sh -o /usr/src/linux-headers-<version>-amd64 -s /usr/src/linux-headers-<version>-common
Voorbeeld:
./build_driver.sh -o /usr/src/linux-headers-6.1.0-34-amd64 -s /usr/src/linux-headers-6.1.0-34-common
Versies waarop dit van toepassing is
PowerFlex SDC 3.x.x
PowerFlex SDC 4.x.x
Opgelost in versie
PowerFlex SDC 3.6.6
PowerFlex SDC 4.5.5
PowerFlex SDC 5.0