Johannes 《Linux内核模块与设备驱动开发:编写Linux驱动程序》(4) devicefile 设备号相关

视频资料:https://www.bilibili.com/video/BV18SE26cEjn?spm_id_from=333.788.videopod.sections&vd_source=92b7efa4daa5bb4fdcdc9f2db97c307b&p=4

There is no C files in lesson4.

查看 Linux 系统的 /dev/ 文件夹,查看设备文件和文本文件的不同。实际上 /dev/ 下的设备文件大多都是虚拟文件,关闭树莓派之后,PC 查 SD 卡可以看到 /dev/ 文件夹大多是空的。

ls -lh 查看文件属性,第一个 d/c/b 代表不同意思。

c 代表字符设备文件,b 代表块设备文件,d 则是文件夹。在 Linux 中一切设备都是文件,系统用文件的开关读写抽象了设备的操作,所以 <linux/fs.h> 中的 file_operation 至关重要。

然后设备号,包括主设备号和次设备号。举例 /dev/gpiochip0 的主设备号 254,次设备号 0。cat /proc/devices 可以查看系统所有的设备的设备号。

Linux 内核驱动和设备是通过设备号来联系的,不是通过设备的名字。实际上也可以通过设备树 probe 来联系。

mknod 生成设备节点,

mknod 实际上是较早版本的设备文件的方法,现在已经不推荐了。故而个人建议了解即可。

整个视频涉及的都是 Linux 的基本概念,不复杂,但是要记住概念。

相关推荐
陈希1233 分钟前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡37 分钟前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾1 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
且从容.4 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道5 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达6 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
且从容.7 小时前
ubuntu安装flink
linux·ubuntu·flink
数字新视界9 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落9 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨9 小时前
WSL2的安装与使用
linux·wsl