Linux内核学习
文章平均质量分 61
Yao_GUET
这个作者很懒,什么都没留下…
展开
-
Linux内核学习-最简单的内核模块
Linux驱动是驻留在内核空间的一个个模块,所以要学习内核驱动,必须对内核模块的编译与程序的框架有所了解。以前在看内核模块编译方法的时候,曾经看到许多方法,但是基本来说可以分了两种,一是编写Makefile文件,另外是直接在gcc编译命令中加入__KERNEL__和__MODULE__宏来编译。但是使用命令来编译的时候一般都会出现很多错误,,,这经常让人摸不着头脑,因为使用命令来编译是针对原创 2011-06-09 21:15:00 · 2586 阅读 · 0 评论 -
Linux内核学习-内核模块参数module_param
Linux2.6允许用户insmod的时候往内核模块里面传递参数,它主要使用module_param宏定义来实现这一功能。module_param的定义可以在include/linux/moduleparam.h文件里面查看到,它的原型为:module_param(name, type, perm);module_param_array(name, type, nump, perm);原创 2011-06-13 19:07:00 · 8730 阅读 · 0 评论 -
Linux内核学习-字符设备驱动学习(一)
Linux内核学习-字符驱动学习(一) 现在学习一下Linux的字符设备驱动,参考的样本应该就是ldd3这书大概第3章的内容吧。下面的所说的字符设备都是基于2.6内核的,一般的流程都是,呵呵,其实也不算是一般的流程了,只是手动加载字符设备驱动的一种方法吧,1. 先使用register_chrdev_region或alloc_chrdev_region来注册一个字符设备的设原创 2011-06-19 15:46:00 · 2973 阅读 · 0 评论 -
Linux内核学习-字符设备驱动学习(二)
在Linux内核学习-字符设备驱动学习(一)中编写字符设备驱动的一种方法,但是需要手动创建设备节点。有没有能够自动的创建设备节点的呢?有!使用class_create()和device_create()函数可以自动创建节点。 class_create : 创建class class_destroy :原创 2011-06-27 22:01:00 · 2829 阅读 · 0 评论 -
Linux内核学习-misc杂项设备驱动
Linux里面的misc杂项设备是主设备号为10的驱动设备,它的注册跟使用比较的简单,所以比较适用于功能简单的设备。它有自己的设备结构体: struct miscdevice { int minor; const char *name; const st原创 2011-07-07 20:53:33 · 8348 阅读 · 1 评论 -
Linux编程中安装必要的man帮助文档
在从windows转向linux开发的过程中,比较痛苦的就是在linux没有找到一个好用的帮忙文档,像windows中有MS强大的MSDN,而刚开始入门又不似一些大牛能刷刷的直接找到定义的头文件,甚至源文件,,,所以痛苦的时光时常发生,今天网上看了一下,其实系统自带的man工具就有很强大的功能,只是我们需要安装各个库的帮忙文档而矣需要查找类似于pthread_creat原创 2011-12-21 15:35:50 · 3432 阅读 · 1 评论 -
Linux下面一个简单的虚拟platform驱动
/* * Yao.GUET * http://blog.csdn.net/Yao_GUET * Linux下面一个简单的虚拟platform驱动 */在Linux之中,约定如果设备不属于任何的总线,则可以把它注册为虚拟的platform设备。下面就简单来学习一下一个简单的platform设备是怎么创建出来的。一般注册platform驱动的步骤是:1,pla原创 2011-12-13 15:36:07 · 2711 阅读 · 0 评论 -
编译生成wireless-regdb
wireless-regdb是一个开源的工程,它编译会生成regulatory.bin文件,这个实际是一个加密后的数据库,它记录各个国家可用的无线频段。下载wireless-regdb有两个方法:1. git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git2. http://wirele原创 2014-05-05 17:34:23 · 8196 阅读 · 0 评论 -
内核定时器timer_list使用
Linux内核中提供了timer使用的API,做一个简单的记要。包含的头文件:#include #include <linux/init.h>#include <linux/module.h>#include <linux/timer.h>struct timer_list timer;void timer_handler(unsigned long data) { printk(K原创 2015-10-28 16:11:14 · 7087 阅读 · 1 评论