我已经创建了一个新的脱离树的linux内核模块,它应该在我的用户空间热插拔工具udev检测到usb键盘时加载。
问题是,尽管我的模块已成功加载(使用insmod手动加载),并且我的驱动程序已准备好响应事件,但默认的usbhid驱动程序已经加载,这当然很好,因为它允许我使用系统,因为我的驱动程序仍在开发中。因此,当我使用rmmod usbhid时,我假设我的系统切换到我的实验驱动程序(很难说,因为没有检测到USB人机接口)。
因此,有没有可能临时切换驱动程序,或者(更好的)测试实验驱动程序,即使usbhid正在工作?
发布于 2017-09-07 20:48:49
解决方法可能是通过SSH或在使用USB密码的虚拟机中执行这些命令。
当我想快速尝试一些模块时,我会在shell中编写如下代码:
rmmod usbhid; insmod my_module; sleep 15; rmmod my_module; modprobe usb_hid
这种情况下输入问题的另一个快速解决方法是使用USB HID设备以外的另一种输入方法: PS/2,或虚拟键盘,如kdeconnect或synergy的远程键盘。
在我看来,如果你正在做一些严肃的内核开发,虚拟机是更好的设置,因为如果出现任何问题,它将避免崩溃。
除了这些变通方法之外,您可能还会对this answer中更持久的设置感兴趣。
https://stackoverflow.com/questions/46083625
复制相似问题