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

二、输出结果:
    zengjf@zengjf:~/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
    zengjf@zengjf:~/kernel/drivers/input/touchscreen/gt9xx$ 

 

时间: 2024-10-28 06:30:50

linux kernel 模块多文件编译的相关文章

FL2440 Linux kernel + yaffs2根文件移植过程(一)

本文全过程为自己亲自试验,成功移植了一个最基本功能的Kernel.根文件系统,现在将这个一耗时.耗精力 的过程写下来,希望对遇到相同问题的朋友们有所帮助! 平台:飞凌FL2440             windows xp sp2             vmware 6.5.build-203739              ubuntu 9.10              交叉编译器: 4.3.2              内核:linux-2.6.28.7.tar.bz2        

FL2440 Linux kernel + yaffs2根文件移植过程(二)

上一篇文章中Kernel移植基本上没有什么大的问题,除了几处需要更改外(已经注明) make zImage后,内核生成成功,下面是关于yaffs2根文件的移植,移植过程蜿蜒曲折,现现将成功移植过程讲解,后附过程与问题. 一.移植过程(成功) busybox-1.19.4 cross3.4.1(FL2440关盘里的交叉编译器) 1. 下载busybox-1.19.4.tar.bz2,地址是 http://busybox.net/downloads      下载busybox-1.19.4-udh

在Ubuntu上编译 emulat Android avd内核源代码(Linux Kernel)

因为我没有真机的环境  所以需要在模拟器中进行模拟进行,所以要下载支持模拟器的源代码版本,而goldfish这个源代码版本就是专门为模拟器环境而提供的. The goldfish project contains the kernel sources for the emulated platforms. 一.首先,到 git clone https://android.googlesource.com/kernel/goldfish.git下载Linux Kernel for Android

在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)

在前一篇文章提到,从源代码树下载下来的最新Android源代码,是不包括内核代码的,也就是Android源代码工程默认不包含Linux Kernel代码,而是使用预先编译好的内核,也就是prebuilt/android-arm/kernel/kernel-qemu文件.那么,如何才能DIY自己的内核呢?这篇文章一一道来.       一. 首选,参照前一篇在Ubuntu上下载.编译和安装Android最新源代码准备好Android源代码目录.       二. 下载Linux Kernel fo

在linux内核添加自己写的头文件编译失败

问题描述 在linux内核添加自己写的头文件编译失败 我把一个自己编写的函数放在了自己写的en_decrypt_fun.h头文件中,这个头文件放在了/fs/yaffs2目录下面,现在想在/drivers/mmc/core/sd.c文件中调用这个自己写的函数,然后我就在这个C文件中写了一个include "/fs/yaffs2/en_decrypt_fun.h,结果make的时候编译报错,找不到/fs/yaffs2/en_decrypt_fun.h这个目录或文件. 请问各位linux大神,我是应该

I.MX6 linux kernel编译错误处理

/******************************************************************************** * I.MX6 linux kernel编译错误处理 * 声明: * 本文仅仅是对I.MX6的linux内核编译出错,记录其对应的处理方法. * * 2015-10-15 晴 深圳 南山平山村 曾剑锋 *******************************************************************

模块怎样加载-Linux下模块怎样 加载

问题描述 Linux下模块怎样 加载 我看了下/lib/modules/*/kernel/net/drive下有r8169.ko网卡驱动.可是不知道怎么加载到内核里面 解决方案 linux下网卡驱动安装全过程 转载,希望可以帮到你 好不容易有个时间研究Linux,便从同学那里拿了RH9的安装盘来装(后来听到有人说RH9已经很老了,现在都用FC.我倒是觉得用什么发行版都不是很重要,至少很多东西我都还没弄懂,追求版本似乎没什么意思).原本以为安装会像以往那样顺利,后来却发现网卡没有识别出来.也就是说

The Linux Kernel Module Programming Guide

The Linux Kernel Module Programming Guide Peter Jay SalzmanMichael BurianOri Pomerantz Copyright 2001 Peter Jay Salzman The Linux Kernel Module Programming Guide is a free book; you may reproduce and/or modify it under the terms of the Open Software

戴文的Linux内核专题:28 编译与安装

戴文的Linux内核专题:28 编译与安装 你好!在花费了大量的时间在配置你需要的内核后,你现在可以编译它了.源代码是纯文本形式的C代码.这对人来可读但是对机器可不是这样.编译会将代码转换成计算机可理解的一种称之为二进制码的形式(1是 [开],0 是 [关]).编译同样会将所有内核代码文件变成一个内核的文件. 为了编译内核,在内核源代码相同目录下,在终端内输入"make".这会花费一些时间.完成之后,必须通过"make modules"来编译模块.为了从一开始就简化