PowerFlex: A instalação do SDC falha no Debian com um erro de compilação do módulo kernel dirname: operando ausente
Summary: Durante a instalação do PowerFlex Storage Data Client (SDC) em um sistema baseado em Debian, o script build_driver.sh pode indicar erroneamente o progresso, mas, em última análise, falha ao compilar o driver scini com o erro "dirname: missing operando". ...
Symptoms
- Execução da compilação sob demanda do driver do PowerFlex SDC, conforme descrito na seguinte KB Dell: PowerFlex: Compilação sob demanda do driver do PowerFlex SDC
- A instalação do SDC falha em sistemas baseados em Debian ao executar o
build_driver.shroteiro. Apesar do script imprimir mensagens informativas sugerindo progresso, o processo de compilação real não é bem-sucedido: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.
Impacto
A coluna scini Falha na compilação do módulo kernel devido à ausência de dependências do cabeçalho, resultando na inconclusão ou anulação da instalação do SDC. Como resultado, o sistema não pode funcionar como um SDC.
Cause
O script de instalação do SDC (build_driver.sh) tenta detectar automaticamente a origem e os cabeçalhos do kernel usando realpath e dirname, mas falha quando o Debian fornece cabeçalhos de Kernel em uma estrutura de diretórios dividida:
-
/usr/src/linux-headers-version-amd64<>/
-
/usr/src/linux-headers-version-common<>/
Resolution
Execute o build_driver.sh Script com indicadores -o e -s explícitos para definir corretamente o objeto e os diretórios de origem:
./build_driver.sh -o /usr/src/linux-headers-<version>-amd64 -s /usr/src/linux-headers-<version>-common
Exemplo:
./build_driver.sh -o /usr/src/linux-headers-6.1.0-34-amd64 -s /usr/src/linux-headers-6.1.0-34-common
Versões afetadas
PowerFlex SDC 3.x.x
PowerFlex SDC 4.x.x
Correção feita na versão
PowerFlex SDC 3.6.6
PowerFlex SDC 4.5.5
PowerFlex SDC 5.0