在内核驱动中新建hello文件夹
1.需要.c文件与Makefile文件
在..../drivers/hello目录下新建xxx.c 和Makefile文件
.c文件样例:
#include <linux/module.h>
#include <linux/kernel.h>
static char *name="likui";
module_param(name,charp,S_IRUGO);
static int count=520;
module_param(count,int,S_IRUGO);
static int __init init_hello_module(void)
{
printk(KERN_INFO"Hello, %s! This is    start %d/n",name,count);  
return 0;  
}
static void __exit exit_hello_module(void)
{
printk(KERN_INFO "Hello, %s! This is exit/n",name);
}
MODULE_LICENSE("Dual BSD/GPL");
module_init(init_hello_module);
module_exit(exit_hello_module);
Makefile文件样例:
KVERS = $(shell uname -r)
# Kernel modules
obj-m += helloworld.o
# Specify flags for the module compilation.
#EXTRA_CFLAGS=-g -O0
build: kernel_modules
kernel_modules:
make -C /lib/modules/$(KVERS)/build M=$(CURDIR) modules
clean:
make -C /lib/modules/$(KVERS)/build M=$(CURDIR) clean
2.编译与清除
在hello目录下执行make编译,make clean为清除编译文件

make之前

make之后文件

3.模块操作
加载模块:insmod  xxx.ko
卸载模块:rmmod xxx
查看模块:lsmod

查看模块输出信息:dmesg -c  xxx

linux设备驱动学习(一)——简单的helloworld模块相关推荐

  1. linux设备驱动学习,linux设备驱动学习4

    Linux设备驱动程序学习(4) -高级字符驱动程序操作[(1)ioctl and llseek] 今天进入<Linux设备驱动程序(第3版)>第六章高级字符驱动程序操作的学习. 一.io ...

  2. linux设备驱动学习笔记(1)

    学习了将近半个月的设备驱动程序的编写,也有一些体会,这里写下来也给学习做一个总结,为后面的学习做更好的准备. 首先,个人感觉驱动程序的设计是很有套路的,最基本的要求就是要掌握这些套路.所谓的套路就是一 ...

  3. linux设备驱动学习(四)——阻塞与非阻塞I/O

    1.阻塞与非阻塞I/O介绍 阻塞和非阻塞I/O是设备访问的两种不同模式.阻塞操作是指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作.被挂起的进程进入睡眠状态,被从调度器的 ...

  4. linux设备驱动学习(二)——字符设备编写及测试

    一.字符设备体结构介绍 1.字符设备作为linux内核三大驱动设备之一,主要完成字节的读写操作,常见的应用有鼠标.键盘等,结构体形式如下所示: struct cdev{ struct kobject ...

  5. linux 设备驱动学习总结

    从熟悉的开始. 设备驱动模型. device device driver class bus dra7xx pcie驱动 bus:platform bus device:platform_device ...

  6. linux设备驱动学习(三)——并发控制

    1.并发介绍 一般来说,操作系统都是支持并发执行能力的,多个执行单元访问同一个模块时,如果不能支持并发,则会让这个模块功能紊乱,像读写操作时.两个用户同时读写,那么可能一个用户执行读操作时,另一个用户 ...

  7. 【Linux开发】linux设备驱动归纳总结(十二):简单的数码相框

    linux设备驱动归纳总结(十二):简单的数码相框 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  8. 如何学习linux设备驱动

    面对不断升级的内核,如何学习linux设备驱动   面对不断升级的linux内核.GNU开发工具.linux环境下的各种图形库,很多linux应用程序开发人员和linux设备驱动开发人员即兴奋,又烦躁 ...

  9. Linux内核学习-字符设备驱动学习(二)

    在Linux内核学习-字符设备驱动学习(一)中编写字符设备驱动的一种方法,但是需要手动创建设备节点. 有没有能够自动的创建设备节点的呢? 有!使用class_create()和device_creat ...

最新文章

  1. java 行为模式_java设计模式--行为模式
  2. 基于音乐的脑机接口——采访Stefan Ehrlich 和 Kat Agres(上)
  3. 买不到“震楼神器”的外国小哥,用Arduino编了一个
  4. SIGGRAPH最佳博士论文奖又落华人手中,胡渊鸣的这位师兄不一般
  5. 计算机架构及开机过程
  6. 20140904 atoi字符串转化为整数源码
  7. java程序设计基础29_java程序设计基础实验29
  8. 【C#语言规范】从FxCop归纳出来的一些规范建议
  9. 简单扫一下官文 - 11G Release2 新特性
  10. linux centos系统清理垃圾,centos 清理内存缓存
  11. Linux缺少libaio包
  12. 向日葵 监控 android,就是如此简单!向日葵远程控制Android手机版教程
  13. CAB Activex
  14. FPGA编程入门:Quartus II 设计1位全加器
  15. 多个excel如何合并
  16. java实现多文件批量下载总结
  17. CentOS6.5启动MariaDB错误
  18. Java牛客网输入测试用例
  19. cad绘制正八边形_CAD怎么画正八边形 看完你学会了么
  20. 如何快速新增百万测试数据?

热门文章

  1. davinci项目服务器无法,集成就能降成本!GS集成DaVinci Resolve项目服务器
  2. stata面板数据gmm回归_【stata】面板GMM估计
  3. 九十二、动态规划系列之股票问题(上)
  4. 七十五、React环境搭建,目录文件分析和JSX
  5. 股市永不过时的黄金铁律:零下金叉疯狂买,零上死叉立即卖
  6. 十三、深入Python字典和集合
  7. opencv 裁剪 java_OpenCV绘制轮廓和裁剪
  8. 直播 | 帝国理工王剑虹:配电网中用多智能体强化学习进行的主动电压控制
  9. 深圳招聘 | 元象唯思:决策AI研发工程师、NLP算法工程师(可实习)
  10. 我们可以无损放大一个Transformer模型吗?