在这个知识点之前我们先补充一个知识点:
modinfo可以查看一个模块(.ko文件)里面的一些信息
1、设备分类
2、设备号
字符设备是同一个架构,我们怎么区分这些字符设备呢,用主设备号和次设备号
从编程角度来看,设备号就是一个32位无符号整形值:高20位:主设备号,低12位:次设备号
如果我们的主设备号是50,次设备号是1,我们需要做移位操作:
50<<20 | 1
但是我们不需要哈,内核里面有申请设备号的函数:
3、查看设备号
在/proc/device
里面
每个设备号对应一个名字
4、注册、注销设备号
例子
前面的图我们可以看到有这么多设备号,我们找个没有的去申请,233吧
我们insmod一下,再查看设备号:
就能看到我们的设备好名字了
我们再来卸载掉这个模块:
就没有233设备号了