随笔分类 -  Linux驱动

用于记录Linux内核驱动的学习笔记。
摘要:Everything you never wanted to know about kobjects, ksets, and ktypes 关于kobject,kset和ktypes的一切,你永远不会想知道 :Author: Greg Kroah-Hartman <gregkh@linuxfound 阅读全文
posted @ 2019-08-22 20:30 liangliangge 编辑
摘要:1、前言 struct kref结构体是一个引用计数器,它被嵌套进其它的结构体中,记录所嵌套结构的引用计数。引用计数用于检测内核中有多少地方使用了某个对象,每当内核的一个部分需要某个对象所包含的信息时,则该对象的引用计数加1,如果不需要相应的信息,则对该对象的引用计数减1,当引用计数为0时,内核知道 阅读全文
posted @ 2019-08-21 17:11 liangliangge 阅读(3593) 评论(0) 推荐(1) 编辑
摘要:1、mknod命令 在Linux系统下,mknod命令可用于系统下字符设备文件和块设备文件的创建。 (1)命令语法 (2)常用选项说明 -Z:设置安全的上下文。 -m:设置权限信息。 -help:显示帮助信息。 --version:显示版本信息。 (3)参数 文件名:要创建的设备文件名。 类型:指定 阅读全文
posted @ 2019-08-16 15:36 liangliangge 阅读(2305) 评论(0) 推荐(0) 编辑
摘要:1、insmod命令 在Linux系统下,insmod命令用于将给定的模块加载到内核中去,Linux系统有许多功能是通过模块的方式,在需要时才载入kernel,这样做可以使kernel较为精简,进而提高效率,这类可载入的模块,通常是设备驱动程序。 (1)命令语法 insmod(选项)(参数) (2) 阅读全文
posted @ 2019-08-16 11:58 liangliangge 阅读(2940) 评论(0) 推荐(0) 编辑
摘要:1、globalmem虚拟设备实例 globalmem为“全局内存”的意思,在globalmem字符设备中会分配一片大小为GLOBALMEM_SIZE(4KB)的内存空间,并在驱动中提供对这片内存的读写、控制和定位函数,供用户空间的进程能通过Linux系统调用获取和设置这片内存。 (1)头文件、宏以 阅读全文
posted @ 2019-08-15 20:45 liangliangge 阅读(1477) 评论(0) 推荐(0) 编辑
摘要:1、Linux字符设备驱动的基本结构 Linux系统下具有三种设备,分别是字符设备、块设备和网络设备,Linux下的字符设备是指只能一个字节一个字节读写的设备,不能随机读取设备内存中某一数据,读取数据的时候需要按照先后顺序进行,字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED 阅读全文
posted @ 2019-08-15 19:38 liangliangge 阅读(931) 评论(0) 推荐(0) 编辑
摘要:一、双向链表list_head Linux内核驱动开发会经常用到Linux内核中经典的双向链表list_head,以及它的拓展接口和宏定义:list_add、list_add_tail、list_del、list_entry、list_for_each等。 在内核源码中,list_head结构体的定 阅读全文
posted @ 2019-08-15 17:10 liangliangge 阅读(5178) 评论(1) 推荐(0) 编辑
摘要:如何去更改printk的打印级别? 1、查看当前控制台的打印级别 # cat /proc/sys/kernel/printk 该文件有4个数字值,它们根据日志记录消息的重要性,定义将其发送到何处,上面显示的4个数据分别对应如下: 控制台日志级别:优先级高于该值得消息将被打印到到控制台; 默认的消息日 阅读全文
posted @ 2019-08-15 15:50 liangliangge 阅读(1909) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示