Environment is CentOS 8, broadcom 100G NetXtreme-E series driver .
Host : Ampere Altra Platform
if rebuild the CentOS kernel and there was previous Broadcom nic driver alredy installed, it will trigger dkms to rebuild the driver on current kernel.
make install error as following
[root@localhost linux-4.18.0-80.11.2.el8_0]# make install [55/2101] /bin/sh ./arch/arm64/boot/install.sh 4.18.0 \ arch/arm64/boot/Image System.map "/boot" dkms: running auto installation service for kernel 4.18.0 Deprecated feature: REMAKE_INITRD Deprecated feature: REMAKE_INITRD Deprecated feature: REMAKE_INITRD Sign command: /lib/modules/4.18.0/build/scripts/sign-file Signing key: /var/lib/dkms/mok.key Public certificate (MOK): /var/lib/dkms/mok.pub Deprecated feature: REMAKE_INITRD Building module: Cleaning build area...(bad exit status: 2) make -j160 KERNELRELEASE=4.18.0 -C /lib/modules/4.18.0/build M=/var/lib/dkms/bnxt_en/1.10.2.221.0.114.0/build KVER=4.18.0...(bad exit status: 2) Error! Bad return status for module build on kernel: 4.18.0 (aarch64) Consult /var/lib/dkms/bnxt_en/1.10.2.221.0.114.0/build/make.log for more information. Sign command: /lib/modules/4.18.0/build/scripts/sign-file Signing key: /var/lib/dkms/mok.key Public certificate (MOK): /var/lib/dkms/mok.pub Deprecated feature: REMAKE_INITRD Building module: Cleaning build area...(bad exit status: 2) make -j160 KERNELRELEASE=4.18.0 -C /lib/modules/4.18.0/build M=/var/lib/dkms/bnxt_re/221.0.114.0/build KVER=4$ 18.0 BNXT_EN_INC=/var/lib/dkms/bnxt_re/221.0.114.0/source BNXT_QPLIB_INC=/var/lib/dkms/bnxt_re/221.0.114.0/so$ rce...(bad exit status: 2) Error! Bad return status for module build on kernel: 4.18.0 (aarch64) Consult /var/lib/dkms/bnxt_re/221.0.114.0/build/make.log for more information. Done.
And check the log file “/var/lib/dkms/bnxt_re/221.0.114.0/build/make.log”
It shows
DKMS make.log for bnxt_en-1.10.2.221.0.114.0 for kernel 4.18.0 (aarch64) Tue Sep 27 15:41:04 CST 2022 Makefile:603: arch/aarch64/Makefile: No such file or directory make[2]: *** No rule to make target 'arch/aarch64/Makefile'. Stop.
Seems cannot find the Makefile, that because the drvier cannot locate right Makefile, because the include architecture is arm64, not aarch64 in Linux kernel .
By the way, basicly arm64 and aarch64 are the same thing, I don’t know why it shows aarch64 on kernel architecture and use arm64 as fold name. probably some traditional history.
solution is easy, go to the include folder and link arm64 to aarch, DONE! ex:
cd /lib/modules/4.18.0/build/arch ln -sf arm64 aarch64
發佈留言