2017-10-13 146 views
0

我们正在运行raspberry pi板上的最新raspibian,并且有一个USB外设的内核驱动程序,它在启动后通过使用ssh连接到硬件而在外部添加(sudo insmod driverx.ko)(它是一个无头系统)。内核模块插入问题

的问题是如下: 如果装置在加电时已经连接到系统然后运行须藤insmod的driverx.ko导致终端卡住(没有响应,Ctrl + C键不工作)。通过启动另一个ssh会话来运行lsmod,表明该模块正在使用中,即使没有运行的代码将会使用它。

如果在系统启动后插入USB设备,则sudo insmod driverx.ko正常工作(终端仍处于活动状态)。随后运行lsmod显示该模块已加载,但未被任何人使用。然后我可以运行我的用户代码,一切都很好。当运行我的用户代码lsmod的显示内核模块正在使用中,用户数量为1

在我们的系统中的USB设备将始终被堵塞。内核版本和驱动程序的版本是相同的。
我可以填写更多的细节,但不希望偏见或使此查询不可读。 请告诉问题是什么。

谢谢你的时间和帮助。

+0

任何bios usb开机启动?你需要把USB放在引导BIOS的底部列表,如果USB可引导,这可能会造成不好的情况。不确定是否与您的问题有关。问候。 – 2017-10-13 07:08:46

+0

感谢您的意见。我会检查,但基于“症状”,我不认为这可能是问题。 – EnthuMan

+0

是作为“症状”;),gl。 – 2017-10-13 07:25:02

回答

0

可能性是,设备在启动过程中已经连接到其他驱动程序。如果是这种情况,则必须从启动驱动程序中删除特定设备的设备凭证。

检查USB设备列表之前插入您的驱动程序。

+0

我使用lsusb检查了USB设备列表,但没有看到任何具体的东西。我试图软重置USB设备,这有助于插入我的driverx.ko没有问题。 (例如,在SO上的另一个线程上的答案,$ sudo usb_modeswitch -v 0x7392 -p 0x7811 --reset-usb)。 – EnthuMan

+0

查看可能从端口吸取更多电流的设备的问题。尝试改变pi的电源。 – Sathesh

+0

或者使用外部集线器(自供电)并在集线器上连接设备 – Sathesh