添加设备节点

参考: https://blog.csdn.net/wsclinux/article/details/50907567

mknod

创建块设备或者字符设备文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法

  mknod [选项]  设备名  设备类型  主设备号 次设备号

创建字符设备文件

[root@localhost ~]# mknod /dev/ttywj c 2 1      //创建一个设备
[root@localhost weijie]# ls -l /dev/ttywj 
crw-r--r-- 1 root root 2, 1 9月   7 09:42 /dev/ttywj

通常情况下,安装系统时已经创建了常用的设备文件,可以直接访问这些设备文件来访问设备。但在用户重新定制内核,并添加了新硬件驱动程序之后,新驱动程序对应的设备文件就可能不存在。在FreeBSD中,最常见的例子就是在内核中增加声卡的驱动程序时,就需要创建相应设备文件。

MAKEDEV

创建设备文件的基本方式是使用mknod,但是必须知道该设备的正确设备号才可以。另一种简单的方式是使用/dev目录下的shell程序 MAKEDEV来完成,MAKEDEV实质上就是记录了很多设备的名字与其设备号之间的关系的程序,因此它能使用正确的设备号来创建设备。首先进入 /dev目录,然后再执行MAKEDEV。

如果对一个系统中没有(或者即使有但内核没有支持或探测到)的设备对应的设备文件进行操作,则系统返回Device not configured的错误信息。

MAKEDEV将使用mknod和对应设备的正确参数,包括字符或块设备、主设备号和从设备号来建立相应的设备文件。管理员也可以直接使用 mknod创建设备文件,但这就必须将这些设备参数统统指定正确才行。因此除非对系统中的硬件驱动程序特别熟悉,一般不直接使用mknod来创建设备文件。

struct class

//init
struct class *cls = class_create(THIS_MODULE, "charDev");
device_create( cls, NULL, devNum, NULL, "charDev0" );

//exit
device_destroy(cls, devNum);
class_destroy( cls );
posted @ 2020-02-29 15:37  friedCoder  阅读(354)  评论(0)    收藏  举报