编辑

编辑

我有一台 HP Envy 笔记本电脑,上面安装了 Ubuntu 16.04。据报道,这款笔记本电脑型号安装了“滑动指纹传感器” lsusb

Bus 002 Device 004: ID 138a:0050 Validity Sensors, Inc. Swipe
Fingerprint Sensor Couldn't open device, some information will be missing.  
Device Descriptor:  
bLength:                18  
bDescriptorType:         1   
bcdUSB:               1.10   
bDeviceClass:  255 Vendor Specific Class
bDeviceSubClass:        16   
bDeviceProtocol:       255   
bMaxPacketSize0:         8   
idVendor:     0x138a Validity Sensors, Inc.   
idProduct:          0x0050 Swipe Fingerprint Sensor  
bcdDevice:            0.60   
iManufacturer:        0 
iProduct:                0
iSerial:                 1   
bNumConfigurations:      1

对这个 USB 设备的支持非常有限,但因为我不想使用它,所以这并不重要。然而,当我用来powertop监控电源使用情况时,我发现该设备即使未使用,也持续使用 4.6 至 5 瓦的功率。

我也使用 Debian 的“usb-devices”来发现该设备正在使用什么驱动程序,但似乎没有加载:

T:  Bus=02 Lev=01 Prnt=01 Port=13 Cnt=01 Dev#=  4 Spd=12  MxCh= 0  
D: Ver= 1.10 Cls=ff(vend.) Sub=10 Prot=ff MxPS= 8 #Cfgs=  1  
P: Vendor=138a ProdID=0050 Rev=00.60 
S: SerialNumber=941442215a3a  
C: \#Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA  
I: If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)

所以我的问题是,我是否可以禁用该设备以将其功耗降低至零瓦?有一个Autosuspend for unknown USB device 2-14 (138a:0050)powertop调节选项,但这对报告的功耗没有影响。

编辑

powertop报告:

Power est.              Usage       Events/s    Category    Description  
  5.86 W                0.0 pkts/s                Device         Network interface: eno1 (r8169)  
  5.15 W                100.0%                    Device         USB device: usb-device-138a-0050  
  4.17 W                100.0%                    Device         Radio device: btusb

答案1

没有 Linux 驱动程序的 USB 设备 不是自动置于自动挂起状态,因为它会导致太多损坏。 (这是您在 powertop 中看到的默认设置,对吧?)

但是,一旦您在未使用的设备上启用自动挂起,它就会在几秒钟后生效。

您可以在 中看到设置/sysfs/bus/usb/.../power。要启用自动挂起,power/control请设置为auto。并非所有文件都有记录,但我有runtime_statussuspended对于暂停的设备)。为了说明为什么设备被视为活动设备,我还有runtime_usageruntime_active_kids(子设备,例如连接到集线器的活动设备)。

对于没有驱动程序的设备,非零值runtime_usage应指示用户空间的访问。

您至少可以找到使用 访问设备的进程sudo lsof /dev /sys

我本以为访问指纹读取器的唯一进程是fprintd.您可以尝试使用 / 禁用它,systemctl mask --now fprintd看看它如何变化runtime_statusruntime_usage


耗电量数据

powertop 没有任何单个设备功率的实际数据。这都是猜测(“估计”),并且在某个地方出了可笑的错误。

您闲置的以太网芯片的功耗不是 5 瓦。

您的 USB 蓝牙收音机的功耗不是 5 瓦。蓝牙的最大发射功率似乎为 100mW。

5 瓦是 iPad 级设备上 SoC 功耗的最大“TDP”。闲置的指纹扫描仪不会向无线电或外部线路驱动 5W 功率。原则上我猜它可能正在忙循环 5W ARM cpu...但是说真的。无论从经济上还是从其他方面来说,这都没有意义。

这三个设备的功耗均不超过 15W。我使用的是真正的笔记本电脑,但用途并不多。听起来您的笔记本电脑的使用率似乎更高,但即便如此。

我认为 powertop 甚至无法查找 CPU 和集成 GPU 的 TDP,以便计算出剩下的内容。假设,这些估计是在与我的类似的笔记本电脑上进行校准的(例如 Linux 开发人员似乎喜欢的 12 英寸 Thinkpad X 系列),并且较大笔记本电脑的缩放最终会得到这些奇怪的数字。

你现在让我很好奇,这些具有较高 TDP 的笔记本电脑上的冷却系统是什么样子的……必须有一些通风口。

答案2

看起来禁用此设备的唯一方法是物理断开它(如果可能的话)。

我一直在阅读 Linuxsysfs以及如何使用它来询问设备等,我还发现kernel.org 上有帮助。USB 中存在关闭 USB 集线器特定端口电源的可能性,但是当我sudo lsusb在有问题的集线器上发出问题时,它的描述符报告说无法单独为端口供电。(USB 1.0)。

相关内容