5

I have an HP Envy laptop on which I have installed Ubuntu 16.04. This model of laptop has 'Swipe Fingerprint Sensor' installed, lsusb reports:

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

Support for this USB device is very limited but as I don't wish to use it this doesn't matter. However when I use powertop to monitor power usage I found that this device is using a continuous 4.6 to 5 watts even though it is not in use.

I used the Debian too 'usb-devices' to discover what driver is being used for this device however there doesn't appear to be one loaded:

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)

So my question is, is there anyway I can disable this device to reduce its power consumption to zero watts? There is a Autosuspend for unknown USB device 2-14 (138a:0050) in powertop's Tunable options but this makes no difference to the reported power consumption.

Edit

powertop reports:

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
3
  • I doubt it's using 5W. A quick sanity check: W=VA, so if W=5 and V=5 (let's assume a 5volt bus) then it must be drawing a whole Ampere. Not realistic. Commented Oct 6, 2016 at 16:09
  • Maybe but it could be using 12 volts. Please see edited question showing what power top reports.
    – D-Dᴙum
    Commented Oct 6, 2016 at 16:12
  • That would suggest it was still drawing over 400mA though, which still seems an awful lot (although I could then understand why you'd want to disable it). Commented Oct 6, 2016 at 17:06

2 Answers 2

4

USB devices with no linux driver are are not automatically placed in auto-suspend, because it causes too much breakage. (That's the default you see in powertop, right?)

However once you enable autosuspend on an unused device, it should take effect after a few seconds.

You can see settings in /sysfs/bus/usb/.../power. To enable autosuspend, power/control is set to auto. Not all the files are documented, but I have runtime_status (suspended for suspended device). To indicate why a device is considered active, I also have runtime_usage and runtime_active_kids (child devices, like active devices attached to a hub).

For a device without a driver, a non-zero runtime_usage should indicate access by userspace.

You can at least find processes accessing a device using sudo lsof /dev /sys.

I would have expected the only process accessing a fingerprint reader to be fprintd. You could try disabling it with systemctl mask --now fprintd and see how that changes runtime_status / runtime_usage.


Power consumption figures

powertop doesn't have any actual figures for individual device power. This is all guesswork ("estimates") and it's gone hilariously wrong somewhere.

Your idle ethernet chip is not costing 5 watts.

Your USB bluetooth radio is not burning 5 watts. Maximum transmit power for bluetooth appears to be 100mW.

5 watt is the max "TDP" for the SoC power dissipation on an iPad-class device. An idle fingerprint scanner is not driving 5W into radio or an external line. In principle I guess it could be busy-looping a 5W ARM cpu... but seriously. It doesn't make sense economically or any other way.

These three devices are not dissipating 15W. I'm using a bona-fide laptop that doesn't use more than that. It sounds like your laptop is reporting higher usage, but even so.

I don't think powertop can even look up the TDP for CPU & integrated GPU, in order to work out what's left. Hypothetically, the estimates were calibrated on laptops similar to mine (e.g. the 12 inch Thinkpad X-series which linux devs seem to like), and the scaling for larger laptops ends up with these weird numbers.

You've got me curious now, about what the cooling systems look like on these laptops with higher TDPs... must have some toasty vents.

2
  • The laptop does run a little warm, even on idle. The CPU fan runs often (modulates), again even with the laptop just sitting 'idle'. I only get a couple of hours battery life out of it and it's not that old a machine/battery so am kind of disappointed with that. I appreciate powertop gives only estimates however due to how warm the the laptop gets I do suspect it's NOT consuming milli-Watts but units or tens of watts.
    – D-Dᴙum
    Commented Oct 6, 2016 at 20:21
  • Thanks sourcejedi, I will take a look using the information you supplied. I'm reading O'Reilly 'Understanding the Linux Kernel' to get a better understanding of how devices actually work within Linux.
    – D-Dᴙum
    Commented Oct 7, 2016 at 8:07
1

Looks like the only way to disable this device is to physically disconnect it (if that is even possible).

I've been reading up on the Linux sysfs and how that can be used to interrogate devices etc and I also found this on kernel.org helpful. There exists in USB the possibility of powering down specific ports of a USB hub however when I issue sudo lsusb on the hub in question, it's descriptor reports that individual powering of ports is not available. (USB 1.0).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .