You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

内核6.2.0-26-generic版本下编译内核模块遭遇多处头文件错误求助

内核6.2.0-26-generic版本下编译内核模块遭遇多处头文件错误求助

我正在开发一个内核模块,之前在Linux 5.x系列内核版本下编译运行都很正常,但切换到6.2.0-37-generic内核后,编译过程中从内核头文件里抛出了一大堆错误,实在摸不着头绪,求大家帮忙看看怎么解决。

编译错误汇总:

  • Type.h中报错:Throwing extra braces group at the end of initializer
  • 错误:‘CONFIG_PAGE_OFFSETUL’ undeclared (first use in this function); did you mean ‘CONFIG_SND_OSSEMUL’?
  • 涉及的头文件包括:topology.h、mm.h、vmstat.h(多次出现)

详细错误日志:

In file included from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/bitops.h:425,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/bitops.h:68,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/log2.h:12,
from /usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/div64.h:55,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/div64.h:75,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/math.h:6,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/math64.h:6,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time.h:6,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/stat.h:19,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:13,
from dscudkp.c:97:
/usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/bitops/instrumented-non-atomic.h: In function ‘__instrument_read_write_bitop’:
/usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/bitops/instrumented-non-atomic.h:66:13: warning: implicit declaration of function ‘IS_ENABLED’ [-Wimplicit-function-declaration]
66 |         if (IS_ENABLED(CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC)) {
|             ^~~~~~~~~~
/usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/bitops/instrumented-non-atomic.h:66:24: error: ‘CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC’ undeclared (first use in this function)
66 |         if (IS_ENABLED(CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC)) {
|                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/bitops/instrumented-non-atomic.h:66:24: note: each undeclared identifier is reported only once for each function it appears in

In file included from /usr/src/linux-headers-6.2.0-37-generic/include/linux/cache.h:6,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/stat.h:19,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:13,
from dscudkp.c:97:
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/current.h: At top level:
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/cache.h:8:26: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function)
8 | #define L1_CACHE_SHIFT  (CONFIG_X86_L1_CACHE_SHIFT)
|                          ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/cache.h:9:31: note: in expansion of macro ‘L1_CACHE_SHIFT’
9 | #define L1_CACHE_BYTES  (1 << L1_CACHE_SHIFT)
|                               ^~~~~~~~~~~~~~
/usr/src/linux-headers-6.2.0-37-generic/include/linux/cache.h:13:25: note: in expansion of macro ‘L1_CACHE_BYTES’
13 | #define SMP_CACHE_BYTES L1_CACHE_BYTES
|                         ^~~~~~~~~~~~~~
/usr/src/linux-headers-6.2.0-37-generic/include/linux/cache.h:41:58: note: in expansion of macro ‘SMP_CACHE_BYTES’
41 | #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
|                                                          ^~~~~~~~~~~~~~~
/usr/src/linux-headers-6.2.0-37-generic/include/linux/percpu-defs.h:148:9: note: in expansion of macro ‘____cacheline_aligned’
148 |         ____cacheline_aligned
|         ^~~~~~~~~~~~~~~~~~~~~
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/current.h:37:1: note: in expansion of macro ‘DECLARE_PER_CPU_ALIGNED’
37 | DECLARE_PER_CPU_ALIGNED(struct pcpu_hot, pcpu_hot);
| ^~~~~~~~~~~~~~~~~~~~~~~

In file included from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic.h:269,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/atomic.h:7,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/jump_label.h:255,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/string_64.h:6,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/string.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/cpuid.h:9,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/processor.h:19,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/timex.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/timex.h:67,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time32.h:13,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time.h:60,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/stat.h:19,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:13,
from dscudkp.c:97:
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:20:44: error: unknown type name ‘atomic64_t’
20 | static inline s64 arch_atomic64_read(const atomic64_t *v)
|                                            ^~~~~~~~~~
In file included from /usr/src/linux-headers-6.2.0-37-generic/include/linux/compiler.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/build_bug.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/container_of.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/list.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:12,
from dscudkp.c:97:
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h: In function ‘arch_atomic64_read’:
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:22:31: error: request for member ‘counter’ in something not a structure or union
22 |         return __READ_ONCE((v)->counter);
|                               ^~
/usr/src/linux-headers-6.2.0-37-generic/include/linux/compiler_types.h:341:27: note: in definition of macro ‘__unqual_scalar_typeof’
341 |                 _Generic((x),                                           \
|                           ^
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:22:16: note: in expansion of macro ‘__READ_ONCE’
22 |         return __READ_ONCE((v)->counter);
|                ^~~~~~~~~~~

In file included from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/generated/asm/rwonce.h:1,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/compiler.h:247,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/build_bug.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/container_of.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/list.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:12,
from dscudkp.c:97:
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:22:31: error: request for member ‘counter’ in something not a structure or union
22 |         return __READ_ONCE((v)->counter);
|                               ^~
/usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/rwonce.h:44:73: note: in definition of macro ‘__READ_ONCE’
44 | #define __READ_ONCE(x)  (*(const volatile __unqual_scalar_typeof(x) *)&(x))
|                                                                         ^

In file included from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic.h:269,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/atomic.h:7,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/jump_label.h:255,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/string_64.h:6,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/string.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/cpuid.h:9,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/processor.h:19,
from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/timex.h:5,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/timex.h:67,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time32.h:13,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time.h:60,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/stat.h:19,
from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:13,
from dscudkp.c:97:
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h: At top level:
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:32:38: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
32 | static inline void arch_atomic64_set(atomic64_t *v, s64 i)
|                                      ^~~~~~~~~~
|                                      atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:44:54: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
44 | static __always_inline void arch_atomic64_add(s64 i, atomic64_t *v)
|                                                      ^~~~~~~~~~
|                                                      atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:58:45: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
58 | static inline void arch_atomic64_sub(s64 i, atomic64_t *v)
|                                             ^~~~~~~~~~
|                                             atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:74:54: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
74 | static inline bool arch_atomic64_sub_and_test(s64 i, atomic64_t *v)
|                                                      ^~~~~~~~~~
|                                                      atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:86:47: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
86 | static __always_inline void arch_atomic64_inc(atomic64_t *v)
|                                               ^~~~~~~~~~
|                                               atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:100:47: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
100 | static __always_inline void arch_atomic64_dec(atomic64_t *v)
|                                               ^~~~~~~~~~
|                                               atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:116:47: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
116 | static inline bool arch_atomic64_dec_and_test(atomic64_t *v)
|                                               ^~~~~~~~~~
|                                               atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:130:47: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
130 | static inline bool arch_atomic64_inc_and_test(atomic64_t *v)
|                                               ^~~~~~~~~~
|                                               atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:145:54: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
145 | static inline bool arch_atomic64_add_negative(s64 i, atomic64_t *v)
|                                                      ^~~~~~~~~~
|                                                      atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:158:60: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’?
158 | static __always_inline s64 arch_atomic64_add_return(s64 i, atomic64_t *v)
|                                                            ^~~~~~~~~~
|                                                            atomic_t
/usr/src/linux-headers-6.2.0-37-generic/arch/x
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 03:42:57