PowerFlex: Instalacja SDC kończy się niepowodzeniem w systemie Debian z błędem kompilacji modułu jądra dirname: brak operandu
Summary: Podczas instalowania klienta danych pamięci masowej PowerFlex (SDC) w systemie opartym na Debianie skrypt build_driver.sh może myląco wskazywać postęp, ale ostatecznie nie kompiluje sterownika scini z błędem "dirname: missing operand". ...
Symptoms
- Wykonywanie kompilacji na żądanie sterownika PowerFlex SDC zgodnie z opisem w poniższej bazie wiedzy firmy Dell: PowerFlex: Kompilacja na żądanie sterownika PowerFlex SDC
- Instalacja SDC kończy się niepowodzeniem w systemach opartych na Debianie podczas uruchamiania
build_driver.shskrypt. Pomimo tego, że skrypt wyświetla komunikaty informacyjne sugerujące postęp, rzeczywisty proces kompilacji nie kończy się pomyślnie: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.
Wpływ
Polecenie scini Nie można skompilować modułu jądra z powodu brakujących zależności nagłówka, co powoduje, że instalacja SDC jest niekompletna lub przerwana. W związku z tym system nie może funkcjonować jako klient SDC.
Cause
Skrypt instalacyjny SDC (build_driver.sh) próbuje automatycznie wykryć źródła jądra i nagłówki za pomocą realpath i dirname, ale nie działa, gdy Debian udostępnia nagłówki jądra w podzielonej strukturze katalogów:
-
/usr/src/linux-headers-version-amd64<>/
-
/usr/src/linux-headers-version-common<>/
Resolution
Uruchom build_driver.sh skrypt z jawnymi flagami -o i -s, aby poprawnie ustawić katalogi object i source:
./build_driver.sh -o /usr/src/linux-headers-<version>-amd64 -s /usr/src/linux-headers-<version>-common
Przykład:
./build_driver.sh -o /usr/src/linux-headers-6.1.0-34-amd64 -s /usr/src/linux-headers-6.1.0-34-common
Wersje, których dotyczy problem
PowerFlex SDC 3.x.x
PowerFlex SDC 4.x.x
Naprawiono w wersji
PowerFlex SDC 3.6.6
PowerFlex SDC 4.5.5
PowerFlex SDC 5.0