在编译6ULL驱动的时候程序报错:
base.c:4:
./arch/x86/include/asm/atomic64_64.h: At top level:
./arch/x86/include/asm/atomic64_64.h:31:33: error: unknown type name ‘atomic64_t’
static inline void atomic64_set(atomic64_t *v, long i)
^
./arch/x86/include/asm/atomic64_64.h:43:41: error: unknown type name ‘atomic64_t’
static inline void atomic64_add(long i, atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:57:41: error: unknown type name ‘atomic64_t’
static inline void atomic64_sub(long i, atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:73:49: error: unknown type name ‘atomic64_t’
static inline int atomic64_sub_and_test(long i, atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:84:33: error: unknown type name ‘atomic64_t’
static inline void atomic64_inc(atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:97:33: error: unknown type name ‘atomic64_t’
static inline void atomic64_dec(atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:112:41: error: unknown type name ‘atomic64_t’
static inline int atomic64_dec_and_test(atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:125:41: error: unknown type name ‘atomic64_t’
static inline int atomic64_inc_and_test(atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:139:49: error: unknown type name ‘atomic64_t’
static inline int atomic64_add_negative(long i, atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:151:48: error: unknown type name ‘atomic64_t’
static inline long atomic64_add_return(long i, atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:156:48: error: unknown type name ‘atomic64_t’
static inline long atomic64_sub_return(long i, atomic64_t *v)
^
./arch/x86/include/asm/atomic64_64.h:164:37: error: unknown type name ‘atomic64_t’
static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
^
./arch/x86/include/asm/atomic64_64.h:169:34: error: unknown type name ‘atomic64_t’
static inline long atomic64_xchg(atomic64_t *v, long new)
^
./arch/x86/include/asm/atomic64_64.h:183:39: error: unknown type name ‘atomic64_t’
static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
^
./arch/x86/include/asm/atomic64_64.h:207:45: error: unknown type name ‘atomic64_t’
static inline long atomic64_dec_if_positive(atomic64_t *v)
^
In file included from include/linux/sched.h:32:0,
from include/linux/blkdev.h:4,
from include/linux/ide.h:12,
from /home/yjl/linux/IMX6ULL/Linux_Drivers/01_chrdevbase/chrdevbase.c:4:
include/linux/cputime.h:4:25: fatal error: asm/cputime.h: 没有那个文件或目录
compilation terminated.
解决方法:修改驱动的makefile文件
假如原文件为:
KERNELDIR := /home/yjl/linux/IMX6ULL/linux/alientek_linux
CURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
则改为(添加两句):
KERNELDIR := /home/yjl/linux/IMX6ULL/linux/alientek_linux
CURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.o
ENV:=ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
build: kernel_modules
kernel_modules:
$(MAKE) $(ENV) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) $(ENV) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
参考链接:
编译内核驱动模块出错(./arch/x86/include/asm/xxx fatal error: asm/xxx: No such file or directory)_Dask Jhonson的博客-CSDN博客