Linux USB断电唤醒技巧 (linux u 断电 wakeup)

随着科技的不断发展,USB设备已经成为了我们家庭或办公室中不可或缺的设备之一。USB设备给我们的生活带来了很多便利,如鼠标、键盘、摄像头、打印机、外置硬盘等等。在Linux中,当我们连接USB设备到计算机上时,计算机将自动检测并安装驱动程序,然后开始与设备进行通讯。然而,有些时候我们需要在计算机休眠或关机时,通过USB设备来激活计算机。这时,就需要我们学习如何使用。

一、了解USB设备的休眠模式

USB设备在连到计算机的情况下有3种状态: 运行、挂起、休眠。在Linux中,一般情况下,USB设备默认为挂起状态,这是为了降低设备的功耗。当设备长时间不使用时,由于计算机会自动将设备挂起,而设备进入休眠状态。在USB设备进入休眠状态后,它的电源将被断开,因此将无法通过USB设备唤醒计算机。

二、使用USB_WAKEUP

USB_WAKEUP是Linux内核中用来解决USB设备断电唤醒机制的一个程序,主要用于在休眠状态下通过USB设备唤醒计算机。在开启USB_WAKEUP功能之前需要进行如下操作:

1. 使用工具lsu查看USB设备的相关信息;

2. 根据设备厂商与型号获取设备的venderid与productid;

3. 使用命令sudo modprobe uas_uhci rescan=1让USB设备重载。

在确定相关信息后,可以使用如下命令开启USB_WAKEUP功能:

sudo sh -c ‘for i in /sys/bus/u/devices/*/power/wakeup; do echo enabled > $i; done’

当需要关闭USB_WAKEUP功能时,只需执行以下命令即可:

sudo sh -c ‘for i in /sys/bus/u/devices/*/power/wakeup; do echo disabled > $i; done’

三、编写udev规则

udev是Linux下的一种驱动管理机制,它允许用户通过udev规则控制设备的属性和行为,包括USB设备联机与断电。为了让USB设备在断电时能够唤醒计算机,需要在Linux下创建一个udev规则。

1. 打开/etc/udev/rules.d目录;

2. 使用文本编辑器创建一个以50-u-wakeup.rules命名的文件,输入以下内容:

ACTION==”add”, SUBSYSTEM==”u”, ATTRS{idVendor}==”1234″ , ATTRS{idProduct}==”abcd”, RUN+=”/bin/sh -c ‘echo enabled > %S%p/power/wakeup'”

此值中的idVendor与idProduct是USB设备的veniderid与productid,需要将它们改为实际设备的具体信息。

3. 使用命令sudo udevadm control –reload-rules重载udev规则。

通过以上步骤,USB设备就可以通过断电唤醒计算机了。

四、测试效果

使用udev规则来控制USB设备的断电唤醒机制,理论上可以在任何时候使用USB设备来唤醒计算机。这是因为在Linux中,当USB设备连接上计算机时,udev规则会自动与内核进行交互,以实现USB设备的连接和断开。为了确保这种方法的可行性,可以在计算机还没有进入休眠状态时进行测试,测试效果如下:

1. 连接USB设备到计算机上;

2. 输入命令sudo systemctl suspend让计算机进入休眠状态;

3. 使用USB设备进行测试,观察计算机是否能在之一时间唤醒。

在测试中,如果计算机能够在之一时间唤醒,说明USB设备的断电唤醒机制已经成功地解决了这个问题。

在Linux中使用USB设备进行断电唤醒计算机,可以带来很大的便利,尤其是在需要灵活控制自己计算机的时候。不过,在使用USB设备断电唤醒机制之前,需要注意设备是否支持该功能,可以通过查询设备的官方说明或使用其他工具进行测试。此外,还需要在操作系统中启用USB_WAKEUP功能并编写udev规则,以实现自动控制USB设备的联机和断电。在以上过程中需要保证操作的正确性与稳定性,以避免对计算机造成不必要的影响。


数据运维技术 » Linux USB断电唤醒技巧 (linux u 断电 wakeup)