USB(通用串行总线)是一种主要用于连接计算机外部设备的总线接口,为数码摄像机、外置硬盘、打印机、存储器、键盘与鼠标等设备提供连接,因此,在Linux系统中正确配置USB设备非常重要。本文着重介绍Linux系统下如何正确配置USB设备。
首先,要配置USB设备,需要先查看物理连接情况,使用命令“lsusb”来查看当前USB所有已安装的设备。例如:
$ lsusb
Bus 001 Device 002: ID 05e3:0610 Genesys Logic,Inc. 4-port hub
Bus 001 Device 003: ID 0557:2008 Atmel Corp. Maxtouch Digitizer Controller
接下来,通过驱动让设备正常工作。用“lsmod | grep ”来查看当前正在运行的模块的情况,如果没有输出即没有运行模块,就需要安装相关的模块。例如:
$ lsmod | grep usb
如果没有输出,就需要安装usb模块:
#apt-get install linux-image-yourversion-usb-modules-howyourversion
上面命令安装模块后,需要加载模块到内核,使用“modprobe usbcore”命令可以完成模块加载。
# modprobe usbcore
完成后重新查看模块,如果已经加载正确,此时应该可以正确识别USB设备,如果无法正确识别,可能是因为没有正确配置udev,此时需要检查并修改udev配置文件。比如,查看/etc/udev/rules.d/下的文件,确保包含所有硬件驱动的规则。
最后,在启动时,需要防止udev对被安装的设备的资源的枚举。有两种方法可以避免自动枚举:
1、在/etc/modprobe.d目录下创建一个 .conf文件,并在该文件中为端口添加以下条目:
options usbcore autosuspend=-1
2、在系统启动时,使用modprobe命令在命令行模式下加载模块,以便使模块包括usbcore在内的模块在系统启动进程启动前就被加载:
# modprobe usbcore autosuspend=-1
以上 steps 就是在 Linux 系统中配置USB设备的步骤,包括查看设备物理连接情况、设备驱动安装、正确配置udev及防止资源的自动枚举等,完成上述步骤后便可正常使用USB设备。