关于模块的编译,之前试验都是需要把模块放到内核相应的驱动目录下,然后再修改Kconfig和Makefile,
使用#make menuconfig配置后再#make modules,
昨晚同事讲座,PPT上提到有更简便直接的编译外部模块方法,可以参考Document/kbuild/目录下内容
Makefile内容如下
obj-m += <yourmodulename.o>
#如果有多个文件,比如两个,使用下面语句
#obj-m += module.o
#module-objs += file1.o file2.o
KPATH := <your_kernel_source_path> #内核源码的位置变量
PWD := $(shell pwd) #模块代码的当前目录,SUBDIRS需要
CROSS_ARCH :=\
ARCH=arm CROSS_COMPILE=<your_toolchain> #平台和交叉编译工具变量
default:
$(MAKE) $(CROSS_ARCH) -C $(KPATH) SUBDIRS=$(PWD) modules
#这是真正的编译命令
clean:
rm -rf *.cmd *.ko *.mod.c *.o *.order *.symvers
#清除所有编译生成文件
--end by tziang@hotmail.com
文章评论(0条评论)
登录后参与讨论