当前位置: 技术问答>linux和unix
不同的驱动程序可以使用同一个主设备号吗?
来源: 互联网 发布时间:2015-12-10
本文导语: 看到书上写到“已经注册(即已经加载了驱动程序)的硬件设备”,也就是说注册过的设备就是有与之对应的驱动程序的设备。那么,此时的设备的主设备号应该与驱动程序的主设备号一致。 现在我的疑惑是在系统...
看到书上写到“已经注册(即已经加载了驱动程序)的硬件设备”,也就是说注册过的设备就是有与之对应的驱动程序的设备。那么,此时的设备的主设备号应该与驱动程序的主设备号一致。
现在我的疑惑是在系统中存在两个不同的驱动程序,但是它们注册的主设备号一样?
产生疑惑的原因:在刚装系统的时候由于还没有装显卡的驱动程序,这时候显卡用的是操作系统默认的驱动程序,分辨率只有800*600。但是装了显卡驱动程序后,这时候显卡就用了显卡厂商提供的与之匹配的驱动程序,可以提供更高的分辨率。这时候系统中应该存在两个能够驱动这个显卡的驱动程序了(一个系统自带的,一个厂商提供的),那么这两个驱动程序的主设备号是否一致呢?显卡又是怎么知道那个才是正好与之匹配的?
现在我的疑惑是在系统中存在两个不同的驱动程序,但是它们注册的主设备号一样?
产生疑惑的原因:在刚装系统的时候由于还没有装显卡的驱动程序,这时候显卡用的是操作系统默认的驱动程序,分辨率只有800*600。但是装了显卡驱动程序后,这时候显卡就用了显卡厂商提供的与之匹配的驱动程序,可以提供更高的分辨率。这时候系统中应该存在两个能够驱动这个显卡的驱动程序了(一个系统自带的,一个厂商提供的),那么这两个驱动程序的主设备号是否一致呢?显卡又是怎么知道那个才是正好与之匹配的?
|
主设备号标识设备对应的驱动程序。内核利用主设备号在open操作中将设备与相应的驱动程序对应起来。
次设备号是由那些主设备号已经确定的驱动程序使用,内核的其他部分不会用到它,而只是把它传递给驱动程序。一个驱动程序控制多个设备是常有的事,而次设备号为驱动程序提供了一种区分不同设备的方法。
一旦驱动程序被注册到内核表中,它的操作就和指定的主设备号对应了起来,也就是主设备号是驱动程序的唯一标识。
次设备号是由那些主设备号已经确定的驱动程序使用,内核的其他部分不会用到它,而只是把它传递给驱动程序。一个驱动程序控制多个设备是常有的事,而次设备号为驱动程序提供了一种区分不同设备的方法。
一旦驱动程序被注册到内核表中,它的操作就和指定的主设备号对应了起来,也就是主设备号是驱动程序的唯一标识。
|
2.6内核可以, 以前的不行。
|
驱动程序可能注册的主设备号一样,但是他们不可能同时载入内核。主设备号,是区分驱动程序的唯一标志,不可能在内核中同时存在两个一样的主设备号的驱动程序。
你可以lsmod看看,是不是你的两个驱动都加载了?
你可以lsmod看看,是不是你的两个驱动都加载了?
|
偶认为应该是使用哪个PCI卡的时候就驱动哪个PCI卡
|
两个卡片都可以驱动,他们可以配置成不同的中断号,也可以共享中断。
至于使用的驱动程序,当然是同一个,但是设备就不是同一个了。
至于使用的驱动程序,当然是同一个,但是设备就不是同一个了。