linux kernel 模块多文件编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux kernel 模块多文件编译相关的知识,希望对你有一定的参考价值。

/***************************************************************************
 *                      linux kernel 模块多文件编译
 * 声明:
 *     本文主要是记录在调试驱动的阶段,我们可能会更倾向于使用模块插入的方式
 * 来进行驱动调试,这样可以大大缩短调试时间。之前在调试gt9xx Touch的时候也
 * 是采用这种方式,这里还是记录一下,日后方便查找。
 *
 *                                          2016-2-2 深圳 南山平山村 曾剑锋
 **************************************************************************/

一、cat Makefile
    ifneq ($(KERNELRELEASE),)
        # gt9xxm.o去掉后缀就是生成的.ko的名字
        # 多文件编译注意gt9xxm.o、gt9xxm-objs的命名方式
        obj-m := gt9xxm.o       
        gt9xxm-objs := gt9xx.o gt9xx_update.o goodix_tool.o
    else
    KDIR := /home/zengjf/kernel   # 指定内核所在的目录
    all:
        make -C $(KDIR) M=$(PWD) modules

    clean:
        rm -f *.ko *.o *.mod.o *.mod.c *.symvers *.order
    endif

二、输出结果:
    [email protected]:~/kernel/drivers/input/touchscreen/gt9xx$ ls -al
    total 2348
    drwxrwxr-x 3 zengjf zengjf   4096 Jan 26 20:14 .
    drwxrwxr-x 3 zengjf zengjf   4096 Jan 27 18:40 ..
    -rwxrw-rw- 1 zengjf zengjf  37261 Jan 26 11:50 goodix_tool.c
    -rw-rw-r-- 1 zengjf zengjf 124592 Jan 26 11:50 goodix_tool.o
    -rw-rw-r-- 1 zengjf zengjf  29395 Jan 26 11:50 .goodix_tool.o.cmd
    -rwxrw-rw- 1 zengjf zengjf  89249 Jan 26 20:14 gt9xx.c
    -rwxrw-rw- 1 zengjf zengjf 309322 Nov 28  2014 gt9xx_firmware.h
    -rwxrw-rw- 1 zengjf zengjf  12086 Jan 26 11:50 gt9xx.h
    -rw-rw-r-- 1 zengjf zengjf 559323 Jan 26 11:50 gt9xxm.ko
    -rw-rw-r-- 1 zengjf zengjf    427 Jan 26 11:50 .gt9xxm.ko.cmd
    -rw-rw-r-- 1 zengjf zengjf   2477 Jan 26 11:50 gt9xxm.mod.c
    -rw-rw-r-- 1 zengjf zengjf  23044 Jan 26 11:50 gt9xxm.mod.o
    -rw-rw-r-- 1 zengjf zengjf  18307 Jan 26 11:50 .gt9xxm.mod.o.cmd
    -rw-rw-r-- 1 zengjf zengjf 537572 Jan 26 11:50 gt9xxm.o
    -rw-rw-r-- 1 zengjf zengjf    434 Jan 26 11:50 .gt9xxm.o.cmd
    -rw-rw-r-- 1 zengjf zengjf 178752 Jan 26 11:50 gt9xx.o
    -rw-rw-r-- 1 zengjf zengjf  29794 Jan 26 11:50 .gt9xx.o.cmd
    -rwxrw-rw- 1 zengjf zengjf 120272 Nov 28  2014 gt9xx_update.c
    -rw-rw-r-- 1 zengjf zengjf 240220 Jan 26 11:50 gt9xx_update.o
    -rw-rw-r-- 1 zengjf zengjf  29626 Jan 26 11:50 .gt9xx_update.o.cmd
    -rw-rw-r-- 1 zengjf zengjf    239 Jan 25 17:20 Makefile
    -rw-rw-r-- 1 zengjf zengjf     73 Jan 26 11:50 modules.order
    -rw-rw-r-- 1 zengjf zengjf      0 Jan 25 17:01 Module.symvers
    drwxrwxr-x 2 zengjf zengjf   4096 Jan 26 11:50 .tmp_versions
    [email protected]:~/kernel/drivers/input/touchscreen/gt9xx$ 

 

以上是关于linux kernel 模块多文件编译的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统移植:Kernel 顶层 Makefile(上)

Linux高手请进,关于编译hello模块的问题

Java Maven打包总结(Jenkins多模块编译部署)

linux命令:kernel内核模块管理编译/screen

Linux Kernel Makefiles介绍

.o如何嵌入kernel