[ltp] High power consumption on Z61m

Florian Reitmeir linux-thinkpad@linux-thinkpad.org
Sun, 1 Jun 2008 15:37:54 +0200


On Sun, 01 Jun 2008, Johannes Bittner wrote:

> I own a Thinkpad Z61m, nearly everything runs fine with linux (the
> distribution is debian, kernel 2.6.25.4), alas the power consumption is
> very high compared to MS Windows. I searched for the reason of the
> problem, and noticed that when I unload some USB kernel modules (namely:
> ehci_hcd, uhci_hcd), the power consumption is reduced by 5W (!). Here
> are the outputs of powertop before respectively after the removal of the
> USB kernel modules:
> 
> With USB: http://img128.imageshack.us/my.php?image=powertopusbjn5.png
> Without: http://img149.imageshack.us/my.php?image=powertopnousbap6.png
> 
> In both cases, WLAN/Bluetooth was turned off, display backlight set to
> minimum, no USB devices connected except for the internal ones, and no
> mouse/keyboard activity.
> 
> I really don't know how USB could use that much energy. I have a
> internal webcam in my thinkpad (I don't know if there are any current
> thinkpad models which have one, as the Z thinkpad series production has
> stopped AFAIR) for which I don't have a driver, could this be the reason
> for the high power consumption?
> 
> I'm using a custom kernel, but the problem remains with a standard
> debian kernel, as well as with ubuntu.
> 
> Thanks for any help in advance :)

as told often before, USB is a energy killer, and one special device, the
finger print reader is connected via USB 1.1.

just "unbind"/disable or suspend the fingerprint reader and you get much more
batterylife.

sometime ago i've written these script to disable the fingerprint reader:

--------- CUT
#!/bin/bash

UDI=''
UDI="$UDI /org/freedesktop/Hal/devices/usb_device_483_2016_noserial" #
LENOVO, ThinkPad X60s, 170255G # LENOVO, ThinkPad X61s, 7668CTO

state=suspend

if [ "x$1" = "xtrue" ]; then
	state=suspend
fi
if [ "x$1" = "xfalse" ]; then
	state=on
fi

for di in $UDI; do
	sysfs=$(hal-get-property --udi "$di" --key linux.sysfs_path 2>/dev/null)
	rc=$?
	if [ $rc -eq 0 ]; then
		echo $state >$sysfs/power/level
		break
	fi
done
--------- CUT


just call it with "true" as first parameter to disable the device.




-- 
Florian Reitmeir