目前,我正在学习Linux设备驱动程序,我觉得自己对设备如何在Linux中实例化产生了根本性的误解。
在Linux模块中,我可以调用alloc_chrdev_region()向内核注册设备。具体来说,这个函数是
int alloc_chrdev_region(dev_t *dev, unsigned int firstminor,
unsigned int count, char *name);
它生成设备编号(主要/次要)并接受设备名称。
成功执行后,将在/proc/devices中创建一个主要编号和设备类型名称的条目。但是,/dev中没有生成任何设备文件。相反,我必须发出一个mknod调
在2017“UNIX和Linux系统管理”一书中,我阅读了以下文章:
现代系统自动管理他们的设备文件。然而,一些罕见的角落情况可能仍然需要您使用mknod命令手动创建设备。以下是如何做到这一点:
mknod filename type major minor
在这里,文件名是要创建的设备文件,字符设备的类型是c,块设备的是b,主和次要的设备编号。如果您正在创建一个引用内核中已经存在的驱动程序的设备文件,将检查驱动程序的文档,以找到适当的主设备号和次要设备号。
我在哪里可以找到这个文档,以及如何找到设备驱动程序的大副命令?