硬件
Atlas推理卡300I(3000)
操作系统和内核版本
操作系统:openEuler 22.03 LTS SP4
安装完成后执行yum update进行了升级,当前内核信息5.10.0-249.0.0.152.oe2203sp4.aarch64 #1 SMP Wed Feb 12 23:53:19 CST 2025 aarch64 aarch64 aarch64 GNU/Linux。
驱动
A300-3000-npu-driver_23.0.0_linux-aarch64.run
相关错误信息
/var/log/ascend_seclog/ascend_install.log
/var/lib/dkms/davinci_hiai/1.0/build/make.log
/arch/arm64/include/asm/cpufeature.h文件
头文件路径: /usr/src/kernels/5.10.0-249.0.0.152.oe2203sp4.aarch64/arch/arm64/include/asm/cpufeature.h, 引起错误的片段如下:
不清楚为什么内核维护为什么会写这么一行会引起编译器报警的代码。我追踪了一下内核git仓库,没有找到从哪个版本加进了这行代码。
硬件
Atlas推理卡300I(3000)操作系统和内核版本
操作系统:
openEuler 22.03 LTS SP4安装完成后执行
yum update进行了升级,当前内核信息5.10.0-249.0.0.152.oe2203sp4.aarch64 #1 SMP Wed Feb 12 23:53:19 CST 2025 aarch64 aarch64 aarch64 GNU/Linux。驱动
A300-3000-npu-driver_23.0.0_linux-aarch64.run相关错误信息
/var/log/ascend_seclog/ascend_install.log
/var/lib/dkms/davinci_hiai/1.0/build/make.log
CC [M] /var/lib/dkms/davinci_hiai/1.0/build/dbl/soc_resmng/soc_resmng.o In file included from ./arch/arm64/include/asm/hwcap.h:9, from ./arch/arm64/include/asm/arch_timer.h:12, from ./arch/arm64/include/asm/timex.h:8, from ./include/linux/timex.h:67, from ./include/linux/time32.h:13, from ./include/linux/time.h:73, from ./include/linux/jiffies.h:10, from /var/lib/dkms/davinci_hiai/1.0/build/hdc_host/hdcdrv_mem.c:27: ./arch/arm64/include/asm/cpufeature.h: In function ‘system_supports_4kb_granule’: ./arch/arm64/include/asm/cpufeature.h:662:14: error: comparison of unsigned expression in ‘>= 0’ is always true [-Werror=type-limits] 662 | return (val >= ID_AA64MMFR0_TGRAN4_SUPPORTED_MIN) && | ^~ ./arch/arm64/include/asm/cpufeature.h: In function ‘system_supports_64kb_granule’: ./arch/arm64/include/asm/cpufeature.h:675:14: error: comparison of unsigned expression in ‘>= 0’ is always true [-Werror=type-limits] 675 | return (val >= ID_AA64MMFR0_TGRAN64_SUPPORTED_MIN) && | ^~ In file included from ./arch/arm64/include/asm/hwcap.h:9, from ./arch/arm64/include/asm/arch_timer.h:12, from ./arch/arm64/include/asm/timex.h:8, from ./include/linux/timex.h:67, from ./include/linux/time32.h:13, from ./include/linux/time.h:73, from ./include/linux/jiffies.h:10, from /var/lib/dkms/davinci_hiai/1.0/build/hdc_host/hdcdrv_core.c:20: ./arch/arm64/include/asm/cpufeature.h: In function ‘system_supports_4kb_granule’: ./arch/arm64/include/asm/cpufeature.h:662:14: error: comparison of unsigned expression in ‘>= 0’ is always true [-Werror=type-limits] 662 | return (val >= ID_AA64MMFR0_TGRAN4_SUPPORTED_MIN) && ....省略 make[1]: *** [Makefile:1850: /var/lib/dkms/davinci_hiai/1.0/build] Error 2 make[1]: Leaving directory '/usr/src/kernels/5.10.0-249.0.0.152.oe2203sp4.aarch64' make: *** [Makefile:53: all] Error 2/arch/arm64/include/asm/cpufeature.h文件
头文件路径:
/usr/src/kernels/5.10.0-249.0.0.152.oe2203sp4.aarch64/arch/arm64/include/asm/cpufeature.h, 引起错误的片段如下:static inline bool system_supports_4kb_granule(void) { u64 mmfr0; u32 val; mmfr0 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR0_EL1); val = cpuid_feature_extract_unsigned_field(mmfr0, ID_AA64MMFR0_TGRAN4_SHIFT); return (val >= ID_AA64MMFR0_TGRAN4_SUPPORTED_MIN) && (val <= ID_AA64MMFR0_TGRAN4_SUPPORTED_MAX); }不清楚为什么内核维护为什么会写这么一行会引起编译器报警的代码。我追踪了一下内核git仓库,没有找到从哪个版本加进了这行代码。