openEuler 22.03 LTS SP4环境安装驱动时DKMS编译报错
收藏回复举报
openEuler 22.03 LTS SP4环境安装驱动时DKMS编译报错
t('forum.solved') 已解决
新人帖
发表于2025-02-22 08:07:35
0 查看

硬件

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

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
'make' all KERNEL_UNAME=5.10.0-249.0.0.152.oe2203sp4.aarch64 DAVINCI_HIAI_DKMS=y TARGET_PRODUCT=mini TARGET_CHIP_ID=hi1910......(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.10.0-249.0.0.152.oe2203sp4.aarch64 (aarch64)
Consult /var/lib/dkms/davinci_hiai/1.0/build/make.log for more information.
[Driver] [2025-02-21 20:26:17] [uid=0(root)] [INFO]driver dkms log <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[Driver] [2025-02-21 20:26:17] [uid=0(root)] [ERROR]There has no /ascend_dms_dtm.ko, dkms install failed
[Driver] [2025-02-21 20:26:17] [uid=0(root)] [ERROR]dkms install files check failed
[Driver] [2025-02-21 20:26:17] [uid=0(root)] [ERROR]dkms install failed
[Driver] [2025-02-21 20:26:17] [uid=0(root)] [INFO]some files in /etc/ change success
[Driver] [2025-02-21 20:26:17] [INFO]End time: 2025-02-21 20:26:17

/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仓库,没有找到从哪个版本加进了这行代码。

本帖最后由 匿名用户2025/02/22 08:18:15 编辑

我要发帖子