【问题标题】:Is it possible to override a driver that has been compiled into the kernel?是否可以覆盖已编译到内核中的驱动程序?
【发布时间】:2013-07-31 23:27:34
【问题描述】:

我有一个 USB 设备,我有一个 API。此 API 仅在 USB 设备不使用 ftdi_sio/usbserial 驱动程序时才有效。

在我的笔记本电脑上,如果我插入 USB 设备,这些驱动程序会被加载(作为模块),我必须使用 modprobe -r 卸载它们,然后使用 API 的代码才能看到设备。

我有另一台设备遇到同样的问题,虽然没有加载任何模块,所以我猜这些驱动程序已编译到内核中。我的问题是——有什么方法可以阻止这个设备使用这些驱动程序,还是我必须重新编译内核等?

感谢您的帮助!

【问题讨论】:

    标签: linux-kernel


    【解决方案1】:

    您实际上是在寻找一种方法:

    • 取消绑定您的 USB 设备中的默认驱动程序
    • 绑定您选择的驱动程序。

    快速查看this 以帮助您入门。

    在这个出色的LWN article of (un)binding device drivers 中可以找到更详细的描述。

    【讨论】:

    • 很棒的东西,TheCodeArtist。将 USB ID 发送到 /sys/bus/usb/drivers/ftdi_sio 中的 unbind 命令可以完美运行,并允许应用程序访问 USB 设备。谢谢!
    • @dermur 你是怎么做到的,我遇到了 ftdi 设备 uarts 撤销问题,设备没有看到连接的 USB 设备只有最后一个在多个设备中处于活动状态。
    猜你喜欢
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2022-08-19
    相关资源
    最近更新 更多