>我有一个设备节点如下(主要编号89,设备名称i2c-0)
crw-r--r-- 1 0 0 89,0 Sep 29 01:36 /dev/i2c-0
>我有名为i2c.ko的i2c驱动程序,我将在启动时执行insmod i2c.ko.
>在驱动程序中,将在初始化期间调用以下函数:
register_chrdev(89,"i2c",&i2chtv_fops)<0 // not "i2c-0"
我的问题是:当用户调用open(“/ dev / i2c-0”,O_RDWR)时,内核如何知道要使用哪个驱动程序?我注意到设备名称是i2c-0但注册设备名称是i2c.是因为它们使用与内核可以使用正确驱动程序相同的主号码?
解决方法 是的,主要数字选择驱动程序和次要数字选择“单位”(无论可能是什么;对于控制台驱动程序,它是不同的屏幕).您看到-0是“单位”(如果您的系统中有多个i2c总线).
总结以上是内存溢出为你收集整理的linux – 如何将/ dev /中的设备与实际驱动程序相关联全部内容,希望文章能够帮你解决linux – 如何将/ dev /中的设备与实际驱动程序相关联所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)