当前位置: 技术问答>linux和unix
怎么让一个usb设备不用系统的驱动程序,而用我的呢?
来源: 互联网 发布时间:2016-04-24
本文导语: 怎么让一个usb设备不用系统的驱动程序,而用我的呢? | 首先你要确定这个usb设备的驱动是一个动态加载的模块。 然后rmmod调这个模块。 看你用什么发行版的linux,通常在etc下会有一个blacklis...
怎么让一个usb设备不用系统的驱动程序,而用我的呢?
|
首先你要确定这个usb设备的驱动是一个动态加载的模块。
然后rmmod调这个模块。
看你用什么发行版的linux,通常在etc下会有一个blacklist或者在/etc/modprobe*里面--》在这个blacklist文件里加入原来系统的模块的名字(你自己编译的驱动名字不能跟这个模块的名字相同)--》把你自己的模块insmod进去。
如果你自己编译的模块的名字跟原来系统的一样,就直接把原来那么个模块替换成你自己的。
如果你不替换原来的模块或者不在blacklist中声明,系统会通过udev去找,你也可以通过修改udev来做吧,我没实验过。
你也可以试试先把系统的驱动现rmmod,然后把自己的ismod进去。我不知道linux会不会在内核已经有一个模块能作为这个设备的驱动的情况下会去udev找,应该不会吧。^_^
然后rmmod调这个模块。
看你用什么发行版的linux,通常在etc下会有一个blacklist或者在/etc/modprobe*里面--》在这个blacklist文件里加入原来系统的模块的名字(你自己编译的驱动名字不能跟这个模块的名字相同)--》把你自己的模块insmod进去。
如果你自己编译的模块的名字跟原来系统的一样,就直接把原来那么个模块替换成你自己的。
如果你不替换原来的模块或者不在blacklist中声明,系统会通过udev去找,你也可以通过修改udev来做吧,我没实验过。
你也可以试试先把系统的驱动现rmmod,然后把自己的ismod进去。我不知道linux会不会在内核已经有一个模块能作为这个设备的驱动的情况下会去udev找,应该不会吧。^_^
|
用你的驱动程序替换系统的驱动程序,
|
这个要具体问题具体分析吧。
你可以把缺省的系统里的驱动改成模块的啊。
然后你自己的也改成模块的。
你可以把缺省的系统里的驱动改成模块的啊。
然后你自己的也改成模块的。
|
二位!我也遇到相同的问题了。我的一个简单的USB信号采集卡,看上去被定义为了03(HID)设备了。所以我的驱动也无法自动加载。
严重的问题是,我用了rmmod 和 修改blacklist的方法 都没有用处。插上后,usbhid又自动加载了。而且我之前的一个测试用模块也像狗皮膏药一样甩不掉了。
我用的内核是2.6.20-16-generic
严重的问题是,我用了rmmod 和 修改blacklist的方法 都没有用处。插上后,usbhid又自动加载了。而且我之前的一个测试用模块也像狗皮膏药一样甩不掉了。
我用的内核是2.6.20-16-generic