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设备的联机和断电。在以上过程中需要保证操作的正确性与稳定性,以避免对计算机造成不必要的影响。