当前位置: 技术问答>linux和unix
编译内核模块,没有报错,但没有生成.ko文件
来源: 互联网 发布时间:2017-01-18
本文导语: 编译内核模块,应该是没有报错.但什么文件都没有生成.请高手解答 下面是显示信息 ============================================================================================================= make -C /linux-2.6.29 M= modules ARCH=arm CROSS_COMPILE=/u...
编译内核模块,应该是没有报错.但什么文件都没有生成.请高手解答
下面是显示信息
=============================================================================================================
make -C /linux-2.6.29 M= modules ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
make[1]: 正在进入目录 `/linux-2.6.29'
CHK include/linux/version.h
make[2]: “include/asm-arm/mach-types.h”是最新的。
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-arm
CALL scripts/checksyscalls.sh
:1097:2: warning: #warning syscall fadvise64 not implemented
:1265:2: warning: #warning syscall migrate_pages not implemented
:1321:2: warning: #warning syscall pselect6 not implemented
:1325:2: warning: #warning syscall ppoll not implemented
:1365:2: warning: #warning syscall epoll_pwait not implemented
Building modules, stage 2.
MODPOST 123 modules
make[1]:正在离开目录 `/linux-2.6.29'
=============================================================================================================
我的Makefile文件如下
=============================================================================================================
ifneq ($(KERNELRELEASE),)
obj-m := memdev.o
else
KDIR := /linux-2.6.29
all:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*
endif
=============================================================================================================
执行后什么文件都没有生成.
急盼高手解答!!~
下面是显示信息
=============================================================================================================
make -C /linux-2.6.29 M= modules ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
make[1]: 正在进入目录 `/linux-2.6.29'
CHK include/linux/version.h
make[2]: “include/asm-arm/mach-types.h”是最新的。
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-arm
CALL scripts/checksyscalls.sh
:1097:2: warning: #warning syscall fadvise64 not implemented
:1265:2: warning: #warning syscall migrate_pages not implemented
:1321:2: warning: #warning syscall pselect6 not implemented
:1325:2: warning: #warning syscall ppoll not implemented
:1365:2: warning: #warning syscall epoll_pwait not implemented
Building modules, stage 2.
MODPOST 123 modules
make[1]:正在离开目录 `/linux-2.6.29'
=============================================================================================================
我的Makefile文件如下
=============================================================================================================
ifneq ($(KERNELRELEASE),)
obj-m := memdev.o
else
KDIR := /linux-2.6.29
all:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*
endif
=============================================================================================================
执行后什么文件都没有生成.
急盼高手解答!!~
|
make -C /linux-2.6.29 M= modules ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
make[1]: 正在进入目录 `/linux-2.6.29'
执行的命令不对 应该 M=
你的Makefile没问题,关键是M=$(PWD)。
你的shell环境变量PWD没设或者shell不支持PWD变量,你检查一下:echo $(PWD)
你可以M直接设置成你模块源码所在的路径。
make[1]: 正在进入目录 `/linux-2.6.29'
执行的命令不对 应该 M=
你的Makefile没问题,关键是M=$(PWD)。
你的shell环境变量PWD没设或者shell不支持PWD变量,你检查一下:echo $(PWD)
你可以M直接设置成你模块源码所在的路径。