linux设备驱动程序笔记,Linux设备驱动程序学习笔记

自己的学习笔记,还没又写完,以后博客中会有更新

第一章 Linux设备驱动程序之--基础知识

学Linux一年多了,对驱动的知识一点都不了解,上周买了本《Linux设备驱动》,O'REILLY出版,打算学习学习。在学习的过程中顺便做点笔记,以免遗忘。欢迎正在学习的菜鸟同胞们来交流学习心得。学过的大侠,希望可以指导指导。

声明:本学习笔记系列的知识多来自《Linux设备驱动》,好多东西基本上是照抄,此为本人记忆之用

首先有两个网站需要知道:

关于《Linux设备驱动》出版以来的内核API变化:https://http://doc.xuehai.net/Articles/2.6-kernel-api/

Linux-kernel列表:http://doc.xuehai.net/lkml/

一:内核功能划分:

Unix系统支持多个进程的并发运行,每个进程都请求系统资源:比如运算、内存、网络连接或其他一些资源等。内核负责处理所有这些请求,根据内核完成任务的不同可敬内核功能划分成:

进程管理

负责创建和销毁进程,并处理他们和外部世界之间的连接,以及进程间通信和进程间对CPU调度器的共享

内存管理

内核在有限的可用资源之上为每个进程都创建了一个虚拟地址空间

文件系统

Linux支持多种文件系统类型

设备控制

所有设备控制操作都由与被操做的设备相关的代码来完成,这段代码就是驱动程序

网络功能

网络功能也必须由操作系统来管理,因为大部分网络操作和具体的进程无关

二:设备和模块的分类

字符设备

块设备

网络接口

第二章 第一节 Linux设备驱动程序之--构建内核树

首先下载Linux内核,按作者的说法,只要是linux-2.6.xxx的内核都可以,我的是linux-2.6.33.2。有位网友说下载后最好解压到/usr/src/目录下,解压

在构建内核树时参考了原书第四章“调试技术”,配置了几条调试时可能会用到的选项,这些选项大多在“kernel hacking“菜单中:

CONFIG_DEBUG_KERNEL:使其他调试选项可用

CONFIG_DEBUG_SLAB:打开内核内存分配函数中的多个类型检查

CONFIG_DEBUG_PAGEALLOC:在释放时,全部内存页从内核地址空间中移出。该选项将大大降低运行速度,但可以快速定位特定的内存损坏错误的所在位置

CONFIG_DEBUG_SPINLOCK

CONFIG_DEBUG_SPINLOCK_SLEEP

CONFIG_INIT_DEBUG

CONFIG_DEBUG_INFO

构建内核树步骤:

(1) 下载内核源码包,至/usr/src/,并解压:[root@hh linux-2.6.30] # tar -zxvf  linux-2.6.30.tar.gz

(2)  [root@hh linux-2.6.30] # make mrproper

(3)  [root@hh linux-2.6.30] # make menuconfig ;并配置上面的选项(可以只配置需要的几项,也可以在.config文件中配置)

(4)  编译: [root@hh linux-2.6.30] # make

(5)  编译模块: [root@hh linux-2.6.30] # make mod

ules

(6)  安装模块: [root@hh linux-2.6.30] # make modules_install

(7)  安装:[root@hh linux-2.6.30] # make install

现在,看看你的 /lib/modules/ 目录吧,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux设备驱动程序是用于控制和管理硬件设备的软件模块。学习Linux设备驱动程序可以帮助开发人员理解和掌握Linux内核的工作原理,以及如何编写和调试设备驱动程序。 以下是一些学习Linux设备驱动程序笔记和建议: 1. 理解Linux设备模型:Linux设备模型是一种用于管理设备的框架,它提供了一种统一的方式来表示和操作设备学习Linux设备模型可以帮助你理解设备的注册、初始化和销毁过程。 2. 学习字符设备驱动程序:字符设备是一种以字节为单位进行读写的设备,如串口、终端等。学习字符设备驱动程序可以帮助你了解字符设备的打开、关闭、读写等操作,并学习如何实现设备文件的注册和操作。 3. 学习设备驱动程序:块设备是一种以块为单位进行读写的设备,如硬盘、闪存等。学习设备驱动程序可以帮助你了解块设备的分区、缓存、IO调度等操作,并学习如何实现块设备的注册和操作。 4. 学习中断处理:中断是设备向处理器发送信号的一种机制,用于通知处理器设备的状态变化。学习中断处理可以帮助你了解中断的注册、处理和释放过程,并学习如何编写中断处理程序。 5. 学习设备驱动程序的调试技巧:设备驱动程序的调试是一个重要的技能,可以帮助你快速定位和解决问题。学习设备驱动程序的调试技巧可以帮助你理解和使用调试工具,如 printk、kprobe等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值