今天整理以前笔记,发现曾经里面有一个Makefile文件。

仔细一看是以前实习做linux内核程序设计时候写的模块makefile。刚好我电脑也有linux系统,就拿来回顾一下。

写个my.c和一个Makefile文件,然后make编译一下,就成功了,生成my.ko

再加载一下insmod my.ko     dmesg|grep module 看到模块初始化时候的打印

卸载模块rmmod my.ko  dmesg|grep module  看模块卸载时候的打印

都是对的,看来以前学的东西还是记得了……再mark一下。

注意事项:

1、内核目录

2、Makefile中obj-m:=my.o 这个和源文件my.c要对应

3、mymodule-objs:=module 这个my也是和my.c对应的

如果源文件为your.c

这两句话就应该改为obj-m:=your.o

yourmodule-objs:=module

4、查看输出的时候 用dmesg输出信息太多,可以用grep过滤一下

dmesg | grep "keywords"

内核源文件

#include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> static int funcIn(void) {printk("in module");return 0; } static void funcOut(void) {printk("out module");return; } module_init(funcIn); module_exit(funcOut); MODULE_LICENSE("GPL"); MODULE_AUTHOR("elfy");

Makefile 文件

我linux内核目录为/lib/modules/2.6.31-14-generic/build

具体看自己机器的文件

obj-m:=my.o mymodule-objs:=module KDIR:=/lib/modules/2.6.31-14-generic/build MAKE:=make default:$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules clean:$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean

linux 系统 ko模块编译相关推荐

  1. 简单实例讲解linux的module模块编译步骤

    简单实例讲解linux的module模块编译步骤 (2014-10-24 10:19:17) 标签: module linux 分类:Linux/Unix 本文将直接了当的带你进入linux的模块编译 ...

  2. NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号

    NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号 1. EC20模块连接 2. Linux内核配置 3. 交叉编译PPP 4. 拨号脚本 5. 进行拨号 1. EC20模块连接 在 ...

  3. Android 驱动(8)---简单实例讲解linux的module模块编译步骤

    简单实例讲解linux的module模块编译步骤 原博文地址http://blog.sina.com.cn/s/blog_4ba5b45e0102v25h.html ----------------- ...

  4. Linux系统下GCC编译错误:“undefined reference to ‘sqrt‘”

    Linux系统下GCC编译错误:"undefined reference to 'sqrt'",解决方法:-lm 数学函数sqrt()位于libm.so库文件中(这些库文件通常位于 ...

  5. Q106:Linux系统下安装编译PBRT-V3

    106.0 引入 本人之前尝试过在windows系统中编译pbrt-v3,但是出现了很多错误.pbrt-v3的源代码中部分Linux的函数没有用宏包好,而是直接使用,所以在windows环境下就报错了 ...

  6. linux 网卡驱动编译,在linux系统下安装编译网卡驱动的方法

    安装linux操作系统后发现没有网卡驱动,表现为 system → Administration → Network下Hardware列表为空. 以下为安装编译网卡驱动的过程,本人是菜鸟,以下是我从网 ...

  7. linux tun.ko模块,【Linux】Ubuntu14.04虚拟网络设备TUN安装

    1.检测系统中是否存在TUN模块,ctrl+alt+t打开Ubuntu终端,输入: ①modinfo tun modinfo: ERROR: Module tun not found. ②modpro ...

  8. 支持linux系统摄像头模块,Linux系统上如何安装摄像头?

    Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intelx86系列CPU的计算机上.这个系统是由全世界各地的成千上万的程序员设计和实现的.其目的是建立不受任何商品化软件的版权制 ...

  9. 在linux系统下如何编译运行C语言程序和C++程序

    文章目录 1:linux系统下编译运行C程序 2:linux系统下编译C++程序 1:linux系统下编译运行C程序 gcc -o a a.c gcc -o 想要的文件名 文件的名字.c 2:linu ...

最新文章

  1. 赠书 | 机器翻译,正在弥补人机翻译之间的差距
  2. 字符串分隔 -连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。...
  3. bigtall的敏捷日记(1)
  4. Google Colab
  5. IOS设计模式之四(备忘录模式,命令模式)
  6. 读书笔记之Unix命令
  7. async await 同步方法调用异步方法死锁
  8. LeetCode:226. 翻转二叉树
  9. jenkins 备份配置信息
  10. 对计算机硬件的工作原理的认识,计算机硬件的认识与安装.doc
  11. 自动的自动化:EvoSuite 自动生成JUnit的测试用例
  12. 解决键盘老是不消失实现delegate委托实例化过程
  13. c语言延时跑马灯实验报告,跑马灯实验C语言程序
  14. jQuery源码分析理解
  15. richfaces 经典记录
  16. 年终盘点,蔚来终于失去互联网造车老大地位,被小鹏取而代之
  17. 关于 BBBB 站视频删除问题解释
  18. 家庭监控安防行业存在哪些问题?看TSINGSEE青犀视频如何解决
  19. Swagger 3.0
  20. 小型电梯尺寸_家用小电梯尺寸—家用小电梯尺寸介绍

热门文章

  1. 十年之后你是怎样的呢
  2. sql表中drop table和delete table的区别
  3. 【商业模式】为什么零工经济需要区块链
  4. 【转】SuperBlock损坏修复
  5. github创建仓库-学习笔记
  6. 使用中国网建实现Java向手机发送短信的功能
  7. Deep Learning 中的 benchmark 与 baseline
  8. 使用Python处理Excel表格
  9. Deep Learning(深度学习)学习系列之(三)
  10. MATLAB画阿基米德螺旋线