NI Linux实时操作系统上的USB设备支持

更新 Apr 1, 2024

适用于

操作系统

  • NI Linux Real-Time

问题详述

我已经将USB设备连接到运行NI Linux实时操作系统的硬件上。我没有看到USB设备可用于我的硬件。我怎么知道它已经被识别或者是否支持该USB设备?

解决方案

Linux内核内置了对许多类型设备的内置支持,包括但不限于USB存储设备和USB网络摄像头。由于NI Linux RTOS基于Linux内核,因此包含了对这些设备的支持。没有可参考的已定义的硬件列表,但是有方法确定设备是否可以与NI Linux RTOS一起使用的。

注意:此处讨论的技术将要求能够使用SSH或与通过串行连接可以登录到NI Linux Real-Time目标。相关链接部分中提供了文档,可以帮助您解决此问题。

检测连接的USB设备:
最初将USB设备插入实时目标的USB端口时,可以验证是否已检测到USB设备。登录到实时目标后,连接USB设备并在控制台输入dmesg命令,然后按Enter键。将显示类似于图1所示的信息。您可以在信息中搜索与已插入目标中的设备有关的文本。这是确定NI Linux RTOS是否可以识别您的设备的可靠方法。这不能保证该设备可与目标一起使用。
 
图1.USB存储驱动器的典型dmseg信息

确定目标是否可以使用连接的USB设备:
NI Linux RTOS使用的当前内核是3.14.40 Linux内核。当内核检测到它可以支持的USB设备时,内核模块(驱动程序)将自动加载到内存中,并且用户可以访问该设备。一种确定是否已为特定USB设备加载新内核模块的简单方法是,在插入设备之前向终端发出lsmod命令,然后在插入设备之后发出相同的命令。如果模块已加载,则比较已加载模块的列表,列表将显示新模块。

对于大多数受支持的USB设备,将为内核自动加载一个模块。有时模块可能不会自动加载。要手动为内核加载模块,请向终端发出命令modprobe <module> 。例如,ftdi_sio模块,需要加载USB-to-Serial驱动程序,则命令将为modprobe ftdi_sio

USB存储设备将自动安装到Real-Time目标。可以在/ media位置中访问它们,并且除非系统上存在具有该名称的文件夹,否则驱动器的快捷方式通常将映射为/ U。在这种情况下,下一个可用字母将用于映射USB存储设备。

相关信息

NI Linux Real-Time操作系统上的USB模块列表:
许多内核模块是多用途的,对于模块支持什么硬件没有任何指示。没有资源可以明确列出特定模块上的所有硬件。要确定NI Linux RTOS是否支持您的硬件,可以在Internet上搜索硬件,以确定与之相关的内核模块。 NI Linux RTOS随附的USB模块的最新列表可在以下目录中找到: /lib/modules/<kernel-version>/modules.usbmap。


有关模块的更多信息:
Linux内核中存在的大多数模块都有可以在线参考的文档。请参阅相关链接以了解有关每个模块的更多信息。要大致了解模块的特定功能,可以向终端发出命令modinfo <module> 。通常,这将显示模块开发人员信息以及对模块功能的简单描述。