linux 系统 ko模块编译
今天整理以前笔记,发现曾经里面有一个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模块编译相关推荐
- 简单实例讲解linux的module模块编译步骤
简单实例讲解linux的module模块编译步骤 (2014-10-24 10:19:17) 标签: module linux 分类:Linux/Unix 本文将直接了当的带你进入linux的模块编译 ...
- NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号
NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号 1. EC20模块连接 2. Linux内核配置 3. 交叉编译PPP 4. 拨号脚本 5. 进行拨号 1. EC20模块连接 在 ...
- Android 驱动(8)---简单实例讲解linux的module模块编译步骤
简单实例讲解linux的module模块编译步骤 原博文地址http://blog.sina.com.cn/s/blog_4ba5b45e0102v25h.html ----------------- ...
- Linux系统下GCC编译错误:“undefined reference to ‘sqrt‘”
Linux系统下GCC编译错误:"undefined reference to 'sqrt'",解决方法:-lm 数学函数sqrt()位于libm.so库文件中(这些库文件通常位于 ...
- Q106:Linux系统下安装编译PBRT-V3
106.0 引入 本人之前尝试过在windows系统中编译pbrt-v3,但是出现了很多错误.pbrt-v3的源代码中部分Linux的函数没有用宏包好,而是直接使用,所以在windows环境下就报错了 ...
- linux 网卡驱动编译,在linux系统下安装编译网卡驱动的方法
安装linux操作系统后发现没有网卡驱动,表现为 system → Administration → Network下Hardware列表为空. 以下为安装编译网卡驱动的过程,本人是菜鸟,以下是我从网 ...
- linux tun.ko模块,【Linux】Ubuntu14.04虚拟网络设备TUN安装
1.检测系统中是否存在TUN模块,ctrl+alt+t打开Ubuntu终端,输入: ①modinfo tun modinfo: ERROR: Module tun not found. ②modpro ...
- 支持linux系统摄像头模块,Linux系统上如何安装摄像头?
Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intelx86系列CPU的计算机上.这个系统是由全世界各地的成千上万的程序员设计和实现的.其目的是建立不受任何商品化软件的版权制 ...
- 在linux系统下如何编译运行C语言程序和C++程序
文章目录 1:linux系统下编译运行C程序 2:linux系统下编译C++程序 1:linux系统下编译运行C程序 gcc -o a a.c gcc -o 想要的文件名 文件的名字.c 2:linu ...
最新文章
- 赠书 | 机器翻译,正在弥补人机翻译之间的差距
- 字符串分隔 -连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。...
- bigtall的敏捷日记(1)
- Google Colab
- IOS设计模式之四(备忘录模式,命令模式)
- 读书笔记之Unix命令
- async await 同步方法调用异步方法死锁
- LeetCode:226. 翻转二叉树
- jenkins 备份配置信息
- 对计算机硬件的工作原理的认识,计算机硬件的认识与安装.doc
- 自动的自动化:EvoSuite 自动生成JUnit的测试用例
- 解决键盘老是不消失实现delegate委托实例化过程
- c语言延时跑马灯实验报告,跑马灯实验C语言程序
- jQuery源码分析理解
- richfaces 经典记录
- 年终盘点,蔚来终于失去互联网造车老大地位,被小鹏取而代之
- 关于 BBBB 站视频删除问题解释
- 家庭监控安防行业存在哪些问题?看TSINGSEE青犀视频如何解决
- Swagger 3.0
- 小型电梯尺寸_家用小电梯尺寸—家用小电梯尺寸介绍