linux 驱动学习 & learn
来源:互联网 发布:js文本框只能输入整数 编辑:程序博客网 时间:2024/05/24 07:08
写一个简单的 linux 内核模块:
#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("GPL");static int __init init_modules(void){ printk("hello world\n"); return 0;}static void __exit exit_modules(void){ printk("goodbye\n");}module_init(init_modules);module_exit(exit_modules);
任何 Linux 内核模块都需要包含: <linux/init.h>
和#include <linux/module.h>
头文件。
编译该模块的 Makefile 如下(mname 表示模块的名字 “hello”, main.o 是指定源文件为 main.c):
mname := hello$(mname)-objs := main.oobj-m := $(mname).oKERNELDIR := /lib/modules/`uname -r`/build # 这个目录指向的是 /usr/src/linux-headers-`uname -r`all: $(MAKE) -C $(KERNELDIR) M=`pwd` modulesclean: $(MAKE) -C $(KERNELDIR) M=`pwd` clean
编译后加载该模块:
sudo dmesg -C // 清空内核消息sudo insmod hello.ko // 如果是系统自带的模块,可用 modprob,其可以处理依赖项dmesg [25782.154813] hello worldsudo rmmod hellodmesg [25822.998576] goodbye
0 0
- linux 驱动学习 & learn
- linux驱动--i2c驱动学习
- Learn Linux
- linux learn
- learn linux
- learn linux
- linux learn
- linux learn
- linux驱动学习
- linux驱动学习
- Linux 驱动学习
- 高效学习linux驱动
- linux驱动学习
- linux驱动开发学习
- Linux 驱动学习笔记
- linux驱动开发学习
- Linux网卡驱动学习
- linux 驱动学习
- java代码线程压力测试
- java HttpClient 调用 post 与 get
- TCP为什么要3次握手和4次挥手时等待2MSL
- 动态性能视图概述
- jQuery-根据元素属性添加事件
- linux 驱动学习 & learn
- ionic开发--禁止手机横屏
- oracle使用闪回技术还原表数据
- 用 Flask 来写个轻博客 (5) — (M)VC_SQLAlchemy 的 CRUD 详解
- 缓存技术
- unity3D的面试题
- Lua元表
- Service组件研究
- Unity基础包 刚体FPS HeadBob和CameraRefocus 脚本研究