https://www.thinkwiki.org/w/api.php?action=feedcontributions&user=Bombenbach&feedformat=atomThinkWiki - User contributions [en]2024-03-28T12:44:56ZUser contributionsMediaWiki 1.31.12https://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&diff=57165List of DMI IDs2016-06-17T12:28:29Z<p>Bombenbach: Added X230 (2324A15)</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
This page maintains a database of [http://en.wikipedia.org/wiki/Desktop_Management_Interface DMI] information which can be used to identify ThinkPad models. It is intended as an aid for driver development.<br />
{{HELP|We need more information about older models, especially those released before 2004. Please [[#Adding_entries|add your model]] to the database.}}<br />
{{NOTE|If your ThinkPad is not using the [[BIOS Upgrade Downloads|latest BIOS]], and you would be willing to [[BIOS Upgrade|upgrade your BIOS]], please add your ThinkPad to this table twice: '''before''' and '''after''' the BIOS upgrade. This information helps us a great deal, so your contribution would be very appreciated.}}<br />
|}<br />
<br />
==DMI ID database==<br />
<br />
<div style="font-size: 80%"><br />
{| border="1" cellspacing="0" cellpadding="2" style="text-align:center"<br />
|-<br />
! Model<br />
! <tt>system-<br />manufa<br />cturer</tt><br />
! <tt>system-<br />product-<br />name</tt><br />
! <tt>system-<br />version</tt><br />
! <tt>baseboard-<br />manufa<br />cturer</tt><br />
! <tt>baseboard-<br />product-<br />name</tt><br />
! <tt>base<br />board-<br />version</tt><br />
! <tt>chassis-<br />manufa<br />cturer</tt><br />
! <tt>chassis-<br />version</tt><br />
! <tt>bios-<br />vendor</tt><br />
! <tt>bios-<br />version</tt><br />
! <tt>bios-<br />release-<br />date</tt><br />
! Embedded controller<br />
! Notes<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====Numbered series====<br />
|-<br />
| {{240X}} 2609-61U<br />
|| IBM || 260961U || Not Available || IBM || 2609BS1 || Not Available || IBM || Not Available || IBM || 1.03.09 || 12/21/1999 <br />
||<br />
||<br />
|-<br />
| {{570}} 2644-1AU<br />
|| IBM || 26441AU || Not Available || IBM || 26441AU || Not Available || IBM || Not Available || IBM || IMET65WW || 11/11/99<br />
||<br />
||<br />
|-<br />
| {{570E}} 2644-5AU<br />
|| IBM || 26445AU || Not Available || IBM || 26445AU || Not Available || IBM || Not Available || IBM || IUET25WW || 12/11/1999<br />
||<br />
||<br />
|-<br />
| {{600E}} 2645-5AU<br />
|| IBM || 26455AU || Not Available || IBM || 26455AU || Not Available || IBM || Not Available || IBM || INET36WW || 11/20/1999<br />
||<br />
||<br />
|-<br />
| {{600X}} 2645-5FU<br />
|| IBM || 26455FU || Not Available || IBM || 26455FU || Not Available || IBM || Not Available || IBM || INET55WW || 11/30/1999<br />
||<br />
||<br />
|-<br />
| {{600X}} 2645-8EU<br />
|| IBM || 26458EU || Not Available || IBM || 26458EU || Not Available || IBM || Not Available || IBM || ITET54WW || 11/30/1999 <br />
||<br />
||<br />
|-<br />
| {{600X}} 2645-8EU<br />
|| IBM || 26458EU || Not Available || IBM || 26458EU || Not Available || IBM || Not Available || IBM || ITET48WW || 11/30/1999 <br />
||<br />
||POST/BIOS Version 1.13 old prior to upgrade <br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====A series====<br />
|-<br />
| {{A21m}} 2628-FSG<br />
|| IBM || 2628FSG || Not Available || IBM || 2628FSG || Not Available || IBM || Not Available || IBM || KXET24WW (1.02b) || 12/19/2000 <br />
|| <br />
||<br />
|-<br />
| {{A21m}} 2628-FSG<br />
|| IBM || 2628FSG || Not Available || IBM || 2628FSG || Not Available || IBM || Not Available || IBM || KXET36WW (1.09 ) || 05/08/2003 <br />
||<br />
||<br />
|-<br />
| {{A21m}} 2628-GTU<br />
|| IBM || 2628GTU || Not Available || IBM || 2628GTU || Not Available || IBM || Not Available || IBM || KXET29WW (1.03d) || 03/21/2001 <br />
||<br />
||<br />
|-<br />
| {{A22e}} 2655-KG1<br />
|| IBM || 2655KG1 || Not Available || IBM || 2655KG1 || Not Available || IBM || Not Available || IBM || 10ET23WW (1.04 ) || 09/05/2001 <br />
||<br />
||<br />
|-<br />
| {{A22e}} 2655-KG1<br />
|| IBM || 2655KG1 || Not Available || IBM || 2655KG1 || Not Available || IBM || Not Available || IBM || 10ET26WW (1.07 ) || 06/13/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{A22p}} 2629-USG<br />
|| IBM || 2629USG || Not Available || IBM || 2629USG || Not Available || IBM || Not Available || IBM || KYET36WW (1.09a) || 10/17/2002 <br />
||<br />
|| {{T-WARN|Outdated BIOS}}<br />
|-<br />
| {{A22p}} 2629-A2G<br />
|| IBM || 2629A2G || Not Available || IBM || 2629A2G || Not Available || IBM || Not Available || IBM || KYET38WW (1.11 ) || 05/20/2004 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{A31}} 2652-PBU<br />
|| IBM || 2652PBU || Not Available || IBM || 2652PBU || Not Available || IBM || Not Available || IBM || 1NET15WW (1.09 ) || 04/06/2005<br />
|| <nowiki>Handle&nbsp;0x0026,&nbsp;DMI&nbsp;type&nbsp;11,&nbsp;5&nbsp;byte&nbsp;String&nbsp;1:&nbsp;IBM .&nbsp;.&nbsp;ThinkPad&nbsp;Embedded&nbsp;Controller&nbsp;-[1NHT04WW-1.01&nbsp;]-&nbsp;.&nbsp;.</nowiki><!-- Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1NHT04WW-1.01 ]- --><br />
||<br />
|-<br />
| {{A31p}} 2653-RNG<br />
|| IBM || 2653RNG || Not Available || IBM || 2653RNG || Not Available || IBM || Not Available || IBM || 1NET16WW (1.10 ) || 10/19/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1NHT08WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{A31p}} 2653-H6U<br />
|| IBM || 2653H6U || Not Available || IBM || 2653H6U || Not Available || IBM || Not Available || IBM || 1GET31WW (1.03 ) || 07/23/2002<br />
|colspan="2"|{{T-WARN|Missing EC string, extremely outdated BIOS}}<br />
{{HELP|We need a report to know if the latest BIOS fixes the missing EC string}}<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====G series====<br />
|-<br />
| {{G41}} 2881-75M<br />
|| IBM || 288175M || ThinkPad G41 || IBM || 288175M || Not Available || IBM || Not Available || IBM || 1XET47WW (1.06 ) || 01/14/2005<br />
||<br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====R series====<br />
|-<br />
| {{R40}} 2681-5UU<br />
|| IBM || 26815UU || Not Available || IBM || 26815UU || Not Available || IBM || Not Available || IBM || 1OET57WW (1.23 ) || 03/23/2005 <br />
||<br />
|| {{T-WARN|Outdated BIOS}}<br />
|-<br />
| {{R40}} 2681-HSG<br />
|| IBM || 2681HSG || Not Available || IBM || 2681HSG || Not Available || IBM || Not Available || IBM || 1OET61WW (1.27 ) || 06/29/2006<br />
||<br />
|| {{T-WARN|Outdated BIOS}}<br />
|-<br />
| {{R40}} 2722-B3G<br />
|| IBM || 2722B3G || Not Available || IBM || 2722B3G || Not Available || IBM || Not Available || IBM || 1PET62WW (1.30 ) || 09/29/2005<br />
||<br />
||<br />
|-<br />
| {{R40}} 2722-BDG<br />
|| IBM || 2722BDG || Not Available || IBM || 2722BDG || Not Available || IBM || Not Available || IBM || 1PET65WW (1.33 ) || 06/29/2006 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{R40}} 2722-C4U <br />
|| IBM || 2722CU4 || Not Available || IBM || 2722CU4 || Not Available || IBM || Not Available || IBM || 1PET46WW (1.14 ) || 07/15/2003<br />
|| 1OHT37WW (1.09) 05/26/03<br />
|| {{T-WARN|Outdated BIOS}}<br />
|- <br />
| {{R40}} 2722-C4U <br />
|| IBM || 2722CU4 || Not Available || IBM || 2722CU4 || Not Available || IBM || Not Available || IBM || 1PET65WW (1.33 ) || 06/29/2006 <br />
|| 1OHT42WW (1.14) 05/23/05<br />
||<br />
|- <br />
| {{R40}} 2897-B4U<br />
|| IBM || 2897B4U || Not Available || IBM || 2897B4U || Not Available || IBM || Not Available || IBM || 1PET52WW (1.20 ) || 03/03/2004<br />
||<br />
||<br />
|- <br />
| {{R40e}} 2684-L8G<br />
|| IBM || 2897B4U || Not Available || IBM || 2897B4U || Not Available || IBM || Not Available || IBM || 1SET62WW (1.30 ) || 07/09/2004<br />
||<br />
|| {{T-WARN|Outdated BIOS}}<br />
|-<br />
| {{R40e}} 2684-L8G<br />
|| IBM || 2684L8G || Not Available || IBM || 2684L8G || Not Available || IBM || Not Available || IBM || 1SET70WW (1.38 ) || 11/15/2005<br />
||<br />
||<br />
|-<br />
| {{R50}} 1829-7QG<br />
|| IBM || 0123456 || ThinkPad R50 || IBM || 0123456 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
|{{R50e}} 1834-JAG<br />
|| IBM || 1834JAG || ThinkPad R50e || IBM || 1834JAG || Not Available || IBM || Not Available || IBM || 1WET82WW (2.02 ) || 02/21/2005<br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
|{{R50e}}<br />
|| IBM || 1834S5G || ThinkPad R50e || IBM || 1834S5G || Not Available || IBM || Not Available || IBM || 1WET86WW (2.06 ) || 11/15/2005 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
|| {{T-WARN|Outdated BIOS}}<br />
|- <br />
|{{R50e}}<br />
|| IBM || 1834S5G || ThinkPad R50e || IBM || 1834S5G || Not Available || IBM || Not Available || IBM || 1WET90WW (2.10 ) || 12/08/2006 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
||<br />
|- <br />
|{{R50p}} 1832-2AG<br />
|| IBM || 18322AG || ThinkPad R50p || IBM || 18322AG || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1RHT66WW-3.00a ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 1829-DRG<br />
|| IBM || 1829DRG || ThinkPad R51 || IBM || 1829DRG || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT66WW-3.00a ]-</nowiki> <br />
||<br />
|-<br />
| {{R51}} 1829-9MG<br />
|| IBM || 18299MG || ThinkPad R51 || IBM || 18299MG || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 1829-L7G<br />
|| IBM || 1829L7G || ThinkPad R51 || IBM || 1829L7G || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT70WW-3.03 ]-</nowiki><br />
||<br />
|- <br />
| {{R51}} [[1830-DG4]]<br />
|| IBM || 1830DG4 || ThinkPad R51 || IBM || 1830DG4 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} [[1830-DG4]]<br />
|| IBM || 1830DG4 || ThinkPad R51 || IBM || 1830DG4 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 1836-GEU<br />
|| IBM || 1836GEU || ThinkPad R51 || IBM || 1836GEU || Not Available || IBM || Not Available || IBM || 1RETDLWW (3.17 ) || 07/27/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes. String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 2883-ELU <br />
|| IBM || 2883ELU || ThinkPad R51 || IBM || 2883ELU || Not Available || IBM || Not Available || IBM || 1VET64WW (1.22 ) || 05/20/2005 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
|| <br />
|- <br />
| {{R51}} 2883-ELU<br />
|| IBM || 2883ELU || ThinkPad R51 || IBM || 2883ELU || Not Available || IBM || Not Available || IBM || 1VET69WW (1.27 ) || 03/03/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 2883-ELU <br />
|| IBM || 2883ELU || ThinkPad R51 || IBM || 2883ELU || Not Available || IBM || Not Available || IBM || 1VET71WW (1.29 ) || 12/01/2006 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
|| <br />
|- <br />
| {{R51}} 2883-8QU<br />
|| IBM || 28838QU || ThinkPad R51 || IBM || 28838QU || Not Available || IBM || Not Available || IBM || 1VET61WW (1.19 ) || 12/20/2004<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1VHT27WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-AQG<br />
|| IBM || 1846AQG || ThinkPad H || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04 ]-</nowiki><br />
|| Weird system version, this bug is known fixed in latest BIOS<br />
|-<br />
| {{R52}} 1846-AQG<br />
|| IBM || 1846AQG || ThinkPad R52p || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET68WW (1.28 ) || 11/15/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-AQG<br />
|| IBM || 1846AQG || ThinkPad R52p || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET69WW (1.29 ) || 12/06/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1847-CTO<br />
|| IBM || 1847W15 || ThinkPad R52 || IBM || 1847W15 || Not Available || IBM || Not Available || IBM || 76ET69WW (1.29 ) || 12/06/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1847-W62<br />
|| IBM || 1847W62 || ThinkPad . || IBM || 1847W62 || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04 ]-</nowiki><br />
|| Weird system version, this bug is known fixed in latest BIOS<br />
|-<br />
| {{R52}} 1847-W62<br />
|| IBM || 1847W62 || ThinkPad R52 || IBM || 1847W62 || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1858-6MM<br />
|| IBM || 18586MM || ThinkPad R52 || IBM || 18586MM || Not Available || IBM || Not Available || IBM || 70ET40WW (1.04 ) || 06/02/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1858-6SM<br />
|| IBM || 18586SM || ThinkPad R52 || IBM || 18586SM || Not Available || IBM || Not Available || IBM || 70ET57WW (1.17 ) || 07/15/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-4CG<br />
|| IBM || 18464CG || ThinkPad R52 || IBM || 18464CG || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT15WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-4CG<br />
|| IBM || 18464CG || ThinkPad R52 || IBM || 18464CG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-B5G<br />
|| IBM || 1846B5G || ThinkPad H || IBM || 1846B5G || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R60e}} 0657-4TG<br />
|| LENOVO || 06574TG || ThinkPad R60e || LENOVO || 06574TG || Not Available || LENOVO || Not Available || LENOVO || 7EET18WW (1.04 ) || 07/28/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7EHT13WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9456-6FG<br />
|| LENOVO || 94566FG || ThinkPad R60 || LENOVO || 94566FG || Not Available || LENOVO || Not Available || LENOVO || 7CET50WW (1.05 ) || 07/28/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT19WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9456-6FG<br />
|| LENOVO || 94566FG || ThinkPad R60 || LENOVO || 94566FG || Not Available || LENOVO || Not Available || LENOVO || 7CETB7WW (2.07 ) || 11/13/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9461-54G<br />
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CET50WW (1.05 ) || 07/28/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT19WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9461-54G<br />
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CETC1WW (2.11 ) || 01/09/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
|| With this bios version the brightness control buttons don't work for kernel < 2.6.20<br />
|-<br />
| {{R60}} 9461-54G<br />
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CET49WW (1.04 ) || 05/11/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT16WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9460MR2<br />
|| LENOVO || 9460MR2 || ThinkPad R60 || LENOVO || 9460MR2 || Not Available || LENOVO || Not Available || LENOVO || 7CETC6WW (2.16 ) || 04/18/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9461-DXG<br />
|| LENOVO || 9461DXG || ThinkPad R60 || LENOVO || 9461DXG || Not Available || LENOVO || Not Available || LENOVO || 7CETB6WW (2.06 ) || 10/16/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9461-DXG<br />
|| LENOVO || 9461DXG || ThinkPad R60 || LENOVO || 9461DXG || Not Available || LENOVO || Not Available || LENOVO || 7CETD2WW (2.22 ) || 05/28/2008<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT22WW-1.10 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9462-GAG<br />
|| LENOVO || 9462GAG || ThinkPad R60 || LENOVO || 9462GAG || Not Available || LENOVO || Not Available || LENOVO || 7CETB5WW (2.05 ) || 10/13/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 8918-5QG<br />
|| LENOVO || 89185QG || ThinkPad R61 || LENOVO || 89185QG || Not Available || LENOVO || Not Available || LENOVO || 7KETA7WW (2.07 ) || 12/06/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 8919-W4P<br />
|| LENOVO || 8919W4P || ThinkPad R61 || LENOVO || 8919W4P || Not Available || LENOVO || Not Available || LENOVO || 7KET76WW (1.26 ) || 10/18/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
|| According to the sticker on the bottom of the notebook as well as according to Lenovo web it is 8919-CTO subtype<br />
|-<br />
| {{R61}} 8919-W6X<br />
|| LENOVO || 8919W6X || ThinkPad R61 || LENOVO || 8919W6X || Not Available || LENOVO || Not Available || LENOVO || 7KET71WW (1.21 ) || 08/22/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 8919-W6X<br />
|| LENOVO || 8919W6X || ThinkPad R61 || LENOVO || 8919W6X || Not Available || LENOVO || Not Available || LENOVO || 7KETB9WW (2.19 ) || 06/05/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 8919-DFG<br />
|| LENOVO || 8918DFG || ThinkPad R61 || LENOVO || 8918DFG || Not Available || LENOVO || Not Available || LENOVO || 7KETA9WW (2.09 ) || 12/27/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|| <br />
|-<br />
| {{R61}} 8943-DMG<br />
|| LENOVO || 8943DMG || ThinkPad R61 || LENOVO || 8943DMG || Not Available || LENOVO || Not Available || LENOVO || 7QET34WW (1.16 ) || 03/24/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7QHT15WW-1.00 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-4TG<br />
|| LENOVO || 77324TG || ThinkPad R61 || LENOVO || 77324TG || Not Available || LENOVO || Not Available || LENOVO || 7LET51WW (1.21 ) || 08/22/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-4TG<br />
|| LENOVO || 77324TG || ThinkPad R61 || LENOVO || 77324TG || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-NEG<br />
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETB6WW (2.16 ) || 04/16/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-NEG<br />
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-NEG<br />
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 ) || 05/11/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7733-1ES<br />
|| LENOVO || 77331ES || ThinkPad R61 || LENOVO || 77331ES || Not Available || LENOVO || Not Available || LENOVO || 7LETB0WW (2.10 ) || 01/21/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7733-1ES<br />
|| LENOVO || 77331ES || ThinkPad R61 || LENOVO || 77331ES || Not Available || LENOVO || Not Available || LENOVO || 7LETB4WW (2.14 ) || 03/24/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7733-A82 <br />
|| LENOVO || 7733A82 || ThinkPad R61/R61i || LENOVO || 7733A82 || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|| Intel graphics, 14.1" WXGA, Atheros wireless<br />
|-<br />
| {{R61i}} 7732-A12<br />
|| LENOVO || 7732A12 || ThinkPad R61i || LENOVO || 7732A12 || Not Available || LENOVO || Not Available || LENOVO || 7KET76WW (1.26 ) || 10/18/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
|| Prior to Flashing<br />
|-<br />
| {{R61i}} 7732-A12<br />
|| LENOVO || 7732A12 || ThinkPad R61i || LENOVO || 7732A12 || Not Available || LENOVO || Not Available || LENOVO || 7KETC8WW (2.28) || 05/26/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
|| Post Flashing<br />
|-<br />
| {{R61i}} 7650-D7G<br />
|| LENOVO || 7650D7G || ThinkPad R61e || LENOVO || 7650D7G || Not Available || LENOVO || Not Available || LENOVO || 7PETB0WW (2.10 ) || 01/21/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61e}} 7650-E6G<br />
|| LENOVO || 7650E6G || ThinkPad R61e || LENOVO || 7650E6G || Not Available || LENOVO || Not Available || LENOVO || 7PETB2WW (2.12 ) || 02/20/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R400}} 7439-A85<br />
|| LENOVO || 7439A85 || ThinkPad R400 || LENOVO || 7439A85 || Not Available || LENOVO || Not Available || LENOVO || 7UET45WW (1.15 ) || 09/08/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{R400}} 7443-TPA<br />
|| LENOVO || 7443TPA || ThinkPad R400 || LENOVO || 7443TPA || Not Available || LENOVO || Not Available || LENOVO || 7UET49WW (1.19 ) || 10/17/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{R400}} 7443-TPA<br />
|| LENOVO || 7443TPA || ThinkPad R400 || LENOVO || 7443TPA || Not Available || LENOVO || Not Available || LENOVO || 7UET50WW (1.20 ) || 10/30/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====S series====<br />
|-<br />
| {{s30}} 2639-4WJ<br />
|| IBM || 26394WJ || Not Available || IBM || 2609BS1 || Not Available || IBM || Not Available || IBM || 18ET45WW (1.45) || 07/10/2001<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{s540}} 20B3-XMZ<br />
|| LENOVO || 20B3001XMZ || ThinkPad S5-S540 || LENOVO || 20B3001XMZ || Win8 Pro DPK TPG || LENOVO || Not Available || LENOVO || GPET50WW (1.50 ) || 10/08/2013 <br />
|| <nowiki></nowiki><br />
|-<br />
|| LENOVO || 20B3A02SRT || ThinkPad S5-S540 || LENOVO || 20B3A02SRT || SDK0E50515 Std || LENOVO || Not Available || LENOVO || GPET57WW (1.57 ) || 05/30/2014 <br />
|| <nowiki></nowiki><br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====SL series====<br />
|-<br />
| {{SL410}} 2842-7PU || LENOVO || 28427PU || ThinkPad SL410 || LENOVO || 28427PU || Not Available || LENOVO || Not Available || LENOVO || 6JET69WW (1.27 ) || 11/30/2009 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6JHT54WW-1.174000]-</nowiki><br />
||<br />
|-<br />
| {{SL410}} 2842-XF2 || LENOVO || 28427PU || ThinkPad SL410 || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6JET58WW (1.16 ) || 09/17/2009 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6JHT48WW-1.168000]-</nowiki><br />
||<br />
|-<br />
| {{SL500}} 2746-3ZG || LENOVO || 27463ZG || ThinkPad SL500 || LENOVO || BOXSTER || 6AET<br />42WW || LENOVO || 6AET<br />42WW || LENOVO || 6AET42WW || 08/04/2008 <br />
|| <nowiki></nowiki><br />
|| {{T-WARN|IdeaPad EC and BIOS. This is an IdeaPad in disguise.}}<br />
|-<br />
| {{SL500}} 2746-4CG || LENOVO || 27464CG || ThinkPad SL500 || LENOVO || BOXSTER || 6AET<br />41WW || LENOVO || 6AET<br />41WW || LENOVO || 6AET41WW || 07/10/2008 <br />
|| <nowiki></nowiki><br />
|| {{T-WARN|IdeaPad EC and BIOS. This is an IdeaPad in disguise.}}<br />
|-<br />
| {{SL500}} 2764-EAG || LENOVO || 2746EAG || ThinkPad SL || LENOVO || 2746EAG || 6AET<br />58WW || LENOVO || 6AET<br />58WW || LENOVO || 6AET58WW || 05/29/2009 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{SL510}} 2847-7MG<br />
|| LENOVO || 28477MG || ThinkPad SL510 || LENOVO || ? || not available || LENOVO || not available || LENOVO || 6JET72WW (1.30 ) || 01/26/2010 <br />
|| Handle 0x0018, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[6JHT57WW-1.177000]-<br />
|| {{T-WARN|IdeaPad EC and BIOS.}}<br />
|-<br />
| {{SL400}} 2743-Rk3<br />
|| LENOVO || 2743RK3 || ThinkPad SL || LENOVO || 2743RK3 || LENOVO 6AET59WW || LENOVO || LENOVO 6AET59WW || LENOVO || 6AET59WW || 08/26/2009 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====T series====<br />
|-<br />
| {{T20}} 2647-UC2<br />
|| IBM || 2647UC2 || Not Available || IBM || 2647UC2 || Not Available || IBM || Not Available || IBM || IYET45WW (1.08a) || 12/21/1999<br />
||<br />
|| {{T-WARN|Very outdated BIOS}}<br />
|-<br />
| {{T21}} 2647-8AG <br />
|| IBM || 26478AG || Not Available || IBM || 26478AG || Not Available || IBM || Not Available || IBM || KZET22WW (1.04a) || 01/19/2001 <br />
||<br />
||<br />
|-<br />
| {{T21}} 2647-9AU<br />
|| IBM || 26479AU || Not Available || IBM || 26479AU || Not Available || IBM || Not Available || IBM || KZET33WW (1.15 ) || 03/28/2003<br />
||<br />
||<br />
|-<br />
| {{T21}} 2647-8AG <br />
|| IBM || 26478AG || Not Available || IBM || 26478AG || Not Available || IBM || Not Available || IBM || KZET34WW (1.16 ) || 04/28/2004 <br />
||<br />
|| <br />
|- <br />
| {{T21}} 2647-8AU<br />
|| IBM || 26478AU || Not Available || IBM || 26478AU || Not Available || IBM || Not Available || IBM || KZET34WW (1.16 ) || 04/28/2004<br />
||<br />
||<br />
|-<br />
| {{T21}} 2647-8GG<br />
|| IBM || 26478GG || Not Available || IBM || 26478GG || Not Available || IBM || Not Available || IBM || 16ET29WW (1.09 ) || 02/28/2002 <br />
||<br />
||<br />
|-<br />
| {{T22}} 2647-4EG<br />
|| IBM || 26474EG || Not Available || IBM || 26474EG || Not Available || IBM || Not Available || IBM || 16ET31WW (1.11 ) || 03/20/2003 <br />
||<br />
||<br />
|-<br />
| {{T22}} 2647-8EU<br />
|| IBM || 26478EU || Not Available || IBM || 26478EU || Not Available || IBM || Not Available || IBM || 16ET32WW (1.12 ) || 04/27/2004<br />
||<br />
||<br />
|- <br />
| {{T23}} 2647<br />
|| IBM || 2647 || Not Available || IBM || 2647 || Not Available || IBM || Not Available || IBM || 1AET56WW (1.13) || 07/23/2002 <br />
|| <br />
|| Manufactured in Greenock, Scotland<br />
|- <br />
| {{T23}} 2647<br />
|| IBM || 2647 || Not Available || IBM || 2647 || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20) || 07/23/2002 <br />
|| <nowiki>As above. Handle 0x0024, DMI type 11, 5 bytes OEM Strings String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a]-<br />
</nowiki><br />
||<br />
|- <br />
| {{T23}} 2647-4MG<br />
|| IBM || 26474MG || Not Available || IBM || 26474MG || Not Available || IBM || Not Available || IBM || 1AET58WW (1.14a) || 09/11/2002 <br />
|| <nowiki></nowiki><br />
||<br />
|- <br />
| {{T23}} 2647-4MG<br />
|| IBM || 26474MG || Not Available || IBM || 26474MG || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20 ) || 10/18/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a ]-</nowiki><br />
||<br />
|- <br />
| {{T23}} 2647-4NU<br />
|| IBM || 26474NU || Not Available || IBM || 26474NU || Not Available || IBM || Not Available || IBM || 1AET62WW (1.18 ) || 07/06/2004<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a ]-</nowiki><br />
||<br />
|-<br />
| {{T23}} 2647-8MG<br />
|| IBM || 26478MG || Not Available || IBM || 26478MG || Not Available || IBM || Not Available || IBM || 1AET56WW (1.13 ) || 07/02/2002<br />
||<br />
|| Missing EC string, this bug is known to be fixed in latest BIOS<br />
|-<br />
| {{T23}} 2647-8MG<br />
|| IBM || 26478MG || Not Available || IBM || 26478MG || Not Available || IBM || Not Available || IBM || 1AET62WW (1.18 ) || 07/06/2004<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a]-</nowiki><br />
||<br />
|-<br />
| {{T23}} 2647-RG3<br />
|| IBM || 2647RG3 || Not Available || IBM || 2647RG3 || Not Available<br />
|| IBM || Not Available || IBM || 1AET43WW (1.03b) || 09/25/2001 ||<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{T23}} 2648-DG1<br />
|| IBM || 2648DG1 || Not Available || IBM || 2648DG1 || Not Available || IBM || Not Available || IBM || 1AET61WW (1.17 ) || 05/29/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{T23}} 2648-DG1<br />
|| IBM || 2648DG1 || Not Available || IBM || 2648DG1 || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20 ) || 10/18/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a ]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-21U<br />
|| IBM || 236621U || Not Available || IBM || 236621U || Not Available || IBM || Not Available || IBM || 1IET71WW (2.10 ) || 06/16/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1IHT20WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-82U<br />
|| IBM || 236682U || Not Available || IBM || 236682U || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1IHT19WW-1.06]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-85G<br />
|| IBM || 236685G || Not Available || IBM || 236685G || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1IHT18WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-GU1<br />
|| IBM || 2366GU1 || Not Available || IBM || 2366GU1 || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1IHT19WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-JBU<br />
|| IBM || 2366JBU || Not Available || IBM || 2366JBU || Not Available || IBM || Not Available || IBM || 1IET71WW (2.10 ) || 06/16/2006<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1IHT20WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T40}} 2378-D2U<br />
|| IBM || 2378D2U || ThinkPad T40 || IBM || 2378D2U || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004<br />
|| <br />
|| Missing EC string, this bug is known to be fixed in latest BIOS<br />
|-<br />
| {{T40}} 2374-DG1<br />
|| IBM || 2374DG1 || ThinkPad T40 || IBM || 2374DG1 || Not Available || IBM || Not Available || IBM || 1RET73WW (2.02 ) || 08/21/2003<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{T40}} 2374-DG1<br />
|| IBM || 2374DG1 || ThinkPad T40 || IBM || 2374DG1 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T40}} 2374-14G<br />
|| IBM || 237414G || Not Available || IBM || 237414G || Not Available || IBM || Not Available || IBM || 1RET36WW (1.07 ) || 06/25/2003<br />
||<br />
||<br />
|-<br />
| {{T40}} 2373-42G<br />
|| IBM || 237342G || ThinkPad T40 || IBM || 237342G || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003<br />
||<br />
|| [[ATI Mobility Radeon 7500]]<br />
|-<br />
| {{T40}} 2373-NG5<br />
|| IBM || 2373NG5 || ThinkPad T40 || IBM || 2373NG5 || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T40}} 2373-NG5<br />
|| IBM || 2373NG5 || ThinkPad T40 || IBM || 2373NG5 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T40}} 2374-2G9<br />
|| IBM || 23742G9 || ThinkPad T40 || IBM || 23742G9 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| After upgrade from Bios v. 3.16 and ecp 3.02<br />
|-<br />
| {{T40p}} 2373-G1G<br />
|| IBM || 2373G1G || ThinkPad T40p || IBM || 2373G1G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T40p}} 2373-5U5<br />
|| IBM || 23735U5 || ThinkPad T40p || IBM || 23735U5 || Not Available || IBM || Not Available || IBM || 1RETDGWW (3.12 ) || 10/18/2004 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT70WW-3.03 ]-</nowiki><br />
|| <br />
|- <br />
| {{T40p}} 2373-5U5<br />
|| IBM || 23735U5 || ThinkPad T40p || IBM || 23735U5 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| <br />
|- <br />
| {{T41}} 2373-9FG<br />
|| IBM || 23739FG || ThinkPad T41 || IBM || 23739FG || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| <br />
|- <br />
| {{T41}} 2373-W63<br />
|| IBM || 2373W63 || ThinkPad T41 || IBM || 2373W63 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki> <br />
||<br />
|-<br />
| {{T41}} 2373-XNX<br />
|| IBM || 2373XNX || ThinkPad T41 || IBM || 2373XNX || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2373-2FG<br />
|| IBM || 23732FG || ThinkPad T41 || IBM || 23732FG || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003<br />
||<br />
|| Missing EC string, this bug is known to be fixed in latest BIOS<br />
|-<br />
| {{T41}} 2373-7FG<br />
|| IBM || 23737FG || ThinkPad T41 || IBM || 23737FG || Not Available || IBM || Not Available || IBM || 1RET87WW (2.14 ) || 01/26/2004<br />
||<br />
||<br />
|-<br />
| {{T41}} 2373-7FG<br />
|| IBM || 23737FG || ThinkPad T41 || IBM || 23737FG || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| After upgrade from BIOS v. 2.14<br />
|-<br />
| {{T41}} 2373-TG5<br />
|| IBM || 2373TG5 || ThinkPad T41 || IBM || 2373TG5 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2373-7JU<br />
|| IBM || 23737JU || ThinkPad T41 || IBM || 23737JU || Not Available || IBM || Not Available || IBM || 1RETDGWW (3.12 ) || 10/18/2004<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2374-312<br />
|| IBM || 2374312 || ThinkPad T41 || IBM || 2374312 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2379-DJU<br />
|| IBM || 2379DJU || ThinkPad T41 || IBM || 2379DJU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2373-A10<br />
|| IBM || 2373A10 || ThinkPad T41 || IBM || 2373A10 || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2373-A10<br />
|| IBM || 2373A10 || ThinkPad T41 || IBM || 2373A10 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| After upgrade from BIOS v. 3.20<br />
|-<br />
| {{T41p}} 2373-GHG <br />
|| IBM || 2373GHG || ThinkPad T41p || IBM || 2373GHG || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41p}} 2373-GEG<br />
|| IBM || 2373GEG || ThinkPad T41p || IBM || 2373GEG || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005<br />
|| <nowiki> Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41p}} 2373-GJJ<br />
|| IBM || 2373GJJ || ThinkPad T41p || IBM || 2373GJJ || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-FWG<br />
|| IBM || 2373FWG || ThinkPad T42 || IBM || 2373FWG || Not Available || IBM || Not Available || IBM || 1RETDHWW (3.13 ) || 10/29/2004<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-JTU<br />
|| IBM || 2373JTU || ThinkPad T42 || IBM || 2373JTU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-M1G<br />
|| IBM || 2373M1G || ThinkPad T42 || IBM || 2373M1G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-VJA<br />
|| IBM || 2373VJA || ThinkPad T42 || IBM || 2373VJA || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-F2G<br />
|| IBM || 2373F2G || ThinkPad T42 || IBM || 2373F2G || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} [[2373-CTO]]<br />
|| IBM || 2373YPL || ThinkPad T42 || IBM || 2373YPL || Not Available || IBM || Not Available || IBM || 1RETDLWW (3.17 ) || 07/27/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| {{T-WARN|Outdated BIOS}} before BIOS Update<br />
|-<br />
| {{T42}} [[2373-CTO]]<br />
|| IBM || 2373YPL || ThinkPad T42 || IBM || 2373YPL || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| after BIOS Update / current BIOS+EC<br />
|-<br />
| {{T42}} 2374-4WU<br />
|| IBM || 23744WU || ThinkPad T42 || IBM || 23744WU || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|- <br />
| {{T42}} 2374-WEH<br />
|| IBM || 2374WEH || ThinkPad T42 || IBM || 2374WEH || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki> <br />
||<br />
|-<br />
| {{T42}} 2378-FVU<br />
|| IBM || 2378FVU || ThinkPad T42 || IBM || 2378FVU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2373-A64<br />
|| IBM || 2373A64 || ThinkPad T42p || IBM || 2373A64 || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byteString 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2373-KXU<br />
|| IBM || 2373KXU || ThinkPad T42p || IBM || 2373KXU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2373-KUU<br />
|| IBM || 2373KUU || ThinkPad T42p || IBM || 2373KUU || Not Available || IBM || Not Available || IBM || 1RETDMWW (3.18 ) || 09/15/2005<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2373-GYG<br />
|| IBM || 2373GYG || ThinkPad T42p || IBM || 2373GYG || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2374-CP5<br />
|| IBM || 2374CP5 || ThinkPad T42p || IBM || 2374CP5 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2379-DYU<br />
|| IBM || 2379DYU || ThinkPad T42p || IBM || 2379DYU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2372-Q2G<br />
|| IBM || 2373Q2G || ThinkPad T42p || IBM || 2373Q2G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 1871-4AG<br />
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET64WW (1.24 ) || 02/13/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT27WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 1871-4AG<br />
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET62WW (1.22 ) || 05/29/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03]-</nowiki><br />
|| <br />
|-<br />
| {{T43}} 1871-4AG<br />
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET69WW (1.29 ) || 05/29/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT28WW-1.05]-</nowiki><br />
|| <br />
|- <br />
| {{T43}} 1871-F1G<br />
|| IBM || 1871F1G || ThinkPad T43 || IBM || 1871F1G || Not Available || IBM || Not Available || IBM || 70ET61WW (1.21 ) || 11/01/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2686-DGU<br />
|| IBM || 2686DGU || ThinkPad T43 || IBM || 2686DGU || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2669-WE5<br />
|| IBM || 2669WE5 || ThinkPad T43 || IBM || 2669WE5 || Not Available || IBM || Not Available || IBM || 1YET56WW (1.21 ) || 07/06/2005 <br />
|| <nowiki>String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
|| User reports this is really a 2669-CEU with 1GB RAM + BlueTooth, and not a 2669-WE5 (unverified if this makes sense)<br />
|-<br />
| {{T43}} 2668-WEW<br />
|| IBM || 2668WEW || ThinkPad T43 || IBM || 2668WEW || Not Available || IBM || Not Available || IBM || 1YET56WW (1.21 ) || 07/06/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2668-WSY<br />
|| IBM || 2668WSY || ThinkPad T43 || IBM || 2668WSY || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2668-74G<br />
|| IBM || 266874G || ThinkPad T43 || IBM || 266874G || Not Available || IBM || Not Available || IBM || 1YET57WW (1.22 ) || 07/20/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2668-CTO <br />
|| IBM || 2668Y82 || ThinkPad T43p || IBM || 2668Y82 || Not Available || IBM || Not Available || IBM || 1YET65WW (1.29 ) || 08/21/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06 ]-</nowiki><br />
|| <br />
|- <br />
| {{T43p}} 2668-G2G<br />
|| IBM || 2668G2G || ThinkPad T43p || IBM || 2668G2G || Not Available || IBM || Not Available || IBM || 1YET47WW (1.08 ) || 06/09/2005 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43p}} 2668-H1G<br />
|| IBM || 2668H1G || ThinkPad T43p || IBM || 2668H1G || Not Available || IBM || Not Available || IBM || 1YET45WW (1.06a) || 06/02/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2687-D4U<br />
|| IBM || 2687D4U || ThinkPad T43 || IBM || 2687D4U || Not Available || IBM || Not Available || IBM || 1YET43WW (1.05 ) || 04/28/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2687-D4U<br />
|| IBM || 2687D4U || ThinkPad T43 || IBM || 2687D4U || Not Available || IBM || Not Available || IBM || 1YET65WW (1.29 ) || 08/21/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T43p}} 2687-D5U<br />
|| IBM || 2687D5U || ThinkPad T43p || IBM || 2687D5U || Not Available || IBM || Not Available || IBM || 1YET59WW (1.24 ) || 11/07/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43p}} 2668-F8G<br />
|| IBM || 2668F8G || ThinkPad T43p || IBM || 2668F8G || Not Available || IBM || Not Available || IBM || 1YET57WW (1.22 ) || 07/20/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1951-24G<br />
|| LENOVO || 195124G || ThinkPad T60 || LENOVO || 195124G || Not Available || LENOVO || Not Available || LENOVO || 79ET65WW (1.09a) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1952-W5R<br />
|| LENOVO || 1952W5R || ThinkPad T60 || LENOVO || 1952W5R || Not Available || LENOVO || Not Available || LENOVO || 79ET61WW (1.06 ) || 05/24/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1952-W5R<br />
|| LENOVO || 1952W5R || ThinkPad T60 || LENOVO || 1952W5R || Not Available || LENOVO || Not Available || LENOVO || 79ETD2WW (2.12 ) || 04/12/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-49G<br />
|| LENOVO || 200749G || ThinkPad T60 || LENOVO || 200749G || Not Available || LENOVO || Not Available || LENOVO || 79ET62WW (1.07 ) || 06/12/2006 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-77G<br />
|| LENOVO || 200777G || ThinkPad T60 || LENOVO || 200777G || Not Available || LENOVO || Not Available || LENOVO || 79ETD1WW (2.11 ) || 03/15/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-FSG<br />
|| LENOVO || 2007FSG || ThinkPad T60 || LENOVO || 2007FSG || Not Available || LENOVO || Not Available || LENOVO || 79ET66WW (1.10 ) || 08/02/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1951-CA2<br />
|| LENOVO || 1951CA2 || ThinkPad T60 || LENOVO || 1951CA2 || Not Available || LENOVO || Not Available || LENOVO || 79ETD9WW (2.19 ) || 09/19/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2623-D6U<br />
|| LENOVO || 2623D6U || ThinkPad T60 || LENOVO || 2623D6U || Not Available || LENOVO || Not Available || LENOVO || 79ET56WW (1.02 ) || 02/28/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT42WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-63G<br />
|| LENOVO || 200763G || ThinkPad T60 || LENOVO || 200763G || Not Available || LENOVO || Not Available || LENOVO || 79ET65WW (1.09a) || 07/27/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-63G<br />
|| LENOVO || 200763G || ThinkPad T60 || LENOVO || 200763G || Not Available || LENOVO || Not Available || LENOVO || 79ETE5WW (2.25 ) || 08/27/2009 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-BF3<br />
|| LENOVO || 2007BF3 || ThinkPad T60 || LENOVO || 2007BF3 || Not Available || LENOVO || Not Available || LENOVO || 79ETD7WW (2.17 ) || 08/23/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 8744-HCG<br />
|| LENOVO || 8744HCG || ThinkPad T60 || LENOVO || 8744HCG || Not Available || LENOVO || Not Available || LENOVO || 7IET25WW (1.06 ) || 03/15/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 8744-HCG<br />
|| LENOVO || 8744HCG || ThinkPad T60 || LENOVO || 8744HCG || Not Available || LENOVO || Not Available || LENOVO || 7IET37WW (1.18 ) || 04/01/2010<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1951-CZ1<br />
|| LENOVO || 1951CZ1 || ThinkPad T60 || LENOVO || 1951CZ1 || Not Available || LENOVO || Not Available || LENOVO || 79ETE3WW (2.23 ) || 09/12/2008 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-83U<br />
|| LENOVO || 200783U || ThinkPad T60p || LENOVO || 200783U || Not Available || LENOVO || Not Available || LENOVO || 79ET60WW (1.05a) || 04/18/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[79HT43WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-93G<br />
|| LENOVO || 200793G || ThinkPad T60p || LENOVO || 200793G || Not Available || LENOVO || Not Available || LENOVO || 79ET62WW (1.07 ) || 06/12/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-93U<br />
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ET66WW (1.10 ) || 08/02/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-93U<br />
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ET67WW (1.11 ) || 08/29/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-93U<br />
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ETC3WW (2.03 ) || 11/10/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-ZK4<br />
|| LENOVO || 2007ZK4 || ThinkPad T60p || LENOVO || 2007ZK4 || Not Available || LENOVO || Not Available || LENOVO || 79ETD3WW (2.13 ) || 04/30/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2613-ESU<br />
|| LENOVO || 2613ESU || ThinkPad T60p || LENOVO || 2613ESU || Not Available || LENOVO || Not Available || LENOVO || 79ET67WW (1.11 ) || 08/29/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2623-DDU<br />
|| LENOVO || 2623DDU || ThinkPad T60p || LENOVO || 2623DDU || Not Available || LENOVO || Not Available || LENOVO || 79ETC3WW (2.03 ) || 11/10/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6457-W2C<br />
|| LENOVO || 6457W2C || ThinkPad T61 || LENOVO || 6457W2C || Not Available || LENOVO || Not Available || LENOVO || 7LETB0WW (2.10 ) || 01/21/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6458-CTO<br />
|| LENOVO || 6458Y52 || ThinkPad T61 || LENOVO || 6458Y52 || Not Available || LENOVO || Not Available || LENOVO || 7LETB6WW (2.16 ) || 04/16/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|| Before BIOS update<br />
|-<br />
| {{T61}} 6458-CTO<br />
|| LENOVO || 6458Y52 || ThinkPad T61 || LENOVO || 6458Y52 || Not Available || LENOVO || Not Available || LENOVO || 7LETD0WW (2.30 ) || 02/27/2012 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|| After BIOS update<br />
|-<br />
| {{T61}} 6460-EBG<br />
|| LENOVO || 6460EBG || ThinkPad T61 || LENOVO || 6460EBG || Not Available || LENOVO || Not Available || LENOVO || 7LETB7WW (2.17 ) || 04/25/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6460-EBG<br />
| LENOVO || 6460EBG || ThinkPad T61 || LENOVO || 6460EBG || Not Available || LENOVO || Not Available || LENOVO || 7LETC4WW (2.24 ) || 08/15/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6465-CTO<br />
|| LENOVO || 6465CTO || ThinkPad T61 || LENOVO || 6465CTO || Not Available || LENOVO || Not Available || LENOVO || 7LETB2WW (2.12 ) || 02/20/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6466-9MG<br />
|| LENOVO || 64669MG || ThinkPad T61 || LENOVO || 64669MG || Not Available || LENOVO || Not Available || LENOVO || 7LETC7WW (2.27 ) || 04/08/2010<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 7659-AB7<br />
|| LENOVO || 7659AB7 || ThinkPad T61 || LENOVO || 7659AB7 || Not Available || LENOVO || Not Available || LENOVO || 7LETB7WW (2.17 ) || 04/25/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 7659-W13<br />
|| LENOVO || 7659W13 || ThinkPad T61 || LENOVO || 7659W13 || Not Available || LENOVO || Not Available || LENOVO || 7LET44WW (1.14 ) || 06/27/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 7659-W13<br />
|| LENOVO || 7659W13 || ThinkPad T61 || LENOVO || 7659W13 || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 ) || 05/11/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 7662-XDU<br />
|| LENOVO || 7662XDU || ThinkPad T61 || LENOVO || 7662XDU || 7662XDU|| LENOVO || Not Available || LENOVO || 7LET37WW (1.07 ) || 04/17/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7KHT19WW-1.03 ]-</nowiki><br />
|| {{T-WARN|BIOS and EC firmware have different IDs}}<br />
|-<br />
| {{T61}} 7663-11G<br />
|| LENOVO || 766311G || ThinkPad T61 || LENOVO || 766311G || Not Available || LENOVO || Not Available || LENOVO || 7LETC7WW (2.27 ) || 04/08/2010<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|-<br />
| {{T61}} 7661-A56<br />
|| LENOVO || 7661A56 || ThinkPad T61 || LENOVO || 7661A56 || Not Available || LENOVO || Not Available || LENOVO || 7LET39WW (1.09 ) || 05/14/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT21WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 8895-WFD<br />
|| LENOVO || 8895WFD || ThinkPad T61 || LENOVO || 8895WFJ || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 8897-CTO<br />
|| LENOVO || 8897CTO || ThinkPad T61 || LENOVO || 8897CTO || Not Available || LENOVO || Not Available || LENOVO || 7LET52WW (1.22 ) || 08/27/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 8897-CTO<br />
|| LENOVO || 8897CTO || ThinkPad T61 || LENOVO || 8897CTO || Not Available || LENOVO || Not Available || LENOVO || 7LET56WW (1.26 ) || 10/18/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
|| <br />
|-<br />
| {{T61p}} 6457-B64<br />
|| LENOVO || 6457B64 || ThinkPad T61p || LENOVO || 6457B64 || Not Available || LENOVO || Not Available || LENOVO || 7LETC1WW (2.21 ) || 07/01/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|- <br />
| {{T61p}} 6459-A12<br />
|| LENOVO || 6459A12 || ThinkPad T61p || LENOVO || 6459A12 || Not Available || LENOVO || Not Available || LENOVO || 7LET56WW (1.26 ) || 10/18/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T61p}} 6459-CTO<br />
|| LENOVO || 6459CTO || ThinkPad T61p || LENOVO || 6459CTO || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 ) || 05/11/2009<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|| <br />
|-<br />
| {{T400}} 6473-D1G<br />
|| LENOVO || 6473D1G || ThinkPad T400 || LENOVO || 6473D1G || Not Available || LENOVO || Not Available || LENOVO || 7UET61WW (2.07 ) || 02/13/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| Before BIOS update<br />
|-<br />
| {{T400}} 6473-D1G<br />
|| LENOVO || 6473D1G || ThinkPad T400 || LENOVO || 6473D1G || Not Available || LENOVO || Not Available || LENOVO || 7UET94WW (3.24 ) || 10/17/2012 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT16WW-1.06 ]-</nowiki><br />
|| After BIOS update<br />
|-<br />
| {{T400}} 6474-1EG<br />
|| LENOVO || 64741EG || ThinkPad T400 || LENOVO || 64741EG || Not Available || LENOVO || Not Available || LENOVO || 7UET48WW (1.18 ) || 10/09/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 <br />
]-</nowiki><br />
||<br />
|-<br />
| {{T400}} 6474-19G<br />
|| LENOVO || 647419G || ThinkPad T400 || LENOVO || 647419G || Not Available || LENOVO || Not Available || LENOVO || 7UET61WW (2.07 ) || 02/13/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| <br />
|- <br />
| {{T400}} 6475-FM4 <br />
|| LENOVO || 6475FM4 || ThinkPad T400 || LENOVO || 6475FM4 || Not Available || LENOVO || Not Available || LENOVO || 7UET43WW (1.13 ) || 08/19/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| Before BIOS update<br />
|-<br />
| {{T400}} 6475-FM4 <br />
|| LENOVO || 6475FM4 || ThinkPad T400 || LENOVO || 6475FM4 || Not Available || LENOVO || Not Available || LENOVO || 7UET64WW (2.12 ) || 03/13/2009<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| After BIOS update<br />
|-<br />
| {{T400}} 2765-22G<br />
|| LENOVO || 276522G || ThinkPad T400 || LENOVO || 276522G || Not Available || LENOVO || Not Available || LENOVO || 7UET88WW (3.18 ) || 05/27/2010 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T400s}} 2801-CTO<br />
|| LENOVO || 2801CTO || ThinkPad T400s || LENOVO || 2801CTO || Not Available || LENOVO || Not Available || LENOVO || 6HET21WW (1.06 ) || 07/27/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6HHT13WW-1.01]-</nowiki><br />
||<br />
|-<br />
| {{T400s}} 2815-2SG<br />
|| LENOVO || 28152SG || ThinkPad T400s || LENOVO || 28152SG || Not Available || LENOVO || Not Available || LENOVO || 6HET17WW (1.02 ) || 05/18/2009 No code specified for -e.<br />
||<br />
||<br />
|-<br />
| {{T410}} 2522-AT6<br />
|| LENOVO || 2522AT6 || ThinkPad T410 || LENOVO || 2522AT6 || Not Available || LENOVO || Not Available || LENOVO || 6IET65WW (1.25 ) || 06/07/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6IHT35WW-1.10 ]-</nowiki><br />
||<br />
|-<br />
| {{T410}} 2522-2PG<br />
|| LENOVO || 25222PG || ThinkPad T410 || LENOVO || 25222PG || Not Available || LENOVO || Not Available || LENOVO || 6IET55WW (1.15 ) || 03/24/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6IHT32WW-1.06 ]-</nowiki><br />
|| Before BIOS Update<br />
|-<br />
| {{T410}} 2522-2PG<br />
|| LENOVO || 25222PG || ThinkPad T410 || LENOVO || 25222PG || Not Available || LENOVO || Not Available || LENOVO || 6IET75WW (1.35 ) || 02/01/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6IHT39WW-1.14 ]-</nowiki><br />
|| After BIOS Update<br />
|-<br />
| {{T410}} 2537-29U<br />
|| LENOVO || 253729U || ThinkPad T410 || LENOVO || 253729U || Not Available || LENOVO || Not Available || LENOVO || 6IET68WW (1.28 ) || 07/12/2010<br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6IHT36WW-1.11 ]-</nowiki><br />
|| Before BIOS Update<br />
|-<br />
| {{T410}} 2537-29U<br />
|| LENOVO || 253729U || ThinkPad T410 || LENOVO || 253729U || Not Available || LENOVO || Not Available || LENOVO || 6IET85WW (1.45 ) || 02/14/2013<br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6IHT43WW-1.18 ]-</nowiki><br />
|| After BIOS Update<br />
|-<br />
| {{T410s}} 2912-39G<br />
|| LENOVO || 291239G || ThinkPad T410s || LENOVO || 291239G || Not Available || LENOVO || Not Available || LENOVO || 6UET27WW (1.05 ) || 01/14/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6UHT24WW-1.05 ]-</nowiki><br />
||<br />
|- <br />
| {{T410s}} 2912-W69<br />
|| LENOVO || 2912W69 || ThinkPad T410s || LENOVO || 2912W69 || Not Available || LENOVO || Not Available || LENOVO || 6UET61WW (1.41 ) || 10/27/2010<br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6UHT31WW-1.12 ]-</nowiki><br />
||<br />
|- <br />
| {{T420}} 4180W1H<br />
|| LENOVO || 4180W1H || ThinkPad T420 || LENOVO || 4180W1H || Not Available || LENOVO || Not Available || LENOVO || 83ET56WW (1.26 ) || 05/13/2011 <br />
|| <nowiki></nowiki><br />
|| After BIOS Update<br />
|-<br />
| {{T420}} 4177CTO<br />
|| LENOVO || 4177CTO || ThinkPad T420 || LENOVO || 4177CTO || Not Available || LENOVO || Not Available || LENOVO || 83ET52WW (1.22 ) || 03/24/2011 <br />
|| <nowiki></nowiki><br />
|| Before BIOS Update<br />
|-<br />
| {{T420}} 4177CTO<br />
|| LENOVO || 4177CTO || ThinkPad T420 || LENOVO || 4177CTO || Not Available || LENOVO || Not Available || LENOVO || 83ET76WW (1.46 ) || 07/05/2013 <br />
|| <nowiki></nowiki><br />
|| After BIOS Update<br />
|-<br />
| {{T420s}} 4174BH4<br />
|| LENOVO || 4174BH4 || ThinkPad T420s || LENOVO || 4174BH4 || Not Available || LENOVO || Not Available || LENOVO || 8CET46WW (1.26 ) || 07/11/2011 <br />
|| <nowiki></nowiki><br />
|| Old BIOS<br />
|-<br />
| {{T420s}} 4174BH4<br />
|| LENOVO || 4174BH4 || ThinkPad T420s || LENOVO || 4174BH4 || Not Available || LENOVO || Not Available || LENOVO || 8CET51WW (1.31 ) || 11/29/2011 <br />
|| <nowiki></nowiki><br />
|| After BIOS upgrade<br />
|-<br />
| {{T420s}} 4171-6SG<br />
|| LENOVO || 41716SG || ThinkPad T420s || LENOVO || 41716SG || Not Available || LENOVO || Not Available || LENOVO || 8CET44WW (1.24 ) || 05/23/2011 <br />
|| <nowiki></nowiki><br />
|| Old BIOS<br />
|-<br />
| {{T420s}} 4171-6SG<br />
|| LENOVO || 41716SG || ThinkPad T420s || LENOVO || 41716SG || Not Available || LENOVO || Not Available || LENOVO || 8CET48WW (1.28 ) || 08/15/2011 <br />
|| <nowiki></nowiki><br />
|| After BIOS Upgrade<br />
|-<br />
| {{T430}} 2344-BJG<br />
|| LENOVO || 2344BJG || ThinkPad T430 || LENOVO || 2344BJG || Win8 Pro DPK TPG || LENOVO || Not Available || LENOVO || G1ET97WW (2.57 ) || 09/04/2013 <br />
|| <nowiki></nowiki><br />
|| <br />
|-<br />
| {{T430s}} 2355HMG<br />
|| LENOVO || 2355HMG || ThinkPad T430s || LENOVO || 2355HMG || Not Available || LENOVO || Not Available || LENOVO || G7ET29WW (1.11 ) || 05/24/2012<br />
|| <nowiki></nowiki><br />
|| delivery BIOS<br />
|-<br />
| {{T430s}} 2355HMG<br />
|| LENOVO || 2355HMG || ThinkPad T430s || LENOVO || 2355HMG || Not Defined || LENOVO || Not Available || LENOVO || G7ET63WW (2.05 ) || 11/12/2012 <br />
|| <nowiki></nowiki><br />
|| After BIOS Upgrade<br />
|-<br />
| {{T440}} 20B6 CTO1WW<br />
|| LENOVO || 20B6CTO1WW || ThinkPad T440 || LENOVO || 20B6CTO1WW || 0B98405 STD || LENOVO || Not Available || LENOVO || GJET64WW (2.14 ) || 11/12/2013<br />
|| <nowiki></nowiki><br />
|| delivery UEFI<br />
|-<br />
| {{T500}} 2055-A81<br />
|| LENOVO || 2055A81 || ThinkPad T500 || LENOVO || 2055A81 || Not Available || LENOVO || Not Available || LENOVO || 6FET46WW (1.16 ) || 09/24/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{T500}} 2055-A81<br />
|| LENOVO || 2055A81 || ThinkPad T500 || LENOVO || 2055A81 || Not Available || LENOVO || Not Available || LENOVO || 6FET50WW (1.20 ) || 10/30/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{T500}} 2055-45G<br />
|| LENOVO || 205545G || ThinkPad T500 || LENOVO || 205545G || Not Available || LENOVO || Not Available || LENOVO || 6FET49WW (1.19 ) || 10/17/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| <br />
|- <br />
| {{T500}} 2089-AZG<br />
|| LENOVO || 2089AZ9 || ThinkPad T500 || LENOVO || 2089AZ9 || Not Available || LENOVO || Not Available || LENOVO || 6FET79WW (3.09 ) || 10/02/2009<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| {{T-WARN|Outdated BIOS}} before BIOS Update<br />
|-<br />
| {{T500}} 2089-AZG<br />
|| LENOVO || 2089AZ9 || ThinkPad T500 || LENOVO || 2089AZ9 || Not Available || LENOVO || Not Available || LENOVO || 6FET87WW (3.17 ) || 12/03/2010 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT16WW-1.06 ]-</nowiki><br />
|| after BIOS Update / current BIOS+EC<br />
|-<br />
| {{T500}} 2242-CTO<br />
|| LENOVO || 2242CTO || ThinkPad T500 || LENOVO || 2242CTO || Not Available || LENOVO || Not Available || LENOVO || 6FET66WW (2.16 ) || 04/22/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| <br />
|- <br />
| {{T510}} 4313-CTO<br />
|| LENOVO || 4313CTO || ThinkPad T510 || LENOVO || 4313CTO || Not Available || LENOVO || Not Available || LENOVO || 6MET42WW (1.05 ) || 12/22/2009 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT32WW-1.07 ]-</nowiki><br />
||<br />
|- <br />
| {{T510}} 4313-CTO<br />
|| LENOVO || 4313CTO || ThinkPad T510 || LENOVO || 4313CTO || Not Available || LENOVO || Not Available || LENOVO || 6MET49WW (1.12 ) || 02/22/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT33WW-1.08 ]-</nowiki><br />
||<br />
|- <br />
| {{T510}} 4349-5KG<br />
|| LENOVO || 43495KG || ThinkPad T510 || LENOVO || 43495KG || Not Available || LENOVO || Not Available || LENOVO || 6MET87WW (1.47 ) || 07/14/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT46WW-1.21 ]-</nowiki><br />
||<br />
|- <br />
| {{T520}}<br />
|| LENOVO || 42433ZG || ThinkPad T520 || LENOVO || 42433ZG || Not Available || LENOVO || Not Available || LENOVO || 8AET46WW (1.26 ) || 05/18/2011 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====W series====<br />
|-<br />
| {{W500}} 4061-AW9 <br />
|| LENOVO || 4061AW9 || ThinkPad W500 || LENOVO || 4061AW9 || Not Available || LENOVO || Not Available || LENOVO || 6FET79WW (3.09 ) || 10/02/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT14WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4318-CTO<br />
|| LENOVO || 4318CTO || ThinkPad W510 || LENOVO || 4318CTO || Not Available || LENOVO || Not Available || LENOVO || 6NET72WW (1.32 ) || 08/25/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT40WW-1.15 ]-</nowiki><br />
|| Old BIOS<br />
|-<br />
| {{W510}} 4318-CTO<br />
|| LENOVO || 4318CTO || ThinkPad W510 || LENOVO || 4318CTO || Not Available || LENOVO || Not Available || LENOVO || 6NET74WW (1.34 ) || 10/27/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT43WW-1.18 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4319-2PU<br />
|| LENOVO || 43192PU || ThinkPad W510 || LENOVO || 43192PU || Not Available || LENOVO || Not Available || LENOVO || 6NET74WW (1.34 ) || 10/27/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT43WW-1.18 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4319-4CU<br />
|| LENOVO || 43194CU || ThinkPad W510 || LENOVO || 43194CU || Not Available || LENOVO || Not Available || LENOVO || 6NET61WW (1.24 ) || 06/07/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT38WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4319-3CG <br />
|| LENOVO || 43193CG || ThinkPad W510 || LENOVO || 43193CG || Not Available || LENOVO || Not Available || LENOVO || 6NET46WW (1.09 ) || 01/20/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT31WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4389-W1B <br />
|| LENOVO || 4389W1B || ThinkPad W510 || LENOVO || 4389W1B || Not Available || LENOVO || Not Available || LENOVO || 6NET76WW (1.37 ) || 02/24/2011 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT44WW-1.19 ]-</nowiki><br />
||<br />
|-<br />
| {{W520}} 4276-2QU<br />
|| LENOVO || 42762QU || ThinkPad W520 || LENOVO || 42762QU || Not Available || LENOVO || Not Available || LENOVO || 8BET62WW (1.42 ) || 07/26/2013<br />
|| <nowiki>Firmware Revision: 1.36</nowiki><br />
||{{cmdroot|dmidecode -t 11}}<br />
shows<br />
{{cmdresult|dmidecode 2.12}}<br />
{{cmdresult|SMBIOS 2.6 present}}<br />
|-<br />
| {{W540}} 20BG-0042ML<br />
|| LENOVO || 20BG0042ML || ThinkPad W540 || LENOVO || 20BG0042ML || SDK0E50510 WIN || LENOVO || Not Available || LENOVO || GNET69WW (2.17 ) || 11/26/2014 <br />
|| <nowiki>Firmware Revision: 1.11</nowiki><br />
||{{cmdroot|dmidecode -t 11}}<br />
{{cmdresult|SMBIOS 2.7 present}}<br />
|-<br />
| {{W700}} 2757-CTO<br />
|| LENOVO || 2757CTO || ThinkPad W700 || LENOVO || 2757CTO || Not Available || LENOVO || Not Available || LENOVO || 7ZETA8WW (2.08 ) || 09/24/2009<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7ZHT22WW-1.05 ]-</nowiki><br />
||<br />
|- <br />
| {{W700}} 2757-CTO<br />
|| LENOVO || 2757CTO || ThinkPad W700 || LENOVO || 2757CTO || Not Available || LENOVO || Not Available || LENOVO || 7ZETB1WW (2.11 ) || 03/12/2010 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7ZHT24WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====X series====<br />
|-<br />
| {{X20}} 2662-31G<br />
|| IBM || 266231G || Not Available || IBM || 266231G || Not Available || IBM || Not Available || IBM || IZET9DWW (2.25 ) || 04/17/2003<br />
||<br />
||<br />
|-<br />
| {{X20}} 2662-32G<br />
|| IBM || 266232G || Not Available || IBM || 266232G || Not Available || IBM || Not Available || IBM || IZET9AWW (2.22 ) || 09/11/2002<br />
||<br />
||<br />
|-<br />
| {{X22}} 2662-95U<br />
|| IBM || 266295U || Not Available || IBM || 266295U || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003<br />
||<br />
||<br />
|-|| LENOVO || 3460AYG || ThinkPad X1 Carbon || LENOVO || 3460AYG || 0B98401 Pro || LENOVO || Not Available || LENOVO || G6ETA1WW (2.61 ) || 12/13/2013 <br />
|| <nowiki></nowiki><br />
<br />
| {{X23}} 2662-EBG<br />
|| IBM || 2662EBG || Not Available || IBM || 2662EBG || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003<br />
||<br />
||<br />
|-<br />
| {{X24}} 2662-MPU<br />
|| IBM || 62MPUFX || Not Available || IBM || 62MPUFX || Not Available || IBM || Not Available || IBM || 1DET67WW (1.29 ) || 12/18/2002<br />
||<br />
||<br />
|-<br />
| {{X24}} 2662-MQA<br />
|| IBM || 2662MQA || Not Available || IBM || 2662MQA || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X30}} 2672-42G<br />
|| IBM || 267242G || Not Available || IBM || 267242G || Not Available || IBM || Not Available || IBM || 1KET42WW (1.03 ) || 12/02/2002 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X30}} 2672-42G<br />
|| IBM || 267242G || Not Available || IBM || 267242G || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
|| {{X30}} 2672-4BU<br />
|| IBM || 26724BU || Not Available || IBM || 26724BU || Not Available || IBM || Not Available || IBM || 1KET44WW (1.05 ) || 05/30/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|- <br />
| {{X30}} 2672-4HU<br />
|| IBM || 26724HU || Not Available || IBM || 26724HU || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X30}} 2672-PG3<br />
|| IBM || 2672PG3 || Not Available || IBM || 2672PG3 || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06 ]-</nowiki> <br />
||<br />
|-<br />
| {{X31}} 2672-C2G<br />
|| IBM || 2672C2G || Not Available || IBM || 2672C2G || Not Available || IBM || Not Available || IBM || 1QET36WW (1.04a) || 06/30/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-C2G<br />
|| IBM || 2672C2G || ThinkPad X31 || IBM || 2672C2G || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
|| <br />
|- <br />
| {{X31}} 2672-CEG<br />
|| IBM || 2672CEG || Not Available || IBM || 2672CEG || Not Available || IBM || Not Available || IBM || 1QET36WW (1.04a) || 06/30/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-CEG<br />
|| IBM || 2672CEG || ThinkPad X31 || IBM || 2672CEG || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-JXU<br />
|| IBM || 2672JXU || ThinkPad X31 || IBM || 2672JXU || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-FG2<br />
|| IBM || 2672FG2 || ThinkPad X31 || IBM || 2672FG2 || Not Available || IBM || Not Available || IBM || 1QET73WW (2.11 ) || 02/13/2004 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT16WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-FG2<br />
|| IBM || 2672FG2 || ThinkPad X31 || IBM || 2672FG2 || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-PG9<br />
|| IBM || 2672PG9 || ThinkPad X31 || IBM || 2672PG9 || Not Available || IBM || Not Available || IBM || 1QET73WW (2.11 ) || 02/13/2004 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT16WW-1.03 ]-</nowiki><br />
|| Before update<br />
|- <br />
| {{X31}} 2672-PG9<br />
|| IBM || 2672PG9 || ThinkPad X31 || IBM || 2672PG9 || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
|| After update<br />
|- <br />
| {{X31}} 2673-C2G<br />
|| IBM || 2673C2G || ThinkPad X31 || IBM || 2673C2G || Not Available || IBM || Not Available || IBM || 1QET65WW (2.03 ) || 10/10/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|- <br />
| {{X31}} 2673-C2G<br />
|| IBM || 2673C2G || ThinkPad X31 || IBM || 2673C2G || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X32}} 2884-A3U<br />
|| IBM || 2884A3U || ThinkPad X32 || IBM || 2884A3U || Not Available || IBM || Not Available || IBM || 1QET94WW (3.00d) || 01/23/2005<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT22WW-1.07b ]-</nowiki><br />
||<br />
|-<br />
| {{X32}} 2672-M3G<br />
|| IBM || 2672M3G || ThinkPad X32 || IBM || 2672M3G || Not Available || IBM || Not Available || IBM || 1QET94WW (3.00d) || 01/23/2005<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT22WW-1.07b ]-</nowiki><br />
||<br />
|-<br />
| {{X32}} 2673-M4U<br />
|| IBM || 2673M4U || ThinkPad X32 || IBM || 2673M4U || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2386-7JG<br />
|| IBM || 23717JG || ThinkPad X40 || IBM || 23717JG || Not Available || IBM || Not Available || IBM || 1UETD1WW (2.06 ) || 03/01/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2386-H4G<br />
|| IBM || 2386H4G || ThinkPad X40 || IBM || 2386H4G || Not Available || IBM || Not Available || IBM || 1UET92WW (1.42 ) || 09/16/2004 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-8NG<br />
|| IBM || 23718NG || ThinkPad X40 || IBM || 23718NG || Not Available || IBM || Not Available || IBM || 1UETB7WW (1.67 ) || 07/15/2005 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHT58WW-1.12 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-Y29<br />
|| IBM || 2371Y29 || ThinkPad X40 || IBM || 2371Y29 || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTA6WW-1.56 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-W9F<br />
|| IBM || 2371W9F || ThinkPad X40 || IBM || 2371W9F || Not Available || IBM || Not Available || IBM || 1UETC8WW (2.03 ) || 09/28/2005 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-W9F<br />
|| IBM || 2371W9F || ThinkPad X40 || IBM || 2371W9F || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-Y1Y<br />
|| IBM || 2371Y1Y || ThinkPad X40 || IBM || 2371Y1Y || Not Available || IBM || Not Available || IBM || 1UET93WW (1.43 ) || 10/13/2004 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-Y1Y<br />
|| IBM || 2371Y1Y || ThinkPad X40 || IBM || 2371Y1Y || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-Y2A <br />
|| IBM || 2371Y2A || ThinkPad X40 || IBM || 2371Y2A || Not Available || IBM || Not Available || IBM || 1UET93WW (1.43 ) || 10/13/2004 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32 ]-</nowiki><br />
|| <br />
|- <br />
| {{X40}} 2371-Y2A<br />
|| IBM || 2371Y2A || ThinkPad X40 || IBM || 2371Y2A || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
|| <br />
|-<br />
| {{X41}} 2525-65G<br />
|| IBM || 252565G || ThinkPad X41 || IBM || 252565G || Not Available || IBM || Not Available || IBM || 74ET63WW (2.08 ) || 10/17/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[74HT25WW-1.00 ]-</nowiki><br />
||<br />
|-<br />
| {{X41}} 2525-FAG<br />
|| IBM || 2525FAG || ThinkPad X41 || IBM || 2525FAG || Not Available || IBM || Not Available || IBM || 74ET61WW (2.06 ) || 03/14/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[74HT26WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X41}} 2525-FAG<br />
|| IBM || 2525FAG || ThinkPad X41 || IBM || 2525FAG || Not Available || IBM || Not Available || IBM || 74ET64WW (2.09 ) || 12/14/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[74HT27WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X41}} 2525-HU1<br />
|| IBM || 2525HU1 || ThinkPad X41 || IBM || 2525HU1 || Not Available || IBM || Not Available || IBM || 74ET48WW (1.17a) || 06/07/2005<br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[74HT25WW-1.00 ]-</nowiki><br />
||<br />
|-<br />
| {{X41t}} 1866-CRG<br />
|| IBM || 1866CRG || ThinkPad X41 Tablet || IBM || 1866CRG || Not Available || IBM || Not Available || IBM || 75ET60WW (2.06 ) || 12/19/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[75HT19WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X41t}} 1866-CTO<br />
|| IBM || 1866CTO || ThinkPad X41 Tablet || IBM || 1866CTO || Not Available || IBM || Not Available || IBM || 75ET60WW (2.06 ) || 12/19/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[75HT20WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X41t}} 1866-WSF<br />
|| IBM || 1866WSF || ThinkPad X41 Tablet || IBM || 1866WSF || Not Available || IBM || Not Available || IBM || 75ET57WW (2.03 ) || 06/14/2006<br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[75HT20WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X41t}} 1869-CLG<br />
|| IBM || 1869CLG || ThinkPad X41 Tablet || IBM || 1869CLG || Not Available || IBM || Not Available || IBM || 75ET56WW (2.02 ) || 03/14/2006<br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[75HT19WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1709-47U<br />
|| LENOVO || 170947U || ThinkPad X60 || LENOVO || 170947U || Not Available || LENOVO || Not Available || LENOVO || 7BET44WW (1.04 ) || 03/13/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[7BHT29WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1709-GDJ<br />
|| LENOVO || 1709GDJ || ThinkPad X60 || LENOVO || 1709GDJ || Not Available || LENOVO || Not Available || LENOVO || 7BETC2WW (2.03 ) || 10/16/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT36WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1706-B69<br />
|| LENOVO || 1706B69 || ThinkPad X60 || LENOVO || 1706B69 || Not Available || LENOVO || Not Available || LENOVO || 7BETC8WW (2.09 ) || 03/14/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT37WW-1.10 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1706-GMG<br />
|| LENOVO || 1706GMG || ThinkPad X60 || LENOVO || 1706GMG || Not Available || LENOVO || Not Available || LENOVO || 7BETC4WW (2.05 ) || 11/17/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT37WW-1.10 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1706-GMG<br />
|| LENOVO || 1706GMG || ThinkPad X60 || LENOVO || 1706GMG || Not Available || LENOVO || Not Available || LENOVO || 7BETD7WW (2.18 ) || 11/20/2008<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1702-55G<br />
|| LENOVO || 170255G || ThinkPad X60s || LENOVO || 170255G || Not Available || LENOVO || Not Available || LENOVO || 7BET44WW (1.04 ) || 03/13/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[7BHT29WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1702-5FG<br />
|| LENOVO || 17025FG || ThinkPad X60s || LENOVO || 17025FG || Not Available || LENOVO || Not Available || LENOVO || 7BET49WW (1.09 ) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT34WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-56G<br />
|| LENOVO || 170456G || ThinkPad X60s || LENOVO || 170456G || Not Available || LENOVO || Not Available || LENOVO || 7BET43WW (1.03 ) || 02/13/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7BHT28WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-56G<br />
|| LENOVO || 1704-56G || ThinkPad X60s || LENOVO || 170456G || Not Available || LENOVO || Not Available || LENOVO || 7BETD5WW (2.16 ) || 03/31/2008<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-5UG<br />
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD2WW (2.13 ) || 08/10/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-5UG<br />
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD3WW (2.14 ) || 10/04/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-5UG<br />
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD7WW (2.18 ) || 11/20/2008 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60t}} 6365-CTO<br />
|| LENOVO || 6365CTO || ThinkPad X60 Tablet || LENOVO || 6365CTO || Not Available || LENOVO || Not Available || LENOVO || 7JET25WW (1.10 ) || 08/17/2007 <br />
|| <nowiki>Handle 0x0023, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7JHT13WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{X60t}} 6363-J3G<br />
|| LENOVO || 6363J3G || ThinkPad X60 Tablet || LENOVO || 6363J3G || Not Available || LENOVO || Not Available || LENOVO || 7JET28WW (1.13 ) || 03/31/2008<br />
|| <nowiki>Handle 0x0023, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7JHT13WW-1.04 ]-</nowiki><br />
|| A mean bitch to set up, nothing really worked out of the box :(<br />
|-<br />
| {{X60t}} 6363A7G<br />
|| LENOVO || 6363A7G || ThinkPad X60 Tablet || LENOVO || 6363A7G || Not Available || LENOVO || Not Available || LENOVO || 7JET19WW (1.04 ) || 12/14/2006 <br />
|| <nowiki>Handle 0x0023, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7JHT12WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61}} 7675-4KU<br />
|| LENOVO || 76754KU || ThinkPad X61 || LENOVO || 76754KU || Not Available || LENOVO || Not Available || LENOVO || 7NET30WW (1.11 ) || 11/15/2007<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT24WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61}} 7675-7KU<br />
|| LENOVO || 76757KU || ThinkPad X61 || LENOVO || 76757KU || Not Available || LENOVO || Not Available || LENOVO || 7NETB1WW (2.11 ) || 03/24/2008<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 bytes IBM ThinkPad Embedded Controller -[7MHT25WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7668-CTO<br />
|| LENOVO || 7668CTO || ThinkPad X61s || LENOVO || 7668CTO || Not Available || LENOVO || Not Available || LENOVO || 7NET25WW (1.06 ) || 07/02/2007<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT24WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7669-29G<br />
|| LENOVO || 766929G || ThinkPad X61s || LENOVO || 766929G || Not Available || LENOVO || Not Available || LENOVO || 7NET21WW (1.02 ) || 04/23/2007 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT23WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7669-29G<br />
|| LENOVO || 766929G || ThinkPad X61s || LENOVO || 766929G || Not Available || LENOVO || Not Available || LENOVO || 7NETB9WW (2.19 ) || 11/27/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7667-C56<br />
|| LENOVO || 7667C56 || ThinkPad X61s || LENOVO || 7667C56 || Not Available || LENOVO || Not Available || LENOVO || 7NETB2WW (2.12 ) || 04/18/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7667-34G<br />
|| LENOVO || 766734G || ThinkPad X61s || LENOVO || 766734G || Not Available || LENOVO || Not Available || LENOVO || 7NETB9WW (2.19 ) || 11/27/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7762-94G<br />
|| LENOVO || 776294G || ThinkPad X61 Tablet || LENOVO || 776294G || Not Available || LENOVO || Not Available || LENOVO || 7SET38WW (1.24 ) || 10/12/2009 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7762-95G<br />
|| LENOVO || 776295G || ThinkPad X61 Tablet || LENOVO || 776295G || Not Available || LENOVO || Not Available || LENOVO || 7SET22WW (1.08 ) || 11/15/2007 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7762-95G<br />
|| LENOVO || 776295G || ThinkPad X61 Tablet || LENOVO || 776295G || Not Available || LENOVO || Not Available || LENOVO || 7SET36WW (1.22 ) || 11/27/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7762-98U<br />
|| LENOVO || 776298U || ThinkPad X61 Tablet || LENOVO || 776298U || Not Available || LENOVO || Not Available || LENOVO || 7SET34WW (1.20 ) || 07/29/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7764-CTO<br />
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET18WW (1.04 ) || 07/03/2007<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7764-CTO<br />
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET23WW (1.09 ) || 12/28/2007<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7764-CTO<br />
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET39WW (1.25 ) || 03/22/2011<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-27G<br />
|| LENOVO || 287627G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET21WW (1.04 ) || 12/18/2009<br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT20WW-1.165000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-27G<br />
|| LENOVO || 287627G || ThinkPad X100e || LENOVO || 287627G || Not Available || LENOVO || Not Available || LENOVO || 6XET47WW (1.30 ) || 12/30/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT43WW-1.183000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 3508-4UG<br />
|| LENOVO || 35084UG || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-</nowiki><br />
|| <br />
|-<br />
| {{X100e}} 2876-W1U<br />
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010<br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-W1U<br />
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || 2876W1U || Not Available || LENOVO || Not Available || LENOVO || 6XET44WW (1.27 ) || 07/21/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT42WW-1.182000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-W1U<br />
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || 2876W1U || Not Available || LENOVO || Not Available || LENOVO || 6XET48WW (1.31 ) || 02/17/2011 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT44WW-1.184000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-55G<br />
|| LENOVO || 287655G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET33WW (1.12 ) || 02/11/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT31WW-1.171000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-55G<br />
|| LENOVO || 287655G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-</nowiki><br />
||<br />
|- <br />
| {{X100e}} L625 3508-5EG<br />
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET38WW (1.22 ) || 04/09/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT38WW-1.178000]-</nowiki><br />
|| Dual-Core<br />
|- <br />
| {{X100e}} L625 3508-5EG<br />
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET39WW (1.23 ) || 04/30/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT39WW-1.179000]-</nowiki><br />
|| Dual-Core<br />
|-<br />
| {{X100e}} L625 3508-5EG<br />
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET41WW (1.25 ) || 06/02/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT40WW-1.180000]-</nowiki><br />
|| Dual-Core<br />
|-<br />
| {{X120e}} 0596-CTO<br />
|| LENOVO || 0596CTO || ThinkPad X120e || LENOVO || 0596CTO || Not Available || LENOVO || Not Available || LENOVO || 8FET32WW (1.16 ) || 11/03/2011<br />
|| EC unknown<br />
|| BIOS: Firmware Revision: 1.9<br />CPU: AMD E-350<br />
|-<br />
| {{X200}} 7454-CTO<br />
|| LENOVO || 7454CTO || ThinkPad X200 || LENOVO || 7454CTO || Not Available || LENOVO || Not Available || LENOVO || 6DET38WW (2.02 ) || 12/19/2008 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT21WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X200}} 7454-CTO<br />
|| LENOVO || 7454CTO || ThinkPad X200 || LENOVO || 7454CTO || Not Available || LENOVO || Not Available || LENOVO || 6DET40WW (2.04 ) || 02/13/2009 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{X200}} 7458-E46<br />
|| LENOVO || 7458E46 || ThinkPad X200 || LENOVO || 7458E46 || Not Available || LENOVO || Not Available || LENOVO || 7XET57WW (3.07 ) || 08/13/2009 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{X200}} 7459-GH6<br />
|| LENOVO || 7459GH6 || ThinkPad X200 || LENOVO || 7459GH6 || Not Available || LENOVO || Not Available || LENOVO || 6DET72WW (3.22 ) || 10/25/2012 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT25WW-.07 ]-</nowiki><br />
||<br />
|-<br />
| {{X200s}} 7466-3SG<br />
|| LENOVO || 74663SG || ThinkPad X200s || LENOVO || 74663SG || Not Available || LENOVO || Not Available || LENOVO || 6DET64WW (3.14 ) || 06/23/2010 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT24WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X200s}}<br />
|| LENOVO || 74695HG || ThinkPad X200s || LENOVO || 74695HG || Not Available || LENOVO || Not Available || LENOVO || 6DET33WW (1.10 ) || 10/27/2008 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT21WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X200s}} <br />
|| LENOVO || 7469WDR || ThinkPad X200s || LENOVO || 7469WDR || Not Available || LENOVO || Not Available || LENOVO || 6DET44WW (2.08 ) || 04/22/2009 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04 ]-</nowiki><br />
|| <br />
|-<br />
| {{X200s}} 7469-88G<br />
|| LENOVO || 746988G || ThinkPad X200s || LENOVO || 746988G || Not Available || LENOVO || Not Available || LENOVO || 6DET64WW (3.14 ) || 06/23/2010<br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT24WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X200 Tablet}} 7449-F9U<br />
|| LENOVO || 7449F9U || ThinkPad X200 Tablet || LENOVO || 7449F9U || Not Available || LENOVO || Not Available || LENOVO || 7WET24WW (1.02 ) || 09/09/2008 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7WHT14WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X200 Tablet}} 7449-FWG<br />
|| LENOVO || 7449FWG || ThinkPad X200T || LENOVO || 7449FWG || Not Available || LENOVO || Not Available || LENOVO || 7WET68WW (3.18 ) || 03/08/2011 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7WHT19WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X200 Tablet}} 7449-FWG<br />
|| LENOVO || 7449FWG || ThinkPad X200T || LENOVO || 7449FWG || Not Available || LENOVO || Not Available || LENOVO || 7WET71WW (3.21 ) || 11/29/2012 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7WHT19WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3626-W7V<br />
|| LENOVO || 3626W7V || ThinkPad X201 || LENOVO || 3626W7V || Not Available || LENOVO || Not Available || LENOVO || 6QET44WW (1.14 ) || 04/20/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3626-PN2<br />
|| LENOVO || 3626PN3 || ThinkPad X201 || LENOVO || 3626PN3 || Not Available || LENOVO || Not Available || LENOVO || 6QET53WW (1.23 ) || 09/15/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT30WW-1.11 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-PBG<br />
|| LENOVO || 3680PBG || ThinkPad X201 || LENOVO || 3680PBG || Not Available || LENOVO || Not Available || LENOVO || 6QET61WW (1.31 ) || 10/26/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT31WW-1.12 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-PBG<br />
|| LENOVO || 3680PBG || ThinkPad X201 || LENOVO || 3680PBG || Not Available || LENOVO || Not Available || LENOVO || 6QET70WW (1.40 ) || 10/11/2012 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT34WW-1.15 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET61WW (1.31 ) || 10/26/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT31WW-1.12 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET64WW (1.34 ) || 02/24/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT32WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET67WW (1.37 ) || 06/29/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET68WW (1.38 ) || 12/01/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET69WW (1.39 ) || 04/26/2012 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET70WW (1.40 ) || 10/11/2012 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-FAA<br />
|| LENOVO || 3680FAA || ThinkPad X201 || LENOVO || 3680FAA || Not Available || LENOVO || Not Available || LENOVO || 6QET70WW (1.40 ) || 10/11/2012 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201s}} 5129-CTO<br />
|| LENOVO || 5129CTO || ThinkPad X201s || LENOVO || 5129CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET44WW (1.14 ) || 04/20/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09 ]-</nowiki><br />
|| <br />
|- <br />
| {{X201 Tablet}} 3093-3YG<br />
|| LENOVO || 30933YG || ThinkPad X201 Tablet || LENOVO || 30933YG || Not Available || LENOVO || Not Available || LENOVO || 6QET45WW (1.15 ) || 04/26/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6SHT28WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X201 Tablet}} 3093-W11<br />
|| LENOVO || 3093W11 || ThinkPad X201 Tablet || LENOVO || 3093W11 || Not Available || LENOVO || Not Available || LENOVO || 6QET46WW (1.16 ) || 06/07/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6SHT28WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X201 Tablet}} 0831-CTO<br />
|| LENOVO || 0831CTO || ThinkPad X201 Tablet || LENOVO || 0831CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET61WW (1.31 ) || 10/26/2010<br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6SHT31WW-1.12 ]-</nowiki><br />
|| Before BIOS update<br />
|- <br />
| {{X201 Tablet}} 0831-CTO<br />
|| LENOVO || 0831CTO || ThinkPad X201 Tablet || LENOVO || 0831CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET67WW (1.37 ) || 06/29/2011<br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6SHT33WW-1.14 ]-</nowiki><br />
|| After BIOS update from 1.31<br />
|-<br />
| {{X201i}} 3249-CTO <br />
|| LENOVO || 3249CTO || ThinkPad X201 || LENOVO || 3249CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET45WW (1.15 ) || 04/26/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X220}}<br />
|| LENOVO || 4287CTO || ThinkPad X220 || LENOVO || 4287CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET41WW (1.11 ) || 03/28/2011 <br />
|| <nowiki></nowiki><br />
|| <br />
|-<br />
| {{X220}}<br />
|| LENOVO || 4286CTO || ThinkPad X220 || LENOVO || 4286CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET51WW (1.21 ) || 08/02/2011<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X220}}<br />
|| LENOVO || 4286CTO || ThinkPad X220 || LENOVO || 4286CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET56WW (1.26 ) || 12/01/2011<br />
|| <nowiki></nowiki><br />
||<br />
|- <br />
| {{X220 Tablet}}<br />
|| LENOVO || 42992PG || ThinkPad X220 Tablet || LENOVO || 42992PG || Not Available || LENOVO || Not Available || LENOVO || 8DET47WW (1.17 ) || 05/31/2011 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X220 Tablet}}<br />
|| LENOVO || 4299AS6 || ThinkPad X220 Tablet || LENOVO || 4299AS6 || Not Available || LENOVO || Not Available || LENOVO || 8DET49WW (1.19 ) || 07/01/2011 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X220 Tablet}}<br />
|| LENOVO || 4294CTO || ThinkPad X220 Tablet || LENOVO || 4294CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET67WW (1.37 ) || 12/05/2012<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X230}}<br />
|| LENOVO || 23205NG || ThinkPad X230 || LENOVO || 23205NG || Not Defined || LENOVO || Not Available || LENOVO || G2ET92WW (2.52 ) || 02/22/2013 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X230}}<br />
|| LENOVO || 2320CTO || ThinkPad X230 || LENOVO || 2320CTO || Not Defined || LENOVO || Not Available || LENOVO || G2ET33WW (1.13 ) || 07/24/2012<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X230}}<br />
|| LENOVO || 2320CTO || ThinkPad X230 || LENOVO || 2320CTO || Not Defined || LENOVO || Not Available || LENOVO || G2ET96WW (2.56 ) || 08/27/2013<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X230}}<br />
|| LENOVO || 2324A15 || ThinkPad X230 || LENOVO || 2324A15 || Not Defined || LENOVO || Not Available || LENOVO || G2ETA5WW (2.65 ) || 09/17/2015 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X300}} 6478-14G<br />
|| LENOVO || 647814G || ThinkPad X300 || LENOVO || 647814G || Not Available || LENOVO || Not Available || LENOVO || 7TET23WW (1.00d) || 01/17/2008 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c ]-</nowiki><br />
||<br />
|-<br />
| {{X300}} 6478-18M<br />
|| LENOVO || 647818M || ThinkPad X300 || LENOVO || 647818M || Not Available || LENOVO || Not Available || LENOVO || 7TET26WW (1.02a) || 02/27/2008 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c ]-</nowiki><br />
||<br />
|-<br />
| {{X300}} 6477-17G<br />
|| LENOVO || 647717G || ThinkPad X300 || LENOVO || 647717G || Not Available || LENOVO || Not Available || LENOVO || 7TET33WW (1.07 ) || <br />
07/02/2008 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c ]-</nowiki><br />
||<br />
|-<br />
| {{X300}} 6477-17G<br />
|| LENOVO || 647717G || ThinkPad X300 || LENOVO || 647717G || Not Available || LENOVO || Not Available || LENOVO || 7TET35WW (1.09 ) || 01/20/2009<br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7THT16WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X301}} 2777-CTO<br />
|| LENOVO || 2777CTO || ThinkPad X301 || LENOVO || 2777CTO || Not Available || LENOVO || Not Available || LENOVO || 6EET19WW (1.00g) || 07/30/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6EHT07WW-1.00b ]-</nowiki><br />
||<br />
|-<br />
| {{X301}} 2777-CTO<br />
|| LENOVO || 2777CTO || ThinkPad X301 || LENOVO || 2777CTO || Not Available || LENOVO || Not Available || LENOVO || 6EET21WW (1.02 ) || 10/09/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6EHT09WW-1.02 ]-</nowiki><br />
|| <br />
|-<br />
| {{X1}} 1294-2NG<br />
|| LENOVO || 12942NG || ThinkPad X1 || LENOVO || 12942NG || Not Available || LENOVO || Not Available || LENOVO || 8MET18WW (1.06 ) || 05/19/2011 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X1 Carbon}} 3460-AYG<br />
|| LENOVO || 3460AYG || ThinkPad X1 Carbon || LENOVO || 3460AYG || 0B98401 Pro || LENOVO || Not Available || LENOVO || G6ETA1WW (2.61 ) || 12/13/2013 <br />
|| <nowiki></nowiki><br />
|-<br />
| {{X1 Carbon}} 3460AYG<br />
|| LENOVO || 3460AYG || ThinkPad X1 Carbon || LENOVO || 3460AYG || 0B98401 Pro || LENOVO || Not Available || LENOVO || G6ETA7WW (2.67 ) || 06/12/2014 <br />
|| <nowiki></nowiki><br />
|-<br />
| {{X1 Carbon}} 3460AYG<br />
|| LENOVO || 3460AYG || ThinkPad X1 Carbon || LENOVO || 3460AYG || 0B98401 Pro || LENOVO || Not Available || LENOVO || G6ETB2WW (2.72 ) || 10/08/2015 <br />
|| <nowiki></nowiki><br />
|-<br />
| {{X1 Carbon 2nd}} 20A7-002WUS<br />
|| LENOVO || 20A7002WUS || ThinkPad X1 Carbon 2nd || LENOVO || 20A7002WUS || SDK0E50510 Pro || LENOVO || Not Available || LENOVO || GRET39WW (1.16 ) || 06/06/2014 <br />
|| <nowiki></nowiki><br />
|-<br />
| {{X1 Carbon 2nd}} 20A7-005RGE<br />
|| LENOVO || 20A7005RGE || ThinkPad X1 Carbon 2nd || LENOVO || 20A7005RGE || SDK0E50510 Pro || LENOVO || Not Available || LENOVO || GRET36WW (1.13 ) || 03/26/2014 <br />
|| <nowiki></nowiki><br />
|| After BIOS update from ?<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====Z series====<br />
|-<br />
| {{Z60t}} 2511-FEU<br />
|| IBM || 2511FEU || ThinkPad Z60t || IBM || 2511FEU || Not Available || IBM || Not Available || IBM || 77ET42WW (1.05 ) || 11/19/2005<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[77HT28WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{Z60t}} 2511-FFG<br />
|| IBM || 2511FFG || ThinkPad Z60t || IBM || 2511FFG || Not Available || IBM || Not Available || IBM || 77ET64WW (1.24 ) || 02/27/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[77HT57WW-1.17 ]-</nowiki><br />
||<br />
|- <br />
| {{Z60m}} 2529-ETG<br />
|| IBM || 2529ETG || ThinkPad Z60m || IBM || 2529ETG || Not Available || IBM || Not Available || IBM || 77ET59WW (1.19 ) || 04/24/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[77HT54WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{Z60m}} 2529-ETG<br />
|| IBM || 2529ETG || ThinkPad Z60m || IBM || 2529ETG || Not Available || IBM || Not Available || IBM || 77ET64WW (1.24 ) || 02/27/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[77HT58WW-1.18 ]-</nowiki><br />
||<br />
|-<br />
| {{Z60m}} 2529-FBG<br />
|| IBM || 2529FBG || ThinkPad Z60m || IBM || 2529FBG || Not Available || IBM || Not Available || IBM || 77ET62WW (1.22 ) || 11/21/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[77HT58WW-1.18 ]-</nowiki><br />
||<br />
|- <br />
| {{Z60m}} 2529-FKG<br />
|| IBM || 2529FKG || ThinkPad Z60m || IBM || 2529FKG || Not Available || IBM || Not Available || IBM || 77ET42WW (1.05 ) || 11/19/2005<br />
|| <nowiki>String 1: IBM ThinkPad Embedded Controller -[77HT28WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9453-A11<br />
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET48WW (1.08 ) || 05/26/2006<br />
|| <nowiki>String 1: IBM ThinkPad Embedded Controller -[7FHT21WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9452-8QG<br />
|| LENOVO || 94528QG || ThinkPad Z61m || LENOVO || 94528QG || Not Available || LENOVO || Not Available || LENOVO || 7FETA4WW (2.22 ) || 10/19/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9450-H9G<br />
|| LENOVO || 9450H9G || ThinkPad Z61m || LENOVO || 9450H9G || Not Available || LENOVO || Not Available || LENOVO || 7FETA7WW (2.25 ) || 06/03/2008 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
|| <br />
|- <br />
| {{Z61m}} 9452-W5Q<br />
|| LENOVO || 9452W5Q || ThinkPad Z61m || LENOVO || 9452W5Q || Not Available || LENOVO || Not Available || LENOVO || 7FETA6WW (2.24 ) || 03/13/2008<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9543-A11<br />
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9543-A11<br />
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET93WW (2.11 ) || 11/10/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9453-A11<br />
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61p}} 9453-A12<br />
|| LENOVO || 9453A12 || ThinkPad Z61p || LENOVO || 9453A12 || Not Available || LENOVO || Not Available || LENOVO || 7FET45WW (1.05 ) || 04/20/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7FHT19WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61p}} 9450-3AU<br />
|| LENOVO || 94503AU || ThinkPad Z61p || LENOVO || 94503AU || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-2CU<br />
|| LENOVO || 94402CU || ThinkPad Z61t || LENOVO || 94402CU || Not Available || LENOVO || Not Available || LENOVO || 7FET50WW (1.10 ) || 06/20/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT22WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9443-4GG<br />
|| LENOVO || 94434GG || ThinkPad Z61t || LENOVO || 94434GG || Not Available || LENOVO || Not Available || LENOVO || 7FET96WW (2.14 ) || 12/25/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FET91WW (2.09 ) || 11/01/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
|| <br />
|- <br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FET99WW (2.17 ) || 04/17/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA0WW (2.18 ) || 05/17/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA7WW (2.25 ) || 06/03/2008 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA9WW (2.27 ) || 08/26/2009<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====Lenovo 3000 series====<br />
|-<br />
| [[:Category:Lenovo 3000| Lenovo 3000]] N200 TY2BAFR<br />
|| LENOVO || 0769BAG || 3000 N200 || LENOVO || IEL10 || Reference || No Enclosure || N/A || LENOVO || 68ET24WW || 08/15/2007 <br />
||<br />
|| {{T-WARN|Non-ThinkPad EC firmware and BIOS}}<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====Edge series====<br />
|-<br />
| ThinkPad Edge 13 AMD L325<br />
|| LENOVO || 01976GG || ThinkPad Edge 13"IAL# || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET25WW (1.12 ) || 01/15/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT19WW-1.164000]-</nowiki><br />
|| <br />
|-<br />
| Thinkpad Edge 13 AMD L325<br />
|| LENOVO || 01972MG || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET32WW (1.19 ) || 07/23/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT26WW-1.171000]-</nowiki><br />
||<br />
|-<br />
| Thinkpad Edge 13 AMD L625<br />
|| LENOVO || 019734Q || ThinkPad Edge 13"IAL# || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET24WW (1.11 ) || 01/14/2010<br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT19WW-1.164000]-</nowiki><br />
||<br />
|-<br />
| Thinkpad Edge 13 AMD L625<br />
|| LENOVO || 019734Q || ThinkPad Edge 13"IAL# || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET31WW (1.18 ) || 05/25/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT24WW-1.169000]-</nowiki><br />
||<br />
|-<br />
| Thinkpad Edge 13 AMD L625<br />
|| LENOVO || 019734Q || ThinkPad Edge 13"IAL# || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET34WW (1.21 ) || 01/07/2011<br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT27WW-1.172000]-</nowiki><br />
||<br />
|-<br />
|| Thinkpad Edge 13" AMD<br />
|| LENOVO || 0197RW3 || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET32WW (1.19 ) || 07/23/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT26WW-1.171000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 13,3" AMD <br />
|| LENOVO || 01976WG || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET30WW (1.17 ) || 04/29/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT23WW-1.168000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 13,3" NUD2EGE<br />
|| LENOVO || 01962EG || ThinkPad Edge 13"IAL# || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET25WW (1.10 ) || 01/15/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT19WW-1.164000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 13,3" NUD2EGE<br />
|| LENOVO || 01962EG || ThinkPad Edge || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET33WW (1.16 ) || 09/10/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT26WW-1.171000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 13,3" NUD2EGE<br />
|| LENOVO || 01962EG || ThinkPad Edge || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET29WW (1.12 ) || 03/05/2010<br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT21WW-1.166000]-</nowiki><br />
||<br />
|- <br />
|| ThinkPad Edge 13,3" Intel<br />
|| LENOVO || 0196CTO || ThinkPad Edge || LENOVO || 0196CTO || Not Available || LENOVO || Not Available || LENOVO || 6YET30WW (1.13 ) || 04/29/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT23WW-1.168000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 13,3" Intel NUD5MMH<br />
|| LENOVO || 01965MG || ThinkPad Edge || LENOVO || 01965MG || Not Available || LENOVO || Not Available || LENOVO || 6YET30WW (1.13 ) || 04/29/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT23WW-1.168000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 13,3" Intel NUD5PGE<br />
|| LENOVO || 01965PG || ThinkPad Edge || LENOVO || 01965PG || Not Available || LENOVO || Not Available || LENOVO || 6YET29WW (1.12 ) || 03/05/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT21WW-1.166000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 13,3" Intel NUD5PGE<br />
|| LENOVO || 01965PG || ThinkPad Edge || LENOVO || 01965PG || Not Available || LENOVO || Not Available || LENOVO || 6YET33WW (1.16 ) || 09/10/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT26WW-1.171000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 14" NVP3YRT<br />
|| LENOVO || 05783YG || ThinkPad Edge || LENOVO || 05783YG || Not Available || LENOVO || Not Available || LENOVO || 80ET29WW (1.06 ) || 03/24/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT22WW-1.166000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 14" 639D640<br />
|| LENOVO || 0578A19 || ThinkPad Edge || LENOVO || 0578A19 || Not Available || LENOVO || Not Available || LENOVO || 80ET29WW (1.06 ) || 03/24/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT22WW-1.166000]-</nowiki><br />
|| <br />
|- <br />
| ThinkPad Edge 14" Intel i3<br />
|| LENOVO || 0578N6U || ThinkPad Edge || LENOVO || 0578N6U || Not Available || LENOVO || Not Available || LENOVO || 80ET49WW (1.26 ) || 04/13/2011<br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT35WW-1.190000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 14" Intel i3<br />
|| LENOVO || 0578N6U || ThinkPad Edge || LENOVO || 0578N6U || Not Available || LENOVO || Not Available || LENOVO || 80ET52WW (1.29 ) || 05/30/2011<br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT37WW-1.210000]-</nowiki><br />
|| {{T-WARN|Modded Lenovo BIOS with wifi whitelist removed}}<br />
||<br />
|-<br />
| ThinkPad Edge 14" Intel i5 M430<br />
|| LENOVO || 0578BHA || ThinkPad Edge || LENOVO || 0578BHA || Not Available || LENOVO || Not Available || LENOVO || 80ET31WW (1.08 ) || 04/28/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT23WW-1.167000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 14" Intel i3 M370<br />
|| LENOVO || 0578JHG || ThinkPad Edge || LENOVO || 0578JHG || Not Available || LENOVO || Not Available || LENOVO || 80ET43WW (1.20 ) || 11/17/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT33WW-1.177000]-</nowiki><br />
||<br />
|- <br />
|| ThinkPad Edge 15" NVL7VGE<br />
|| LENOVO || 03017VG || ThinkPad Edge || LENOVO || 03017VG || Not Available || LENOVO || Not Available || LENOVO || 80ET36WW (1.13 ) || 06/04/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT29WW-1.173000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 15" 0301RJ7<br />
|| LENOVO || 0301RJ7 || ThinkPad Edge || LENOVO || 0301RJ7 || Not Available || LENOVO || Not Available || LENOVO || 80ET43WW (1.20 ) || 11/17/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT33WW-1.177000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 15" AMD<br />
|| LENOVO || 0302CTO || ThinkPad Edge || LENOVO || 0302CTO || Not Available || LENOVO || Not Available || LENOVO || 82ET63WW (2.04 ) || 01/07/2011 <br />
|| <nowiki>Handle 0x0015, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[82HT28WW-1.174000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 15" AMD<br />
|| LENOVO || 0302CTO || ThinkPad Edge || LENOVO || 0302CTO || Not Available || LENOVO || Not Available || LENOVO || 82ET75WW (2.15 ) || 01/28/2011 <br />
|| <nowiki>Handle 0x0015, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[82HT28WW-1.174000]-</nowiki><br />
||<br />
|- <br />
| ThinkPad Edge E420s<br />
|| LENOVO || 440128U || ThinkPad Edge E420s || LENOVO || 440128U || Not Available || LENOVO || Not Available || LENOVO || 8JET26WW (1.08 ) || 03/24/2011<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| ThinkPad Edge E420s<br />
|| LENOVO || 440128U || ThinkPad Edge E420s || LENOVO || 440128U || Not Available || LENOVO || Not Available || LENOVO || 8JET29WW (1.11 ) || 05/10/2011<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| ThinkPad Edge E530<br />
|| LENOVO || 32597CG || ThinkPad Edge E530 || LENOVO || 32597CG || Not Available || LENOVO || Not Available || LENOVO || H0ET35WW (1.17 ) || 07/25/2012<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| ThinkPad Edge E530<br />
|| LENOVO || 32597CG || ThinkPad Edge E530 || LENOVO || 32597CG || Not Available || LENOVO || Not Available || LENOVO || H0ET94WW (2.54 ) || 08/02/2013<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| ThinkPad Edge E540<br />
|| LENOVO || 20C6CTO1WW || ThinkPad Edge E540 || LENOVO || 20C6CTO1WW || SDK0E50512 STD || LENOVO || Not Available || LENOVO || J9ET92WW (2.12 ) || 07/31/2014<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====L series====<br />
|-<br />
| L512<br />
|| LENOVO || 4444CTO || ThinkPad L512 || LENOVO || 4444CTO || Not Available || LENOVO || Not Available || LENOVO || 81ET40WW (1.16 ) || 06/22/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[81HT25WW-1.168000]-</nowiki><br />
||<br />
|-<br />
|<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====Helix series====<br />
|-<br />
| ThinkPad Helix <br />
|| LENOVO || 3697CTO || ThinkPad Helix || LENOVO || 3697CTO || Win8 STD DPK TPG || LENOVO || Not Available || LENOVO || GFET35WW (1.14 ) || 06/05/2013 <br />
|| <nowiki></nowiki><br />
|| <br />
|-<br />
|}<br />
</div><br />
<br />
==Adding entries==<br />
<br />
Click the "Edit" link on the appropriate series above and add an entry of the following form:<br />
:<tt>| </tt><i>description of your model</i><br />
:<i>data line 1</i><br />
:<i>data line 2</i><br />
:<tt>||</tt><br />
:<tt>|-</tt><br />
<br />
where the two data lines are generated by the following <tt>bash</tt> command:<br />
<br />
<pre><br />
for X in system-{manufacturer,product-name,version} \<br />
baseboard-{manufacturer,product-name,version} \<br />
chassis-{manufacturer,version} bios-{vendor,version,release-date}; do \<br />
echo -n "|| `sudo /usr/sbin/dmidecode -s $X` " \<br />
| perl -pe 's/\n/\\n/' ; done; \<br />
sudo /usr/sbin/dmidecode | perl -0777 -ne \<br />
'm/\n(.*).\n.*\n(.*Embedded Cont.*)\n/i; print "\n|| <nowiki><</nowiki>nowiki>$1$2</nowiki>\n"'<br />
</pre><br />
<br />
If you can, please also test [[tp_smapi]] and update its [[tp_smapi#Model-specific_status|model-specific status table]].<br />
<br />
==Software using ThinkPad DMI IDs==<br />
* [[HDAPS]] driver whitelist<br />
* [[tp_smapi]] driver whitelist<br />
* [[thinkpad-acpi]] driver quirk list</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Unofficial_maximum_memory_specs&diff=54784Unofficial maximum memory specs2013-08-29T20:06:04Z<p>Bombenbach: /* Working memory configurations */ add 2x M471B5273DM0-CH9 on an X200</p>
<hr />
<div>Some ThinkPads are known to support more memory than their specs say. This page gathers information about those models, how much memory they can take and what special requirements that memory must fulfill.<br />
<br />
Have a look at the [[Memory]] page for the official memory configs and partnumbers<br />
<br />
==Working memory configurations==<br />
The following table gives an overview of tested memory configurations that exceed the specified limits for that ThinkPad type.<br />
<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
! ThinkPad !! Official Max !! Unoffical Max !! BIOS !! Embedded Controller !! Memory configuration successfully tested<br />
|- style="vertical-align:top;"<br />
| ThinkPad {{A31p}}<br />2653-R8U || 1 GB || 2 GB || 1.10 || 1.05 ||<br />
2 x Elpida 1 GB 200-pin DDR PC2700, FRU # 31P9835<br />
|-<br />
| ThinkPad {{A31p}}<br />2653-R?? || 1 GB || || 1.09 || 1.05 ||<br />
2 x Kingston 1GB 200-Pin DDR, Model# KTM - TP9828/1G<br />
|-<br />
| ThinkPad {{SL500}}<br /> || 4 GB || 8 GB || ?.?? || ?.?? ||<br />
2 x 4GB 200-Pin DDR2 PC2-5300<br />
|-<br />
| ThinkPad {{T30}}<br />2366-92U || 1 GB || || 2.08 || 1.06 ||<br />
2 x Kingmax 1GB 200-Pin DDR SO-DIMM DDR333 PC2700, Model# MSAD42D-KI<BR><br />
:But causes [[:Category:T30#Kernel_Panic|kernel to panic at boot]].<BR><br />
2 x Generic Brand 1GB 200-pin DDR SO-DIMM PC2700 (p/n 89898E):<br />
:BIOS recognizes 2048MB, but Gentoo sees only 1024MB<br />
|-<br />
| ThinkPad {{T42}} [[2373-CTO]] || 2 GB || || 3.17 || 3.04 ||<br />
??? <br />
|-<br />
| ThinkPad {{T42}} [[2373-CTO]] || 2 GB || || 3.23 || 3.04 ||<br />
??? <br />
|-<br />
| ThinkPad {{T43p}} 2668-WTB || 2 GB || || 1.29 || 1.06 ||<br />
* 2 x Kingston 1GB 200-Pin 533MHz DDR2, Model KTM-TP3840/1G DDR2 <br />
|-<br />
| ThinkPad {{T61p}}<br />6457-5GG || 4 GB || 8 GB || 2.19 || 1.08 ||<br />
2 x Kingston 4GB 200-Pin 667MHz DDR2, Model # KTL-TP667/4GB.<br />
|-<br />
| ThinkPad {{T61p}}<br />6460-EEG || 4 GB || 8 GB || 2.27 middleton (SATA-II modified) || 1.08 ||<br />
2 x Samsung SODIMM 4GB PC2-5300 DDR2-667, Model # M470T5267AZ3-CE6 / 4GB.<br />
|-<br />
| ThinkPad {{T61p}}<br />6457-7XG || 4 GB || 8 GB || 2.26 || 1.08 ||<br />
2 x Crucial 4GB 200-Pin 800MHz DDR2, Model # CT51264AC800. (PC2-6400)<br />
|-<br />
| ThinkPad {{T61p}}<br />6457-BQG || 4 GB || 8 GB || 2.27 || 1.08 ||<br />
2 x Corsair 4GB 200-Pin 800MHz DDR2, Corsair ValueSelect SO-DIMM 4GB PC2-6400S CL6 VS4GSDS800D2 G .<br />
|-<br />
| ThinkPad {{T61p}}<br />6459-CTO || 4 GB || 8 GB || 2.26 || 1.08 ||<br />
2 x G.Skill 4GB 200-Pin 800MHz DDR2, Model # F2-6400CL6D-8GBSQ (PC2-6400)<br />
|-<br />
| ThinkPad {{T61p}}<br />6460-8YG || 4 GB || 8 GB || 2.26 || 1.08 ||<br />
2 x Crucial 4GB 200-Pin 667MHz DDR2, Model# CT2KIT51264AC667 ( 2x CT51264AC667)<br />
|-<br />
| ThinkPad {{T61p}}<br />6460-DVU || 4 GB || 8 GB || 2.26 || 1.08 ||<br />
2 x G.Skil 4GB 200-Pin 667MHz DDR2, Model# F2-5300CL5D-8GBSQ, CL5-5-5-15, PC2-5300<br />
|-<br />
| ThinkPad {{T61p}}<br />8889-3FG || 4 GB || 8 GB || TBA || TBA ||<br />
2 x Kingston 4GB 200-Pin 667MHz DDR2, KVR667D2S5/4G.<br />
|-<br />
| ThinkPad {{X31}} 2672-C2G || 1 GB || || 3.02 || 1.08 ||<br />
* 2 x 1GB Kingston KVR400X64SC3A/1G DDR400MHz. Newer documentation also states 2GB, but original one did not.<br />
* Boots with 1 bar.<br />
|-<br />
| ThinkPad {{X31}} 2673-C2G || 1 GB || || 3.02 || 1.08 ||<br />
* 2 x 1GB (Team Group Inc. TSDR1024M400 DDR400MHz)<br />
* Boots with 1 x TSDR1024M400<br />
|-<br />
| ThinkPad {{X41}} 2525-CTO || 1.5 GB || 2 GB || 2.09 || 1.02 ||<br />
* 1 x 2GB ( ??? )<br />
BIOS claims 2.5 GB. Diagnostic POST and memtest86+ both test only 2 GB. Linux and Windows XP recognize 2 GB.<br />
|-<br />
| ThinkPad {{X41}} 2528-5FU || 1.5 GB || || 2.09 || 1.02 ||<br />
* 1 x 2GB (Transcend TS2GIB3847 DDR2 667 MHz)<br />
* 1 x 2GB (FRU 73P3846 DDR2 PC2-4200)<br />
BIOS claims 2.5 GB. Diagnostic POST tests only 2 GB. Linux and XP recognize 2 GB.<br />
|-<br />
| ThinkPad {{X41}} 2525-F8G || 1.5 GB || 2 GB || 2.06 || 1.01 ||<br />
* 1 x 2GB (Crucial CT25664AC667 DDR2 PC2-5300)<br />
BIOS claims 2.5 GB. Diagnostic POST and memtest86+ both test only 2 GB. Linux and Windows XP recognize 2 GB.<br />
|-<br />
| ThinkPad {{X41_Tablet}} 1866-6HU || 1.5 GB || || 2.03 || 1.02 ||<br />
* 1 x 2GB (Transcend JM667QSU-2G DDR2 667 MHz)<br />
BIOS claims 2.5GB. Diagnostic POST tests only 2GB. Linux and Windows XP recognize 2GB.<br />
|-<br />
| ThinkPad {{X61}}<br />7675-K2U || 4 GB || 8 GB || ?.?? || ?.?? ||<br />
Kingston 8GB (set of 2x4GB) 200-Pin DDR2, KVR667D2S5K2/8G<br/>''Equivalent to 2 x Kingston KVR667D2S5/4G''<br />
|-<br />
| ThinkPad {{X61s}}<br />7666AK7 || 4GB || 8GB || 2.16 || 1.03 ||<br />
2 x Generic 4GB DDR2 SODIMM (200 pin) 667Mhz PC2 5400 / PC2 5300 CL 5.0<br />
|-<br />
| ThinkPad {{X61t}}<br />7764-CTO || 4 GB || 8 GB || 1.23 || ?.?? ||<br />
2 x Generic 4GB 200-Pin DDR2.<br />
|-<br />
| ThinkPad {{X61t}}<br />7762-94G || 4 GB || 8 GB || 1.23 || 1.02 ||<br />
2 x Kingston 4GB 200-Pin DDR2, KVR667D2S5/4G.<br />
|-<br />
| ThinkPad {{X61t}}<br />7762-95G || 4 GB || 8 GB || 1.23 || 1.02 ||<br />
2 x Kingston 4GB 200-Pin DDR2, KVR667D2S5/4G. Ubuntu 10.10 64bit shows installed memory size of 7,7 GiB.<br />
|-<br />
|ThinkPad {{X100e}}<br />3508-CTO || 4GB || 8GB || 1.29 || 1.22 ||<br />
2 x G.Skill 4GB 200-Pin 800MHz DDR2, Model # F2-6400CL6D-8GBSQ (PC2-6400)<br />
|-<br />
|ThinkPad {{X120e}}<br />0596-CTO || 4GB || 8GB || ?.?? || ?.?? ||<br />
2 x Kingston KVR1066D3S7/4G = 8GB SODIMM DDR3 1066MHz CL7<br />
|-<br />
| ThinkPad {{X200}}<br />7459-W2H || 4 GB || 8 GB || 3.13 || 1.06 ||<br />
2 x KVR1066D3S7/4G.<br />
|-<br />
| ThinkPad {{X200}}<br />7459-GH6 || 4 GB || 8 GB || 3.22 || 1.07 ||<br />
2 x Samsung M471B5273DM0-CH9 = 2x4GB SODIMM DDR 1333MHz<br />
|-<br />
| ThinkPad {{X200s}}<br />7466-9QG || 4 GB || 8 GB || 3.11 || 1.06 ||<br />
2 x KVR1333D3S9/4G.<br />
|-<br />
| ThinkPad {{240}}<br />2609-40U || 320MByte || || IRETWWW76 || n/a ||<br />
* Any PC100 256MB memory in 16-chip configuration<br />
|-<br />
| ThinkPad {{240X}}<br /> || 256MByte || || unknown || n/a ||<br />
* Some PC100 256MB memory in 16-chip configuration may work. Chipset cannot handle more than 256MB<br />
|-<br />
| ThinkPad {{570}}<br />2644-3AU || 320MB || || 1.16 IMET65WW 11/11/99 || n/a ||<br />
* Kingston KTM-TP390X/256 256MB MODULE FRU 16P6327 - 16 chips, 8 each side<br />
|-<br />
| ThinkPad {{600}}<br /> ? || 288MB || || ? || ? ||<br />
* 416MB = 256MB '''low density''' PC100 SODIMM + 128MB PC66 SODIMM + 32MB PC66 on-board. It matters which SODIMM you put in which slot. This was first reported working on the [http://zurich.csail.mit.edu/hypermail/thinkpad/2004-04/0797.html Thinkpad Mailing List], and it worked error-free for me.<br />
The 600E (2645-8A0) with Bios INET36WW accept two modules <br />
of 256MB.<br />
The ram modules have 8 chips on each side.<br />
That results in 544MB. (RAM Typ: Micron MT16LSDF3264HG-133E4 PC133 CL3 sync).<br />
Processor is an Intel PII 366 PE, installed platform is Windows XP Pro with SP3.<br />
|-<br />
| ThinkPad {{770X}}<br />9549|| 448MB || || 1.11 IIET42WW 09/10/99 || n/a ||<br />
* 448MB = 256MB PC100 + 128MB PC66 + internal 64MB using IBM 256MB MODULE FRU 33L3070 PC100 CL2 - 16 chips, 8 each side<br />
* 512MB = 2 x 256MB PC100 + 64MB internal booted up as well. 512MB is due to 440LX-Chipset limitations, 64MB are overlapping or unused.<br />
|-<br />
|}<br />
<br />
==Non-working memory configurations==<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
! ThinkPad !! max. Specs !! BIOS !! Embedded Controller !! Memory configuration unsuccessfully tested<br />
|- style="vertical-align:top;"<br />
| ThinkPad {{A21m}}<br /> || 512MB || ? || ? ||<br />
* 2 x Microx 144-pin 512MB PC133 SDRAM SODIMM 32x16 8C<br />
* 1 x Microx 144-pin 512MB PC133 SDRAM SODIMM 32x16 8C<br />
* 1 x Microx 144-pin 512MB PC133 SDRAM SODIMM 32x16 8C<br />
:+ 1 x 144-pin 256MB PC133 SDRAM SODIMM<br />
|- style="vertical-align:top;"<br />
| ThinkPad<br>{{T61p}}<br>6460-DVU || 4GB || 7LETC7WW (2.27)<br>04/08/2010 || 1.08 || 6GB:<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4GB: Micron MT16HTS51264HY<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2GB: Kingston KTH-ZD8000C6<br><br />
Passed Windows Memory Diagnostic (Standard),<br><br />
but system became slightly unstable, app crash every 1-2 hours,<br><br />
failed Lenovo Toolbox memory test.<br />
|-<br />
|- style="vertical-align:top;"<br />
| ThinkPad<br>{{T43}} || 3GB || 1YET62WW (1.27 ) || 1YHT29WW-1.06 || 3GB:<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2GB: Micron<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1GB: Kingston<br><br />
In 2+1 configuration system doesn't starts (black screen constantly).<br />
In 1+2 configuration system works, but sees only 2GB in BIOS and Linux.<br />
|-<br />
| ThinkPad<br>{{X200s}} || 4GB || 3.17 || 1.06 || 8GB:<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4GB: Kingston<br><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4GB: Kingston<br><br />
0 + 4: System starts but stops before bootloader (GRUB).<br><br />
4 + 4: System starts, OS boots. But several issues:<br><br />
''Segmentation faults'': Memory intensive apps crashing randomly (eclipse)<br><br />
''WLAN instability issues'': driver keeps disconnecting under load<br><br />
''Graphic card errors'': [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung<br />
|-<br />
|}<br />
<br />
==External Sources==<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-55644 IBM's official Memory compatibility page]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&diff=54783List of DMI IDs2013-08-29T20:00:52Z<p>Bombenbach: /* DMI ID database */ add an X200 7459-GH6</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
This page maintains a database of [http://en.wikipedia.org/wiki/Desktop_Management_Interface DMI] information which can be used to identify ThinkPad models. It is intended as an aid for driver development.<br />
{{HELP|We need more information about older models, especially those released before 2004. Please [[#Adding_entries|add your model]] to the database.}}<br />
{{NOTE|If your ThinkPad is not using the [[BIOS Upgrade Downloads|latest BIOS]], and you would be willing to [[BIOS Upgrade|upgrade your BIOS]], please add your ThinkPad to this table twice: '''before''' and '''after''' the BIOS upgrade. This information helps us a great deal, so your contribution would be very appreciated.}}<br />
|}<br />
<br />
==DMI ID database==<br />
<br />
<div style="font-size: 80%"><br />
{| border="1" cellspacing="0" cellpadding="2" style="text-align:center"<br />
|-<br />
! Model<br />
! <tt>system-<br />manufa<br />cturer</tt><br />
! <tt>system-<br />product-<br />name</tt><br />
! <tt>system-<br />version</tt><br />
! <tt>baseboard-<br />manufa<br />cturer</tt><br />
! <tt>baseboard-<br />product-<br />name</tt><br />
! <tt>base<br />board-<br />version</tt><br />
! <tt>chassis-<br />manufa<br />cturer</tt><br />
! <tt>chassis-<br />version</tt><br />
! <tt>bios-<br />vendor</tt><br />
! <tt>bios-<br />version</tt><br />
! <tt>bios-<br />release-<br />date</tt><br />
! Embedded controller<br />
! Notes<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====Numbered series====<br />
|-<br />
| {{240X}} 2609-61U<br />
|| IBM || 260961U || Not Available || IBM || 2609BS1 || Not Available || IBM || Not Available || IBM || 1.03.09 || 12/21/1999 <br />
||<br />
||<br />
|-<br />
| {{570}} 2644-1AU<br />
|| IBM || 26441AU || Not Available || IBM || 26441AU || Not Available || IBM || Not Available || IBM || IMET65WW || 11/11/99<br />
||<br />
||<br />
|-<br />
| {{570E}} 2644-5AU<br />
|| IBM || 26445AU || Not Available || IBM || 26445AU || Not Available || IBM || Not Available || IBM || IUET25WW || 12/11/1999<br />
||<br />
||<br />
|-<br />
| {{600E}} 2645-5AU<br />
|| IBM || 26455AU || Not Available || IBM || 26455AU || Not Available || IBM || Not Available || IBM || INET36WW || 11/20/1999<br />
||<br />
||<br />
|-<br />
| {{600X}} 2645-5FU<br />
|| IBM || 26455FU || Not Available || IBM || 26455FU || Not Available || IBM || Not Available || IBM || INET55WW || 11/30/1999<br />
||<br />
||<br />
|-<br />
| {{600X}} 2645-8EU<br />
|| IBM || 26458EU || Not Available || IBM || 26458EU || Not Available || IBM || Not Available || IBM || ITET54WW || 11/30/1999 <br />
||<br />
||<br />
|-<br />
| {{600X}} 2645-8EU<br />
|| IBM || 26458EU || Not Available || IBM || 26458EU || Not Available || IBM || Not Available || IBM || ITET48WW || 11/30/1999 <br />
||<br />
||POST/BIOS Version 1.13 old prior to upgrade <br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====A series====<br />
|-<br />
| {{A21m}} 2628-FSG<br />
|| IBM || 2628FSG || Not Available || IBM || 2628FSG || Not Available || IBM || Not Available || IBM || KXET24WW (1.02b) || 12/19/2000 <br />
|| <br />
||<br />
|-<br />
| {{A21m}} 2628-FSG<br />
|| IBM || 2628FSG || Not Available || IBM || 2628FSG || Not Available || IBM || Not Available || IBM || KXET36WW (1.09 ) || 05/08/2003 <br />
||<br />
||<br />
|-<br />
| {{A21m}} 2628-GTU<br />
|| IBM || 2628GTU || Not Available || IBM || 2628GTU || Not Available || IBM || Not Available || IBM || KXET29WW (1.03d) || 03/21/2001 <br />
||<br />
||<br />
|-<br />
| {{A22e}} 2655-KG1<br />
|| IBM || 2655KG1 || Not Available || IBM || 2655KG1 || Not Available || IBM || Not Available || IBM || 10ET23WW (1.04 ) || 09/05/2001 <br />
||<br />
||<br />
|-<br />
| {{A22e}} 2655-KG1<br />
|| IBM || 2655KG1 || Not Available || IBM || 2655KG1 || Not Available || IBM || Not Available || IBM || 10ET26WW (1.07 ) || 06/13/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{A22p}} 2629-USG<br />
|| IBM || 2629USG || Not Available || IBM || 2629USG || Not Available || IBM || Not Available || IBM || KYET36WW (1.09a) || 10/17/2002 <br />
||<br />
|| {{T-WARN|Outdated BIOS}}<br />
|-<br />
| {{A22p}} 2629-A2G<br />
|| IBM || 2629A2G || Not Available || IBM || 2629A2G || Not Available || IBM || Not Available || IBM || KYET38WW (1.11 ) || 05/20/2004 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{A31}} 2652-PBU<br />
|| IBM || 2652PBU || Not Available || IBM || 2652PBU || Not Available || IBM || Not Available || IBM || 1NET15WW (1.09 ) || 04/06/2005<br />
|| <nowiki>Handle&nbsp;0x0026,&nbsp;DMI&nbsp;type&nbsp;11,&nbsp;5&nbsp;byte&nbsp;String&nbsp;1:&nbsp;IBM .&nbsp;.&nbsp;ThinkPad&nbsp;Embedded&nbsp;Controller&nbsp;-[1NHT04WW-1.01&nbsp;]-&nbsp;.&nbsp;.</nowiki><!-- Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1NHT04WW-1.01 ]- --><br />
||<br />
|-<br />
| {{A31p}} 2653-RNG<br />
|| IBM || 2653RNG || Not Available || IBM || 2653RNG || Not Available || IBM || Not Available || IBM || 1NET16WW (1.10 ) || 10/19/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1NHT08WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{A31p}} 2653-H6U<br />
|| IBM || 2653H6U || Not Available || IBM || 2653H6U || Not Available || IBM || Not Available || IBM || 1GET31WW (1.03 ) || 07/23/2002<br />
|colspan="2"|{{T-WARN|Missing EC string, extremely outdated BIOS}}<br />
{{HELP|We need a report to know if the latest BIOS fixes the missing EC string}}<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====G series====<br />
|-<br />
| {{G41}} 2881-75M<br />
|| IBM || 288175M || ThinkPad G41 || IBM || 288175M || Not Available || IBM || Not Available || IBM || 1XET47WW (1.06 ) || 01/14/2005<br />
||<br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====R series====<br />
|-<br />
| {{R40}} 2681-5UU<br />
|| IBM || 26815UU || Not Available || IBM || 26815UU || Not Available || IBM || Not Available || IBM || 1OET57WW (1.23 ) || 03/23/2005 <br />
||<br />
|| {{T-WARN|Outdated BIOS}}<br />
|-<br />
| {{R40}} 2681-HSG<br />
|| IBM || 2681HSG || Not Available || IBM || 2681HSG || Not Available || IBM || Not Available || IBM || 1OET61WW (1.27 ) || 06/29/2006<br />
||<br />
|| {{T-WARN|Outdated BIOS}}<br />
|-<br />
| {{R40}} 2722-B3G<br />
|| IBM || 2722B3G || Not Available || IBM || 2722B3G || Not Available || IBM || Not Available || IBM || 1PET62WW (1.30 ) || 09/29/2005<br />
||<br />
||<br />
|-<br />
| {{R40}} 2722-BDG<br />
|| IBM || 2722BDG || Not Available || IBM || 2722BDG || Not Available || IBM || Not Available || IBM || 1PET65WW (1.33 ) || 06/29/2006 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{R40}} 2722-C4U <br />
|| IBM || 2722CU4 || Not Available || IBM || 2722CU4 || Not Available || IBM || Not Available || IBM || 1PET46WW (1.14 ) || 07/15/2003<br />
|| 1OHT37WW (1.09) 05/26/03<br />
|| {{T-WARN|Outdated BIOS}}<br />
|- <br />
| {{R40}} 2722-C4U <br />
|| IBM || 2722CU4 || Not Available || IBM || 2722CU4 || Not Available || IBM || Not Available || IBM || 1PET65WW (1.33 ) || 06/29/2006 <br />
|| 1OHT42WW (1.14) 05/23/05<br />
||<br />
|- <br />
| {{R40}} 2897-B4U<br />
|| IBM || 2897B4U || Not Available || IBM || 2897B4U || Not Available || IBM || Not Available || IBM || 1PET52WW (1.20 ) || 03/03/2004<br />
||<br />
||<br />
|- <br />
| {{R40e}} 2684-L8G<br />
|| IBM || 2897B4U || Not Available || IBM || 2897B4U || Not Available || IBM || Not Available || IBM || 1SET62WW (1.30 ) || 07/09/2004<br />
||<br />
|| {{T-WARN|Outdated BIOS}}<br />
|-<br />
| {{R40e}} 2684-L8G<br />
|| IBM || 2684L8G || Not Available || IBM || 2684L8G || Not Available || IBM || Not Available || IBM || 1SET70WW (1.38 ) || 11/15/2005<br />
||<br />
||<br />
|-<br />
| {{R50}} 1829-7QG<br />
|| IBM || 0123456 || ThinkPad R50 || IBM || 0123456 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
|{{R50e}} 1834-JAG<br />
|| IBM || 1834JAG || ThinkPad R50e || IBM || 1834JAG || Not Available || IBM || Not Available || IBM || 1WET82WW (2.02 ) || 02/21/2005<br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
|{{R50e}}<br />
|| IBM || 1834S5G || ThinkPad R50e || IBM || 1834S5G || Not Available || IBM || Not Available || IBM || 1WET86WW (2.06 ) || 11/15/2005 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
|| {{T-WARN|Outdated BIOS}}<br />
|- <br />
|{{R50e}}<br />
|| IBM || 1834S5G || ThinkPad R50e || IBM || 1834S5G || Not Available || IBM || Not Available || IBM || 1WET90WW (2.10 ) || 12/08/2006 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
||<br />
|- <br />
|{{R50p}} 1832-2AG<br />
|| IBM || 18322AG || ThinkPad R50p || IBM || 18322AG || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1RHT66WW-3.00a ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 1829-DRG<br />
|| IBM || 1829DRG || ThinkPad R51 || IBM || 1829DRG || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT66WW-3.00a ]-</nowiki> <br />
||<br />
|-<br />
| {{R51}} 1829-9MG<br />
|| IBM || 18299MG || ThinkPad R51 || IBM || 18299MG || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 1829-L7G<br />
|| IBM || 1829L7G || ThinkPad R51 || IBM || 1829L7G || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT70WW-3.03 ]-</nowiki><br />
||<br />
|- <br />
| {{R51}} [[1830-DG4]]<br />
|| IBM || 1830DG4 || ThinkPad R51 || IBM || 1830DG4 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} [[1830-DG4]]<br />
|| IBM || 1830DG4 || ThinkPad R51 || IBM || 1830DG4 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 1836-GEU<br />
|| IBM || 1836GEU || ThinkPad R51 || IBM || 1836GEU || Not Available || IBM || Not Available || IBM || 1RETDLWW (3.17 ) || 07/27/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes. String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 2883-ELU<br />
|| IBM || 2883ELU || ThinkPad R51 || IBM || 2883ELU || Not Available || IBM || Not Available || IBM || 1VET69WW (1.27 ) || 03/03/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R51}} 2883-8QU<br />
|| IBM || 28838QU || ThinkPad R51 || IBM || 28838QU || Not Available || IBM || Not Available || IBM || 1VET61WW (1.19 ) || 12/20/2004<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1VHT27WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-AQG<br />
|| IBM || 1846AQG || ThinkPad H || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04 ]-</nowiki><br />
|| Weird system version, this bug is known fixed in latest BIOS<br />
|-<br />
| {{R52}} 1846-AQG<br />
|| IBM || 1846AQG || ThinkPad R52p || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET68WW (1.28 ) || 11/15/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-AQG<br />
|| IBM || 1846AQG || ThinkPad R52p || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET69WW (1.29 ) || 12/06/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1847-CTO<br />
|| IBM || 1847W15 || ThinkPad R52 || IBM || 1847W15 || Not Available || IBM || Not Available || IBM || 76ET69WW (1.29 ) || 12/06/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1847-W62<br />
|| IBM || 1847W62 || ThinkPad . || IBM || 1847W62 || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04 ]-</nowiki><br />
|| Weird system version, this bug is known fixed in latest BIOS<br />
|-<br />
| {{R52}} 1847-W62<br />
|| IBM || 1847W62 || ThinkPad R52 || IBM || 1847W62 || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1858-6MM<br />
|| IBM || 18586MM || ThinkPad R52 || IBM || 18586MM || Not Available || IBM || Not Available || IBM || 70ET40WW (1.04 ) || 06/02/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1858-6SM<br />
|| IBM || 18586SM || ThinkPad R52 || IBM || 18586SM || Not Available || IBM || Not Available || IBM || 70ET57WW (1.17 ) || 07/15/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-4CG<br />
|| IBM || 18464CG || ThinkPad R52 || IBM || 18464CG || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT15WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-4CG<br />
|| IBM || 18464CG || ThinkPad R52 || IBM || 18464CG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R52}} 1846-B5G<br />
|| IBM || 1846B5G || ThinkPad H || IBM || 1846B5G || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R60e}} 0657-4TG<br />
|| LENOVO || 06574TG || ThinkPad R60e || LENOVO || 06574TG || Not Available || LENOVO || Not Available || LENOVO || 7EET18WW (1.04 ) || 07/28/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7EHT13WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9456-6FG<br />
|| LENOVO || 94566FG || ThinkPad R60 || LENOVO || 94566FG || Not Available || LENOVO || Not Available || LENOVO || 7CET50WW (1.05 ) || 07/28/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT19WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9456-6FG<br />
|| LENOVO || 94566FG || ThinkPad R60 || LENOVO || 94566FG || Not Available || LENOVO || Not Available || LENOVO || 7CETB7WW (2.07 ) || 11/13/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9461-54G<br />
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CET50WW (1.05 ) || 07/28/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT19WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9461-54G<br />
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CETC1WW (2.11 ) || 01/09/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
|| With this bios version the brightness control buttons don't work for kernel < 2.6.20<br />
|-<br />
| {{R60}} 9461-54G<br />
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CET49WW (1.04 ) || 05/11/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT16WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9460MR2<br />
|| LENOVO || 9460MR2 || ThinkPad R60 || LENOVO || 9460MR2 || Not Available || LENOVO || Not Available || LENOVO || 7CETC6WW (2.16 ) || 04/18/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9461-DXG<br />
|| LENOVO || 9461DXG || ThinkPad R60 || LENOVO || 9461DXG || Not Available || LENOVO || Not Available || LENOVO || 7CETB6WW (2.06 ) || 10/16/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9461-DXG<br />
|| LENOVO || 9461DXG || ThinkPad R60 || LENOVO || 9461DXG || Not Available || LENOVO || Not Available || LENOVO || 7CETD2WW (2.22 ) || 05/28/2008<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT22WW-1.10 ]-</nowiki><br />
||<br />
|-<br />
| {{R60}} 9462-GAG<br />
|| LENOVO || 9462GAG || ThinkPad R60 || LENOVO || 9462GAG || Not Available || LENOVO || Not Available || LENOVO || 7CETB5WW (2.05 ) || 10/13/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 8918-5QG<br />
|| LENOVO || 89185QG || ThinkPad R61 || LENOVO || 89185QG || Not Available || LENOVO || Not Available || LENOVO || 7KETA7WW (2.07 ) || 12/06/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 8919-W4P<br />
|| LENOVO || 8919W4P || ThinkPad R61 || LENOVO || 8919W4P || Not Available || LENOVO || Not Available || LENOVO || 7KET76WW (1.26 ) || 10/18/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
|| According to the sticker on the bottom of the notebook as well as according to Lenovo web it is 8919-CTO subtype<br />
|-<br />
| {{R61}} 8919-W6X<br />
|| LENOVO || 8919W6X || ThinkPad R61 || LENOVO || 8919W6X || Not Available || LENOVO || Not Available || LENOVO || 7KET71WW (1.21 ) || 08/22/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 8919-W6X<br />
|| LENOVO || 8919W6X || ThinkPad R61 || LENOVO || 8919W6X || Not Available || LENOVO || Not Available || LENOVO || 7KETB9WW (2.19 ) || 06/05/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 8919-DFG<br />
|| LENOVO || 8918DFG || ThinkPad R61 || LENOVO || 8918DFG || Not Available || LENOVO || Not Available || LENOVO || 7KETA9WW (2.09 ) || 12/27/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|| <br />
|-<br />
| {{R61}} 8943-DMG<br />
|| LENOVO || 8943DMG || ThinkPad R61 || LENOVO || 8943DMG || Not Available || LENOVO || Not Available || LENOVO || 7QET34WW (1.16 ) || 03/24/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7QHT15WW-1.00 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-4TG<br />
|| LENOVO || 77324TG || ThinkPad R61 || LENOVO || 77324TG || Not Available || LENOVO || Not Available || LENOVO || 7LET51WW (1.21 ) || 08/22/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-4TG<br />
|| LENOVO || 77324TG || ThinkPad R61 || LENOVO || 77324TG || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-NEG<br />
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETB6WW (2.16 ) || 04/16/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-NEG<br />
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7732-NEG<br />
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 ) || 05/11/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7733-1ES<br />
|| LENOVO || 77331ES || ThinkPad R61 || LENOVO || 77331ES || Not Available || LENOVO || Not Available || LENOVO || 7LETB0WW (2.10 ) || 01/21/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7733-1ES<br />
|| LENOVO || 77331ES || ThinkPad R61 || LENOVO || 77331ES || Not Available || LENOVO || Not Available || LENOVO || 7LETB4WW (2.14 ) || 03/24/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61}} 7733-A82 <br />
|| LENOVO || 7733A82 || ThinkPad R61/R61i || LENOVO || 7733A82 || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|| Intel graphics, 14.1" WXGA, Atheros wireless<br />
|-<br />
| {{R61i}} 7732-A12<br />
|| LENOVO || 7732A12 || ThinkPad R61i || LENOVO || 7732A12 || Not Available || LENOVO || Not Available || LENOVO || 7KET76WW (1.26 ) || 10/18/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
|| Prior to Flashing<br />
|-<br />
| {{R61i}} 7732-A12<br />
|| LENOVO || 7732A12 || ThinkPad R61i || LENOVO || 7732A12 || Not Available || LENOVO || Not Available || LENOVO || 7KETC8WW (2.28) || 05/26/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
|| Post Flashing<br />
|-<br />
| {{R61i}} 7650-D7G<br />
|| LENOVO || 7650D7G || ThinkPad R61e || LENOVO || 7650D7G || Not Available || LENOVO || Not Available || LENOVO || 7PETB0WW (2.10 ) || 01/21/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R61e}} 7650-E6G<br />
|| LENOVO || 7650E6G || ThinkPad R61e || LENOVO || 7650E6G || Not Available || LENOVO || Not Available || LENOVO || 7PETB2WW (2.12 ) || 02/20/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{R400}} 7439-A85<br />
|| LENOVO || 7439A85 || ThinkPad R400 || LENOVO || 7439A85 || Not Available || LENOVO || Not Available || LENOVO || 7UET45WW (1.15 ) || 09/08/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{R400}} 7443-TPA<br />
|| LENOVO || 7443TPA || ThinkPad R400 || LENOVO || 7443TPA || Not Available || LENOVO || Not Available || LENOVO || 7UET49WW (1.19 ) || 10/17/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{R400}} 7443-TPA<br />
|| LENOVO || 7443TPA || ThinkPad R400 || LENOVO || 7443TPA || Not Available || LENOVO || Not Available || LENOVO || 7UET50WW (1.20 ) || 10/30/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====S series====<br />
|-<br />
| {{s30}} 2639-4WJ<br />
|| IBM || 26394WJ || Not Available || IBM || 2609BS1 || Not Available || IBM || Not Available || IBM || 18ET45WW (1.45) || 07/10/2001<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====SL series====<br />
|-<br />
| {{SL410}} 2842-7PU || LENOVO || 28427PU || ThinkPad SL410 || LENOVO || 28427PU || Not Available || LENOVO || Not Available || LENOVO || 6JET69WW (1.27 ) || 11/30/2009 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6JHT54WW-1.174000]-</nowiki><br />
||<br />
|-<br />
| {{SL410}} 2842-XF2 || LENOVO || 28427PU || ThinkPad SL410 || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6JET58WW (1.16 ) || 09/17/2009 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6JHT48WW-1.168000]-</nowiki><br />
||<br />
|-<br />
| {{SL500}} 2746-3ZG || LENOVO || 27463ZG || ThinkPad SL500 || LENOVO || BOXSTER || 6AET<br />42WW || LENOVO || 6AET<br />42WW || LENOVO || 6AET42WW || 08/04/2008 <br />
|| <nowiki></nowiki><br />
|| {{T-WARN|IdeaPad EC and BIOS. This is an IdeaPad in disguise.}}<br />
|-<br />
| {{SL500}} 2746-4CG || LENOVO || 27464CG || ThinkPad SL500 || LENOVO || BOXSTER || 6AET<br />41WW || LENOVO || 6AET<br />41WW || LENOVO || 6AET41WW || 07/10/2008 <br />
|| <nowiki></nowiki><br />
|| {{T-WARN|IdeaPad EC and BIOS. This is an IdeaPad in disguise.}}<br />
|-<br />
| {{SL500}} 2764-EAG || LENOVO || 2746EAG || ThinkPad SL || LENOVO || 2746EAG || 6AET<br />58WW || LENOVO || 6AET<br />58WW || LENOVO || 6AET58WW || 05/29/2009 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{SL510}} 2847-7MG<br />
|| LENOVO || 28477MG || ThinkPad SL510 || LENOVO || ? || not available || LENOVO || not available || LENOVO || 6JET72WW (1.30 ) || 01/26/2010 <br />
|| Handle 0x0018, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[6JHT57WW-1.177000]-<br />
|| {{T-WARN|IdeaPad EC and BIOS.}}<br />
|-<br />
| {{SL400}} 2743-Rk3<br />
|| LENOVO || 2743RK3 || ThinkPad SL || LENOVO || 2743RK3 || LENOVO 6AET59WW || LENOVO || LENOVO 6AET59WW || LENOVO || 6AET59WW || 08/26/2009 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====T series====<br />
|-<br />
| {{T20}} 2647-UC2<br />
|| IBM || 2647UC2 || Not Available || IBM || 2647UC2 || Not Available || IBM || Not Available || IBM || IYET45WW (1.08a) || 12/21/1999<br />
||<br />
|| {{T-WARN|Very outdated BIOS}}<br />
|-<br />
| {{T21}} 2647-8AG <br />
|| IBM || 26478AG || Not Available || IBM || 26478AG || Not Available || IBM || Not Available || IBM || KZET22WW (1.04a) || 01/19/2001 <br />
||<br />
||<br />
|-<br />
| {{T21}} 2647-9AU<br />
|| IBM || 26479AU || Not Available || IBM || 26479AU || Not Available || IBM || Not Available || IBM || KZET33WW (1.15 ) || 03/28/2003<br />
||<br />
||<br />
|-<br />
| {{T21}} 2647-8AG <br />
|| IBM || 26478AG || Not Available || IBM || 26478AG || Not Available || IBM || Not Available || IBM || KZET34WW (1.16 ) || 04/28/2004 <br />
||<br />
|| <br />
|- <br />
| {{T21}} 2647-8AU<br />
|| IBM || 26478AU || Not Available || IBM || 26478AU || Not Available || IBM || Not Available || IBM || KZET34WW (1.16 ) || 04/28/2004<br />
||<br />
||<br />
|-<br />
| {{T21}} 2647-8GG<br />
|| IBM || 26478GG || Not Available || IBM || 26478GG || Not Available || IBM || Not Available || IBM || 16ET29WW (1.09 ) || 02/28/2002 <br />
||<br />
||<br />
|-<br />
| {{T22}} 2647-4EG<br />
|| IBM || 26474EG || Not Available || IBM || 26474EG || Not Available || IBM || Not Available || IBM || 16ET31WW (1.11 ) || 03/20/2003 <br />
||<br />
||<br />
|-<br />
| {{T22}} 2647-8EU<br />
|| IBM || 26478EU || Not Available || IBM || 26478EU || Not Available || IBM || Not Available || IBM || 16ET32WW (1.12 ) || 04/27/2004<br />
||<br />
||<br />
|- <br />
| {{T23}} 2647<br />
|| IBM || 2647 || Not Available || IBM || 2647 || Not Available || IBM || Not Available || IBM || 1AET56WW (1.13) || 07/23/2002 <br />
|| <br />
|| Manufactured in Greenock, Scotland<br />
|- <br />
| {{T23}} 2647<br />
|| IBM || 2647 || Not Available || IBM || 2647 || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20) || 07/23/2002 <br />
|| <nowiki>As above. Handle 0x0024, DMI type 11, 5 bytes OEM Strings String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a]-<br />
</nowiki><br />
||<br />
|- <br />
| {{T23}} 2647-4MG<br />
|| IBM || 26474MG || Not Available || IBM || 26474MG || Not Available || IBM || Not Available || IBM || 1AET58WW (1.14a) || 09/11/2002 <br />
|| <nowiki></nowiki><br />
||<br />
|- <br />
| {{T23}} 2647-4MG<br />
|| IBM || 26474MG || Not Available || IBM || 26474MG || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20 ) || 10/18/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a ]-</nowiki><br />
||<br />
|- <br />
| {{T23}} 2647-4NU<br />
|| IBM || 26474NU || Not Available || IBM || 26474NU || Not Available || IBM || Not Available || IBM || 1AET62WW (1.18 ) || 07/06/2004<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a ]-</nowiki><br />
||<br />
|-<br />
| {{T23}} 2647-8MG<br />
|| IBM || 26478MG || Not Available || IBM || 26478MG || Not Available || IBM || Not Available || IBM || 1AET56WW (1.13 ) || 07/02/2002<br />
||<br />
|| Missing EC string, this bug is known to be fixed in latest BIOS<br />
|-<br />
| {{T23}} 2647-8MG<br />
|| IBM || 26478MG || Not Available || IBM || 26478MG || Not Available || IBM || Not Available || IBM || 1AET62WW (1.18 ) || 07/06/2004<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a]-</nowiki><br />
||<br />
|-<br />
| {{T23}} 2647-RG3<br />
|| IBM || 2647RG3 || Not Available || IBM || 2647RG3 || Not Available<br />
|| IBM || Not Available || IBM || 1AET43WW (1.03b) || 09/25/2001 ||<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{T23}} 2648-DG1<br />
|| IBM || 2648DG1 || Not Available || IBM || 2648DG1 || Not Available || IBM || Not Available || IBM || 1AET61WW (1.17 ) || 05/29/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{T23}} 2648-DG1<br />
|| IBM || 2648DG1 || Not Available || IBM || 2648DG1 || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20 ) || 10/18/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a ]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-21U<br />
|| IBM || 236621U || Not Available || IBM || 236621U || Not Available || IBM || Not Available || IBM || 1IET71WW (2.10 ) || 06/16/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1IHT20WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-82U<br />
|| IBM || 236682U || Not Available || IBM || 236682U || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1IHT19WW-1.06]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-85G<br />
|| IBM || 236685G || Not Available || IBM || 236685G || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1IHT18WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-GU1<br />
|| IBM || 2366GU1 || Not Available || IBM || 2366GU1 || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1IHT19WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T30}} 2366-JBU<br />
|| IBM || 2366JBU || Not Available || IBM || 2366JBU || Not Available || IBM || Not Available || IBM || 1IET71WW (2.10 ) || 06/16/2006<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1IHT20WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T40}} 2378-D2U<br />
|| IBM || 2378D2U || ThinkPad T40 || IBM || 2378D2U || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004<br />
|| <br />
|| Missing EC string, this bug is known to be fixed in latest BIOS<br />
|-<br />
| {{T40}} 2374-DG1<br />
|| IBM || 2374DG1 || ThinkPad T40 || IBM || 2374DG1 || Not Available || IBM || Not Available || IBM || 1RET73WW (2.02 ) || 08/21/2003<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{T40}} 2374-DG1<br />
|| IBM || 2374DG1 || ThinkPad T40 || IBM || 2374DG1 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T40}} 2373-42G<br />
|| IBM || 237342G || ThinkPad T40 || IBM || 237342G || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003<br />
||<br />
|| [[ATI Mobility Radeon 7500]]<br />
|-<br />
| {{T40}} 2373-NG5<br />
|| IBM || 2373NG5 || ThinkPad T40 || IBM || 2373NG5 || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T40}} 2373-NG5<br />
|| IBM || 2373NG5 || ThinkPad T40 || IBM || 2373NG5 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T40}} 2374-2G9<br />
|| IBM || 23742G9 || ThinkPad T40 || IBM || 23742G9 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| After upgrade from Bios v. 3.16 and ecp 3.02<br />
|-<br />
| {{T40p}} 2373-G1G<br />
|| IBM || 2373G1G || ThinkPad T40p || IBM || 2373G1G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T40p}} 2373-5U5<br />
|| IBM || 23735U5 || ThinkPad T40p || IBM || 23735U5 || Not Available || IBM || Not Available || IBM || 1RETDGWW (3.12 ) || 10/18/2004 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT70WW-3.03 ]-</nowiki><br />
|| <br />
|- <br />
| {{T40p}} 2373-5U5<br />
|| IBM || 23735U5 || ThinkPad T40p || IBM || 23735U5 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| <br />
|- <br />
| {{T41}} 2373-9FG<br />
|| IBM || 23739FG || ThinkPad T41 || IBM || 23739FG || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| <br />
|- <br />
| {{T41}} 2373-W63<br />
|| IBM || 2373W63 || ThinkPad T41 || IBM || 2373W63 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki> <br />
||<br />
|-<br />
| {{T41}} 2373-XNX<br />
|| IBM || 2373XNX || ThinkPad T41 || IBM || 2373XNX || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2373-2FG<br />
|| IBM || 23732FG || ThinkPad T41 || IBM || 23732FG || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003<br />
||<br />
|| Missing EC string, this bug is known to be fixed in latest BIOS<br />
|-<br />
| {{T41}} 2373-7FG<br />
|| IBM || 23737FG || ThinkPad T41 || IBM || 23737FG || Not Available || IBM || Not Available || IBM || 1RET87WW (2.14 ) || 01/26/2004<br />
||<br />
||<br />
|-<br />
| {{T41}} 2373-7FG<br />
|| IBM || 23737FG || ThinkPad T41 || IBM || 23737FG || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| After upgrade from BIOS v. 2.14<br />
|-<br />
| {{T41}} 2373-TG5<br />
|| IBM || 2373TG5 || ThinkPad T41 || IBM || 2373TG5 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2374-312<br />
|| IBM || 2374312 || ThinkPad T41 || IBM || 2374312 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2379-DJU<br />
|| IBM || 2379DJU || ThinkPad T41 || IBM || 2379DJU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2373-A10<br />
|| IBM || 2373A10 || ThinkPad T41 || IBM || 2373A10 || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41}} 2373-A10<br />
|| IBM || 2373A10 || ThinkPad T41 || IBM || 2373A10 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| After upgrade from BIOS v. 3.20<br />
|-<br />
| {{T41p}} 2373-GHG <br />
|| IBM || 2373GHG || ThinkPad T41p || IBM || 2373GHG || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41p}} 2373-GEG<br />
|| IBM || 2373GEG || ThinkPad T41p || IBM || 2373GEG || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005<br />
|| <nowiki> Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T41p}} 2373-GJJ<br />
|| IBM || 2373GJJ || ThinkPad T41p || IBM || 2373GJJ || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-FWG<br />
|| IBM || 2373FWG || ThinkPad T42 || IBM || 2373FWG || Not Available || IBM || Not Available || IBM || 1RETDHWW (3.13 ) || 10/29/2004<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-JTU<br />
|| IBM || 2373JTU || ThinkPad T42 || IBM || 2373JTU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-M1G<br />
|| IBM || 2373M1G || ThinkPad T42 || IBM || 2373M1G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-VJA<br />
|| IBM || 2373VJA || ThinkPad T42 || IBM || 2373VJA || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} 2373-F2G<br />
|| IBM || 2373F2G || ThinkPad T42 || IBM || 2373F2G || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42}} [[2373-CTO]]<br />
|| IBM || 2373YPL || ThinkPad T42 || IBM || 2373YPL || Not Available || IBM || Not Available || IBM || 1RETDLWW (3.17 ) || 07/27/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| {{T-WARN|Outdated BIOS}} before BIOS Update<br />
|-<br />
| {{T42}} [[2373-CTO]]<br />
|| IBM || 2373YPL || ThinkPad T42 || IBM || 2373YPL || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
|| after BIOS Update / current BIOS+EC<br />
|-<br />
| {{T42}} 2374-4WU<br />
|| IBM || 23744WU || ThinkPad T42 || IBM || 23744WU || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|- <br />
| {{T42}} 2374-WEH<br />
|| IBM || 2374WEH || ThinkPad T42 || IBM || 2374WEH || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki> <br />
||<br />
|-<br />
| {{T42}} 2378-FVU<br />
|| IBM || 2378FVU || ThinkPad T42 || IBM || 2378FVU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2373-A64<br />
|| IBM || 2373A64 || ThinkPad T42p || IBM || 2373A64 || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byteString 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2373-KXU<br />
|| IBM || 2373KXU || ThinkPad T42p || IBM || 2373KXU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2373-KUU<br />
|| IBM || 2373KUU || ThinkPad T42p || IBM || 2373KUU || Not Available || IBM || Not Available || IBM || 1RETDMWW (3.18 ) || 09/15/2005<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2373-GYG<br />
|| IBM || 2373GYG || ThinkPad T42p || IBM || 2373GYG || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2374-CP5<br />
|| IBM || 2374CP5 || ThinkPad T42p || IBM || 2374CP5 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2379-DYU<br />
|| IBM || 2379DYU || ThinkPad T42p || IBM || 2379DYU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T42p}} 2372-Q2G<br />
|| IBM || 2373Q2G || ThinkPad T42p || IBM || 2373Q2G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 1871-4AG<br />
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET64WW (1.24 ) || 02/13/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT27WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 1871-4AG<br />
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET62WW (1.22 ) || 05/29/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03]-</nowiki><br />
|| <br />
|-<br />
| {{T43}} 1871-4AG<br />
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET69WW (1.29 ) || 05/29/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT28WW-1.05]-</nowiki><br />
|| <br />
|- <br />
| {{T43}} 1871-F1G<br />
|| IBM || 1871F1G || ThinkPad T43 || IBM || 1871F1G || Not Available || IBM || Not Available || IBM || 70ET61WW (1.21 ) || 11/01/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2686-DGU<br />
|| IBM || 2686DGU || ThinkPad T43 || IBM || 2686DGU || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2669-WE5<br />
|| IBM || 2669WE5 || ThinkPad T43 || IBM || 2669WE5 || Not Available || IBM || Not Available || IBM || 1YET56WW (1.21 ) || 07/06/2005 <br />
|| <nowiki>String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
|| User reports this is really a 2669-CEU with 1GB RAM + BlueTooth, and not a 2669-WE5 (unverified if this makes sense)<br />
|-<br />
| {{T43}} 2668-WEW<br />
|| IBM || 2668WEW || ThinkPad T43 || IBM || 2668WEW || Not Available || IBM || Not Available || IBM || 1YET56WW (1.21 ) || 07/06/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2668-WSY<br />
|| IBM || 2668WSY || ThinkPad T43 || IBM || 2668WSY || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2668-74G<br />
|| IBM || 266874G || ThinkPad T43 || IBM || 266874G || Not Available || IBM || Not Available || IBM || 1YET57WW (1.22 ) || 07/20/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2668-CTO <br />
|| IBM || 2668Y82 || ThinkPad T43p || IBM || 2668Y82 || Not Available || IBM || Not Available || IBM || 1YET65WW (1.29 ) || 08/21/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06 ]-</nowiki><br />
|| <br />
|- <br />
| {{T43p}} 2668-G2G<br />
|| IBM || 2668G2G || ThinkPad T43p || IBM || 2668G2G || Not Available || IBM || Not Available || IBM || 1YET47WW (1.08 ) || 06/09/2005 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43p}} 2668-H1G<br />
|| IBM || 2668H1G || ThinkPad T43p || IBM || 2668H1G || Not Available || IBM || Not Available || IBM || 1YET45WW (1.06a) || 06/02/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2687-D4U<br />
|| IBM || 2687D4U || ThinkPad T43 || IBM || 2687D4U || Not Available || IBM || Not Available || IBM || 1YET43WW (1.05 ) || 04/28/2005 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43}} 2687-D4U<br />
|| IBM || 2687D4U || ThinkPad T43 || IBM || 2687D4U || Not Available || IBM || Not Available || IBM || 1YET65WW (1.29 ) || 08/21/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T43p}} 2687-D5U<br />
|| IBM || 2687D5U || ThinkPad T43p || IBM || 2687D5U || Not Available || IBM || Not Available || IBM || 1YET59WW (1.24 ) || 11/07/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T43p}} 2668-F8G<br />
|| IBM || 2668F8G || ThinkPad T43p || IBM || 2668F8G || Not Available || IBM || Not Available || IBM || 1YET57WW (1.22 ) || 07/20/2005<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1951-24G<br />
|| LENOVO || 195124G || ThinkPad T60 || LENOVO || 195124G || Not Available || LENOVO || Not Available || LENOVO || 79ET65WW (1.09a) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1952-W5R<br />
|| LENOVO || 1952W5R || ThinkPad T60 || LENOVO || 1952W5R || Not Available || LENOVO || Not Available || LENOVO || 79ET61WW (1.06 ) || 05/24/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1952-W5R<br />
|| LENOVO || 1952W5R || ThinkPad T60 || LENOVO || 1952W5R || Not Available || LENOVO || Not Available || LENOVO || 79ETD2WW (2.12 ) || 04/12/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-49G<br />
|| LENOVO || 200749G || ThinkPad T60 || LENOVO || 200749G || Not Available || LENOVO || Not Available || LENOVO || 79ET62WW (1.07 ) || 06/12/2006 <br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-77G<br />
|| LENOVO || 200777G || ThinkPad T60 || LENOVO || 200777G || Not Available || LENOVO || Not Available || LENOVO || 79ETD1WW (2.11 ) || 03/15/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-FSG<br />
|| LENOVO || 2007FSG || ThinkPad T60 || LENOVO || 2007FSG || Not Available || LENOVO || Not Available || LENOVO || 79ET66WW (1.10 ) || 08/02/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1951-CA2<br />
|| LENOVO || 1951CA2 || ThinkPad T60 || LENOVO || 1951CA2 || Not Available || LENOVO || Not Available || LENOVO || 79ETD9WW (2.19 ) || 09/19/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2623-D6U<br />
|| LENOVO || 2623D6U || ThinkPad T60 || LENOVO || 2623D6U || Not Available || LENOVO || Not Available || LENOVO || 79ET56WW (1.02 ) || 02/28/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT42WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-63G<br />
|| LENOVO || 200763G || ThinkPad T60 || LENOVO || 200763G || Not Available || LENOVO || Not Available || LENOVO || 79ET65WW (1.09a) || 07/27/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-63G<br />
|| LENOVO || 200763G || ThinkPad T60 || LENOVO || 200763G || Not Available || LENOVO || Not Available || LENOVO || 79ETE5WW (2.25 ) || 08/27/2009 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 2007-BF3<br />
|| LENOVO || 2007BF3 || ThinkPad T60 || LENOVO || 2007BF3 || Not Available || LENOVO || Not Available || LENOVO || 79ETD7WW (2.17 ) || 08/23/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 8744-HCG<br />
|| LENOVO || 8744HCG || ThinkPad T60 || LENOVO || 8744HCG || Not Available || LENOVO || Not Available || LENOVO || 7IET25WW (1.06 ) || 03/15/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 8744-HCG<br />
|| LENOVO || 8744HCG || ThinkPad T60 || LENOVO || 8744HCG || Not Available || LENOVO || Not Available || LENOVO || 7IET37WW (1.18 ) || 04/01/2010<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60}} 1951-CZ1<br />
|| LENOVO || 1951CZ1 || ThinkPad T60 || LENOVO || 1951CZ1 || Not Available || LENOVO || Not Available || LENOVO || 79ETE3WW (2.23 ) || 09/12/2008 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-83U<br />
|| LENOVO || 200783U || ThinkPad T60p || LENOVO || 200783U || Not Available || LENOVO || Not Available || LENOVO || 79ET60WW (1.05a) || 04/18/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[79HT43WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-93G<br />
|| LENOVO || 200793G || ThinkPad T60p || LENOVO || 200793G || Not Available || LENOVO || Not Available || LENOVO || 79ET62WW (1.07 ) || 06/12/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-93U<br />
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ET66WW (1.10 ) || 08/02/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-93U<br />
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ET67WW (1.11 ) || 08/29/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-93U<br />
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ETC3WW (2.03 ) || 11/10/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2007-ZK4<br />
|| LENOVO || 2007ZK4 || ThinkPad T60p || LENOVO || 2007ZK4 || Not Available || LENOVO || Not Available || LENOVO || 79ETD3WW (2.13 ) || 04/30/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2613-ESU<br />
|| LENOVO || 2613ESU || ThinkPad T60p || LENOVO || 2613ESU || Not Available || LENOVO || Not Available || LENOVO || 79ET67WW (1.11 ) || 08/29/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b ]-</nowiki><br />
||<br />
|-<br />
| {{T60p}} 2623-DDU<br />
|| LENOVO || 2623DDU || ThinkPad T60p || LENOVO || 2623DDU || Not Available || LENOVO || Not Available || LENOVO || 79ETC3WW (2.03 ) || 11/10/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6457-W2C<br />
|| LENOVO || 6457W2C || ThinkPad T61 || LENOVO || 6457W2C || Not Available || LENOVO || Not Available || LENOVO || 7LETB0WW (2.10 ) || 01/21/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6460-EBG<br />
|| LENOVO || 6460EBG || ThinkPad T61 || LENOVO || 6460EBG || Not Available || LENOVO || Not Available || LENOVO || 7LETB7WW (2.17 ) || 04/25/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6460-EBG<br />
| LENOVO || 6460EBG || ThinkPad T61 || LENOVO || 6460EBG || Not Available || LENOVO || Not Available || LENOVO || 7LETC4WW (2.24 ) || 08/15/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6465-CTO<br />
|| LENOVO || 6465CTO || ThinkPad T61 || LENOVO || 6465CTO || Not Available || LENOVO || Not Available || LENOVO || 7LETB2WW (2.12 ) || 02/20/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 6466-9MG<br />
|| LENOVO || 64669MG || ThinkPad T61 || LENOVO || 64669MG || Not Available || LENOVO || Not Available || LENOVO || 7LETC7WW (2.27 ) || 04/08/2010<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 7659-AB7<br />
|| LENOVO || 7659AB7 || ThinkPad T61 || LENOVO || 7659AB7 || Not Available || LENOVO || Not Available || LENOVO || 7LETB7WW (2.17 ) || 04/25/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 7659-W13<br />
|| LENOVO || 7659W13 || ThinkPad T61 || LENOVO || 7659W13 || Not Available || LENOVO || Not Available || LENOVO || 7LET44WW (1.14 ) || 06/27/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 7659-W13<br />
|| LENOVO || 7659W13 || ThinkPad T61 || LENOVO || 7659W13 || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 ) || 05/11/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 7662-XDU<br />
|| LENOVO || 7662XDU || ThinkPad T61 || LENOVO || 7662XDU || 7662XDU|| LENOVO || Not Available || LENOVO || 7LET37WW (1.07 ) || 04/17/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7KHT19WW-1.03 ]-</nowiki><br />
|| {{T-WARN|BIOS and EC firmware have different IDs}}<br />
|-<br />
| {{T61}} 7661-A56<br />
|| LENOVO || 7661A56 || ThinkPad T61 || LENOVO || 7661A56 || Not Available || LENOVO || Not Available || LENOVO || 7LET39WW (1.09 ) || 05/14/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT21WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 8895-WFD<br />
|| LENOVO || 8895WFD || ThinkPad T61 || LENOVO || 8895WFJ || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 8897-CTO<br />
|| LENOVO || 8897CTO || ThinkPad T61 || LENOVO || 8897CTO || Not Available || LENOVO || Not Available || LENOVO || 7LET52WW (1.22 ) || 08/27/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T61}} 8897-CTO<br />
|| LENOVO || 8897CTO || ThinkPad T61 || LENOVO || 8897CTO || Not Available || LENOVO || Not Available || LENOVO || 7LET56WW (1.26 ) || 10/18/2007 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
|| <br />
|-<br />
| {{T61p}} 6457-B64<br />
|| LENOVO || 6457B64 || ThinkPad T61p || LENOVO || 6457B64 || Not Available || LENOVO || Not Available || LENOVO || 7LETC1WW (2.21 ) || 07/01/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
||<br />
|- <br />
| {{T61p}} 6459-A12<br />
|| LENOVO || 6459A12 || ThinkPad T61p || LENOVO || 6459A12 || Not Available || LENOVO || Not Available || LENOVO || 7LET56WW (1.26 ) || 10/18/2007<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T61p}} 6459-CTO<br />
|| LENOVO || 6459CTO || ThinkPad T61p || LENOVO || 6459CTO || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 ) || 05/11/2009<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08 ]-</nowiki><br />
|| <br />
|-<br />
| {{T400}} 6473-D1G<br />
|| LENOVO || 6473D1G || ThinkPad T400 || LENOVO || 6473D1G || Not Available || LENOVO || Not Available || LENOVO || 7UET61WW (2.07 ) || 02/13/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| Before BIOS update<br />
|-<br />
| {{T400}} 6473-D1G<br />
|| LENOVO || 6473D1G || ThinkPad T400 || LENOVO || 6473D1G || Not Available || LENOVO || Not Available || LENOVO || 7UET94WW (3.24 ) || 10/17/2012 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT16WW-1.06 ]-</nowiki><br />
|| After BIOS update<br />
|-<br />
| {{T400}} 6474-1EG<br />
|| LENOVO || 64741EG || ThinkPad T400 || LENOVO || 64741EG || Not Available || LENOVO || Not Available || LENOVO || 7UET48WW (1.18 ) || 10/09/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 <br />
]-</nowiki><br />
||<br />
|-<br />
| {{T400}} 6474-19G<br />
|| LENOVO || 647419G || ThinkPad T400 || LENOVO || 647419G || Not Available || LENOVO || Not Available || LENOVO || 7UET61WW (2.07 ) || 02/13/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| <br />
|- <br />
| {{T400}} 6475-FM4 <br />
|| LENOVO || 6475FM4 || ThinkPad T400 || LENOVO || 6475FM4 || Not Available || LENOVO || Not Available || LENOVO || 7UET43WW (1.13 ) || 08/19/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| Before BIOS update<br />
|-<br />
| {{T400}} 6475-FM4 <br />
|| LENOVO || 6475FM4 || ThinkPad T400 || LENOVO || 6475FM4 || Not Available || LENOVO || Not Available || LENOVO || 7UET64WW (2.12 ) || 03/13/2009<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| After BIOS update<br />
|-<br />
| {{T400}} 2765-22G<br />
|| LENOVO || 276522G || ThinkPad T400 || LENOVO || 276522G || Not Available || LENOVO || Not Available || LENOVO || 7UET88WW (3.18 ) || 05/27/2010 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT16WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{T400s}} 2801-CTO<br />
|| LENOVO || 2801CTO || ThinkPad T400s || LENOVO || 2801CTO || Not Available || LENOVO || Not Available || LENOVO || 6HET21WW (1.06 ) || 07/27/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6HHT13WW-1.01]-</nowiki><br />
||<br />
|-<br />
| {{T400s}} 2815-2SG<br />
|| LENOVO || 28152SG || ThinkPad T400s || LENOVO || 28152SG || Not Available || LENOVO || Not Available || LENOVO || 6HET17WW (1.02 ) || 05/18/2009 No code specified for -e.<br />
||<br />
||<br />
|-<br />
| {{T410}} 2522-AT6<br />
|| LENOVO || 2522AT6 || ThinkPad T410 || LENOVO || 2522AT6 || Not Available || LENOVO || Not Available || LENOVO || 6IET65WW (1.25 ) || 06/07/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6IHT35WW-1.10 ]-</nowiki><br />
||<br />
|-<br />
| {{T410}} 2522-2PG<br />
|| LENOVO || 25222PG || ThinkPad T410 || LENOVO || 25222PG || Not Available || LENOVO || Not Available || LENOVO || 6IET55WW (1.15 ) || 03/24/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6IHT32WW-1.06 ]-</nowiki><br />
|| Before BIOS Update<br />
|-<br />
| {{T410}} 2522-2PG<br />
|| LENOVO || 25222PG || ThinkPad T410 || LENOVO || 25222PG || Not Available || LENOVO || Not Available || LENOVO || 6IET75WW (1.35 ) || 02/01/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6IHT39WW-1.14 ]-</nowiki><br />
|| After BIOS Update<br />
|-<br />
| {{T410s}} 2912-39G<br />
|| LENOVO || 291239G || ThinkPad T410s || LENOVO || 291239G || Not Available || LENOVO || Not Available || LENOVO || 6UET27WW (1.05 ) || 01/14/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6UHT24WW-1.05 ]-</nowiki><br />
||<br />
|- <br />
| {{T410s}} 2912-W69<br />
|| LENOVO || 2912W69 || ThinkPad T410s || LENOVO || 2912W69 || Not Available || LENOVO || Not Available || LENOVO || 6UET61WW (1.41 ) || 10/27/2010<br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6UHT31WW-1.12 ]-</nowiki><br />
||<br />
|- <br />
| {{T420}} 4180W1H<br />
|| LENOVO || 4180W1H || ThinkPad T420 || LENOVO || 4180W1H || Not Available || LENOVO || Not Available || LENOVO || 83ET56WW (1.26 ) || 05/13/2011 <br />
|| <nowiki></nowiki><br />
|| After BIOS Update<br />
|-<br />
| {{T420s}} 4174BH4<br />
|| LENOVO || 4174BH4 || ThinkPad T420s || LENOVO || 4174BH4 || Not Available || LENOVO || Not Available || LENOVO || 8CET46WW (1.26 ) || 07/11/2011 <br />
|| <nowiki></nowiki><br />
|| Old BIOS<br />
|-<br />
| {{T420s}} 4174BH4<br />
|| LENOVO || 4174BH4 || ThinkPad T420s || LENOVO || 4174BH4 || Not Available || LENOVO || Not Available || LENOVO || 8CET51WW (1.31 ) || 11/29/2011 <br />
|| <nowiki></nowiki><br />
|| After BIOS upgrade<br />
|-<br />
| {{T420s}} 4171-6SG<br />
|| LENOVO || 41716SG || ThinkPad T420s || LENOVO || 41716SG || Not Available || LENOVO || Not Available || LENOVO || 8CET44WW (1.24 ) || 05/23/2011 <br />
|| <nowiki></nowiki><br />
|| Old BIOS<br />
|-<br />
| {{T420s}} 4171-6SG<br />
|| LENOVO || 41716SG || ThinkPad T420s || LENOVO || 41716SG || Not Available || LENOVO || Not Available || LENOVO || 8CET48WW (1.28 ) || 08/15/2011 <br />
|| <nowiki></nowiki><br />
|| After BIOS Upgrade<br />
|-<br />
| {{T430s}} 2355HMG<br />
|| LENOVO || 2355HMG || ThinkPad T430s || LENOVO || 2355HMG || Not Available || LENOVO || Not Available || LENOVO || G7ET29WW (1.11 ) || 05/24/2012<br />
|| <nowiki></nowiki><br />
|| delivery BIOS<br />
|-<br />
| {{T430s}} 2355HMG<br />
|| LENOVO || 2355HMG || ThinkPad T430s || LENOVO || 2355HMG || Not Defined || LENOVO || Not Available || LENOVO || G7ET63WW (2.05 ) || 11/12/2012 <br />
|| <nowiki></nowiki><br />
|| After BIOS Upgrade<br />
|-<br />
| {{T500}} 2055-A81<br />
|| LENOVO || 2055A81 || ThinkPad T500 || LENOVO || 2055A81 || Not Available || LENOVO || Not Available || LENOVO || 6FET46WW (1.16 ) || 09/24/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{T500}} 2055-A81<br />
|| LENOVO || 2055A81 || ThinkPad T500 || LENOVO || 2055A81 || Not Available || LENOVO || Not Available || LENOVO || 6FET50WW (1.20 ) || 10/30/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{T500}} 2055-45G<br />
|| LENOVO || 205545G || ThinkPad T500 || LENOVO || 205545G || Not Available || LENOVO || Not Available || LENOVO || 6FET49WW (1.19 ) || 10/17/2008<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| <br />
|- <br />
| {{T500}} 2089-AZG<br />
|| LENOVO || 2089AZ9 || ThinkPad T500 || LENOVO || 2089AZ9 || Not Available || LENOVO || Not Available || LENOVO || 6FET79WW (3.09 ) || 10/02/2009<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| {{T-WARN|Outdated BIOS}} before BIOS Update<br />
|-<br />
| {{T500}} 2089-AZG<br />
|| LENOVO || 2089AZ9 || ThinkPad T500 || LENOVO || 2089AZ9 || Not Available || LENOVO || Not Available || LENOVO || 6FET87WW (3.17 ) || 12/03/2010 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT16WW-1.06 ]-</nowiki><br />
|| after BIOS Update / current BIOS+EC<br />
|-<br />
| {{T500}} 2242-CTO<br />
|| LENOVO || 2242CTO || ThinkPad T500 || LENOVO || 2242CTO || Not Available || LENOVO || Not Available || LENOVO || 6FET66WW (2.16 ) || 04/22/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01 ]-</nowiki><br />
|| <br />
|- <br />
| {{T510}} 4313-CTO<br />
|| LENOVO || 4313CTO || ThinkPad T510 || LENOVO || 4313CTO || Not Available || LENOVO || Not Available || LENOVO || 6MET42WW (1.05 ) || 12/22/2009 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT32WW-1.07 ]-</nowiki><br />
||<br />
|- <br />
| {{T510}} 4313-CTO<br />
|| LENOVO || 4313CTO || ThinkPad T510 || LENOVO || 4313CTO || Not Available || LENOVO || Not Available || LENOVO || 6MET49WW (1.12 ) || 02/22/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT33WW-1.08 ]-</nowiki><br />
||<br />
|- <br />
| {{T510}} 4349-5KG<br />
|| LENOVO || 43495KG || ThinkPad T510 || LENOVO || 43495KG || Not Available || LENOVO || Not Available || LENOVO || 6MET87WW (1.47 ) || 07/14/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT46WW-1.21 ]-</nowiki><br />
||<br />
|- <br />
| {{T520}}<br />
|| LENOVO || 42433ZG || ThinkPad T520 || LENOVO || 42433ZG || Not Available || LENOVO || Not Available || LENOVO || 8AET46WW (1.26 ) || 05/18/2011 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====W series====<br />
|-<br />
| {{W500}} 4061-AW9 <br />
|| LENOVO || 4061AW9 || ThinkPad W500 || LENOVO || 4061AW9 || Not Available || LENOVO || Not Available || LENOVO || 6FET79WW (3.09 ) || 10/02/2009 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7VHT14WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4318-CTO<br />
|| LENOVO || 4318CTO || ThinkPad W510 || LENOVO || 4318CTO || Not Available || LENOVO || Not Available || LENOVO || 6NET72WW (1.32 ) || 08/25/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT40WW-1.15 ]-</nowiki><br />
|| Old BIOS<br />
|-<br />
| {{W510}} 4318-CTO<br />
|| LENOVO || 4318CTO || ThinkPad W510 || LENOVO || 4318CTO || Not Available || LENOVO || Not Available || LENOVO || 6NET74WW (1.34 ) || 10/27/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT43WW-1.18 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4319-2PU<br />
|| LENOVO || 43192PU || ThinkPad W510 || LENOVO || 43192PU || Not Available || LENOVO || Not Available || LENOVO || 6NET74WW (1.34 ) || 10/27/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT43WW-1.18 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4319-4CU<br />
|| LENOVO || 43194CU || ThinkPad W510 || LENOVO || 43194CU || Not Available || LENOVO || Not Available || LENOVO || 6NET61WW (1.24 ) || 06/07/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT38WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4319-3CG <br />
|| LENOVO || 43193CG || ThinkPad W510 || LENOVO || 43193CG || Not Available || LENOVO || Not Available || LENOVO || 6NET46WW (1.09 ) || 01/20/2010 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT31WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{W510}} 4389-W1B <br />
|| LENOVO || 4389W1B || ThinkPad W510 || LENOVO || 4389W1B || Not Available || LENOVO || Not Available || LENOVO || 6NET76WW (1.37 ) || 02/24/2011 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6MHT44WW-1.19 ]-</nowiki><br />
||<br />
|-<br />
| {{W700}} 2757-CTO<br />
|| LENOVO || 2757CTO || ThinkPad W700 || LENOVO || 2757CTO || Not Available || LENOVO || Not Available || LENOVO || 7ZETA8WW (2.08 ) || 09/24/2009<br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7ZHT22WW-1.05 ]-</nowiki><br />
||<br />
|- <br />
| {{W700}} 2757-CTO<br />
|| LENOVO || 2757CTO || ThinkPad W700 || LENOVO || 2757CTO || Not Available || LENOVO || Not Available || LENOVO || 7ZETB1WW (2.11 ) || 03/12/2010 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7ZHT24WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====X series====<br />
|-<br />
| {{X20}} 2662-31G<br />
|| IBM || 266231G || Not Available || IBM || 266231G || Not Available || IBM || Not Available || IBM || IZET9DWW (2.25 ) || 04/17/2003<br />
||<br />
||<br />
|-<br />
| {{X20}} 2662-32G<br />
|| IBM || 266232G || Not Available || IBM || 266232G || Not Available || IBM || Not Available || IBM || IZET9AWW (2.22 ) || 09/11/2002<br />
||<br />
||<br />
|-<br />
| {{X22}} 2662-95U<br />
|| IBM || 266295U || Not Available || IBM || 266295U || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003<br />
||<br />
||<br />
|-<br />
| {{X23}} 2662-EBG<br />
|| IBM || 2662EBG || Not Available || IBM || 2662EBG || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003<br />
||<br />
||<br />
|-<br />
| {{X24}} 2662-MPU<br />
|| IBM || 62MPUFX || Not Available || IBM || 62MPUFX || Not Available || IBM || Not Available || IBM || 1DET67WW (1.29 ) || 12/18/2002<br />
||<br />
||<br />
|-<br />
| {{X30}} 2672-42G<br />
|| IBM || 267242G || Not Available || IBM || 267242G || Not Available || IBM || Not Available || IBM || 1KET42WW (1.03 ) || 12/02/2002 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X30}} 2672-42G<br />
|| IBM || 267242G || Not Available || IBM || 267242G || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
|| {{X30}} 2672-4BU<br />
|| IBM || 26724BU || Not Available || IBM || 26724BU || Not Available || IBM || Not Available || IBM || 1KET44WW (1.05 ) || 05/30/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|- <br />
| {{X30}} 2672-4HU<br />
|| IBM || 26724HU || Not Available || IBM || 26724HU || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X30}} 2672-PG3<br />
|| IBM || 2672PG3 || Not Available || IBM || 2672PG3 || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06 ]-</nowiki> <br />
||<br />
|-<br />
| {{X31}} 2672-C2G<br />
|| IBM || 2672C2G || Not Available || IBM || 2672C2G || Not Available || IBM || Not Available || IBM || 1QET36WW (1.04a) || 06/30/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-C2G<br />
|| IBM || 2672C2G || ThinkPad X31 || IBM || 2672C2G || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
|| <br />
|- <br />
| {{X31}} 2672-CEG<br />
|| IBM || 2672CEG || Not Available || IBM || 2672CEG || Not Available || IBM || Not Available || IBM || 1QET36WW (1.04a) || 06/30/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-CEG<br />
|| IBM || 2672CEG || ThinkPad X31 || IBM || 2672CEG || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-JXU<br />
|| IBM || 2672JXU || ThinkPad X31 || IBM || 2672JXU || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-FG2<br />
|| IBM || 2672FG2 || ThinkPad X31 || IBM || 2672FG2 || Not Available || IBM || Not Available || IBM || 1QET73WW (2.11 ) || 02/13/2004 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT16WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-FG2<br />
|| IBM || 2672FG2 || ThinkPad X31 || IBM || 2672FG2 || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X31}} 2672-PG9<br />
|| IBM || 2672PG9 || ThinkPad X31 || IBM || 2672PG9 || Not Available || IBM || Not Available || IBM || 1QET73WW (2.11 ) || 02/13/2004 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT16WW-1.03 ]-</nowiki><br />
|| Before update<br />
|- <br />
| {{X31}} 2672-PG9<br />
|| IBM || 2672PG9 || ThinkPad X31 || IBM || 2672PG9 || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
|| After update<br />
|- <br />
| {{X31}} 2673-C2G<br />
|| IBM || 2673C2G || ThinkPad X31 || IBM || 2673C2G || Not Available || IBM || Not Available || IBM || 1QET65WW (2.03 ) || 10/10/2003 <br />
|| <nowiki></nowiki><br />
||<br />
|- <br />
| {{X31}} 2673-C2G<br />
|| IBM || 2673C2G || ThinkPad X31 || IBM || 2673C2G || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X32}} 2884-A3U<br />
|| IBM || 2884A3U || ThinkPad X32 || IBM || 2884A3U || Not Available || IBM || Not Available || IBM || 1QET94WW (3.00d) || 01/23/2005<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT22WW-1.07b ]-</nowiki><br />
||<br />
|-<br />
| {{X32}} 2672-M3G<br />
|| IBM || 2672M3G || ThinkPad X32 || IBM || 2672M3G || Not Available || IBM || Not Available || IBM || 1QET94WW (3.00d) || 01/23/2005<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT22WW-1.07b ]-</nowiki><br />
||<br />
|-<br />
| {{X32}} 2673-M4U<br />
|| IBM || 2673M4U || ThinkPad X32 || IBM || 2673M4U || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2386-7JG<br />
|| IBM || 23717JG || ThinkPad X40 || IBM || 23717JG || Not Available || IBM || Not Available || IBM || 1UETD1WW (2.06 ) || 03/01/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2386-H4G<br />
|| IBM || 2386H4G || ThinkPad X40 || IBM || 2386H4G || Not Available || IBM || Not Available || IBM || 1UET92WW (1.42 ) || 09/16/2004 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-8NG<br />
|| IBM || 23718NG || ThinkPad X40 || IBM || 23718NG || Not Available || IBM || Not Available || IBM || 1UETB7WW (1.67 ) || 07/15/2005 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHT58WW-1.12 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-Y29<br />
|| IBM || 2371Y29 || ThinkPad X40 || IBM || 2371Y29 || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTA6WW-1.56 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-W9F<br />
|| IBM || 2371W9F || ThinkPad X40 || IBM || 2371W9F || Not Available || IBM || Not Available || IBM || 1UETC8WW (2.03 ) || 09/28/2005 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-W9F<br />
|| IBM || 2371W9F || ThinkPad X40 || IBM || 2371W9F || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-Y1Y<br />
|| IBM || 2371Y1Y || ThinkPad X40 || IBM || 2371Y1Y || Not Available || IBM || Not Available || IBM || 1UET93WW (1.43 ) || 10/13/2004 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-Y1Y<br />
|| IBM || 2371Y1Y || ThinkPad X40 || IBM || 2371Y1Y || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
||<br />
|-<br />
| {{X40}} 2371-Y2A <br />
|| IBM || 2371Y2A || ThinkPad X40 || IBM || 2371Y2A || Not Available || IBM || Not Available || IBM || 1UET93WW (1.43 ) || 10/13/2004 <br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32 ]-</nowiki><br />
|| <br />
|- <br />
| {{X40}} 2371-Y2A<br />
|| IBM || 2371Y2A || ThinkPad X40 || IBM || 2371Y2A || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006<br />
|| <nowiki>Handle 0x0024, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62 ]-</nowiki><br />
|| <br />
|-<br />
| {{X41}} 2525-65G<br />
|| IBM || 252565G || ThinkPad X41 || IBM || 252565G || Not Available || IBM || Not Available || IBM || 74ET63WW (2.08 ) || 10/17/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[74HT25WW-1.00 ]-</nowiki><br />
||<br />
|-<br />
| {{X41}} 2525-FAG<br />
|| IBM || 2525FAG || ThinkPad X41 || IBM || 2525FAG || Not Available || IBM || Not Available || IBM || 74ET61WW (2.06 ) || 03/14/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[74HT26WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X41}} 2525-FAG<br />
|| IBM || 2525FAG || ThinkPad X41 || IBM || 2525FAG || Not Available || IBM || Not Available || IBM || 74ET64WW (2.09 ) || 12/14/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[74HT27WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X41}} 2525-HU1<br />
|| IBM || 2525HU1 || ThinkPad X41 || IBM || 2525HU1 || Not Available || IBM || Not Available || IBM || 74ET48WW (1.17a) || 06/07/2005<br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[74HT25WW-1.00 ]-</nowiki><br />
||<br />
|-<br />
| {{X41t}} 1866-CRG<br />
|| IBM || 1866CRG || ThinkPad X41 Tablet || IBM || 1866CRG || Not Available || IBM || Not Available || IBM || 75ET60WW (2.06 ) || 12/19/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[75HT19WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X41t}} 1866-CTO<br />
|| IBM || 1866CTO || ThinkPad X41 Tablet || IBM || 1866CTO || Not Available || IBM || Not Available || IBM || 75ET60WW (2.06 ) || 12/19/2006 <br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[75HT20WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X41t}} 1866-WSF<br />
|| IBM || 1866WSF || ThinkPad X41 Tablet || IBM || 1866WSF || Not Available || IBM || Not Available || IBM || 75ET57WW (2.03 ) || 06/14/2006<br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[75HT20WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X41t}} 1869-CLG<br />
|| IBM || 1869CLG || ThinkPad X41 Tablet || IBM || 1869CLG || Not Available || IBM || Not Available || IBM || 75ET56WW (2.02 ) || 03/14/2006<br />
|| <nowiki>Handle 0x0025, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[75HT19WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1709-47U<br />
|| LENOVO || 170947U || ThinkPad X60 || LENOVO || 170947U || Not Available || LENOVO || Not Available || LENOVO || 7BET44WW (1.04 ) || 03/13/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[7BHT29WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1709-GDJ<br />
|| LENOVO || 1709GDJ || ThinkPad X60 || LENOVO || 1709GDJ || Not Available || LENOVO || Not Available || LENOVO || 7BETC2WW (2.03 ) || 10/16/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT36WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1706-B69<br />
|| LENOVO || 1706B69 || ThinkPad X60 || LENOVO || 1706B69 || Not Available || LENOVO || Not Available || LENOVO || 7BETC8WW (2.09 ) || 03/14/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT37WW-1.10 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1706-GMG<br />
|| LENOVO || 1706GMG || ThinkPad X60 || LENOVO || 1706GMG || Not Available || LENOVO || Not Available || LENOVO || 7BETC4WW (2.05 ) || 11/17/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT37WW-1.10 ]-</nowiki><br />
||<br />
|-<br />
| {{X60}} 1706-GMG<br />
|| LENOVO || 1706GMG || ThinkPad X60 || LENOVO || 1706GMG || Not Available || LENOVO || Not Available || LENOVO || 7BETD7WW (2.18 ) || 11/20/2008<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1702-55G<br />
|| LENOVO || 170255G || ThinkPad X60s || LENOVO || 170255G || Not Available || LENOVO || Not Available || LENOVO || 7BET44WW (1.04 ) || 03/13/2006<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[7BHT29WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1702-5FG<br />
|| LENOVO || 17025FG || ThinkPad X60s || LENOVO || 17025FG || Not Available || LENOVO || Not Available || LENOVO || 7BET49WW (1.09 ) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT34WW-1.07 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-56G<br />
|| LENOVO || 170456G || ThinkPad X60s || LENOVO || 170456G || Not Available || LENOVO || Not Available || LENOVO || 7BET43WW (1.03 ) || 02/13/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7BHT28WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-56G<br />
|| LENOVO || 1704-56G || ThinkPad X60s || LENOVO || 170456G || Not Available || LENOVO || Not Available || LENOVO || 7BETD5WW (2.16 ) || 03/31/2008<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-5UG<br />
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD2WW (2.13 ) || 08/10/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-5UG<br />
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD3WW (2.14 ) || 10/04/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60s}} 1704-5UG<br />
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD7WW (2.18 ) || 11/20/2008 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X60t}} 6365-CTO<br />
|| LENOVO || 6365CTO || ThinkPad X60 Tablet || LENOVO || 6365CTO || Not Available || LENOVO || Not Available || LENOVO || 7JET25WW (1.10 ) || 08/17/2007 <br />
|| <nowiki>Handle 0x0023, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7JHT13WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{X60t}} 6363-J3G<br />
|| LENOVO || 6363J3G || ThinkPad X60 Tablet || LENOVO || 6363J3G || Not Available || LENOVO || Not Available || LENOVO || 7JET28WW (1.13 ) || 03/31/2008<br />
|| <nowiki>Handle 0x0023, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7JHT13WW-1.04 ]-</nowiki><br />
|| A mean bitch to set up, nothing really worked out of the box :(<br />
|-<br />
| {{X60t}} 6363A7G<br />
|| LENOVO || 6363A7G || ThinkPad X60 Tablet || LENOVO || 6363A7G || Not Available || LENOVO || Not Available || LENOVO || 7JET19WW (1.04 ) || 12/14/2006 <br />
|| <nowiki>Handle 0x0023, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7JHT12WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61}} 7675-4KU<br />
|| LENOVO || 76754KU || ThinkPad X61 || LENOVO || 76754KU || Not Available || LENOVO || Not Available || LENOVO || 7NET30WW (1.11 ) || 11/15/2007<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT24WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61}} 7675-7KU<br />
|| LENOVO || 76757KU || ThinkPad X61 || LENOVO || 76757KU || Not Available || LENOVO || Not Available || LENOVO || 7NETB1WW (2.11 ) || 03/24/2008<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 bytes IBM ThinkPad Embedded Controller -[7MHT25WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7668-CTO<br />
|| LENOVO || 7668CTO || ThinkPad X61s || LENOVO || 7668CTO || Not Available || LENOVO || Not Available || LENOVO || 7NET25WW (1.06 ) || 07/02/2007<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT24WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7669-29G<br />
|| LENOVO || 766929G || ThinkPad X61s || LENOVO || 766929G || Not Available || LENOVO || Not Available || LENOVO || 7NET21WW (1.02 ) || 04/23/2007 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT23WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7669-29G<br />
|| LENOVO || 766929G || ThinkPad X61s || LENOVO || 766929G || Not Available || LENOVO || Not Available || LENOVO || 7NETB9WW (2.19 ) || 11/27/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7667-C56<br />
|| LENOVO || 7667C56 || ThinkPad X61s || LENOVO || 7667C56 || Not Available || LENOVO || Not Available || LENOVO || 7NETB2WW (2.12 ) || 04/18/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61s}} 7667-34G<br />
|| LENOVO || 766734G || ThinkPad X61s || LENOVO || 766734G || Not Available || LENOVO || Not Available || LENOVO || 7NETB9WW (2.19 ) || 11/27/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7762-94G<br />
|| LENOVO || 776294G || ThinkPad X61 Tablet || LENOVO || 776294G || Not Available || LENOVO || Not Available || LENOVO || 7SET38WW (1.24 ) || 10/12/2009 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7762-95G<br />
|| LENOVO || 776295G || ThinkPad X61 Tablet || LENOVO || 776295G || Not Available || LENOVO || Not Available || LENOVO || 7SET22WW (1.08 ) || 11/15/2007 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7762-95G<br />
|| LENOVO || 776295G || ThinkPad X61 Tablet || LENOVO || 776295G || Not Available || LENOVO || Not Available || LENOVO || 7SET36WW (1.22 ) || 11/27/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7762-98U<br />
|| LENOVO || 776298U || ThinkPad X61 Tablet || LENOVO || 776298U || Not Available || LENOVO || Not Available || LENOVO || 7SET34WW (1.20 ) || 07/29/2008 <br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7764-CTO<br />
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET18WW (1.04 ) || 07/03/2007<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7764-CTO<br />
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET23WW (1.09 ) || 12/28/2007<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X61t}} 7764-CTO<br />
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET39WW (1.25 ) || 03/22/2011<br />
|| <nowiki>Handle 0x001F, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-27G<br />
|| LENOVO || 287627G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET21WW (1.04 ) || 12/18/2009<br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT20WW-1.165000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-27G<br />
|| LENOVO || 287627G || ThinkPad X100e || LENOVO || 287627G || Not Available || LENOVO || Not Available || LENOVO || 6XET47WW (1.30 ) || 12/30/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT43WW-1.183000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 3508-4UG<br />
|| LENOVO || 35084UG || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-</nowiki><br />
|| <br />
|-<br />
| {{X100e}} 2876-W1U<br />
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010<br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-W1U<br />
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || 2876W1U || Not Available || LENOVO || Not Available || LENOVO || 6XET44WW (1.27 ) || 07/21/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT42WW-1.182000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-W1U<br />
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || 2876W1U || Not Available || LENOVO || Not Available || LENOVO || 6XET48WW (1.31 ) || 02/17/2011 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT44WW-1.184000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-55G<br />
|| LENOVO || 287655G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET33WW (1.12 ) || 02/11/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT31WW-1.171000]-</nowiki><br />
||<br />
|-<br />
| {{X100e}} 2876-55G<br />
|| LENOVO || 287655G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-</nowiki><br />
||<br />
|- <br />
| {{X100e}} L625 3508-5EG<br />
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET38WW (1.22 ) || 04/09/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT38WW-1.178000]-</nowiki><br />
|| Dual-Core<br />
|- <br />
| {{X100e}} L625 3508-5EG<br />
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET39WW (1.23 ) || 04/30/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT39WW-1.179000]-</nowiki><br />
|| Dual-Core<br />
|-<br />
| {{X100e}} L625 3508-5EG<br />
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET41WW (1.25 ) || 06/02/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6XHT40WW-1.180000]-</nowiki><br />
|| Dual-Core<br />
|-<br />
| {{X200}} 7454-CTO<br />
|| LENOVO || 7454CTO || ThinkPad X200 || LENOVO || 7454CTO || Not Available || LENOVO || Not Available || LENOVO || 6DET38WW (2.02 ) || 12/19/2008 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT21WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X200}} 7454-CTO<br />
|| LENOVO || 7454CTO || ThinkPad X200 || LENOVO || 7454CTO || Not Available || LENOVO || Not Available || LENOVO || 6DET40WW (2.04 ) || 02/13/2009 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{X200}} 7458-E46<br />
|| LENOVO || 7458E46 || ThinkPad X200 || LENOVO || 7458E46 || Not Available || LENOVO || Not Available || LENOVO || 7XET57WW (3.07 ) || 08/13/2009 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{X200}} 7459-GH6<br />
|| LENOVO || 7459GH6 || ThinkPad X200 || LENOVO || 7459GH6 || Not Available || LENOVO || Not Available || LENOVO || 6DET72WW (3.22 ) || 10/25/2012 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT25WW-.07 ]-</nowiki><br />
||<br />
|-<br />
| {{X200s}} 7466-3SG<br />
|| LENOVO || 74663SG || ThinkPad X200s || LENOVO || 74663SG || Not Available || LENOVO || Not Available || LENOVO || 6DET64WW (3.14 ) || 06/23/2010 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT24WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X200s}}<br />
|| LENOVO || 74695HG || ThinkPad X200s || LENOVO || 74695HG || Not Available || LENOVO || Not Available || LENOVO || 6DET33WW (1.10 ) || 10/27/2008 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT21WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{X200s}} <br />
|| LENOVO || 7469WDR || ThinkPad X200s || LENOVO || 7469WDR || Not Available || LENOVO || Not Available || LENOVO || 6DET44WW (2.08 ) || 04/22/2009 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04 ]-</nowiki><br />
|| <br />
|-<br />
| {{X200s}} 7469-88G<br />
|| LENOVO || 746988G || ThinkPad X200s || LENOVO || 746988G || Not Available || LENOVO || Not Available || LENOVO || 6DET64WW (3.14 ) || 06/23/2010<br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7XHT24WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X200 Tablet}} 7449-F9U<br />
|| LENOVO || 7449F9U || ThinkPad X200 Tablet || LENOVO || 7449F9U || Not Available || LENOVO || Not Available || LENOVO || 7WET24WW (1.02 ) || 09/09/2008 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7WHT14WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X200 Tablet}} 7449-FWG<br />
|| LENOVO || 7449FWG || ThinkPad X200T || LENOVO || 7449FWG || Not Available || LENOVO || Not Available || LENOVO || 7WET68WW (3.18 ) || 03/08/2011 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7WHT19WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X200 Tablet}} 7449-FWG<br />
|| LENOVO || 7449FWG || ThinkPad X200T || LENOVO || 7449FWG || Not Available || LENOVO || Not Available || LENOVO || 7WET71WW (3.21 ) || 11/29/2012 <br />
|| <nowiki>Handle 0x001D, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7WHT19WW-1.06 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3626-W7V<br />
|| LENOVO || 3626W7V || ThinkPad X201 || LENOVO || 3626W7V || Not Available || LENOVO || Not Available || LENOVO || 6QET44WW (1.14 ) || 04/20/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3626-PN2<br />
|| LENOVO || 3626PN3 || ThinkPad X201 || LENOVO || 3626PN3 || Not Available || LENOVO || Not Available || LENOVO || 6QET53WW (1.23 ) || 09/15/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT30WW-1.11 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET61WW (1.31 ) || 10/26/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT31WW-1.12 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET64WW (1.34 ) || 02/24/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT32WW-1.13 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET67WW (1.37 ) || 06/29/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET68WW (1.38 ) || 12/01/2011 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET69WW (1.39 ) || 04/26/2012 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-ZCZ<br />
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET70WW (1.40 ) || 10/11/2012 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201}} 3680-FAA<br />
|| LENOVO || 3680FAA || ThinkPad X201 || LENOVO || 3680FAA || Not Available || LENOVO || Not Available || LENOVO || 6QET70WW (1.40 ) || 10/11/2012 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{X201s}} 5129-CTO<br />
|| LENOVO || 5129CTO || ThinkPad X201s || LENOVO || 5129CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET44WW (1.14 ) || 04/20/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09 ]-</nowiki><br />
|| <br />
|- <br />
| {{X201 Tablet}} 3093-3YG<br />
|| LENOVO || 30933YG || ThinkPad X201 Tablet || LENOVO || 30933YG || Not Available || LENOVO || Not Available || LENOVO || 6QET45WW (1.15 ) || 04/26/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6SHT28WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X201 Tablet}} 3093-W11<br />
|| LENOVO || 3093W11 || ThinkPad X201 Tablet || LENOVO || 3093W11 || Not Available || LENOVO || Not Available || LENOVO || 6QET46WW (1.16 ) || 06/07/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6SHT28WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X201 Tablet}} 0831-CTO<br />
|| LENOVO || 0831CTO || ThinkPad X201 Tablet || LENOVO || 0831CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET61WW (1.31 ) || 10/26/2010<br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6SHT31WW-1.12 ]-</nowiki><br />
|| Before BIOS update<br />
|- <br />
| {{X201 Tablet}} 0831-CTO<br />
|| LENOVO || 0831CTO || ThinkPad X201 Tablet || LENOVO || 0831CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET67WW (1.37 ) || 06/29/2011<br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6SHT33WW-1.14 ]-</nowiki><br />
|| After BIOS update from 1.31<br />
|-<br />
| {{X201i}} 3249-CTO <br />
|| LENOVO || 3249CTO || ThinkPad X201 || LENOVO || 3249CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET45WW (1.15 ) || 04/26/2010 <br />
|| <nowiki>Handle 0x0027, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09 ]-</nowiki><br />
||<br />
|-<br />
| {{X220}}<br />
|| LENOVO || 4287CTO || ThinkPad X220 || LENOVO || 4287CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET41WW (1.11 ) || 03/28/2011 <br />
|| <nowiki></nowiki><br />
|| <br />
|-<br />
| {{X220}}<br />
|| LENOVO || 4286CTO || ThinkPad X220 || LENOVO || 4286CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET51WW (1.21 ) || 08/02/2011<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X220}}<br />
|| LENOVO || 4286CTO || ThinkPad X220 || LENOVO || 4286CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET56WW (1.26 ) || 12/01/2011<br />
|| <nowiki></nowiki><br />
||<br />
|- <br />
| {{X220 Tablet}}<br />
|| LENOVO || 42992PG || ThinkPad X220 Tablet || LENOVO || 42992PG || Not Available || LENOVO || Not Available || LENOVO || 8DET47WW (1.17 ) || 05/31/2011 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X220 Tablet}}<br />
|| LENOVO || 4299AS6 || ThinkPad X220 Tablet || LENOVO || 4299AS6 || Not Available || LENOVO || Not Available || LENOVO || 8DET49WW (1.19 ) || 07/01/2011 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X220 Tablet}}<br />
|| LENOVO || 4294CTO || ThinkPad X220 Tablet || LENOVO || 4294CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET67WW (1.37 ) || 12/05/2012<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X230}}<br />
|| LENOVO || 23205NG || ThinkPad X230 || LENOVO || 23205NG || Not Defined || LENOVO || Not Available || LENOVO || G2ET92WW (2.52 ) || 02/22/2013 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X300}} 6478-14G<br />
|| LENOVO || 647814G || ThinkPad X300 || LENOVO || 647814G || Not Available || LENOVO || Not Available || LENOVO || 7TET23WW (1.00d) || 01/17/2008 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c ]-</nowiki><br />
||<br />
|-<br />
| {{X300}} 6478-18M<br />
|| LENOVO || 647818M || ThinkPad X300 || LENOVO || 647818M || Not Available || LENOVO || Not Available || LENOVO || 7TET26WW (1.02a) || 02/27/2008 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c ]-</nowiki><br />
||<br />
|-<br />
| {{X300}} 6477-17G<br />
|| LENOVO || 647717G || ThinkPad X300 || LENOVO || 647717G || Not Available || LENOVO || Not Available || LENOVO || 7TET33WW (1.07 ) || <br />
07/02/2008 <br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c ]-</nowiki><br />
||<br />
|-<br />
| {{X300}} 6477-17G<br />
|| LENOVO || 647717G || ThinkPad X300 || LENOVO || 647717G || Not Available || LENOVO || Not Available || LENOVO || 7TET35WW (1.09 ) || 01/20/2009<br />
|| <nowiki>Handle 0x0022, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7THT16WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{X301}} 2777-CTO<br />
|| LENOVO || 2777CTO || ThinkPad X301 || LENOVO || 2777CTO || Not Available || LENOVO || Not Available || LENOVO || 6EET19WW (1.00g) || 07/30/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6EHT07WW-1.00b ]-</nowiki><br />
||<br />
|-<br />
| {{X301}} 2777-CTO<br />
|| LENOVO || 2777CTO || ThinkPad X301 || LENOVO || 2777CTO || Not Available || LENOVO || Not Available || LENOVO || 6EET21WW (1.02 ) || 10/09/2008 <br />
|| <nowiki>Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6EHT09WW-1.02 ]-</nowiki><br />
|| <br />
|-<br />
| {{X1}} 1294-2NG<br />
|| LENOVO || 12942NG || ThinkPad X1 || LENOVO || 12942NG || Not Available || LENOVO || Not Available || LENOVO || 8MET18WW (1.06 ) || 05/19/2011 <br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====Z series====<br />
|-<br />
| {{Z60t}} 2511-FEU<br />
|| IBM || 2511FEU || ThinkPad Z60t || IBM || 2511FEU || Not Available || IBM || Not Available || IBM || 77ET42WW (1.05 ) || 11/19/2005<br />
|| <nowiki> String 1: IBM ThinkPad Embedded Controller -[77HT28WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{Z60t}} 2511-FFG<br />
|| IBM || 2511FFG || ThinkPad Z60t || IBM || 2511FFG || Not Available || IBM || Not Available || IBM || 77ET64WW (1.24 ) || 02/27/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[77HT57WW-1.17 ]-</nowiki><br />
||<br />
|- <br />
| {{Z60m}} 2529-ETG<br />
|| IBM || 2529ETG || ThinkPad Z60m || IBM || 2529ETG || Not Available || IBM || Not Available || IBM || 77ET59WW (1.19 ) || 04/24/2006<br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[77HT54WW-1.14 ]-</nowiki><br />
||<br />
|-<br />
| {{Z60m}} 2529-ETG<br />
|| IBM || 2529ETG || ThinkPad Z60m || IBM || 2529ETG || Not Available || IBM || Not Available || IBM || 77ET64WW (1.24 ) || 02/27/2007 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[77HT58WW-1.18 ]-</nowiki><br />
||<br />
|-<br />
| {{Z60m}} 2529-FBG<br />
|| IBM || 2529FBG || ThinkPad Z60m || IBM || 2529FBG || Not Available || IBM || Not Available || IBM || 77ET62WW (1.22 ) || 11/21/2006 <br />
|| <nowiki>Handle 0x0029, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[77HT58WW-1.18 ]-</nowiki><br />
||<br />
|- <br />
| {{Z60m}} 2529-FKG<br />
|| IBM || 2529FKG || ThinkPad Z60m || IBM || 2529FKG || Not Available || IBM || Not Available || IBM || 77ET42WW (1.05 ) || 11/19/2005<br />
|| <nowiki>String 1: IBM ThinkPad Embedded Controller -[77HT28WW-1.02 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9453-A11<br />
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET48WW (1.08 ) || 05/26/2006<br />
|| <nowiki>String 1: IBM ThinkPad Embedded Controller -[7FHT21WW-1.03 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9452-8QG<br />
|| LENOVO || 94528QG || ThinkPad Z61m || LENOVO || 94528QG || Not Available || LENOVO || Not Available || LENOVO || 7FETA4WW (2.22 ) || 10/19/2007<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9450-H9G<br />
|| LENOVO || 9450H9G || ThinkPad Z61m || LENOVO || 9450H9G || Not Available || LENOVO || Not Available || LENOVO || 7FETA7WW (2.25 ) || 06/03/2008 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
|| <br />
|- <br />
| {{Z61m}} 9452-W5Q<br />
|| LENOVO || 9452W5Q || ThinkPad Z61m || LENOVO || 9452W5Q || Not Available || LENOVO || Not Available || LENOVO || 7FETA6WW (2.24 ) || 03/13/2008<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9543-A11<br />
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9543-A11<br />
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET93WW (2.11 ) || 11/10/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61m}} 9453-A11<br />
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61p}} 9453-A12<br />
|| LENOVO || 9453A12 || ThinkPad Z61p || LENOVO || 9453A12 || Not Available || LENOVO || Not Available || LENOVO || 7FET45WW (1.05 ) || 04/20/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7FHT19WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61p}} 9450-3AU<br />
|| LENOVO || 94503AU || ThinkPad Z61p || LENOVO || 94503AU || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-2CU<br />
|| LENOVO || 94402CU || ThinkPad Z61t || LENOVO || 94402CU || Not Available || LENOVO || Not Available || LENOVO || 7FET50WW (1.10 ) || 06/20/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT22WW-1.04 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9443-4GG<br />
|| LENOVO || 94434GG || ThinkPad Z61t || LENOVO || 94434GG || Not Available || LENOVO || Not Available || LENOVO || 7FET96WW (2.14 ) || 12/25/2006 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FET91WW (2.09 ) || 11/01/2006<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
|| <br />
|- <br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FET99WW (2.17 ) || 04/17/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA0WW (2.18 ) || 05/17/2007 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA7WW (2.25 ) || 06/03/2008 <br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
| {{Z61t}} 9440-CTO<br />
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA9WW (2.27 ) || 08/26/2009<br />
|| <nowiki>Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08 ]-</nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====Lenovo 3000 series====<br />
|-<br />
| [[:Category:Lenovo 3000| Lenovo 3000]] N200 TY2BAFR<br />
|| LENOVO || 0769BAG || 3000 N200 || LENOVO || IEL10 || Reference || No Enclosure || N/A || LENOVO || 68ET24WW || 08/15/2007 <br />
||<br />
|| {{T-WARN|Non-ThinkPad EC firmware and BIOS}}<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====Edge series====<br />
|-<br />
| ThinkPad Edge 13 AMD L325<br />
|| LENOVO || 01976GG || ThinkPad Edge 13"IAL# || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET25WW (1.12 ) || 01/15/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT19WW-1.164000]-</nowiki><br />
|| <br />
|-<br />
| Thinkpad Edge 13 AMD L325<br />
|| LENOVO || 01972MG || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET32WW (1.19 ) || 07/23/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT26WW-1.171000]-</nowiki><br />
||<br />
|-<br />
| Thinkpad Edge 13 AMD L625<br />
|| LENOVO || 019734Q || ThinkPad Edge 13"IAL# || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET24WW (1.11 ) || 01/14/2010<br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT19WW-1.164000]-</nowiki><br />
||<br />
|-<br />
| Thinkpad Edge 13 AMD L625<br />
|| LENOVO || 019734Q || ThinkPad Edge 13"IAL# || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET31WW (1.18 ) || 05/25/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT24WW-1.169000]-</nowiki><br />
||<br />
|-<br />
| Thinkpad Edge 13 AMD L625<br />
|| LENOVO || 019734Q || ThinkPad Edge 13"IAL# || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET34WW (1.21 ) || 01/07/2011<br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT27WW-1.172000]-</nowiki><br />
||<br />
|-<br />
|| Thinkpad Edge 13" AMD<br />
|| LENOVO || 0197RW3 || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET32WW (1.19 ) || 07/23/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT26WW-1.171000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 13,3" AMD <br />
|| LENOVO || 01976WG || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET30WW (1.17 ) || 04/29/2010 <br />
|| <nowiki>Handle 0x000D, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6ZHT23WW-1.168000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 13,3" NUD2EGE<br />
|| LENOVO || 01962EG || ThinkPad Edge 13"IAL# || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET25WW (1.10 ) || 01/15/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT19WW-1.164000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 13,3" NUD2EGE<br />
|| LENOVO || 01962EG || ThinkPad Edge || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET33WW (1.16 ) || 09/10/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT26WW-1.171000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 13,3" NUD2EGE<br />
|| LENOVO || 01962EG || ThinkPad Edge || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET29WW (1.12 ) || 03/05/2010<br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT21WW-1.166000]-</nowiki><br />
||<br />
|- <br />
|| ThinkPad Edge 13,3" Intel<br />
|| LENOVO || 0196CTO || ThinkPad Edge || LENOVO || 0196CTO || Not Available || LENOVO || Not Available || LENOVO || 6YET30WW (1.13 ) || 04/29/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT23WW-1.168000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 13,3" Intel NUD5MMH<br />
|| LENOVO || 01965MG || ThinkPad Edge || LENOVO || 01965MG || Not Available || LENOVO || Not Available || LENOVO || 6YET30WW (1.13 ) || 04/29/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT23WW-1.168000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 13,3" Intel NUD5PGE<br />
|| LENOVO || 01965PG || ThinkPad Edge || LENOVO || 01965PG || Not Available || LENOVO || Not Available || LENOVO || 6YET29WW (1.12 ) || 03/05/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT21WW-1.166000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 13,3" Intel NUD5PGE<br />
|| LENOVO || 01965PG || ThinkPad Edge || LENOVO || 01965PG || Not Available || LENOVO || Not Available || LENOVO || 6YET33WW (1.16 ) || 09/10/2010 <br />
|| <nowiki>Handle 0x0018, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[6YHT26WW-1.171000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 14" NVP3YRT<br />
|| LENOVO || 05783YG || ThinkPad Edge || LENOVO || 05783YG || Not Available || LENOVO || Not Available || LENOVO || 80ET29WW (1.06 ) || 03/24/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT22WW-1.166000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 14" 639D640<br />
|| LENOVO || 0578A19 || ThinkPad Edge || LENOVO || 0578A19 || Not Available || LENOVO || Not Available || LENOVO || 80ET29WW (1.06 ) || 03/24/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT22WW-1.166000]-</nowiki><br />
|| <br />
|- <br />
| ThinkPad Edge 14" Intel i3<br />
|| LENOVO || 0578N6U || ThinkPad Edge || LENOVO || 0578N6U || Not Available || LENOVO || Not Available || LENOVO || 80ET49WW (1.26 ) || 04/13/2011<br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT35WW-1.190000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 14" Intel i3<br />
|| LENOVO || 0578N6U || ThinkPad Edge || LENOVO || 0578N6U || Not Available || LENOVO || Not Available || LENOVO || 80ET52WW (1.29 ) || 05/30/2011<br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT37WW-1.210000]-</nowiki><br />
|| {{T-WARN|Modded Lenovo BIOS with wifi whitelist removed}}<br />
||<br />
|-<br />
| ThinkPad Edge 14" Intel i5 M430<br />
|| LENOVO || 0578BHA || ThinkPad Edge || LENOVO || 0578BHA || Not Available || LENOVO || Not Available || LENOVO || 80ET31WW (1.08 ) || 04/28/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT23WW-1.167000]-</nowiki><br />
||<br />
|-<br />
| ThinkPad Edge 14" Intel i3 M370<br />
|| LENOVO || 0578JHG || ThinkPad Edge || LENOVO || 0578JHG || Not Available || LENOVO || Not Available || LENOVO || 80ET43WW (1.20 ) || 11/17/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT33WW-1.177000]-</nowiki><br />
||<br />
|- <br />
|| ThinkPad Edge 15" NVL7VGE<br />
|| LENOVO || 03017VG || ThinkPad Edge || LENOVO || 03017VG || Not Available || LENOVO || Not Available || LENOVO || 80ET36WW (1.13 ) || 06/04/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT29WW-1.173000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 15" 0301RJ7<br />
|| LENOVO || 0301RJ7 || ThinkPad Edge || LENOVO || 0301RJ7 || Not Available || LENOVO || Not Available || LENOVO || 80ET43WW (1.20 ) || 11/17/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT33WW-1.177000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 15" AMD<br />
|| LENOVO || 0302CTO || ThinkPad Edge || LENOVO || 0302CTO || Not Available || LENOVO || Not Available || LENOVO || 82ET63WW (2.04 ) || 01/07/2011 <br />
|| <nowiki>Handle 0x0015, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[82HT28WW-1.174000]-</nowiki><br />
||<br />
|-<br />
|| ThinkPad Edge 15" AMD<br />
|| LENOVO || 0302CTO || ThinkPad Edge || LENOVO || 0302CTO || Not Available || LENOVO || Not Available || LENOVO || 82ET75WW (2.15 ) || 01/28/2011 <br />
|| <nowiki>Handle 0x0015, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[82HT28WW-1.174000]-</nowiki><br />
||<br />
|- <br />
| ThinkPad Edge E420s<br />
|| LENOVO || 440128U || ThinkPad Edge E420s || LENOVO || 440128U || Not Available || LENOVO || Not Available || LENOVO || 8JET26WW (1.08 ) || 03/24/2011<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| ThinkPad Edge E420s<br />
|| LENOVO || 440128U || ThinkPad Edge E420s || LENOVO || 440128U || Not Available || LENOVO || Not Available || LENOVO || 8JET29WW (1.11 ) || 05/10/2011<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
====L series====<br />
|-<br />
| L512<br />
|| LENOVO || 4444CTO || ThinkPad L512 || LENOVO || 4444CTO || Not Available || LENOVO || Not Available || LENOVO || 81ET40WW (1.16 ) || 06/22/2010 <br />
|| <nowiki>Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[81HT25WW-1.168000]-</nowiki><br />
||<br />
|-<br />
|}<br />
</div><br />
<br />
==Adding entries==<br />
<br />
Click the "Edit" link on the appropriate series above and add an entry of the following form:<br />
:<tt>| </tt><i>description of your model</i><br />
:<i>data line 1</i><br />
:<i>data line 2</i><br />
:<tt>||</tt><br />
:<tt>|-</tt><br />
<br />
where the two data lines are generated by the following <tt>bash</tt> command:<br />
<br />
<pre><br />
for X in system-{manufacturer,product-name,version} \<br />
baseboard-{manufacturer,product-name,version} \<br />
chassis-{manufacturer,version} bios-{vendor,version,release-date}; do \<br />
echo -n "|| `sudo /usr/sbin/dmidecode -s $X` " \<br />
| perl -pe 's/\n/\\n/' ; done; \<br />
sudo /usr/sbin/dmidecode | perl -0777 -ne \<br />
'm/\n(.*).\n.*\n(.*Embedded Cont.*)\n/i; print "\n|| <nowiki><</nowiki>nowiki>$1$2</nowiki>\n"'<br />
</pre><br />
<br />
If you can, please also test [[tp_smapi]] and update its [[tp_smapi#Model-specific_status|model-specific status table]].<br />
<br />
==Software using ThinkPad DMI IDs==<br />
* [[HDAPS]] driver whitelist<br />
* [[tp_smapi]] driver whitelist<br />
* [[thinkpad-acpi]] driver quirk list</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_IrDA&diff=51436How to make use of IrDA2011-04-19T17:25:47Z<p>Bombenbach: /* Success reports */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#efefef; align:right;"><br />
The purpose of this document is to get the [[IrDA]] hardware in your ThinkPad operational, setting up communication to other devices is not covered. However, the external links section can prove useful for this.<br />
</div><br />
|}<br />
<br />
== Serial IR (SIR) ==<br />
SIR is limited to serial datarates up to 115.2Kb/s<br />
<br />
On modern distributions all configuration might be taken care of automatically by starting the irda service {{cmdroot|service irda start}}. If not try the following;<br />
<br />
To use it, run {{cmdroot|irattach /dev/ttyS1 -s; modprobe ircomm-tty}} <br />
<br />
Then turn on your IrDA-capable device and put it within range, and point your software (e.g., <tt>minicom</tt>) to {{path|/dev/irda0}}.<br />
<br />
===Kernel configuration===<br />
<br />
Edit {{path|/etc/modprobe.conf}} and add the following lines<br />
alias tty-ldisc-11 irtty-sir<br />
alias char-major-161 ircomm-tty<br />
<br />
== Fast IR (FIR) ==<br />
FIR is the preferred mode of IrDA operation and operates at a maximum bandwidth of 4 Mbps<br />
<br />
On modern distributions this should all be automatically handled by simply starting the idra service {{cmdroot|service irda start}}. If not try the following;<br />
<br />
===Kernel configuration===<br />
Edit {{path|/etc/modprobe.conf}} and add the following lines<br />
<br />
alias irda0 nsc-ircc<br />
<br />
Make sure that setserial is in right directory (e.g not in /usr/bin/setserial).After that if irdadump still gives nothing try: <br />
echo 1 > /proc/sys/net/irda/discovery<br />
<br />
== Known problems ==<br />
* If you read something like "ttyS1: LSR safety check engaged!" and "irattach: tcgetattr: Input/output error" in the system log, try limiting the FIR max baud rate (echo 57600 > /proc/sys/net/irda/max_baud_rate). This did the trick for me when I was trying to synchronize my Ericsson T39m with my Thinkpad R51 (multisync, evolution-2.8, KDE 3.5.5, openSUSE 10.2).<br />
* If you get an error in syslog like "nsc_ircc_open(), can't get iobase of 0x2f8" it probably means you have manually specified resources for IrDA in the BIOS. When you do that you effectively allow the serial driver to take control, and as a result the nsc_ircc driver can no longer take control of the resources. Options are to either restore the BIOS settings for IrDA to factory default, or you can work around it by using setserial to clear the resources before loading the nsc_ircc kernel module<br />
setserial /dev/ttyS1 uart none port 0 irq 0; modprobe nsc_ircc<br />
<br />
== Some other things you might want to do with IrDA ==<br />
* add fast PPP support:<br />
:{{cmdroot|modprobe irnet}}<br />
* if needed, limit further the size of the transmit window<br />
:{{cmdroot|echo 1 > /proc/sys/net/irda/max_tx_window}}<br />
* set the connection speed to 4Mbit in FIR mode:<br />
:{{cmdroot|echo 4000000 > /proc/sys/net/irda/max_baud_rate}}<br />
<br />
==LIRC and IrDA==<br />
LIRC allows the use of infrared remote controls with Linux as input devices. This can be especially useful to control applications like mplayer, xine, mythtv or boxee. Usually, IrDA ports are not compatible with LIRC, but you may have luck using lirc_sir, as follows;<br />
{{NOTE|lirc_sir is incompatible with the regular Linux IrDA drivers (nsc_ircc). You can only use one at a time, and will have to reboot before you can switch}}<br />
{{NOTE|Even if your successful in getting this to work, you might find that the distance between remote control and receiver on the ThinkPad cannot exceed ~50cm, rendering it effectively useless. This can vary depending on Remote and ThinkPad used, there has been one successful report of a T60 with >2M}}<br />
====Success reports====<br />
* R40<br />
* T41<br />
* T60<br />
* 600<br />
* Z61m (the distance between remote control and receiver highly depends on the remote control used. With an Acer STRC-100 I get only 80 cm compared to 180 cm with a Sony RM-SRG440)<br />
<br />
====Failure reports====<br />
lirc_sir does not always work, particular on newer machines it seems the module loads when following these instructions, but the device {{path|/dev/lirc0}} cannot be opened and returns a device or resource busy. You can simply test this by typing {{cmdroot|cat /dev/lirc0}}<br />
* T60<br />
===Configuring lirc_sir===<br />
Go into your BIOS setup, and ensure that Infrared is fully enabled and that resources are assigned. I suggest using IO 2f8 and IRQ 3.<br />
<br />
Boot into Linux, and first ensure the setserial program is installed. Running {{cmdroot|/bin/setserial /dev/ttyS1}} should return at this point:<br />
/dev/ttyS1, UART: undefined, Port: 0x02f8, IRQ: 3<br />
If setserial cannot be found, install the setserial package with your distributions package management software<br />
<br />
Then create a file {{path|/etc/modprobe.d/lirc.conf}} with the following content:<br />
# prevent nsc_ircc from loading (blacklist might not be enough)<br />
blacklist nsc_ircc<br />
install nsc_ircc /bin/true<br />
# pass options to lirc_sir to load it on ttyS1<br />
options lirc_sir io=0x2f8 irq=3<br />
# ensure serial resources are cleared before loading lirc_sir<br />
# not doing so can result in a device busy error, or can even hang your system<br />
install lirc_sir /bin/setserial /dev/ttyS1 uart none port 0 irq 0; /sbin/modprobe --ignore-install lirc_sir<br />
<br />
At this point it is best to reboot, to ensure that nsc_ircc was never loaded. Several things can go wrong if the steps are not followed accurately. You might get an error when loading lirc_sir that the device is busy, or your system may even hang.<br />
<br />
Now do a {{cmdroot|modprobe lirc_sir}} and check {{cmdroot|dmesg}} output. You should see something like this:<br />
lirc_dev: IR Remote Control driver registered, major 61<br />
lirc_dev: lirc_register_plugin: sample_rate: 0<br />
lirc_sir: I/O port 0x02f8, IRQ 3.<br />
lirc_sir: Installed.<br />
<br />
===Configuring LIRC===<br />
If you did not yet install LIRC, then do so now using your distributions package management system.<br />
<br />
====Ubuntu====<br />
{{NOTE|Successfully tested under Ubuntu 10.04}}<br />
<br />
Make sure your {{path|/etc/lirc/hardware.conf}} looks like this:<br />
REMOTE="SIR IrDA (built-in IR ports)"<br />
REMOTE_MODULES="lirc_dev lirc_sir"<br />
REMOTE_DRIVER=""<br />
REMOTE_DEVICE="/dev/lirc0"<br />
REMOTE_LIRCD_CONF=""<br />
REMOTE_LIRCD_ARGS=""<br />
TRANSMITTER="None"<br />
TRANSMITTER_MODULES=""<br />
TRANSMITTER_DRIVER=""<br />
TRANSMITTER_DEVICE=""<br />
TRANSMITTER_LIRCD_CONF=""<br />
TRANSMITTER_LIRCD_ARGS=""<br />
START_LIRCD="true"<br />
START_LIRCMD=""<br />
LOAD_MODULES=""<br />
LIRCMD_CONF=""<br />
FORCE_NONINTERACTIVE_RECONFIGURATION="false"<br />
<br />
After this, start (or re-start) the lirc daemon, and set it to automatically start on bootup.<br />
<br />
{{cmdroot|sudo service lirc restart}}<br><br />
{{cmdroot|sudo update-rc.d lirc defaults}}<br />
<br />
====Fedora====<br />
On Fedora the default LIRC device is already set to /dev/lirc0<br />
<br />
{{Todo|best way of ensuring lirc_sir is loaded before lircd is started? The config file /etc/sysconfig/lirc does not seem to help. Perhaps an alias line in the modules config file if someone knows the correct syntax?}}<br />
<br />
{{cmdroot|service lirc restart}}<br><br />
{{cmdroot|chkconfig lirc on}}<br />
<br />
===Testing LIRC===<br />
Now we are ready to test if we can receive IR data from a remote control.<br />
<br />
Try running {{cmdroot|irrecord -d /dev/lirc0 foo}} and follow the onscreen instructions. When asked keep a button on a remote pressed while pointing at the ThinkPad IR port and you should see dots appear. After having configured your specific remote control, copy {{path|foo}} to {{path|/etc/lirc/lircd.conf}} and restart LIRC. You can use '''irw''' to check whether the remote control is working properly. <br />
<br />
To make it perform something useful, try '''irexec'''. It looks for a {{path|.lircrc}} in your home directory. If you don't have one, here is an example which maps KEY_UP and KEY_DOWN (key names can be chosen while performing '''irrecord''') to Up and Down.<br />
<pre><br />
begin<br />
button = KEY_UP<br />
prog = irexec<br />
config = /usr/bin/xvkbd -xsendevent -text "\\[Up]"<br />
mode = order<br />
flags = quit<br />
end<br />
<br />
begin<br />
button = KEY_DOWN<br />
prog = irexec<br />
config = /usr/bin/xvkbd -xsendevent -text "\\[Down]"<br />
mode = order<br />
flags = quit<br />
end<br />
</pre><br />
<br />
Configuring remote controls is out of scope for this document and you should check the LIRC website for detailed instructions. But if your using Gnome you might want to try {{cmd|gnome-lirc-properties|$}}, or in the case of KDE {{cmd|kdelirc|$}}.<br />
<br />
{{NOTE|Current versions of gnome-lirc-properties (at least up to 0.3.1) do not support lirc_sir, you need to first edit {{path|/usr/share/gnome-lirc-properties/receivers.conf}} and add the following:<br><pre>[Generic: IrDA SIR Receiver]<br />
kernel-module = lirc_sir<br />
device-nodes = /dev/lirc0</pre><br />
After this you can select Generic - IrDA SIR Receiver from the drop down menus (autodetect will not pick it up)}}<br />
<br />
== External Sources ==<br />
*[http://irda.sourceforge.net/ Linux-IrDA Project] (External)<br />
*[http://pcmcia-cs.sourceforge.net/ Linux PCMCIA Project] (External)<br />
*[http://tpctl.sourceforge.net/ tpctl homepage] (External)<br />
*[http://www.lirc.org/ Linux Infrared Remote Control (LIRC)] (External)</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_IrDA&diff=51435How to make use of IrDA2011-04-19T17:22:22Z<p>Bombenbach: /* Testing LIRC */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#efefef; align:right;"><br />
The purpose of this document is to get the [[IrDA]] hardware in your ThinkPad operational, setting up communication to other devices is not covered. However, the external links section can prove useful for this.<br />
</div><br />
|}<br />
<br />
== Serial IR (SIR) ==<br />
SIR is limited to serial datarates up to 115.2Kb/s<br />
<br />
On modern distributions all configuration might be taken care of automatically by starting the irda service {{cmdroot|service irda start}}. If not try the following;<br />
<br />
To use it, run {{cmdroot|irattach /dev/ttyS1 -s; modprobe ircomm-tty}} <br />
<br />
Then turn on your IrDA-capable device and put it within range, and point your software (e.g., <tt>minicom</tt>) to {{path|/dev/irda0}}.<br />
<br />
===Kernel configuration===<br />
<br />
Edit {{path|/etc/modprobe.conf}} and add the following lines<br />
alias tty-ldisc-11 irtty-sir<br />
alias char-major-161 ircomm-tty<br />
<br />
== Fast IR (FIR) ==<br />
FIR is the preferred mode of IrDA operation and operates at a maximum bandwidth of 4 Mbps<br />
<br />
On modern distributions this should all be automatically handled by simply starting the idra service {{cmdroot|service irda start}}. If not try the following;<br />
<br />
===Kernel configuration===<br />
Edit {{path|/etc/modprobe.conf}} and add the following lines<br />
<br />
alias irda0 nsc-ircc<br />
<br />
Make sure that setserial is in right directory (e.g not in /usr/bin/setserial).After that if irdadump still gives nothing try: <br />
echo 1 > /proc/sys/net/irda/discovery<br />
<br />
== Known problems ==<br />
* If you read something like "ttyS1: LSR safety check engaged!" and "irattach: tcgetattr: Input/output error" in the system log, try limiting the FIR max baud rate (echo 57600 > /proc/sys/net/irda/max_baud_rate). This did the trick for me when I was trying to synchronize my Ericsson T39m with my Thinkpad R51 (multisync, evolution-2.8, KDE 3.5.5, openSUSE 10.2).<br />
* If you get an error in syslog like "nsc_ircc_open(), can't get iobase of 0x2f8" it probably means you have manually specified resources for IrDA in the BIOS. When you do that you effectively allow the serial driver to take control, and as a result the nsc_ircc driver can no longer take control of the resources. Options are to either restore the BIOS settings for IrDA to factory default, or you can work around it by using setserial to clear the resources before loading the nsc_ircc kernel module<br />
setserial /dev/ttyS1 uart none port 0 irq 0; modprobe nsc_ircc<br />
<br />
== Some other things you might want to do with IrDA ==<br />
* add fast PPP support:<br />
:{{cmdroot|modprobe irnet}}<br />
* if needed, limit further the size of the transmit window<br />
:{{cmdroot|echo 1 > /proc/sys/net/irda/max_tx_window}}<br />
* set the connection speed to 4Mbit in FIR mode:<br />
:{{cmdroot|echo 4000000 > /proc/sys/net/irda/max_baud_rate}}<br />
<br />
==LIRC and IrDA==<br />
LIRC allows the use of infrared remote controls with Linux as input devices. This can be especially useful to control applications like mplayer, xine, mythtv or boxee. Usually, IrDA ports are not compatible with LIRC, but you may have luck using lirc_sir, as follows;<br />
{{NOTE|lirc_sir is incompatible with the regular Linux IrDA drivers (nsc_ircc). You can only use one at a time, and will have to reboot before you can switch}}<br />
{{NOTE|Even if your successful in getting this to work, you might find that the distance between remote control and receiver on the ThinkPad cannot exceed ~50cm, rendering it effectively useless. This can vary depending on Remote and ThinkPad used, there has been one successful report of a T60 with >2M}}<br />
====Success reports====<br />
* R40<br />
* T41<br />
* T60<br />
* 600<br />
<br />
====Failure reports====<br />
lirc_sir does not always work, particular on newer machines it seems the module loads when following these instructions, but the device {{path|/dev/lirc0}} cannot be opened and returns a device or resource busy. You can simply test this by typing {{cmdroot|cat /dev/lirc0}}<br />
* T60<br />
===Configuring lirc_sir===<br />
Go into your BIOS setup, and ensure that Infrared is fully enabled and that resources are assigned. I suggest using IO 2f8 and IRQ 3.<br />
<br />
Boot into Linux, and first ensure the setserial program is installed. Running {{cmdroot|/bin/setserial /dev/ttyS1}} should return at this point:<br />
/dev/ttyS1, UART: undefined, Port: 0x02f8, IRQ: 3<br />
If setserial cannot be found, install the setserial package with your distributions package management software<br />
<br />
Then create a file {{path|/etc/modprobe.d/lirc.conf}} with the following content:<br />
# prevent nsc_ircc from loading (blacklist might not be enough)<br />
blacklist nsc_ircc<br />
install nsc_ircc /bin/true<br />
# pass options to lirc_sir to load it on ttyS1<br />
options lirc_sir io=0x2f8 irq=3<br />
# ensure serial resources are cleared before loading lirc_sir<br />
# not doing so can result in a device busy error, or can even hang your system<br />
install lirc_sir /bin/setserial /dev/ttyS1 uart none port 0 irq 0; /sbin/modprobe --ignore-install lirc_sir<br />
<br />
At this point it is best to reboot, to ensure that nsc_ircc was never loaded. Several things can go wrong if the steps are not followed accurately. You might get an error when loading lirc_sir that the device is busy, or your system may even hang.<br />
<br />
Now do a {{cmdroot|modprobe lirc_sir}} and check {{cmdroot|dmesg}} output. You should see something like this:<br />
lirc_dev: IR Remote Control driver registered, major 61<br />
lirc_dev: lirc_register_plugin: sample_rate: 0<br />
lirc_sir: I/O port 0x02f8, IRQ 3.<br />
lirc_sir: Installed.<br />
<br />
===Configuring LIRC===<br />
If you did not yet install LIRC, then do so now using your distributions package management system.<br />
<br />
====Ubuntu====<br />
{{NOTE|Successfully tested under Ubuntu 10.04}}<br />
<br />
Make sure your {{path|/etc/lirc/hardware.conf}} looks like this:<br />
REMOTE="SIR IrDA (built-in IR ports)"<br />
REMOTE_MODULES="lirc_dev lirc_sir"<br />
REMOTE_DRIVER=""<br />
REMOTE_DEVICE="/dev/lirc0"<br />
REMOTE_LIRCD_CONF=""<br />
REMOTE_LIRCD_ARGS=""<br />
TRANSMITTER="None"<br />
TRANSMITTER_MODULES=""<br />
TRANSMITTER_DRIVER=""<br />
TRANSMITTER_DEVICE=""<br />
TRANSMITTER_LIRCD_CONF=""<br />
TRANSMITTER_LIRCD_ARGS=""<br />
START_LIRCD="true"<br />
START_LIRCMD=""<br />
LOAD_MODULES=""<br />
LIRCMD_CONF=""<br />
FORCE_NONINTERACTIVE_RECONFIGURATION="false"<br />
<br />
After this, start (or re-start) the lirc daemon, and set it to automatically start on bootup.<br />
<br />
{{cmdroot|sudo service lirc restart}}<br><br />
{{cmdroot|sudo update-rc.d lirc defaults}}<br />
<br />
====Fedora====<br />
On Fedora the default LIRC device is already set to /dev/lirc0<br />
<br />
{{Todo|best way of ensuring lirc_sir is loaded before lircd is started? The config file /etc/sysconfig/lirc does not seem to help. Perhaps an alias line in the modules config file if someone knows the correct syntax?}}<br />
<br />
{{cmdroot|service lirc restart}}<br><br />
{{cmdroot|chkconfig lirc on}}<br />
<br />
===Testing LIRC===<br />
Now we are ready to test if we can receive IR data from a remote control.<br />
<br />
Try running {{cmdroot|irrecord -d /dev/lirc0 foo}} and follow the onscreen instructions. When asked keep a button on a remote pressed while pointing at the ThinkPad IR port and you should see dots appear. After having configured your specific remote control, copy {{path|foo}} to {{path|/etc/lirc/lircd.conf}} and restart LIRC. You can use '''irw''' to check whether the remote control is working properly. <br />
<br />
To make it perform something useful, try '''irexec'''. It looks for a {{path|.lircrc}} in your home directory. If you don't have one, here is an example which maps KEY_UP and KEY_DOWN (key names can be chosen while performing '''irrecord''') to Up and Down.<br />
<pre><br />
begin<br />
button = KEY_UP<br />
prog = irexec<br />
config = /usr/bin/xvkbd -xsendevent -text "\\[Up]"<br />
mode = order<br />
flags = quit<br />
end<br />
<br />
begin<br />
button = KEY_DOWN<br />
prog = irexec<br />
config = /usr/bin/xvkbd -xsendevent -text "\\[Down]"<br />
mode = order<br />
flags = quit<br />
end<br />
</pre><br />
<br />
Configuring remote controls is out of scope for this document and you should check the LIRC website for detailed instructions. But if your using Gnome you might want to try {{cmd|gnome-lirc-properties|$}}, or in the case of KDE {{cmd|kdelirc|$}}.<br />
<br />
{{NOTE|Current versions of gnome-lirc-properties (at least up to 0.3.1) do not support lirc_sir, you need to first edit {{path|/usr/share/gnome-lirc-properties/receivers.conf}} and add the following:<br><pre>[Generic: IrDA SIR Receiver]<br />
kernel-module = lirc_sir<br />
device-nodes = /dev/lirc0</pre><br />
After this you can select Generic - IrDA SIR Receiver from the drop down menus (autodetect will not pick it up)}}<br />
<br />
== External Sources ==<br />
*[http://irda.sourceforge.net/ Linux-IrDA Project] (External)<br />
*[http://pcmcia-cs.sourceforge.net/ Linux PCMCIA Project] (External)<br />
*[http://tpctl.sourceforge.net/ tpctl homepage] (External)<br />
*[http://www.lirc.org/ Linux Infrared Remote Control (LIRC)] (External)</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_IrDA&diff=51433How to make use of IrDA2011-04-19T17:11:58Z<p>Bombenbach: /* Ubuntu */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#efefef; align:right;"><br />
The purpose of this document is to get the [[IrDA]] hardware in your ThinkPad operational, setting up communication to other devices is not covered. However, the external links section can prove useful for this.<br />
</div><br />
|}<br />
<br />
== Serial IR (SIR) ==<br />
SIR is limited to serial datarates up to 115.2Kb/s<br />
<br />
On modern distributions all configuration might be taken care of automatically by starting the irda service {{cmdroot|service irda start}}. If not try the following;<br />
<br />
To use it, run {{cmdroot|irattach /dev/ttyS1 -s; modprobe ircomm-tty}} <br />
<br />
Then turn on your IrDA-capable device and put it within range, and point your software (e.g., <tt>minicom</tt>) to {{path|/dev/irda0}}.<br />
<br />
===Kernel configuration===<br />
<br />
Edit {{path|/etc/modprobe.conf}} and add the following lines<br />
alias tty-ldisc-11 irtty-sir<br />
alias char-major-161 ircomm-tty<br />
<br />
== Fast IR (FIR) ==<br />
FIR is the preferred mode of IrDA operation and operates at a maximum bandwidth of 4 Mbps<br />
<br />
On modern distributions this should all be automatically handled by simply starting the idra service {{cmdroot|service irda start}}. If not try the following;<br />
<br />
===Kernel configuration===<br />
Edit {{path|/etc/modprobe.conf}} and add the following lines<br />
<br />
alias irda0 nsc-ircc<br />
<br />
Make sure that setserial is in right directory (e.g not in /usr/bin/setserial).After that if irdadump still gives nothing try: <br />
echo 1 > /proc/sys/net/irda/discovery<br />
<br />
== Known problems ==<br />
* If you read something like "ttyS1: LSR safety check engaged!" and "irattach: tcgetattr: Input/output error" in the system log, try limiting the FIR max baud rate (echo 57600 > /proc/sys/net/irda/max_baud_rate). This did the trick for me when I was trying to synchronize my Ericsson T39m with my Thinkpad R51 (multisync, evolution-2.8, KDE 3.5.5, openSUSE 10.2).<br />
* If you get an error in syslog like "nsc_ircc_open(), can't get iobase of 0x2f8" it probably means you have manually specified resources for IrDA in the BIOS. When you do that you effectively allow the serial driver to take control, and as a result the nsc_ircc driver can no longer take control of the resources. Options are to either restore the BIOS settings for IrDA to factory default, or you can work around it by using setserial to clear the resources before loading the nsc_ircc kernel module<br />
setserial /dev/ttyS1 uart none port 0 irq 0; modprobe nsc_ircc<br />
<br />
== Some other things you might want to do with IrDA ==<br />
* add fast PPP support:<br />
:{{cmdroot|modprobe irnet}}<br />
* if needed, limit further the size of the transmit window<br />
:{{cmdroot|echo 1 > /proc/sys/net/irda/max_tx_window}}<br />
* set the connection speed to 4Mbit in FIR mode:<br />
:{{cmdroot|echo 4000000 > /proc/sys/net/irda/max_baud_rate}}<br />
<br />
==LIRC and IrDA==<br />
LIRC allows the use of infrared remote controls with Linux as input devices. This can be especially useful to control applications like mplayer, xine, mythtv or boxee. Usually, IrDA ports are not compatible with LIRC, but you may have luck using lirc_sir, as follows;<br />
{{NOTE|lirc_sir is incompatible with the regular Linux IrDA drivers (nsc_ircc). You can only use one at a time, and will have to reboot before you can switch}}<br />
{{NOTE|Even if your successful in getting this to work, you might find that the distance between remote control and receiver on the ThinkPad cannot exceed ~50cm, rendering it effectively useless. This can vary depending on Remote and ThinkPad used, there has been one successful report of a T60 with >2M}}<br />
====Success reports====<br />
* R40<br />
* T41<br />
* T60<br />
* 600<br />
<br />
====Failure reports====<br />
lirc_sir does not always work, particular on newer machines it seems the module loads when following these instructions, but the device {{path|/dev/lirc0}} cannot be opened and returns a device or resource busy. You can simply test this by typing {{cmdroot|cat /dev/lirc0}}<br />
* T60<br />
===Configuring lirc_sir===<br />
Go into your BIOS setup, and ensure that Infrared is fully enabled and that resources are assigned. I suggest using IO 2f8 and IRQ 3.<br />
<br />
Boot into Linux, and first ensure the setserial program is installed. Running {{cmdroot|/bin/setserial /dev/ttyS1}} should return at this point:<br />
/dev/ttyS1, UART: undefined, Port: 0x02f8, IRQ: 3<br />
If setserial cannot be found, install the setserial package with your distributions package management software<br />
<br />
Then create a file {{path|/etc/modprobe.d/lirc.conf}} with the following content:<br />
# prevent nsc_ircc from loading (blacklist might not be enough)<br />
blacklist nsc_ircc<br />
install nsc_ircc /bin/true<br />
# pass options to lirc_sir to load it on ttyS1<br />
options lirc_sir io=0x2f8 irq=3<br />
# ensure serial resources are cleared before loading lirc_sir<br />
# not doing so can result in a device busy error, or can even hang your system<br />
install lirc_sir /bin/setserial /dev/ttyS1 uart none port 0 irq 0; /sbin/modprobe --ignore-install lirc_sir<br />
<br />
At this point it is best to reboot, to ensure that nsc_ircc was never loaded. Several things can go wrong if the steps are not followed accurately. You might get an error when loading lirc_sir that the device is busy, or your system may even hang.<br />
<br />
Now do a {{cmdroot|modprobe lirc_sir}} and check {{cmdroot|dmesg}} output. You should see something like this:<br />
lirc_dev: IR Remote Control driver registered, major 61<br />
lirc_dev: lirc_register_plugin: sample_rate: 0<br />
lirc_sir: I/O port 0x02f8, IRQ 3.<br />
lirc_sir: Installed.<br />
<br />
===Configuring LIRC===<br />
If you did not yet install LIRC, then do so now using your distributions package management system.<br />
<br />
====Ubuntu====<br />
{{NOTE|Successfully tested under Ubuntu 10.04}}<br />
<br />
Make sure your {{path|/etc/lirc/hardware.conf}} looks like this:<br />
REMOTE="SIR IrDA (built-in IR ports)"<br />
REMOTE_MODULES="lirc_dev lirc_sir"<br />
REMOTE_DRIVER=""<br />
REMOTE_DEVICE="/dev/lirc0"<br />
REMOTE_LIRCD_CONF=""<br />
REMOTE_LIRCD_ARGS=""<br />
TRANSMITTER="None"<br />
TRANSMITTER_MODULES=""<br />
TRANSMITTER_DRIVER=""<br />
TRANSMITTER_DEVICE=""<br />
TRANSMITTER_LIRCD_CONF=""<br />
TRANSMITTER_LIRCD_ARGS=""<br />
START_LIRCD="true"<br />
START_LIRCMD=""<br />
LOAD_MODULES=""<br />
LIRCMD_CONF=""<br />
FORCE_NONINTERACTIVE_RECONFIGURATION="false"<br />
<br />
After this, start (or re-start) the lirc daemon, and set it to automatically start on bootup.<br />
<br />
{{cmdroot|sudo service lirc restart}}<br><br />
{{cmdroot|sudo update-rc.d lirc defaults}}<br />
<br />
====Fedora====<br />
On Fedora the default LIRC device is already set to /dev/lirc0<br />
<br />
{{Todo|best way of ensuring lirc_sir is loaded before lircd is started? The config file /etc/sysconfig/lirc does not seem to help. Perhaps an alias line in the modules config file if someone knows the correct syntax?}}<br />
<br />
{{cmdroot|service lirc restart}}<br><br />
{{cmdroot|chkconfig lirc on}}<br />
<br />
===Testing LIRC===<br />
Now we are ready to test if we can receive IR data from a remote control.<br />
<br />
Try running {{cmdroot|irrecord -d /dev/lirc0 foo}} and follow the onscreen instructions. When asked keep a button on a remote pressed while pointing at the ThinkPad IR port and you should see dots appear.<br />
<br />
You are now able to start configuring LIRC for your specific remote control.<br />
<br />
Configuring remote controls is out of scope for this document and you should check the LIRC website for detailed instructions. But if your using Gnome you might want to try {{cmd|gnome-lirc-properties|$}}, or in the case of KDE {{cmd|kdelirc|$}}.<br />
<br />
{{NOTE|Current versions of gnome-lirc-properties (at least up to 0.3.1) do not support lirc_sir, you need to first edit {{path|/usr/share/gnome-lirc-properties/receivers.conf}} and add the following:<br><pre>[Generic: IrDA SIR Receiver]<br />
kernel-module = lirc_sir<br />
device-nodes = /dev/lirc0</pre><br />
After this you can select Generic - IrDA SIR Receiver from the drop down menus (autodetect will not pick it up)}}<br />
<br />
== External Sources ==<br />
*[http://irda.sourceforge.net/ Linux-IrDA Project] (External)<br />
*[http://pcmcia-cs.sourceforge.net/ Linux PCMCIA Project] (External)<br />
*[http://tpctl.sourceforge.net/ tpctl homepage] (External)<br />
*[http://www.lirc.org/ Linux Infrared Remote Control (LIRC)] (External)</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=51432Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2011-04-19T15:30:32Z<p>Bombenbach: /* Hardware Support */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cyes}}<br />
|out of the box, tested with a Conrad 1 Port SATA II ExpressCard 34 (SiL3531) and an external eSATA HDD (easyNova DATA BOX PRO-35SUS)<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cyes}}<br />
|irda-utils must be installed. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m#Set_up_IrDA See here] (Got full IrDA FIR 4 Mbps when communicating with a Thinkpad 390E running Win98SE)<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. Click on Volume Indicator, select Sound Preferences and go to the Output tab to unmute them.<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer (PulseAudio) settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
Probably the easiest workaround is to make things work like they did in earlier Ubuntu versions (e.g. 7.04). This means that each time you press a hardware volume button you do see a notification via Ubuntu's OSD but you also change both mixers (hardware and software) simultaneously. This means that you get a quite weird volume scale and reach maximal loudness at approximately 50-80% of the software mixer. The experience shows, however, that most users don't consider that to be disturbing and are mostly fine with these "solution". To check, if it's okay for you, open a terminal and run<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
If you are happy with the result all you should do is make it persistent. To do this, open a terminal, run<br />
sudo gedit /etc/rc.local<br />
paste<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
save and exit. If you don't like the result, don't make it persistent. Just reboot and try Workaround #2 or #3.<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #3 ===<br />
<br />
If you still want to use the hardware volume buttons you can add a special volume indicator for them. In this case you can still apply the Workaround #1 to get special keyboard shortcuts for the software mixer, or you can simply set the software mixer to something like 50% and use the hardware mixer only. To add a simple volume indicator for the hardware mixer, do the following. Open a terminal and run<br />
sudo apt-get install xosd-bin<br />
sudo gedit /etc/acpi/ibm-volchange.sh<br />
paste this<br />
#!/bin/sh<br />
#<br />
# This script show the current state of the internal volume mixer<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
osd_cat=`pidof osd_cat`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$osd_cat" != "" ]; then <br />
/usr/bin/killall osd_cat <br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
else<br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
fi<br />
fi<br />
done<br />
save and close gedit. In the same terminal run<br />
sudo chmod +x /etc/acpi/ibm-volchange.sh<br />
sudo gedit /etc/acpi/events/ibm-volume-up<br />
paste this<br />
# /etc/acpi/events/ibm-volume-up<br />
<br />
event=ibm/hotkey HKEY 00000080 00001015<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo gedit /etc/acpi/events/ibm-volume-down<br />
paste this<br />
# /etc/acpi/events/ibm-volume-down<br />
<br />
event=ibm/hotkey HKEY 00000080 00001016<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo kill -SIGHUP `pidof acpid`<br />
close the terminal. Now you should be able to see the new volume indicator.<br />
<br />
[[File:VolIndZ61m.png|800px]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
{{WARN|This problem is apparently not present anymore in Lucid with latest update. Thus, you should skip this part.}} <br />
<br />
<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
{{WARN|This problem is apparently not present anymore in Lucid with latest update. Thus, you should skip this part.}} <br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
<br />
== Set up IrDA ==<br />
Make sure that you have IrDA enabled in BIOS. For this I recommend the following settings<br />
<pre><br />
Base I/O address 2F8<br />
Interrupt 3<br />
DMA 3<br />
</pre><br />
First you need to install '''irda-utils'''<br />
sudo apt-get install irda-utils<br />
Now stop '''irattach''' by issuing<br />
sudo /etc/init.d/irda-utils stop<br />
and run<br />
sudo dpkg-reconfigure irda-utils<br />
On the configure screen set the options as the following: <br />
<pre><br />
Activate IrDa on boot-up: yes<br />
Attempt to probe for IrDa at system boot: yes<br />
Discovery mode: yes<br />
Typ of the IrDa-adaptor: native<br />
Typ of the FIR-chip: nsc-ircc<br />
Options for the modules of the FIR-chip:<br />
Port for setserial to deactivate: <br />
</pre><br />
Start '''irattach''' again<br />
sudo /etc/init.d/irda-utils start<br />
To test IrDA run<br />
watch -n 1 cat /proc/net/irda/discovery<br />
and place your IrDA device in front of the IrDA eye (for Z61m it's located near the WiFi switch).<br />
To transfer or receive files via IrDA you can use '''ircp'''<br />
<br />
Note that by default you'll get only 115.2 Kbps. To get the full 4 Mbps run<br />
sudo gedit /etc/default/irda-utils<br />
and replace <br />
MAX_BAUD_RATE="115200"<br />
by<br />
MAX_BAUD_RATE="4000000"<br />
After that restart '''irda-utils''' <br />
sudo /etc/init.d/irda-utils stop<br />
sudo /etc/init.d/irda-utils start<br />
and you should get the higher speed. Use <br />
cat /proc/sys/net/irda/max_baud_rate<br />
to check the current max speed.<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
*[http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.10_on_a_ThinkPad_Z61m] (Installing Ubuntu 7.10 on a Thinkpad Z61m)<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=51431Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2011-04-19T15:28:35Z<p>Bombenbach: IrDA setup added</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cyes}}<br />
|out of the box, tested with a Conrad 1 Port SATA II ExpressCard 34 (SiL3531) and an external eSATA HDD (easyNova DATA BOX PRO-35SUS)<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cyes}}<br />
|irda-utils must be installed. [http://www.thinkwiki.org/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&action=submit#Set_up_IrDA See here] (Got full IrDA FIR 4 Mbps when communicating with a Thinkpad 390E running Win98SE)<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. Click on Volume Indicator, select Sound Preferences and go to the Output tab to unmute them.<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer (PulseAudio) settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
Probably the easiest workaround is to make things work like they did in earlier Ubuntu versions (e.g. 7.04). This means that each time you press a hardware volume button you do see a notification via Ubuntu's OSD but you also change both mixers (hardware and software) simultaneously. This means that you get a quite weird volume scale and reach maximal loudness at approximately 50-80% of the software mixer. The experience shows, however, that most users don't consider that to be disturbing and are mostly fine with these "solution". To check, if it's okay for you, open a terminal and run<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
If you are happy with the result all you should do is make it persistent. To do this, open a terminal, run<br />
sudo gedit /etc/rc.local<br />
paste<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
save and exit. If you don't like the result, don't make it persistent. Just reboot and try Workaround #2 or #3.<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #3 ===<br />
<br />
If you still want to use the hardware volume buttons you can add a special volume indicator for them. In this case you can still apply the Workaround #1 to get special keyboard shortcuts for the software mixer, or you can simply set the software mixer to something like 50% and use the hardware mixer only. To add a simple volume indicator for the hardware mixer, do the following. Open a terminal and run<br />
sudo apt-get install xosd-bin<br />
sudo gedit /etc/acpi/ibm-volchange.sh<br />
paste this<br />
#!/bin/sh<br />
#<br />
# This script show the current state of the internal volume mixer<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
osd_cat=`pidof osd_cat`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$osd_cat" != "" ]; then <br />
/usr/bin/killall osd_cat <br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
else<br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
fi<br />
fi<br />
done<br />
save and close gedit. In the same terminal run<br />
sudo chmod +x /etc/acpi/ibm-volchange.sh<br />
sudo gedit /etc/acpi/events/ibm-volume-up<br />
paste this<br />
# /etc/acpi/events/ibm-volume-up<br />
<br />
event=ibm/hotkey HKEY 00000080 00001015<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo gedit /etc/acpi/events/ibm-volume-down<br />
paste this<br />
# /etc/acpi/events/ibm-volume-down<br />
<br />
event=ibm/hotkey HKEY 00000080 00001016<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo kill -SIGHUP `pidof acpid`<br />
close the terminal. Now you should be able to see the new volume indicator.<br />
<br />
[[File:VolIndZ61m.png|800px]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
{{WARN|This problem is apparently not present anymore in Lucid with latest update. Thus, you should skip this part.}} <br />
<br />
<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
{{WARN|This problem is apparently not present anymore in Lucid with latest update. Thus, you should skip this part.}} <br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
<br />
== Set up IrDA ==<br />
Make sure that you have IrDA enabled in BIOS. For this I recommend the following settings<br />
<pre><br />
Base I/O address 2F8<br />
Interrupt 3<br />
DMA 3<br />
</pre><br />
First you need to install '''irda-utils'''<br />
sudo apt-get install irda-utils<br />
Now stop '''irattach''' by issuing<br />
sudo /etc/init.d/irda-utils stop<br />
and run<br />
sudo dpkg-reconfigure irda-utils<br />
On the configure screen set the options as the following: <br />
<pre><br />
Activate IrDa on boot-up: yes<br />
Attempt to probe for IrDa at system boot: yes<br />
Discovery mode: yes<br />
Typ of the IrDa-adaptor: native<br />
Typ of the FIR-chip: nsc-ircc<br />
Options for the modules of the FIR-chip:<br />
Port for setserial to deactivate: <br />
</pre><br />
Start '''irattach''' again<br />
sudo /etc/init.d/irda-utils start<br />
To test IrDA run<br />
watch -n 1 cat /proc/net/irda/discovery<br />
and place your IrDA device in front of the IrDA eye (for Z61m it's located near the WiFi switch).<br />
To transfer or receive files via IrDA you can use '''ircp'''<br />
<br />
Note that by default you'll get only 115.2 Kbps. To get the full 4 Mbps run<br />
sudo gedit /etc/default/irda-utils<br />
and replace <br />
MAX_BAUD_RATE="115200"<br />
by<br />
MAX_BAUD_RATE="4000000"<br />
After that restart '''irda-utils''' <br />
sudo /etc/init.d/irda-utils stop<br />
sudo /etc/init.d/irda-utils start<br />
and you should get the higher speed. Use <br />
cat /proc/sys/net/irda/max_baud_rate<br />
to check the current max speed.<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
*[http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.10_on_a_ThinkPad_Z61m] (Installing Ubuntu 7.10 on a Thinkpad Z61m)<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade&diff=51428BIOS Upgrade2011-04-17T20:25:43Z<p>Bombenbach: /* Extracting an update image */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
This page is meant to describe ways to update the BIOS on a ThinkPad that only runs Linux for users that don't have ready access to Windows. If you have Windows on your ThinkPad you can just boot into it and follow instructions on the Lenovo website.<br />
<br />
Updating the BIOS in Linux (with few exceptions) '''is not officially supported''' by Lenovo. However there are work arounds.<br />
<br />
{{WARN|By following any of the instructions here you are accepting the '''very real risk''' of turning your ThinkPad into a big expensive paper weight, as a firmware update gone wrong can create unfix-able problems.<br />
<br />
'''Proceed at your own risk!'''}}<br />
|}<br />
<br />
= Downloading New Firmware =<br />
{{WARN|Flashing the wrong firmware for your hardware may cause permanent damage to your ThinkPad. It is up to you to confirm that the firmware you are using is correct.}}<br />
<br />
A list of links to firmware downloads can be found at [[BIOS Upgrade Downloads]] for most Thinkpad models. You can also check the Lenovo Support website's [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=TPAD-MATRIX|ThinkPad driver matrix].<br />
<br />
Lenovo provides firmware upgrades in a variety of packages:<br />
* Diskette<br />
* Non-diskette<br />
* Linux diskette<br />
* BIOS Utility<br />
* Bootable CD<br />
<br />
Not every type of package is available for every model.<br />
<br />
The ''BIOS Utility'' and ''Bootable CD'' packages combine the BIOS and ECP firmwares. For the other packages, there is one for each firmware.<br />
{| align="right" style="width:20em;"<br />
| {{HELP|Can an image be extracted from a "Linux diskette" .exe file?}}<br />
|}<br />
<br />
The ''Linux diskette'' is just the ''Diskette'' package that runs on Linux instead of Windows/DOS. It's unknown if a boot image can be extracted from it. <br />
<br />
You may need to try different packages to find the one from which you can extract a boot image.<br />
<br />
== Two Firmwares: BIOS and ECP ==<br />
{{WARN|Flashing incompatible firmwares, or flashing them in the wrong order, may cause permanent damage to your ThinkPad.}}<br />
<br />
It is important to understand that Thinkpads from IBM have two separate firmwares: the BIOS, and the Embedded Controller Program (ECP).<br />
<br />
A given BIOS version will require a certain version of the ECP. You must read the Lenovo website and/or .txt files to confirm which BIOS is compatible with which ECP, and '''the order in which to update them'''. <br />
<br />
=== Update Order ===<br />
<br />
The IBM documentation is sometimes unclear about the order in which these two firmwares should be updated. When in doubt (i.e. IBM didn't provide specific instructions for your model or a particular firmware update), '''update the ECP first, and then the BIOS'''. Also, make sure to do the two updates '''immediately one after the other'''.<br />
<br />
The EC firmware is usually much better at backwards compatibility than the BIOS.<br />
<br />
(Updaters for newer models take care of both BIOS and EC, and use automatically whatever sequence is needed, so you don't have to worry about it.)<br />
<br />
== Installed Firmware ==<br />
You can check the current BIOS and ECP versions on your ThinkPad by using '''dmidecode'''. For example:<br />
<br />
{{cmdroot|dmidecode -s bios-version}}<br />
<br />
1RETDRWW (3.23 )<br />
<br />
{{cmdroot|dmidecode -t 11}}<br />
<br />
# dmidecode 2.9<br />
SMBIOS 2.33 present.<br />
Handle 0x0029, DMI type 11, 5 bytes<br />
OEM Strings<br />
String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04 ]-<br />
<br />
Showing BIOS version 3.23 (1RETDRWW) and ECP version 3.04 (1RHT71WW).<br />
<br />
===DMI IDs===<br />
Please consider updating the [[List of DMI IDs]] before (and after) updating your BIOS.<br />
<br />
= Updating Firmware =<br />
<br />
There are two basic steps to updating the firmware (either the BIOS or the ECP) on a ThinkPad not running Windows:<br />
# Extract a bootable update image<br />
# Boot from that image<br />
<br />
== Extracting an update image ==<br />
{{WARN|Though this process has been successfully tested on many versions of .exe files found on IBMs website, that doesn't mean it will work for all of them. '''Proceed at your own risk'''. Consult the testing tables farther down of this page to see other users' experience with your model Thinkpad.}}<br />
{{NOTE|These EXE unpack procedures no longer work on more recent downloads, as Lenovo has changed the packaging format. You may still be able to unpack them using wine, or alternatively an actual (virtual) Windows machine.}}<br />
Older .exe installers from Lenovo mostly appear to be just a wrapper license program around Windows .cab files (see [[How_to_change_the_BIOS_bootsplash_screen|BIOS-Bootsplash]]). If you install the Linux program [http://freshmeat.net/projects/cabextract/ '''cabextract'''] you can expand these .cab files directly. For example, if you downloaded {{path|1iuj13us.exe}} from Lenovo:<br />
<br />
:{{cmduser|cabextract 1iuj13us.exe}}<br />
<br />
Extracting cabinet: 1iuj13us.exe<br />
extracting 1IUJ13US.IMG<br />
extracting BIOSUPTP.EXE<br />
extracting DOBOOT.EXE<br />
extracting DOSBOOT.COM<br />
extracting DOSBOOT.SYS<br />
extracting DOSBOOT.VXD<br />
extracting DOSBOOT2.COM<br />
extracting ECTLUPTP.EXE<br />
extracting EFLASHAS.SYS<br />
extracting HDFWUPTP.EXE<br />
extracting IBMTPI.XML<br />
All done, no errors.<br />
<br />
The file we want is '''FILENAME.IMG''', with "FILENAME" being the .exe. you downloaded. E.g., {{path|1IUJ13US.IMG}}.<br />
<br />
(If this does not work for the Non-diskette .exe, try it on the Diskette .exe. It's reported, for example, that the Non-diskette .exe for BIOS version 3.23 for the T41p was not extractable, but the Diskette .exe worked perfectly, with {{cmduser|cabextract}} delivering a .IMG file.)<br />
<br />
==== Solution for old Thinkpads ====<br />
<br />
Diskette .exe for some older models can't be extracted using cabextract. For example for the latest BIOS of 390E one gets<br />
spsdilc9.exe: no valid cabinets found<br />
Since such .exe will only extract the files to a floppy, there seems to be no way to extract them using Linux. The situation is actually even more complicated, as neither Vista nor Windows 7 allow these .exe to access the floppy drive directly. Neither DosBox nor Wine were able to "fool" the programm using virtual floppies. A solution that works is to use Windows XP (works in VirtualBox too) together with [http://sourceforge.net/projects/vfd/ Virtual Floppy Drive]. Rund vfdwin.exe, go to the Driver tab and hit Install and Start. Then go to the Driver0 tab, click on Change and select A:. Finally, click on Open/Create, and click Create. This should give you a virtual floppy drive the .exe file will extract files to.<br />
<br />
==== Testing the Image ====<br />
<br />
You can test that FILENAME.IMG is really a floppy image by running:<br />
<br />
{{cmdroot|mkdir /tmp/mntfloppy}}<br />
<br />
{{cmdroot|mount -o loop FILENAME.IMG /tmp/mntfloppy}}<br />
<br />
If a '''ls''' command on the image returns what looks like a DOS floppy, and no read errors were displayed, you have a pretty good chance that the image is usable. For example:<br />
<br />
{{cmdroot|ls /tmp/mntfloppy}}<br />
$0195000.FL1 069580.PAT 06d2.HSH IBMDOS.COM TPCHKS.EXE<br />
0691.HSH 06D0.PAT 06d6.HSH LOGO.BAT UPDTFLSH.EXE<br />
0691.PAT 06D1.PAT 06d8.HSH LOGO.SCR UPDTMN.EXE<br />
0694.HSH 06D2.PAT CHKBMP.EXE PHLASH16.EXE USERINT.EXE<br />
0694.PAT 06D6.PAT COMMAND.COM PREPARE.EXE UTILINFO.EXE<br />
0695.HSH 06D8.PAT CONFIG.SYS PROD.dat lcreflsh.bat<br />
0695.PAT 06d0.HSH FLASH2.EXE QKFLASH.EXE<br />
069580.HSH 06d1.HSH IBMBIO.COM README.TXT<br />
<br />
Unmount the image after you are done testing:<br />
<br />
{{cmdroot|umount /tmp/mntfloppy}}<br />
<br />
== Booting from update image ==<br />
Now that you have a bootable image for the correct update for you hardware, you need to do is boot from that image to install the update.<br />
<br />
There are different ways to do that:<br />
* [[#Booting from a CD|Boot from a CD]]<br />
* [[#Booting_using_GRUB|Boot from the image, using GRUB]]<br />
* [[#Booting_from_a_floppy|Boot from a floppy]]<br />
* [[#Booting_from_a_USB_Flash_drive|Boot from a USB Flash drive]]<br />
<br />
=== Booting from a CD ===<br />
{| align="right" style="width:40em;"<br />
|{{HINT|If there is a ''Bootable CD'' image available, e.g., FILENAME.iso, just download that, instead of mucking around with image files.}}<br />
|}<br />
If you are going to update the firmware by booting from a CD, you need to turn FILENAME.IMG that you extracted above into an .iso file.<br />
<br />
The [http://en.wikipedia.org/wiki/El_Torito_%28CD-ROM_standard%29 El Torito Bootable CD Specification] is a wonderful thing. Thanks to it, a bootable CD can be made with a bootable floppy image in such as way that the CD believes that it is a 2.88 MB floppy drive. This allows you to replace a boot floppy by a boot CD in nearly all situations.<br />
<br />
It is very easy to create such a bootable CD ISO image in Linux using the '''mkisofs''' tool{{footnote|1}}. Run a command as follows:<br />
<br />
{{cmdroot|genisoimage -b 1WUJ25US.IMG -c boot.catalog -o bootcd.iso 1WUJ25US.IMG}} #or older mkisofs<br />
<br />
Where *.IMG is the name of the image file extracted above. This creates a CD with one file on it and marks that file as the boot image.<br />
<br />
You can now burn the {{path|bootcd.iso}} to a CD in your favorite CD-burning program.<br />
{{WARN|By following any of the instructions here you are accepting the '''very real risk''' of turning your ThinkPad into a big expensive paper weight, as a firmware update gone wrong can create unfix-able problems. '''Proceed at your own risk!'''}}<br />
<br />
Boot from the CD to update your firmware. Remember to have [[BIOS_Upgrade#Two_Firmwares:_BIOS_and_ECP|both BIOS and ECP firmware boot-CDs]] ready, as needed, and use them in the [[#Proper_Order|proper order]].<br />
<br />
==== Successful tests ====<br />
<br />
{| border="1" cellspacing="0" cellpadding="2" style="font-size:80%; vertical-align:top;"<br />
! Model<br />
! Tested by, and comments<br />
|-<br />
| {{600E}} 2645-4AU ||<br />
* George Tellalov <gtellalov_dontspamme@bigfoot.com>. BIOS 1.16 from spsdin36.exe worked perfectly with the method bootable cd from floppy image. I highly recommend this upgrade because it made my ibm-acpi module load (it wouldn't load before) and fixed some suspend to ram problems. Here's the [http://george.tellalov.info/bios_upgrade_600e_spsdin36.iso cd image] I used. Use at your own risk. You can send me a chocolate if it works for you ;)<br />
|-<br />
| {{600E}} 2645-5bU ||<br />
* Mike Vincent<matchstc-putobvioushere.com>. Bios 1.16 from spsdin36.exe and then to the boot cd worked great for me. Thought I had bricked it three separate times using a "real" floppy! Each from different diskettes .The updater would start, give me the "going to take30 seconds" speech...and then access the HD for 10 minutes. Each time it would reboot fine. Did the cd as described above...worked great first time. Perhaps 10 year old seldom used floppy disc drives have some challenges?<br />
|-<br />
| {{600X}} 2645 ||<br />
* Jonathan Byrne <jonathan@RemoveThisToMailMe.yamame.org>. BIOS 1.11 from spsuit55.exe worked perfectly using cabextract/CD method.<br />
|-<br />
| {{600X}} 2645 ||<br />
* Andy Barnes <andy@RemoveThisToMailMe.itchypaws.co.uk>. As per Jonathan above, extracted BIOS 1.11 from spsuit55.exe using cabextract, created a CD boot image and burnt to CD. Worked flawlessly - thanks to everyone who contributed to this article!<br />
|-<br />
| {{A20p}} 2629-6VU ||<br />
* Chris Pickett http://www.sable.mcgill.ca/~cpicke/. BIOS 1.11 flashed fine with cabextract/CD method.<br />
|-<br />
| {{A21e}} 2628-JXU ||<br />
* Amit Gurdasani <gurdasani at yahoo dot com>. BIOS 1.13 flashed fine with cabextract/CD method. Alarmingly, after the BIOS update, the laptop beeped but did not shut down as was indicated onscreen -- that was frozen on the "do not shut down the laptop" screen. On power down and up again, the BIOS setup showed the newer BIOS image running, and Linux booted up fine. Linux ACPI didn't complain about the BIOS being too old either.<br />
|-<br />
| {{A31p}} 2653 ||<br />
* Matthias Meinke largeeddy@gmx.at, BIOS 1.09 1NET15WW flashed fine with cabextract/CD method.<br />
|-<br />
| {{A31}} 2652 ||<br />
* [[User:Wnoise|Aaron Denney]], BIOS 1.13 flashed fine with cabextract/CD method. The cabextract/CD method also worked for BIOS 1.10.<br />
|-<br />
| {{R30}} ||<br />
* Jarrod, 30 August 2007, Thinkpad R30 Type 2656-E0M. BIOS updated to 1.40 (1CETF0WW) using floppy disk/mkisofs/cdrecord. Worked fine, no problems.<br />
|-<br />
| {{R31}} ||<br />
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/1998-January/009743.html Mathias Dalheimer]<br />
* Sebastian Sauer (with cabextract/CD method)<br />
|-<br />
| {{R40}} ||<br />
* Matthew Lambie, http://lambie.org<br />
* Antti S. Lankila, update to 1.27 via direct use of phlash16.exe against a BIOS image. Normal method did not work because the battery is dead.<br />
|-<br />
| {{R50}} 1836-3SU ||<br />
* jlbartos <jlbartos at hotmail dot com><br />
|-<br />
| {{R50e}} 1834-PTG ||<br />
* item <item at freemail dot hu> : successfully finished with cabextract/CD method for "1wuj25us.exe" (BIOS version 1WET90WW (2.10), Release Date: 2006/12/22)<br />
* Christos Nouskas <nouskas at gmail dot com>: upgraded to BIOS version 1WET90WW (2.10) and EC version 1VHT28WW (1.04) using GRUB (BIOS first / EC second)<br />
|-<br />
| {{R51}} 1829 ||<br />
* Robert Uhl <rob dot uhl at gmx dot de>, Jellby <jellby at yahoo dot com><br />
|-<br />
| {{R51}} 1830-RM7 ||<br />
* Will Parker <stardotstar at sourcepoint dot com dot au> successfully flashed 3.20 using existing 3.04 ECP and retained custom boot splash.<br />
|-<br />
| {{R51}} 2887 ||<br />
* Ingo van Lil <inguin at gmx dot de><br />
|-<br />
| {{R52}} 1858 ||<br />
* Stuart McCord <stuart dot mccord at gmail dot com> flashed both BIOS and ECP using cabextract, BIOS flashed first as on IBM website<br />
|-<br />
| {{T20}} ||<br />
* Franz Hassels <fhassel at suse dot com><br />
|-<br />
| {{T22}} ||<br />
* Daniel Maier <nusse teamidiot de><br />
* Mathias Behrle (with cabextract/CD method, Version 1.07 => 1.12) --[[User:Mathiasb|Mathiasb]] 11:58, 14 December 2006 (CET)<br />
* Bob Skaroff (cabextract/CD), 1.06 => 1.12<br />
* Leo Butler (cabextract/CD), 1.11 => 1.12<br />
|-<br />
| {{T23}} ||<br />
* Bart Snapp <snapp at uiuc dot edu> Note: I followed IBM's instructions to flash the BIOS '''first''' and the Embedded Controller '''second'''.<br />
* Moy Easwaran: BIOS 1.18 / EC 1.06a via cabextract and CD-boot. The BIOS-update exe generated errors in Windows 2000.<br />
* Joe Renes: BIOS 1.18 / EC 1.06a on 2006-03-20 via cabextract and CD-boot. Piece of cake.<br />
* Raphael Errani: BIOS 1.20 / EC 1.06a on 2006-11-06 via cabextract and CD-boot (using mkisofs). Worked without errors. 1st Bios, 2nd EC<br />
* Myron Getman: BIOS 1.20 / EC 1.06a on 9/10/08 via cabextract --> k3b --> CD-boot. Worked like a charm. First BIOS update with Linux!<br />
* Leo Butler: BIOS 1.13 / EC 1.04 to 1.20/1.06a via cabextract and syslinux/memdisk boot through grub. Worked like a charm and no wasted CD.<br />
|-<br />
| {{T30}} ||<br />
* Martin Gühring <guehring at gmail.com> BIOS 2.10 via cabextract the Non-Diskette BIOS -> mkisofs '''in the directory the exe was extracted''' to generate the iso -> burn the iso -> boot the CD<br />
|-<br />
| {{T40}} ||<br />
* Sean Dague, http://dague.net<br />
* Justin Mason, http://jmason.org<br />
* Ivanhoe (Bios 3.19)<br />
* Alessandro Raulino (roger_2) EC 3.04 & BIOS 3.23 flashed with cabextract/CD method<br />
* Nick Jenkins, using BIOS 3.23 with the '''Non-diskette updater + cabextract method''', then [[#Creating_a_Bootable_CD_from_a_Floppy_Image|created a bootable CD from the cabextracted .IMG file]], then boot that ISO, and it worked great!<br />
* xyz: BIOS 3.23 & EC 3.04 flashed with cabextract/CD method. No problem.<br />
|-<br />
| {{T40p}} ||<br />
* Lukas Krähenbühl, ismo at pop dot agri dot ch<br />
* Thomas Achtemichuk, tom at tomchuk dot com. BIOS 3.15 flashed fine with cabextract/CD method<br />
* paper, BIOS 3.23 (1RETDRWW) flashed fine with cabextract/genisoimage method.<br />
|-<br />
| {{T41}} ||<br />
* Lev Givon (Bios 3.15 / EC 3.04) <lev at columbia dot edu><br />
* Ernesto Hernández-Novich (Bios 3.19 / CP 3.04) < emhn at usb dot ve ><br />
* [http://maebmij.org James Ballantine] (Bios 3.21 / CP 3.04) using nondisk/cabextract/CDRW<br />
* Vladimir Pycha (to Bios 3.23 / EC 3.04, from Bios 3.20 / EC 3.04) using nondisk/cabextract/CDRW. Booted with external USB optical drive (I have internal drive broken) - at the beginning of the boot sequence press PAUSE, then wait several seconds, then ENTER, then F12 and select the drive. Without pressing PAUSE I am not able to boot from USB optical/hard drive as the drive does not show in the F12 boot list menu.<br />
|-<br />
| {{T41p}} ||<br />
* Nils Newman, work great. (Version: Bios 3.14 / Embedded Controller 3.04)<br />
|-<br />
| {{T42}} 2373-JXG ||<br />
* magarzo <mdr.magarzo at gmail.com> (BIOS v.3.23 / Embedded Controller v.3.04 / both with cabextract to non-diskette v. plus Bootable CD)<br />
|-<br />
| {{T42}} ||<br />
* Dan (BIOS 3.20 / EC 3.04, cabextract/CD method) <tronic171 at evilphb.org><br />
* Hirosh Dabui <hirosh@dabui.de><br />
|-<br />
| {{T42p}} ||<br />
* Robert Schiele <rschiele@uni-mannheim.de>, Joern Heissler <joern@heissler.de>, Hirosh Dabui <hirosh@dabui.de><br />
|-<br />
| {{T43}} 1871-W34 ||<br />
* Florian Boucault <florian at boucault dot ath dot cx> (Version: Bios 1.23 / Embedded Controller 1.03)<br />
|-<br />
| {{T43}} 1871-4AG ||<br />
* [http://blog.martinmcdowell.com/about/contact Martin McDowell] 28-Feb-2010<br />
* BIOS 70ET62WW (1.22) to 70ET69WW (1.29), <br />
* ECP 70HT26WW (1.03) to 70HT28WW (1.05)<br />
Both successfully upgraded from CD Image made from the instructions on this website.<br />
|-<br />
| {{T43}} 2886 ||<br />
* Till Heikamp <t dot heikamp at geniusbytes dot com> (Bios 1.22 to 1.29, Embedded Controller 1.03 to 1.06)<br />
|-<br />
| {{T43}} ||<br />
* Conrad Rentsch <Conrad dot Rentsch at t-online dot de> (Version: Bios 1.29 / Embedded Controller 1.06)<br />
* Tom Heady <tom-thinkwiki.org@punch.net><br />
|-<br />
| {{T60}} ||<br />
* 1951 Roman Komkov <roman at komkov dot org dot ru> (Bios 1.07 to 2.13) Successfully upgraded from CD Image<br />
* 8744-HCG Konstantin Khorenko <horenko at mail dot ru> (Bios 1.06 to 1.18) Successfully upgraded from CD Image<br />
|-<br />
| {{T61}} ||<br />
* Kai Weber <kai.weber at glorybox dot org> (Bios 1.06 to 1.26) Successfully upgraded from CD Image<br />
|-<br />
| {{T410}} ||<br />
* Pablo Zometa (BIOS 1.35) <br />
|-<br />
| {{X20}} ||<br />
* Neil Caunt <retardis at gmail dot com><br />
|-<br />
| {{X21}} ||<br />
* Patrick Leickner <ranma at web dot de>, (BIOS 2.21->2.25 / EC 1.31->1.36) via non-disk/cabextract/mkisofs/cdrecord<br />
|-<br />
| {{X22}} ||<br />
* David Emery <dave at skiddlydee dot com>, (EC 1.30, BIOS 1.32 using non-disk/cabextract/CD method)<br />
|-<br />
| {{X23}} ||<br />
* Nils Faerber <nils dot faerber at kernelconcepts dot de> (Embedded Controller 1.30, BIOS 1.32 with cabextract/CD method)<br />
|-<br />
| {{X30}} ||<br />
* Hella Breitkopf, [http://www.unixwitch.de/ www] (Embedded Controller 1.04, BIOS 1.07 with cabextract/CD method)<br />
* William Roe <willroe at gmail dot com> (Embedded Controller 1.06, BIOS 1.09 - cabextract/mkisofs/wodim)<br />
|-<br />
| {{X31}} ||<br />
* Grzegorz Kuśnierz <koniu at sheket dot org> (Embedded Controller 1.08, BIOS 3.01 with cabextract/CD method)<br />
|-<br />
| {{X31}} ||<br />
* Paul Litwack <paullitwack at gmail dot com> (Embedded Controller 1.08, BIOS 3.02 with cabextract/unetbootin method)<br />
cabextract & unetbootin are staight foward(toggle floppy image instead of iso image in unetbootin dialog)<br />
No problems with update software.<br />
x31 has to be cajoled into booting from usb. Boot hangs when pendrive is present. Hit the key to bring up the boot menu. <br />
Unplug the pendrive. Let the boot menu come up. Plug in the pendrive. Select the pendrive in the boot menu and it boots. <br />
|-<br />
| {{X40}} ||<br />
* Robbie Stone <robbie@serendipity.cx><br />
* Andy Shevchenko <andy.shevchenko@gmail.com> (Fine by cabextract/CD method)<br />
|-<br />
| {{Z60m}} ||<br />
* [[User:Morle|Morle]] 01:09, 17 Nov 2007 (CEST), (Embedded Controller 1.18 and Bios 1.24 with cabextract/CD method)<br />
|}<br />
<br />
==== Unsuccessful tests ====<br />
{| border="1" cellspacing="0" cellpadding="2" style="font-size:80%; vertical-align:top;"<br />
! Model<br />
! Tested by, and comments<br />
|-<br />
|<pre> </pre> <!-- Placeholder --><br />
|<br />
|}<br />
<br />
=== Booting using GRUB ===<br />
{|<br />
| style="width:75%" | {{WARN|Many have warned '''not''' to use the SYSLINUX image-loader '''memdisk''' to boot firmware update images.}}<br />
| style="font-size:80%" | {{HELP|Who are these "many"? Link to a discussion?}}<br />
|}<br />
Once the bootable image, FILENAME.IMG, is extracted from the .exe, it can be booted directly through GRUB without the need of burning a CD, using the [http://syslinux.zytor.com/ SYSLINUX] image-loader '''[http://syslinux.zytor.com/memdisk.php memdisk]'''.<br />
<br />
Locate the '''memdisk''' file from the syslinux package. You can search for it with '''find''': <br />
<br />
{{cmdroot|find /usr -name memdisk}} #or just use "dlocate memdisk" or "locate memdisk" if these programs are installed<br />
<br />
If {{path|/usr/.../memdisk}} is not present, syslinux is not installed. You will need to install it to boot a .IMG from GRUB.<br />
<br />
Copy both the '''FILENAME.IMG''' and '''memdisk''' files into {{path|/boot}} directory. For example:<br />
<br />
{{cmdroot|cp ./FILENAME.IMG /usr/share/syslinux/memdisk /boot/}}<br />
<br />
Open {{path|/boot/grub/menu.lst}} in your favourite editor. '''Copy''' the active section into a '''new section''', and edit the new section:<br />
{| border="1" cellspacing="0" cellpadding="2"<br />
! Parameter<br />
! Instructions<br />
! Example<br />
|-<br />
| ''title'' || Pick a name for the new section. This will show up in the GRUB boot menu. || <tt>title IBM ECP Update</tt><br />
|-<br />
| ''root'' || Do not change. This is the partition containing the {{path|/boot}} directory || <tt>root (hd0,0)</tt><br />
|-<br />
| ''kernel'' || '''/boot/memdisk''' will allow you to boot an image file. || <tt>kernel /boot/memdisk</tt><br />
|-<br />
| ''initrd'' || This is the name of the firmware-updater image file, e.g., 1IUJ13US.IMG || <tt>initrd /boot/1IUJ13US.IMG</tt><br />
|}<br />
<br />
Do '''not''' modify the original section in {{path|/boot/grub/menu.lst}}, or you might not be able to boot back to the operating system.<br />
<br />
If you have [[#Two_Firmwares:_BIOS_and_ECP|two firmware updates to do]], you will need a section for each firmware's FILENAME.IMG in {{path|/boot/grub/menu.lst}}.<br />
<br />
{{NOTE|If both BIOS and ECP are to be updated, be sure to update them in the [[#Proper_Order|proper order]].}}<br />
<br />
{{WARN|By following any of the instructions here you are accepting the '''very real risk''' of turning your ThinkPad into a big expensive paper weight, as a firmware update gone wrong can create unfix-able problems. '''Proceed at your own risk!'''}}<br />
<br />
Reboot your computer, entering the GRUB menu and selecting ''IBM BIOS Update'', or whatever you named the new section in {{path|/boot/grub/menu.lst}}.<br />
<br />
==== GRUB2 ====<br />
With grub2, one would ''append'' the following to ''/boot/grub/grub.cfg'' :<br />
menuentry "My BIOS Upgrade" {<br />
set root=(hd0,0) #should match the others in your grub.cfg<br />
linux16 /boot/memdisk<br />
initrd16 /boot/1WUJ25US.IMG #or whatever yours is<br />
}<br />
<br />
==== Successful tests ====<br />
{|border="1" cellspacing="0" cellpadding="2" style="font-size: 80%"<br />
|-<br />
! Model<br />
! BIOS<br />
! ECP<br />
! Tested by<br />
! Notes<br />
|-<br />
| {{R30}} 2656-64G || v.1.40 || || [[User:english.voodoo|Yuri Spirin]] ||<br />
|-<br />
| {{R40}} 2723 || 1OHJ11WW.IMG || 1PUJ25US.IMG || [[User:qunying|Qunying]] || memdisk from syslinux 3.70 (slackware 12.1)<br />
|-<br />
| {{R50e}} 1834NV1 || 1WUJ25US.IMG || || [[User:Jidanni|Jidanni]] || memdisk from syslinux-common 2:3.84+dfsg-1 (Debian), grub2 (1.96+20080724-16)<br />
|-<br />
| {{R51}} 2888 || || || || <br />
|-<br />
| {{T23}} 2647 || 1AUJ20US.IMG || 1AHJ06US.IMG || [[User:cthon|cthon]] || memdisk from syslinux 4.02-1 (arch linux) <br />
|-<br />
| {{T40}} 2373 || 1RUJ37US.IMG || 1RHJ10U2.IMG || [[User:Euphoria|Euphoria]] || memdisk from syslinux 1:3.31-4 (Debian package version)<br />
|-<br />
| {{T40}} 2373 || 1RHJ10U2.IMG<br />(3.04, 2004-11-15) || 1RUJ37US.IMG<br />(3.23, 2007-07-03) || [[User:Morphics|Morphics]] || cabextract and memdisk from syslinux 3:1.36-4ubuntu5<br />
|-<br />
| {{T41}} 2373 || 1RUJ37US.IMG<br />(3.23, 2007-07-03) || || [[User:Tonko|Tonko]] || Fedora 12<br />
|-<br />
| {{T41p}} 2373 || 1RUJ37US.IMG<br />(3.23, 2007-07-03) || || [[User:Deggel|Deggel]] || cabextract and memdisk from syslinux 3.71 on gentoo <br />
|-<br />
| {{T41p}} 2373 || || || [[User:MrStaticVoid|James Lee]] || <br />
|-<br />
| {{T42}} 2373 || 1RUJ37US.IMG || || [[User:Secsaba|Simon Csaba Endre]] || Ubuntu 10.04 Pre-update versions: BIOS v3.21 / ECP v3.04 After-update versions: BIOS v3.23 / ECP v3.04<br />
|-<br />
| {{T42p}} 2374 || 1RUJ37US.IMG || 1RHJ10U2.IMG || [[User:aderigs|Achim Derigs]] || Debian GNU/Linux sid, works with `linux16 ...' and `initrd16 ...' only<br />
|-<br />
| {{X31}} 2673-CBU || || || [[User:JanTopinski|Jan Topinski]] || <br />
|-<br />
| {{X31}} 2672-CXU || || || [[User:TheAnarcat|TheAnarcat]] || <br />
|-<br />
| {{X31}} 2672-JBU || 3.02 1QUJ19US.IMG || 1.08 1QUJ08US.IMG || [[User:twbxf4|twbxf4]] || worked flawlessly<br />
|-<br />
| {{X31}} 2673-58G || || || [[User:FaUl|FaUl]] || <br />
|-<br />
| {{X31}} 2672-PG9 || || || [[User:Starox|Starox]] || a big moment between starting update and the updating window <br />
|-<br />
| {{X31}} 2672-PG9 || v3.02 1QUJ19US.IMG || v1.08 1QHJ08US.IMG || [[User:TeeLittle|TeeLittle]] || Apr 10, 2010: Using Debian 5.0 "Lenny" + package syslinux-common (Version: 2:3.71+dfsg-5). Pre-update versions: BIOS v2.11 / ECP v1.03 <br />
|-<br />
| {{X40}} 2371 || 2.07 1uuj21us.exe || 1.62 1uhj10us.exe || [[User:Antialize|Jakob Truelsen]] || Worked on two X40-2371 <br />
|-<br />
| {{X40}} 2386 || 2.08 1uuj22us.exe || 1.62 1uhj10us.exe || [[User:Antialize|Galen Seitz]] || memdisk from syslinux 3.61<br />
|}<br />
(More successful grub tests are scattered in the previous table too.)<br />
<br />
==== Unsuccessful tests ====<br />
{|border="1" cellspacing="0" cellpadding="2" style="font-size: 80%"<br />
|-<br />
! Model<br />
! style="width:10em;" | BIOS<br />
! ECP<br />
! Tested by<br />
! Notes<br />
|-<br />
| {{R32}} 2658-NWU || 2.16 1MUD23US.IMG || n/a || [[User:Millman12345|Mike Millman]] || Boots into the BIOS flashing program just fine, but when it comes time to start the update process, the system hangs completely. Luckily, it hangs before it actually modifies anything... A hard reboot got me back into a working system. I would not recommend this route!<br />
|-<br />
| {{R52e}} 1846-CGL || 1.29<br />76UJ28UD.IMG || 1.01 || [[User:Lacyc3|Laszlo Takacs]] || Boots into BIOS flashing program but it hangs up before the upgrade process. I used memdisk from syslinux-4.01.<br />
|-<br />
| {{T43}} 2668-F7G || 1.29 1YUJ18US.IMG || || [[User:Maus3273|Maus3273]] || I got into the bios program, but the machine never restarts after initiating the upgrade.<br />
|-<br />
| {{X41}} 2525-FAG || 2.09 74UJ15US || || [[User:Ukleinek|Uwe Kleine-König]] || booted fine (Debian syslinux 2:3.71+dfsg-5), but didn't succeed to write, just hang at "Don't restart or remove diskette etc. pp" (not bricked). Worked fine via CD method.<br />
|- <br />
| {{X41}} 2525-F8G || 2.06 74UJ12US.IMG<br />2.07 74UJ13US.IMG<br />2.09 74UJ15US.IMG || || [[User:ladoga|Lauri Koponen]] || hangs while initializing the actual BIOS flashing process<br /> ECP: 1.02 74HJ03US.IMG works<br />
|-<br />
|}<br />
<br />
==== GRUB2 Boot CD Image ====<br />
Download the bootable iso file from the Lenovo Website. Copy the file 'memdisk' from the syslinux package to /boot. Also create a symlink, so you do not have to change the grub configuration for each bios upgrade:<br />
<pre><br />
sudo su -<br />
cd /boot<br />
cp /home/youruser/Downloads/6uuj12uc.iso .<br />
cp /usr/share/syslinux/memdisk .<br />
ln -s 6uuj12uc.iso biosupgrade.iso<br />
</pre><br />
Now create the boot entry:<br />
<pre><br />
cat >> /etc/grub.d/40_custom <<EOF<br />
menuentry "Lenovo BIOS Upgrade" {<br />
set root=(hd0,1) # <-- check for correct numbering<br />
linux16 /boot/memdisk iso<br />
initrd16 /boot/biosupgrade.iso<br />
}<br />
EOF<br />
update-grub<br />
</pre><br />
Reboot an Select "Lenovo BIOS Upgrade".<br />
<br />
For the next Bios Upgrade you'll just need to copy the new iso file to /boot and adjust the symlink.<br />
<br />
==== Successful tests ====<br />
{|border="1" cellspacing="0" cellpadding="2" style="font-size: 80%"<br />
|-<br />
! Model<br />
! BIOS<br />
! ECP<br />
! Tested by<br />
! Notes<br />
|-<br />
| {{X100e}} 2876-55G || 6xuj05uc.iso || || [[User:nikel]] ||<br />
|-<br />
| {{Edge}} || 1.17 6yuj04uc.iso || || [[User:theBro]] || Current memdisk from syslinux worked (5/2010), the one provided by Ubuntu 9.10 did not.<br />
|-<br />
| {{X200s}} || 1.13 6duj40uc.iso || || [[User:theBro]] || Current memdisk from syslinux worked (5/2010), the one provided by Ubuntu 9.10 did not.<br />
|-<br />
| {{X200s}} || 3.14 6duj41uc.iso || 1.06 || [[User:dag-|Dag Wieers]] || Using memdisk from syslinux 4.01<br />
|-<br />
| {{X201}} 3626-A14 || 1.15 6quj05uc.iso || 1.09 6quj05uc.iso || [[User:Alexander List|Alexander List]] || memdisk from syslinux 3.86<br />
|-<br />
| {{Edge 13"}} 0197-6GG || 1.18 6yuj05uc.iso || || [[User:fethio]] || Current memdisk from syslinux worked (5/2010), the one provided by Ubuntu 9.10 did not.<br />
|-<br />
| {{Edge 13"}} 0197-34Q || 1.21 6yuj08uc.iso || || [[User:Kapil]] || Current memdisk from syslinux debian version 2:4.02+dfsg-7<br />
|-<br />
| {{Edge 13"}} 0197-34Q || 1.18 6yuj05uc.iso || || [[User:Kapil]] || Current memdisk from syslinux debian version 2:4.01+dfsg-1<br />
|-<br />
| {{X200s}} || 3.15 6duj42uc.iso || || [[User:lawnjam]] || Memdisk 4.02 worked, the one provided by Ubuntu 10.04 did not.<br />
|-<br />
| {{X201}} || 1.22 6quj08uc.iso || 1.11 || [[User:dag-|Dag Wieers]] || Using memdisk from syslinux 4.03<br />
|-<br />
| {{T410s}} || 1.41 6uuj12uc.iso || 1.12 || regatus || Gentoo + memdisk (syslinux 4.0.3)<br />
|-<br />
|}<br />
<br />
==== Unuccessful tests ====<br />
{|border="1" cellspacing="0" cellpadding="2" style="font-size: 80%"<br />
|-<br />
! Model<br />
! BIOS<br />
! ECP<br />
! Tested by<br />
! Notes<br />
|-<br />
| {{T61}} 6466-55G || 2.27 7luj26uc.iso || 1.08 || [[User:mgedmin]] || Grub2 + memdisk (2:4.01+dfsg-3ubuntu1) booted the DOS image on the CD, which then tried to load a DOS CD-ROM driver, which then could not find the CD, and ended up with the infamous Abort, Retry, Fail.<br />
|-<br />
|}<br />
<br />
=== Booting from a Floppy ===<br />
{{WARN|Using a floppy disk '''is NOT recommended'''.}}<br />
<br />
This is how IBM/Lenovo intended it. Use their .exe files to create a bootable floppy with the flash update on it. Boot from the floppy and there you go.<br />
<br />
So, why is it not recommended?<br />
# If something goes wrong, your ThinkPad may be permanently damaged<br />
# Floppy disk drives are not reliable<br />
# Floppy disks are not reliable<br />
# It only works with /dev/fd0, meaning it won't work with a USB floppy<br />
<br />
So, even though Lenovo is now offering "Linux diskette" updaters, that will create a bootable floppy under Linux, using a floppy is still not recommended. Besides, many people don't even ''have'' a floppy drive on their ThinkPad.<br />
<br />
If you really want to do it with a floppy, some tips:<br />
* Use a clean (in the physical sense) floppy drive<br />
* Use new floppies<br />
* Test floppies for errors before starting update process<br />
* Have multiple copies of the update disks ready--if one should fail, replace it with a copy<br />
* Should DOS complain of a read error, '''only''' respond wth "Retry"<br />
<br />
{{NOTE|Should the system encounter a disk read error during the flash process, and you select "Abort", your system could be permanently damaged.}}<br />
<br />
=== Booting from a USB Flash drive ===<br />
<br />
==== Updating the BIOS in MS-DOS mode ====<br />
(This process works for most Thinkpad models that has Windows XP, Windows Vista or Windows 7 OS)<br />
<br />
1. Using HP USB Boot Utility, [http://blogs.oreilly.com/digitalmedia/2004/10/utility-to-make-usb-flash-driv.html create a bootable USB flash drive [http://www.bay-wolf.com/utility/usbkey/win98boot.zip DOS using Windows 98 Boot Disk Floppy Image].<br />
<br />
2. Extract the (*.ima) from the ISO BIOS image (e.g. [http://www.rarsoft.com WinRAR] will do this).<br />
<br />
3. Using a tool that can open .IMA files (such as [http://www.winimage.com/ WinImage]), extract all files to a temporary folder.<br />
<br />
4. Run the HP tool, select the USB device, I used FAT32, create a DOS bootable disk and point at the win98boot folder - then "Start". Warning: this '''formats''' the USB flash drive and all data will be erased!<br />
<br />
5. Once complete (you could test if it boots at this point), copy the extracted BIOS files from the temporary folder you created to the USB flash drive.<br />
<br />
6. Boot from USB flash drive by pressing F11 within the BIOS boot logo. At the DOS command prompt, type "updflsh" and then follow the prompts by pressing "Y" or Enter. Make sure that you have a fully charged battery pack and the AC Adapter is firmly plugged before proceeding with the BIOS update.<br />
'''DO NOT Power off the laptop or unplug the USB flash drive while the update is in progress or else update will fail and your computer will be unable to boot and system board may need to be serviced.'''<br />
<br />
This process takes around 1-2 minutes. A long beep followed by a short beep will notify you that the update is complete and the system will automatically power off.<br />
<br />
7. Power on the laptop then enter the BIOS setup by pressing F1 and Load BIOS defaults.<br />
<br />
==== Using grub4dos (also for Linux) ====<br />
<br />
[http://grub4dos.sourceforge.net/wiki/ grub4dos] is a GNU GRUB fork with interesting features. One of them is the ability to boot ISO images directly off USB flash drives. Contrary to the name, GRUB for DOS works fine on Linux. Follow these steps:<br />
* Download the latest grub4dos package at http://download.gna.org/grub4dos/ (I needed 0.4.4 for my USB2 drive - 0.4.3 did not work.)<br />
* Unpack<br />
* Insert your FAT-32 formatted pendrive<br />
* Run <code>sudo ./bootlace.com /dev/sdX</code>, where /dev/sdX is the device name assigned to your pendrive (use <code>sudo fdisk -l</code> to figure this out). Be very careful to get the device correct or else you could overwrite your hard drive! This creates grub4dos boot sector in MBR of the flash drive.<br />
* Copy the files <code>grldr</code> and <code>menu.lst</code> to the root directory of your pendrive.<br />
* Convert the ThinkPad .IMG file to a .ISO file using <code>genisoimage -b 1yuj18us.img -c boot.catalog -o 1yuj18us.iso 1yuj18us.img</code><br />
* Copy the ISO image to the root directory of your pendrive (e.g. <code>1yuj18us.iso</code>).<br />
* Edit <code>menu.lst</code> on the pendrive and include the following section (of course putting the appropriate ISO image name):<br />
<pre><br />
title thinkpad-bios<br />
map (hd0,0)/1yuj18us.iso (hd32)<br />
map --hook<br />
chainloader (hd32)<br />
boot<br />
</pre><br />
* Reboot and press F12 to select booting from USB.<br />
* If all went well, you should be able to boot the Thinkpad's ISO image and flash the BIOS. I tested it successfully on T400. [[User:Wanted|Wanted]] 20:23, 16 July 2010 (UTC)<br />
<br />
==== Using UNetbootin ====<br />
<br />
Unetbootin 422 worked with the image files unpacked with cabextract on my x31.<br />
<br />
{{HELP|How exactly did you do this? It failed for me. Does it work only with .IMG files that are converted to .ISO files, or can .ISO files provided by Lenovo also work (how?)}}<br />
<br />
=== Booting from a Network Boot Image ===<br />
BIOS, ECP, CD/DVD and Harddisk firmware disks can be booted over the network with [http://syslinux.zytor.com/pxe.php PXELINX] as part of the [http://syslinux.zytor.com/ SYSLINUX] package. This requires that you have a DHCP and tftp server configured and setup properly on your network, and is probably not for the faint of heart.<br />
<br />
Make sure the firmware bootdisk is in linux 'dd' format, as the self-extracting .exe disks from the IBM website cannot be booted directly as such.<br />
<br />
This worked on the {{R31}}, {{X22}}, {{T21}}, {{T30}} and {{T41p}} with various firmware updates. On the {{X22}}, it worked with ECP 1.30 but '''not''' with BIOS 1.32<br />
<br />
= Updating without battery or with dead battery =<br />
<br />
This is a last-resort approach. Use this only if everything else fails.<br />
<br />
The BIOS updater may refuse to update a BIOS without a battery, or if the battery charge is too low. In that case, extract the disk image with cabextract as per instructions above and dd it to an usb stick. (This will destroy the data on it, of course.) Acquire a pure DOS boot cd such as Windows 98 recovery CD and boot that.<br />
<br />
Use F8 to abort the boot sequence of a windows 98 boot CD. If you need CD-ROM support, load CD-related things but say no to everything else. In particular, avoid loading himem.sys and doskey, as the presence of either program causes Phoenix bios flash tool phlash16.exe to abort.<br />
<br />
Change to the volume where flash2.exe and other tools are installed, and execute "flash2.exe /u". This should bypass the battery check and perform the flashing. If that doesn't work, check if the update disk contains a tool called "phlash16.exe". This can be used directly to flash the image, and the invocation is typically "phlash16 /exit $01c80000.fl1".<br />
<br />
This method won't work for the Thinkpad {{560X}} (and likely other older models). Since the 560X is a bit older, it won't be a big surprise if the battery is dead as a dodo. Here's how to update the bios in this case: download the spsdi833 bios update and create the update floppy. If you have trouble creating this disk, [http://rapidshare.com/files/413598837/spsdi833-bios-560X.zip.html download an archive with the files] and put them on a floppy. Don't worry about making it bootable. Also, you will need a DOS bootdisk. A Windows 98 bootdisk will be fine. Boot the system with the W98 bootdisk, do not load CD-rom support. Remove the W98 bootdisk and put the disk with the BIOS update in the drive. If you would now run UPDTFLSH you would get the battery message, so don't do that. If you open UPDTFLSH.exe with a text editor, you would find some lines about UPDTROM. UPDTROM is the actual flash tool, but you can't simply run it just like that. Run the following:<br />
<br />
*updtrom /np /prep1<br />
*updtrom /np /prep2<br />
*updtrom /np /prep3<br />
*updtrom /np /romcmp /romflsh /prep4<br />
*updtrom /np /h8flsh /h8img /model<br />
<br />
Yes, you need to run updtrom five times. Hold your breath and reboot the machine. It's done.<br />
<br />
Perhaps not all these lines are necessary, but to be sure I ran them all, and this worked for me. So I suggest you do the same. This could probably be done from the harddisk as well, but I did not test that.<br />
<br />
=After updating=<br />
Lenovo recommends reseting your BIOS settings to their factory defaults after a firmware update.<br />
<br />
==DMI IDs==<br />
Please consider updating the [[List of DMI IDs]] after updating your BIOS.<br />
<br />
= Special Cases =<br />
* In one case, see ([[APM setup on a type 2379 ThinkPad T40]]), it was not possible to upgrade the BIOS from Windows XP; a downgrade to Windows 98 was required to successfully run the BIOS upgrade app. The symptoms in this case were that, once the files had been extracted to the hard disk, and the machine was to reboot into the upgrade app, it would beep and hang just before reboot, requiring a power cycle. Once the power was cycled, it would simply reboot back into XP without performing any BIOS upgrade actions. So even if you have Windows, you may still need to use the info on this page.<br />
<br />
== Updating Thinkpad X Series ==<br />
The special update instructions for {{X_Series}} Thinkpads are quite long. You can find them at the page [[BIOS_Upgrade/X_Series]].<br />
<br />
<br />
<br />
<br />
<br />
----<br />
<br />
{{footnotes|<br />
# For lots of detail on making and burning .iso files, see The Linux Documentation Project (tldp.org): [http://tldp.org/HOWTO/CD-Writing-HOWTO-3.html#ss3.1 3.1 Writing CD-ROMs (pure data)].<br />
}}</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=51326Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2011-03-29T01:43:51Z<p>Bombenbach: /* Set up Fan Control */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cyes}}<br />
|out of the box, tested with a Conrad 1 Port SATA II ExpressCard 34 (SiL3531) and an external eSATA HDD (easyNova DATA BOX PRO-35SUS)<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer (PulseAudio) settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
Probably the easiest workaround is to make things work like they did in earlier Ubuntu versions (e.g. 7.04). This means that each time you press a hardware volume button you do see a notification via Ubuntu's OSD but you also change both mixers (hardware and software) simultaneously. This means that you get a quite weird volume scale and reach maximal loudness at approximately 50-80% of the software mixer. The experience shows, however, that most users don't consider that to be disturbing and are mostly fine with these "solution". To check, if it's okay for you, open a terminal and run<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
If you are happy with the result all you should do is make it persistent. To do this, open a terminal, run<br />
sudo gedit /etc/rc.local<br />
paste<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
save and exit. If you don't like the result, don't make it persistent. Just reboot and try Workaround #2 or #3.<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #3 ===<br />
<br />
If you still want to use the hardware volume buttons you can add a special volume indicator for them. In this case you can still apply the Workaround #1 to get special keyboard shortcuts for the software mixer, or you can simply set the software mixer to something like 50% and use the hardware mixer only. To add a simple volume indicator for the hardware mixer, do the following. Open a terminal and run<br />
sudo apt-get install xosd-bin<br />
sudo gedit /etc/acpi/ibm-volchange.sh<br />
paste this<br />
#!/bin/sh<br />
#<br />
# This script show the current state of the internal volume mixer<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
osd_cat=`pidof osd_cat`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$osd_cat" != "" ]; then <br />
/usr/bin/killall osd_cat <br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
else<br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
fi<br />
fi<br />
done<br />
save and close gedit. In the same terminal run<br />
sudo chmod +x /etc/acpi/ibm-volchange.sh<br />
sudo gedit /etc/acpi/events/ibm-volume-up<br />
paste this<br />
# /etc/acpi/events/ibm-volume-up<br />
<br />
event=ibm/hotkey HKEY 00000080 00001015<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo gedit /etc/acpi/events/ibm-volume-down<br />
paste this<br />
# /etc/acpi/events/ibm-volume-down<br />
<br />
event=ibm/hotkey HKEY 00000080 00001016<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo kill -SIGHUP `pidof acpid`<br />
close the terminal. Now you should be able to see the new volume indicator.<br />
<br />
[[File:VolIndZ61m.png|800px]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
{{WARN|This problem is apparently not present anymore in Lucid with latest update. Thus, you should skip this part.}} <br />
<br />
<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
{{WARN|This problem is apparently not present anymore in Lucid with latest update. Thus, you should skip this part.}} <br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=51325Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2011-03-29T01:41:39Z<p>Bombenbach: /* Fix the hard drive clicking bug */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cyes}}<br />
|out of the box, tested with a Conrad 1 Port SATA II ExpressCard 34 (SiL3531) and an external eSATA HDD (easyNova DATA BOX PRO-35SUS)<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer (PulseAudio) settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
Probably the easiest workaround is to make things work like they did in earlier Ubuntu versions (e.g. 7.04). This means that each time you press a hardware volume button you do see a notification via Ubuntu's OSD but you also change both mixers (hardware and software) simultaneously. This means that you get a quite weird volume scale and reach maximal loudness at approximately 50-80% of the software mixer. The experience shows, however, that most users don't consider that to be disturbing and are mostly fine with these "solution". To check, if it's okay for you, open a terminal and run<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
If you are happy with the result all you should do is make it persistent. To do this, open a terminal, run<br />
sudo gedit /etc/rc.local<br />
paste<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
save and exit. If you don't like the result, don't make it persistent. Just reboot and try Workaround #2 or #3.<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #3 ===<br />
<br />
If you still want to use the hardware volume buttons you can add a special volume indicator for them. In this case you can still apply the Workaround #1 to get special keyboard shortcuts for the software mixer, or you can simply set the software mixer to something like 50% and use the hardware mixer only. To add a simple volume indicator for the hardware mixer, do the following. Open a terminal and run<br />
sudo apt-get install xosd-bin<br />
sudo gedit /etc/acpi/ibm-volchange.sh<br />
paste this<br />
#!/bin/sh<br />
#<br />
# This script show the current state of the internal volume mixer<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
osd_cat=`pidof osd_cat`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$osd_cat" != "" ]; then <br />
/usr/bin/killall osd_cat <br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
else<br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
fi<br />
fi<br />
done<br />
save and close gedit. In the same terminal run<br />
sudo chmod +x /etc/acpi/ibm-volchange.sh<br />
sudo gedit /etc/acpi/events/ibm-volume-up<br />
paste this<br />
# /etc/acpi/events/ibm-volume-up<br />
<br />
event=ibm/hotkey HKEY 00000080 00001015<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo gedit /etc/acpi/events/ibm-volume-down<br />
paste this<br />
# /etc/acpi/events/ibm-volume-down<br />
<br />
event=ibm/hotkey HKEY 00000080 00001016<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo kill -SIGHUP `pidof acpid`<br />
close the terminal. Now you should be able to see the new volume indicator.<br />
<br />
[[File:VolIndZ61m.png|800px]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
{{WARN|This problem is apparently not present anymore in Lucid with latest update. Thus, you should skip this part.}} <br />
<br />
<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=50243Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2011-01-07T23:18:21Z<p>Bombenbach: /* Hardware Support */ Express Card</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cyes}}<br />
|out of the box, tested with a Conrad 1 Port SATA II ExpressCard 34 (SiL3531) and an external eSATA HDD (easyNova DATA BOX PRO-35SUS)<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer (PulseAudio) settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
Probably the easiest workaround is to make things work like they did in earlier Ubuntu versions (e.g. 7.04). This means that each time you press a hardware volume button you do see a notification via Ubuntu's OSD but you also change both mixers (hardware and software) simultaneously. This means that you get a quite weird volume scale and reach maximal loudness at approximately 50-80% of the software mixer. The experience shows, however, that most users don't consider that to be disturbing and are mostly fine with these "solution". To check, if it's okay for you, open a terminal and run<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
If you are happy with the result all you should do is make it persistent. To do this, open a terminal, run<br />
sudo gedit /etc/rc.local<br />
paste<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
save and exit. If you don't like the result, don't make it persistent. Just reboot and try Workaround #2 or #3.<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #3 ===<br />
<br />
If you still want to use the hardware volume buttons you can add a special volume indicator for them. In this case you can still apply the Workaround #1 to get special keyboard shortcuts for the software mixer, or you can simply set the software mixer to something like 50% and use the hardware mixer only. To add a simple volume indicator for the hardware mixer, do the following. Open a terminal and run<br />
sudo apt-get install xosd-bin<br />
sudo gedit /etc/acpi/ibm-volchange.sh<br />
paste this<br />
#!/bin/sh<br />
#<br />
# This script show the current state of the internal volume mixer<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
osd_cat=`pidof osd_cat`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$osd_cat" != "" ]; then <br />
/usr/bin/killall osd_cat <br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
else<br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
fi<br />
fi<br />
done<br />
save and close gedit. In the same terminal run<br />
sudo chmod +x /etc/acpi/ibm-volchange.sh<br />
sudo gedit /etc/acpi/events/ibm-volume-up<br />
paste this<br />
# /etc/acpi/events/ibm-volume-up<br />
<br />
event=ibm/hotkey HKEY 00000080 00001015<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo gedit /etc/acpi/events/ibm-volume-down<br />
paste this<br />
# /etc/acpi/events/ibm-volume-down<br />
<br />
event=ibm/hotkey HKEY 00000080 00001016<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo kill -SIGHUP `pidof acpid`<br />
close the terminal. Now you should be able to see the new volume indicator.<br />
<br />
[[File:VolIndZ61m.png|800px]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=50214Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2011-01-02T22:10:23Z<p>Bombenbach: /* Workaround for the Volume Buttons */ added the ugly hack from previous Ubuntu versions</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer (PulseAudio) settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
Probably the easiest workaround is to make things work like they did in earlier Ubuntu versions (e.g. 7.04). This means that each time you press a hardware volume button you do see a notification via Ubuntu's OSD but you also change both mixers (hardware and software) simultaneously. This means that you get a quite weird volume scale and reach maximal loudness at approximately 50-80% of the software mixer. The experience shows, however, that most users don't consider that to be disturbing and are mostly fine with these "solution". To check, if it's okay for you, open a terminal and run<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
If you are happy with the result all you should do is make it persistent. To do this, open a terminal, run<br />
sudo gedit /etc/rc.local<br />
paste<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
save and exit. If you don't like the result, don't make it persistent. Just reboot and try Workaround #2 or #3.<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #3 ===<br />
<br />
If you still want to use the hardware volume buttons you can add a special volume indicator for them. In this case you can still apply the Workaround #1 to get special keyboard shortcuts for the software mixer, or you can simply set the software mixer to something like 50% and use the hardware mixer only. To add a simple volume indicator for the hardware mixer, do the following. Open a terminal and run<br />
sudo apt-get install xosd-bin<br />
sudo gedit /etc/acpi/ibm-volchange.sh<br />
paste this<br />
#!/bin/sh<br />
#<br />
# This script show the current state of the internal volume mixer<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
osd_cat=`pidof osd_cat`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$osd_cat" != "" ]; then <br />
/usr/bin/killall osd_cat <br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
else<br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
fi<br />
fi<br />
done<br />
save and close gedit. In the same terminal run<br />
sudo chmod +x /etc/acpi/ibm-volchange.sh<br />
sudo gedit /etc/acpi/events/ibm-volume-up<br />
paste this<br />
# /etc/acpi/events/ibm-volume-up<br />
<br />
event=ibm/hotkey HKEY 00000080 00001015<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo gedit /etc/acpi/events/ibm-volume-down<br />
paste this<br />
# /etc/acpi/events/ibm-volume-down<br />
<br />
event=ibm/hotkey HKEY 00000080 00001016<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo kill -SIGHUP `pidof acpid`<br />
close the terminal. Now you should be able to see the new volume indicator.<br />
<br />
[[File:VolIndZ61m.png|800px]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=50208Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-12-30T01:54:30Z<p>Bombenbach: Add an osd_cat volume indicator for the hardware volume buttons</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use the hardware volume buttons you can add a special volume indicator for them. In this case you can still apply the Workaround #1 to get special keyboard shortcuts for the software mixer, or you can simply set the software mixer to something like 50% and use the hardware mixer only. To add a simple volume indicator for the hardware mixer, do the following. Open a terminal and run<br />
sudo apt-get install xosd-bin<br />
sudo gedit /etc/acpi/ibm-volchange.sh<br />
paste this<br />
#!/bin/sh<br />
#<br />
# This script show the current state of the internal volume mixer<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
osd_cat=`pidof osd_cat`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$osd_cat" != "" ]; then <br />
/usr/bin/killall osd_cat <br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
else<br />
/usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" &<br />
break<br />
fi<br />
fi<br />
done<br />
save and close gedit. In the same terminal run<br />
sudo chmod +x /etc/acpi/ibm-volchange.sh<br />
sudo gedit /etc/acpi/events/ibm-volume-up<br />
paste this<br />
# /etc/acpi/events/ibm-volume-up<br />
<br />
event=ibm/hotkey HKEY 00000080 00001015<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo gedit /etc/acpi/events/ibm-volume-down<br />
paste this<br />
# /etc/acpi/events/ibm-volume-down<br />
<br />
event=ibm/hotkey HKEY 00000080 00001016<br />
action=/etc/acpi/ibm-volchange.sh<br />
save and close gedit. In the same terminal run<br />
sudo kill -SIGHUP `pidof acpid`<br />
close the terminal. Now you should be able to see the new volume indicator.<br />
<br />
[[File:VolIndZ61m.png|800px]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=File:VolIndZ61m.png&diff=50207File:VolIndZ61m.png2010-12-30T01:52:00Z<p>Bombenbach: </p>
<hr />
<div></div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=50204Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-12-29T20:53:38Z<p>Bombenbach: /* Set up Hard Drive Active Protection System */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. That's because hitting "Volume Up" actually increases volume both in hardware mixer and software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=50203Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-12-29T20:50:31Z<p>Bombenbach: /* Workaround for the Volume Buttons */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed.<br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
To check the current level of the hardware mixer, open a terminal and run<br />
alsamixer <br />
Then, hit F6 and select '''ThinkPad Console Audio Control'''. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.<br />
<br />
[[File:Alsamixer_Z61m.png|800px]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. That's because hitting "Volume Up" actually increases volume both in hardware mixer and software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=File:Alsamixer_Z61m.png&diff=50202File:Alsamixer Z61m.png2010-12-29T20:47:46Z<p>Bombenbach: </p>
<hr />
<div></div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=49266Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-08-03T17:23:37Z<p>Bombenbach: </p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
= HOWTOS = <br />
<br />
== Set up the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Set up External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Set up Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Set up Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Set up Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
== Set up HDAPS accelerometer event ==<br />
This section assumes you set up [http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Lucid tp_smapi].<br />
<br />
To add the device rule (this worked for X61t, there is more info about the udev rule on [http://www.thinkwiki.org/wiki/Talk:HDAPS#Question_regarding_the_example_udev_rule_.3F the HDAPS Talk page])<br />
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules<br />
Then force the reloading of rules.d<br />
sudo udevadm trigger<br />
Now you should have a<br />
/dev/input/hdaps/accelerometer-event<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Set up Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute<br />
sudo gedit /usr/bin/fan_check.sh<br />
paste this<br />
#!/bin/bash<br />
echo "Checking if tpfand is still running"<br />
ps -ef | grep -v grep | grep tpfand<br />
if [ $? -eq 1 ]<br />
then<br />
echo "tpfand is not running - restarting"<br />
sudo /etc/init.d/tpfand restart<br />
else<br />
echo "tpfand is still running"<br />
fi<br />
and save the file. Now run<br />
sudo chmod +x /usr/bin/fan_check.sh<br />
sudo crontab -e <br />
if asked to choose an editor, choose nano. Paste this<br />
SHELL=/bin/bash<br />
*/5 * * * * /usr/bin/fan_check.sh<br />
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.<br />
{{WARN|Don't do this if you are not affected!}} <br />
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately (see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)<br />
*[http://cazatech.wordpress.com/2007/07/07/shell-script-restart-process-if-not-found-running/] Shell Script – Restart Process if not found running<br />
<br />
[[Category:Z61m]]<br />
[[Category:Ubuntu 10.04]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48810Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-06-16T09:39:56Z<p>Bombenbach: /* Setup Fingerprint Reader */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Setup Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Setup Fingerprint Reader == <br />
<br />
Although thinkfinger can be installed from Lucid repos, it contains some regressions which<br />
prevent fingerprint authentication from working properly. For more information check out <br />
[https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429] Martin Schwenke <br />
provides a PPA with the fixed version of thinkfinger which seems to work quite well.<br />
<br />
To install thinkfinger open a terminal and run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings ([https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/529338 Bug #529338]). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
{{HELP|Did someone else experience this problem and test the workaround?}}<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48803Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-06-14T22:45:22Z<p>Bombenbach: /* External Sources */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Setup Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Setup Fingerprint Reader == <br />
In a terminal run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
{{HELP|Did someone else experience this problem and test the workaround?}}<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration (wiki.ubuntuusers.de)<br />
*[http://fedoraproject.org/wiki/Features/ColorManagement] Gnome Color Manager (fedoraproject.org)<br />
*[http://www.ubuntufieldmanual.com/?q=node/38] Calibrate your monitor (Ubuntu Field Manual)</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48779Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-06-12T22:22:59Z<p>Bombenbach: add a how-to for color management</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
<br />
== Setup Color Management == <br />
To use ICC/ICM profiles you should install [http://projects.gnome.org/gnome-color-manager/ GNOME Color Manager] via<br />
sudo apt-get install gnome-color-manager<br />
After that it should appear under '''System -> Preferences -> Color Profiles'''. Alternatively you can start it from the terminal by issuing<br />
gcm-prefs<br />
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under '''Color Profile''' and selecting '''Other profile ...'''<br />
<br />
[[File:CMgment.jpg]]<br />
<br />
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running<br />
sudo apt-get install wine<br />
After that download [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html 79oi22ww.exe] and right-click the file. Go to the '''Properties''' tab and tick '''Allow executing file as program''' In the '''Open With''' tab select '''Wine Windows Program Loader''' and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. '''TPFLX.icm''' is for [http://www.thinkwiki.org/wiki/Flexview#Flexview_.28IPS.29 FlexView] panels whereas '''TPMB60.ICM''' and '''TPMB72.ICM''' are for [http://www.thinkwiki.org/wiki/Flexview#MaxBright MaxBright] panels. If you have only a plain TFT panel (not MaxBright) then stick to '''TPLCD.icm'''. <br />
<br />
After importing the appropriate profile to GCM and selecting it, be sure to go to '''Defaults''' tab and select '''Apply display correction''' and '''Set profile for color managed applications''' Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays. <br />
<br />
At least adjusting gamma is possible when using '''xgamma'''. In a terminal run <br />
xgamma<br />
to see you current gamma settings. You should see something like<br />
-> Red 1.000, Green 1.000, Blue 1.000<br />
It is possible to adjust gamma values for all colors at the same time by issuing something like<br />
xgamma -gamma 0.9<br />
or for red, green and blue separately<br />
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0<br />
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at [http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html this page by Mitchell Charity]. Thus, to get something like 7800K you'll have to issue<br />
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0<br />
After having found your favourite settings, you'll probably want to make them persistent. To do this go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add something like this<br />
Name: xgamma<br />
Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0<br />
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup<br />
<br />
== Setup Fingerprint Reader == <br />
In a terminal run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
{{HELP|Did someone else experience this problem and test the workaround?}}<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=File:CMgment.jpg&diff=48778File:CMgment.jpg2010-06-12T20:51:43Z<p>Bombenbach: </p>
<hr />
<div></div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Intel_Graphics_Media_Accelerator_950&diff=48636Intel Graphics Media Accelerator 9502010-05-24T17:10:58Z<p>Bombenbach: /* ThinkPads this chip may be found in */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
This is an Intel video adapter<br />
<br />
== Features ==<br />
* Integrated into the following chipsets:<br />
** [[Intel 945GM]]<br />
* PCI ID: 8086:27a2<br />
* Uses up to 224MB of main memory for video usage<br />
</div><br />
|style="vertical-align:top" |<br />
|}<br />
<br />
= Intel video driver =<br />
The Intel opensource videodriver is maintained by Intel at [http://intellinuxgraphics.org/ intellinuxgraphics.org].<br />
Intel releases a new driver once per quarter. The latest stable release is 2.10.<br />
<br />
== Kernel mode setting (KMS) ==<br />
KMS (Kernel Mode Setting) as the name suggests moves some video setup functions to the kernel. This should have the following benefits over legacy mode setting<br />
* increased stability, because it removes the current contention between the X server and the kernel<br />
* ability to show kernel dump screens even when the X server was running<br />
* rapid mode switching<br />
* in theory should not allow the X video driver to hang the system<br />
* early graphical boot display with seamless login<br />
* should in the future allow for the X server to run without root privileges<br />
* larger virtual display size (4096x4096) allowing extended desktop configs (2048x2048 without KMS)<br />
<br />
Note that KMS does not eliminate the need for the Intel Xorg driver, it just frees that driver from the hardware setup functions.<br />
=== Status===<br />
Right now KMS is still in heavy development, and officially requires at least kernel 2.6.29 with version 2.7 of the Intel driver. But in reality you should really be running at least the 2.6.30.5 kernel and version 2.8 of the Intel driver.<br />
<br />
==== Issues ====<br />
The chip has hardware limitations when the display area exceeds 2048 pixels (horizontally or vertically), which is why earlier versions of the driver did not even try to support it. Here are the limitations you may run into when running dual-display Extended desktop.<br />
* 3D acceleration is limited (compiz will crash, or with some older software stacks may even freeze the system) [https://bugzilla.redhat.com/show_bug.cgi?id=513736]<br />
* Xvideo does not work (black or empty video window) [https://bugzilla.redhat.com/show_bug.cgi?id=497069]<br />
<br />
For the Xvideo issue a workaround in the driver is technically possible but not yet implemented.<br />
<br />
For now you can work around the Xvideo driver issue by either enabling Metacity compositing '''or''' disabling XV overlay.<br />
<br />
'''Enable Metacity Compositing'''<br />
gconftool-2 --type bool --set /apps/metacity/general/compositing_manager true<br />
<br />
This will result in a slower desktop. It can be turned off again with<br />
gconftool-2 --type bool --set /apps/metacity/general/compositing_manager false<br />
<br />
'''Disable XV''' <br><br />
This will cause much higher CPU usage, but only during video playback. For Gstreamer enabled apps this can be set globally, for other apps you will have to dig into their settings.<br />
gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink ximagesink<br />
<br />
To set it back to the default setting<br />
gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink autovideosink<br />
<br />
Here is a script I wrote that automatically sets the correct video output option based on configured displays. It could be launched from a dock hotplug event script (although that would not take care of all the use cases, such as booting with external display already attached)<br />
<br />
#!/bin/bash<br />
# This script is to work around an annoying issue on Intel 945 video chips<br />
# https://bugzilla.redhat.com/show_bug.cgi?id=497069<br />
# Basically you cannot have video acceleration if desktop size >2048 pixels in either way<br />
# unless you use Metacity compositing, which is rather slow.<br />
#<br />
# So there are 2 ways to work around the bug, either use Compositing or disable XV.<br />
# We do the later, but only if the current display size > 2048<br />
<br />
disablexv=0<br />
for output in $(/usr/bin/xrandr -d :0.0 --verbose| \<br />
/bin/grep "Screen 0"| \<br />
/usr/bin/awk '{print $8} {print $10}'| \<br />
/usr/bin/awk -F, '{print $1}')<br />
do<br />
if [ "$output" -gt "2048" ]; then<br />
disablexv=1<br />
fi<br />
done<br />
<br />
if [ "$disablexv" -eq "1" ]<br />
then<br />
/usr/bin/gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink ximagesink<br />
else<br />
/usr/bin/gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink autovideosink<br />
fi<br />
<br />
=== Configuration===<br />
In this mode, ideally you do not configure any settings through xorg.conf but by using xrandr, or a graphical front-end to RandR such as gnome-display-settings.<br />
<br />
=== Disabling KMS ===<br />
If KMS causes you problems, you can disable it and return to user mode setting (UMS) by booting with the {{bootparm|nomodeset|}} kernel boot option. Note that this is no longer an option starting with version 2.10 of the Intel Xorg driver as UMS support has been dropped.<br />
<br />
== User mode setting (UMS) ==<br />
User mode setting means the Intel Xorg driver does the mode setting. This is how mode setting worked before KMS was introduced. Note that starting with the 2.10 version of the Intel Xorg driver UMS support has been removed, leaving just KMS support.<br />
<br />
There are two ways to configure the driver, either the 'old fashion' way through xorg.conf, or using xrandr (either from the cmd line or through a display utility such as gnome-display-properties).<br />
<br />
=== xorg.conf ===<br />
The basic working starting point for the sections relevant to graphics (excluding any manually loaded modules) is:<br />
<br />
<pre><br />
Section "Device"<br />
Identifier "Intel Graphics Adapter"<br />
Driver "intel"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "Intel Graphics Adapter"<br />
EndSection<br />
</pre><br />
<br />
But with modern distributions even the above is not necessarily needed as the video chipset, resolution, refresh rate, etc will be auto-detected. If you don't like the auto-detected settings, you can use the XRandR command line utility to adjust them dynamically without having to restart the X server! You can always of course get more sophisticated with the xorg.conf file. Just type <tt>man intel</tt> or read Intel's [http://intellinuxgraphics.org/documentation.html documentation] for more info.<br />
<br />
=== External display with XRandR ===<br />
Unfortunately, given all the radical changes to the Intel driver, and especially now with KMS, external display support has been rather in flux.<br />
<br />
One of the issues encountered is that the maximum virtual screensize depending on driver version (or in the case of KMS, the kernel). This is important if you want to have an extended desktop (dual-display), but not for Mirror mode. If your using KMS, depending on what patches made it into the kernel the maximum virtual screensize is either 2048x2048 or 4096x4096. If your not using KMS, depending on the Intel driver version it will be either 1280x1280 or 2048x2048. 4096x4096 is not possible without KMS, and even then you might have to add this patch http://lists.freedesktop.org/archives/intel-gfx/2009-July/003353.html to your kernel to enable it. <br />
<br />
To see what your virtual screensize is, simply run xrandr from a cmdline and look for something like this<br />
Screen 0: minimum 320 x 200, current 1400 x 1050, maximum 4096 x 4096<br />
As you can see in the above example the maximum virtual screensize is 4096x4096 which is ideal, and again, only possible in combination with KMS. If your getting 1280x1280 instead, your running an older Intel driver and have to add the Virtual line as shown below to your xorg.conf<br />
<br />
<pre><br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "Intel Graphics Adapter"<br />
SubSection "Display"<br />
Virtual 2048 2048<br />
EndSubSection<br />
EndSection<br />
</pre><br />
<br />
Once you have started X, you should find that your multiple monitors are automatically activated and mirror each other to the extent allowed by their potentially different geometries. If you want them to appear as a "large desktop", you need to adjust their relative position with the XRandR utility. You can get an idea of what you're working with by typing<br />
<pre>xrandr -q</pre><br />
This will give you a list of outputs and tell you which ones are connected. The external display port should be called "<tt>VGA</tt>" or "<tt>DVI</tt>" (or "<tt>VGA1</tt>" or "<tt>DVI1</tt>" in case of KMS) while the builtin LCD should be called "<tt>LVDS</tt>". (or "<tt>LVDS1</tt>" in case of KMS). If, for example you want to stack your desktops vertically, you might do something like<br />
<pre>xrandr --output LVDS --below VGA</pre><br />
or<br />
<pre>xrandr --output VGA --below LVDS</pre><br />
your window manager may treat the two cases differently in terms of where it decides to put things like the toolbar. Ideally, you probably want to put the desired xrandr command someplace that it might get executed before your window manager starts. For example in your ~/.xsession or ~/.xinitrc file.<br />
<br />
=== External VGA port with xorg.conf ===<br />
While XRandR eliminates the '''need''' to deal with <tt>xorg.conf</tt> in posititioning your screens, you may just want them to be laid out correctly from the outset. In this case, you can specify the default orientation of the displays in the xorg.conf file (which you can still change later with XRandR). This involves adding a <tt>"Monitor"</tt> section for each physical display output specifying its position. You must also tell the driver which <br />
<tt>"Monitor"</tt> belongs to which output (VGA,LVDS,etc) with the associated <tt>"monitor-..."</tt> option.<br />
<pre><br />
Section "Device"<br />
Identifier "Intel 945GM"<br />
Driver "intel"<br />
Option "monitor-VGA" "External VGA"<br />
Option "monitor-LVDS" "Builtin LCD"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Builtin LCD"<br />
Option "Below" "External VGA"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "External VGA"<br />
Option "Above" "Builtin LCD"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen Dual"<br />
Device "Intel 945GM"<br />
SubSection "Display"<br />
Virtual 2048 2048<br />
EndSubSection<br />
EndSection<br />
</pre><br />
More info can be found at http://www.intellinuxgraphics.org/dualhead.html<br />
=== VESA (console) resolution ===<br />
Largest video resolution, supported by VESA for T60 is 1280x1024. You can set that for console in grub or lilo by adding vga=794 option.<br />
<br />
=== SVideo port ===<br />
The SVideo Port can be activated using xrandr.<br />
run<br />
xrandr --verbose<br />
to see if there is a TV section. The supported TV_FORMATs and other options are listed.<br />
The parameters TOP, RIGHT, BOTTOM ans LEFT are used to control the TV-overscan.<br />
<br />
#set the TV format<br />
xrandr --output TV --set TV_FORMAT PAL<br />
#set the overscan (adjust fitting your TV)<br />
xrandr --output TV --set TOP 20<br />
xrandr --output TV --set RIGHT 20<br />
xrandr --output TV --set BOTTOM 0<br />
xrandr --output TV --set LEFT 40<br />
#turn on the TV output<br />
xrandr --output TV --auto<br />
<br />
#turn off...<br />
xrandr --output TV --off<br />
<br />
This works for my Thinkpad R60, running Debian Lenny<br />
<br />
<br />
=== DVI port ===<br />
DVI passthrough is only supported on the T60 in combination with a docking station. Maximum resolution is 2048x1536<br />
<br />
=== Suspend behaviour ===<br />
* Required kernel parameters for suspend to ram: none<br />
* Additional notes: <br />
** switch to/from X11 to reinitialize display properly (stays black)<br />
** DO NOT use vbetool to save/restore the video mode, this breakes resume!<br />
<br />
== ThinkPads this chip may be found in ==<br />
* {{R60}}, {{R60e}}<br />
* {{T60}}<br />
* {{X60}}, {{X60s}}, {{X60_Tablet}}<br />
* {{Z61t}}, {{Z61e}}, {{Z61m}}<br />
<br />
[[Category:Components]]</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48634Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-24T10:32:25Z<p>Bombenbach: /* Setup Fan Control */ added Bug #</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
In a terminal run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
{{HELP|Did someone else experience this problem and test the workaround?}}<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately(see [https://bugs.launchpad.net/tp-fan/+bug/575199 Bug #575199]). A quick and dirty solution is to tweak this detection by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48633Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-24T10:29:45Z<p>Bombenbach: /* Setup Fan Control */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
In a terminal run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
{{HELP|Did someone else experience this problem and test the workaround?}}<br />
<br />
Sometimes ThinkPad Fan Control's daemon '''tpfand''' crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). It seems that this problem is somehow HAL related, since tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, '''tpfand''' stops immediately. A quick and dirty solution is to tweak this detection by editing tpfand's settings.py<br />
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py<br />
and replacing<br />
self.product_id = None<br />
self.product_name = None<br />
self.product_pretty_vendor = None<br />
self.product_pretty_name = None<br />
self.product_pretty_id = None<br />
by <br />
self.product_id = ''<br />
self.product_name = ''<br />
self.product_pretty_vendor = ''<br />
self.product_pretty_name = ''<br />
self.product_pretty_id = ''<br />
this will prevent '''tpfand''' from crashing even if it wasn't able to detect your ThinkPad's model.<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Tp_smapi&diff=48627Tp smapi2010-05-22T22:38:48Z<p>Bombenbach: Ubuntu Lucid beta 2 -> Ubuntu Lucid | (because that works in final release too)</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
The <tt>tp_smapi</tt> kernel module exposes some features of the ThinkPad hardware/firmware via a <tt>sysfs</tt> interface. Currently, the main implemented functionality is control of battery charging and extended battery status. The tp_smapi software package also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.<br />
<br />
This driver uses undocumented features and direct hardware access, so it may work unreliably or even damage your hardware; but so far no such damage has been reported.<br />
|}<br />
<br />
===Features===<br />
*<tt>tp_smapi</tt> driver<br />
**Battery charge/discharge control<br />
**Battery status information<br />
*<tt>hdaps</tt> driver (compared with the standard <tt>hdaps</tt> driver)<br />
**Improved stability<br />
**Improved model support<br />
**Improved functionality<br />
<br />
===Project Homepage / Availability===<br />
* Project page: http://tpctl.sourceforge.net/<br />
* Download page: http://sourceforge.net/projects/tpctl/files/tp_smapi<br />
* You need to download only the <i>tp_smapi</i> package.<br />
<br />
===Installation===<br />
====Installation from source====<br />
You will need the kernel headers and makefiles corresponding to your current kernel version. On {{Fedora}}, this means {{cmdroot|yum install kernel-devel-$(uname -r)}} .<br />
<br />
:{{cmdroot|tar xzvf tp_smapi-0.40.tgz}}<br />
:{{cmdroot|cd tp_smapi-0.40}}<br />
<br />
Then, either compile and load the driver within the current working directory (for testing):<br />
:{{cmdroot|make load}}<br />
OR compile and install into the kernel's module path:<br />
:{{cmdroot|make install}}<br />
<br />
If you use the [[HDAPS]] driver, add <tt>HDAPS=1</tt> to also patch the <tt>hdaps</tt> for compatibility with <tt>tp_smapi</tt> (this requires a kernel source tree matching the current kernel).<br />
Again, either load the driver within the current working directory:<br />
:{{cmdroot|1=make load HDAPS=1}}<br />
OR install into the kernel's module path:<br />
:{{cmdroot|1=make install HDAPS=1}}<br />
<br />
To prepare a stand-alone patch against the current kernel tree (including<br />
a patch against <tt>hdaps</tt> and new <tt>Kconfig</tt> entries):<br />
:{{cmdroot|make patch}}<br />
<br />
To delete all autogenerated files:<br />
:{{cmdroot|make clean}}<br />
<br />
The original kernel tree is never modified by any these commands. <br />
The {{path|/lib/modules}} directory is modified only by {{cmdroot|make install}}.<br />
<br />
====Installation in Gentoo====<br />
The {{Gentoo}} portage system carries a [http://packages.gentoo.org/package/app-laptop/tp_smapi tp_smapi package], which follows the latest version pretty closely. On a Gentoo system, you can install and load as follows.<br />
<br />
If you use the [[HDAPS]] driver, do this first:<br />
<br />
* Disable the <tt>hdaps</tt> module in your kernel configuration (Device Drivers &rarr; Hardware Monitoring Support &rarr; IBM Hard Drive Active Protection System)<br />
* Rebuild and install the kernel<br />
* Add the <tt>hdaps</tt> use flag in {{path|/etc/make.conf}}<br />
* {{cmdroot|rmmod hdaps}}<br />
<br />
Then:<br />
* {{cmdroot|emerge tp_smapi}} (or install tp_smapi with hdaps support manually, as above)<br />
* {{cmdroot|echo "tp_smapi" >> /etc/modules.autoload.d/kernel-2.6}}<br />
* {{cmdroot|echo "hdaps" >> /etc/modules.autoload.d/kernel-2.6}}<br />
<br />
Then reboot, or run:<br />
* {{cmdroot|modprobe tp_smapi}}<br />
* {{cmdroot|modprobe hdaps}}<br />
<br />
====Installation on Debian unstable (sid), testing (squeeze) or stable (lenny)====<br />
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.<br />
<br />
If you use a stock Debian kernel, you can install the tp_smapi modules with:<br />
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}<br />
* in order to make sure the modules package is kept in sync with the kernel one, you may also want to install the <code>tm-smapi-modules-2.6-686</code> or <code>tm-smapi-modules-2.6-amd64</code> package, depending on your architecture <br />
<br />
If you use a custom kernel, you can build tp_smapi with module-assistant:<br />
* {{cmdroot|aptitude install tp-smapi-source}}<br />
* {{cmdroot|m-a -t a-i tp-smapi}}<br />
<br />
====Installation on openSUSE====<br />
openSUSE provides rpm packages. Look for them at the package search: [http://software.opensuse.org/search/], search for the package named "tp_smapi".<br />
<br />
A step-by-step guide on how a relative linux newbie installed tp_smapi on a Thinkpad W500 running openSuse 11.1 using YAST Software Manager is available [http://forums.opensuse.org/hardware/laptop/417254-tp_smapi-lenovo-thinkpad-t400-t500-w500-step-step.html#post2005932 here]<br />
<br />
In case you are taking the hard way around, while compiling on 11.0, make complained about not being able to locate the kernel sources. It worked for me after I did this:<br />
<pre><nowiki>cp /usr/include/linux/aio_abi.h /lib/modules/`uname -r`/build/include/linux/</nowiki></pre><br />
<br />
====Installation on Ubuntu====<br />
Ubuntu ships tp_smapi in their <tt>linux-ubuntu-modules-*</tt> package for Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified <tt>hdaps</tt> module to <tt>hdaps_ec</tt> so that the two can coexist. You should load <tt>hdaps_ec</tt>, not <tt>hdaps</tt>.<br />
<br />
Ubuntu Intrepid and Jaunty, however, lack the <tt>hdaps_ec</tt> module, as reported [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/297213 here]. It will not be included again until said [[#Bundled hdaps driver|bundled hdaps driver]] is merged into mainline.<br />
<br />
=====Installation on Ubuntu Jaunty=====<br />
I have posted my experiences [http://meandmyubuntu.blogspot.com/2009/05/getting-hdasp-to-work-on-jaunty.html here]<br />
<br />
=====Installation on Ubuntu Karmic=====<br />
Ubuntu does not ship the precompiled module tp_smapi any more. However the source code is still present in the repository. It can be installed through module-assistant :<br />
:{{cmdroot|aptitude install tp-smapi-source}}<br />
:{{cmdroot|module-assistant prepare tp-smapi}}<br />
:{{cmdroot|module-assistant auto-install tp-smapi}}<br />
:{{cmdroot|modprobe tp-smapi}}<br />
<br />
=====Installation on Ubuntu Lucid=====<br />
The Karmic solution above works well.<br />
<br />
As an alternative, one can use the dkms flavour of the packages via<br />
:{{cmdroot|aptitude install tp-smapi-dkms}}<br />
:{{cmdroot|modprobe tp_smapi}}<br />
<br />
====Installation on older Ubuntu/Debian====<br />
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:<br />
<br />
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):<br />
<pre><nowiki>apt-get install build-essential</nowiki></pre><br />
<br />
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:<br />
<pre><nowiki>uname -r</nowiki></pre><br />
This will give you the version of your current kernel. <br />
Debian users execute the following:<br />
<pre><nowiki>apt-get install linux-source-`uname -r`</nowiki></pre><br />
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):<br />
<pre><nowiki>apt-get install linux-source-`uname -r`</nowiki></pre><br />
<br />
Be sure to unpack the source file. The easiest way is to open Nautilus as root:<br />
<pre><nowiki>sudo nautilus</nowiki></pre><br />
Then browse to /usr/src/ and extract the source file to that directory.<br />
<br />
Now change to the tp_smapi dir:<br />
<pre><nowiki>cd tp_smapi-X.YY</nowiki></pre> (X.YY being the version-number of [[tp_smapi]])<br />
and make and install tp_smapi as instructed above.<br />
<br />
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:<br />
<pre><nowiki>root@localhost:~#ls -l /lib/modules/2.6.20-16-generic<br />
lrwxrwxrwx 1 root root 28 2007-02-02 08:39 build -> /usr/src/linux-source-2.6.20</nowiki></pre><br />
Create the link if the line above does not exist:<br />
<pre><nowiki>root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/build</nowiki></pre><br />
<br />
Now the following will build and install the correct modules to their locations:<br />
<pre><nowiki>make install HDAPS=1</nowiki></pre><br />
To make sure your system loads the modules at boot time, do this:<br />
<pre><nowiki>echo "tp_smapi" >> /etc/modules<br />
echo "hdaps" >> /etc/modules</nowiki></pre><br />
and update your initramfs:<br />
<pre><nowiki>update-initramfs -u</nowiki></pre><br />
<br />
To get tp_smapi running now, just load the modules:<br />
<pre><nowiki>modprobe -a tp_smapi hdaps</nowiki></pre><br />
<br />
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.<br />
<br />
'''EDIT:''' Works on Kubuntu 7.10 ("Gutsy Gibbon"), too<br />
<br />
===Battery charge control features===<br />
To set the thresholds for starting and stopping battery charging (in percent of current full charge capacity):<br />
:{{cmdroot|echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh}}<br />
:{{cmdroot|echo 70 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh}}<br />
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/*_charge_thresh}}<br />
{{HINT|Battery charging thresholds can be used to keep Li-Ion and Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}<br />
To prevent charging for 17 minutes (regardless of thresholds):<br />
:{{cmdroot|echo 17 > /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}<br />
{{HINT|Charge inhibiting can be used to reduce the power draw of the laptop, in order to use an under-spec power supply that can't handle the combined power draw of running and charging. It can also be used to control which battery is charged when [[How to use UltraBay batteries|using an Ultrabay battery]].}}<br />
<br />
To cancel charging preventation:<br />
:{{cmdroot|echo 0 > /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}<br />
<br />
To force battery discharging (even if connected to AC):<br />
:{{cmdroot|echo 1 > /sys/devices/platform/smapi/BAT0/force_discharge}}<br />
{{HINT|This can be used to choose which battery is discharged when [[How to use UltraBay batteries|using an UltraBay battery]]. For example, see the {{CodeRef|tp-bat-balance}} script.}}<br />
<br />
To cancel forced discharge:<br />
:{{cmdroot|echo 0 > /sys/devices/platform/smapi/BAT0/force_discharge}}<br />
<br />
====Making the settings permanent on reboot====<br />
<br />
If you always use the same type of battery, then you may want the same settings to be configured each time you boot the machine.<br />
<br />
If you use various types of battery, then you may want to consider writing some scripts to detect the battery type and apply the appropriate settings.<br />
<br />
=====Debian=====<br />
<br />
It is not necessary to create your own init.d script or modify /etc/rc.local - you just need the package sysfsutils:<br />
:{{cmdroot|apt-get install sysfsutils}}<br />
<br />
Now, put your desired settings in /etc/sysfs.conf:<br />
<br />
<pre><nowiki># cat >> /etc/sysfs.conf << EOF<br />
# For a LiIon battery in a Thinkpad<br />
devices/platform/smapi/BAT0/start_charge_thresh = 50<br />
devices/platform/smapi/BAT0/stop_charge_thresh = 80<br />
EOF</nowiki></pre><br />
<br />
The init script supplied by sysfsutils will load these settings on each boot.<br />
<br />
===Battery status features===<br />
To view extended battery status such as charging state, voltage, current, capacity, cycle count and model information:<br />
<br />
<pre><br />
# cat /sys/devices/platform/smapi/BAT0/installed<br />
# cat /sys/devices/platform/smapi/BAT0/state # idle/charging/discharging<br />
# cat /sys/devices/platform/smapi/BAT0/cycle_count<br />
# cat /sys/devices/platform/smapi/BAT0/current_now # instantaneous current<br />
# cat /sys/devices/platform/smapi/BAT0/current_avg # last minute average<br />
# cat /sys/devices/platform/smapi/BAT0/power_now # instantaneous power<br />
# cat /sys/devices/platform/smapi/BAT0/power_avg # last minute average<br />
# cat /sys/devices/platform/smapi/BAT0/last_full_capacity<br />
# cat /sys/devices/platform/smapi/BAT0/remaining_percent<br />
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time<br />
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time<br />
# cat /sys/devices/platform/smapi/BAT0/remaining_capacity<br />
# cat /sys/devices/platform/smapi/BAT0/design_capacity<br />
# cat /sys/devices/platform/smapi/BAT0/voltage<br />
# cat /sys/devices/platform/smapi/BAT0/design_voltage<br />
# cat /sys/devices/platform/smapi/BAT0/manufacturer<br />
# cat /sys/devices/platform/smapi/BAT0/model<br />
# cat /sys/devices/platform/smapi/BAT0/barcoding<br />
# cat /sys/devices/platform/smapi/BAT0/chemistry<br />
# cat /sys/devices/platform/smapi/BAT0/serial<br />
# cat /sys/devices/platform/smapi/BAT0/manufacture_date<br />
# cat /sys/devices/platform/smapi/BAT0/first_use_date<br />
# cat /sys/devices/platform/smapi/BAT0/temperature # in milli-Celsius<br />
# cat /sys/devices/platform/smapi/ac_connected<br />
</pre><br />
<br />
The raw status data is also available, including some fields not listed above (in case you can figure them out):<br />
<br />
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/dump}}<br />
<br />
In all of the above, replace <tt>BAT0</tt> with <tt>BAT1</tt> to address the 2nd battery.<br />
<br />
Note that the battery status readout conflicts with the stock [[HDAPS|hdaps]] driver, so if you use <tt>hdaps</tt> you will need to load <tt>tp_smapi</tt> using {{cmdroot|1=make load HDAPS=1}} (see [[#Bundled hdaps driver|Bundled hdaps driver]] below).<br />
<br />
On [[ACPI]]-enabled systems, most of above information is also available through the files under {{path|/proc/acpi/battery}}. However, the ACPI interface does not include the instantaneous power and cycle count readouts, and does not work well when [[How to use UltraBay batteries|hotswapping UltraBay batteries]].<br />
<br />
====Scripts====<br />
Some scripts can make it easier to grep the information you need from tp_smapi<br />
* [[battery.rb]]<br />
<br />
===Other features===<br />
<br />
There is also [[sysfs]] attribute for making direct SMAPI requests to the SM BIOS firmware. Don't touch it unless you really know what you're doing. Example:<br />
# echo '211a 100 0 0' > /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request<br />
211a 34b b2 0 0 0 'OK'<br />
The "4b" in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).<br />
<br />
===Bundled <tt>hdaps</tt> driver===<br />
<br />
The tp_smapi package includes a modified version of the <tt>hdaps</tt> Linux kernel driver used by the [[HDAPS]] system. It has remained outside the mainline kernel for a few years for several reasons, [https://lists.ubuntu.com/archives/kernel-team/2009-April/005565.html] including the upstream maintainer's assertion that the new code's anonymous author was under a NDA. (Although this would not normally expose the kernel team to litigation.) [http://lkml.org/lkml/2008/9/15/126] [http://lkml.org/lkml/2008/10/7/403] [http://lkml.org/lkml/2008/10/7/428]<br />
<br />
To use <tt>tp_smapi</tt> and <tt>hdaps</tt> concurrently, you '''must''' use the modified version.<br />
<br />
To build the modified version, simply append the <tt>HDAPS=1</tt> parameter to the <tt>make</tt> command (see [[#Installation|Installation]] above):<br />
:{{cmdroot|1=make load HDAPS=1}}<br />
or<br />
:{{cmdroot|1=make install HDAPS=1}}<br />
<br />
If you don't do that, you will not be able to load <tt>tp_smapi</tt> (and its support module <tt>thinkpad_ec</tt>) when <tt>hdaps</tt> is loaded, and vice versa. You can use <tt>rmmod</tt> to switch between these modules.<br />
<br />
Note that some of the battery status is also visible through ACPI ({{path|/proc/acpi/battery/*}}), independently of <tt>tp_smapi</tt>.<br />
<br />
The modified <tt>hdaps</tt> has several changes:<br />
* The <tt>hdaps</tt> driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified <tt>hdaps</tt> coordinates this access through the bundled <tt>thinkpad_ec</tt> driver.<br />
* The modified <tt>hdaps</tt> driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.<br />
* Several other improvements, such as the ability to control the polling rate.<br />
<br />
===Troubleshooting===<br />
==== <tt>thinkpad_ec: cannot claim io ports 0x1600-0x161f</tt> ====<br />
The "<tt>thinkpad_ec: cannot claim io ports 0x1600-0x161f!</tt>" error message is printed when loading the <tt>thinkpad_ec</tt> module on some recent ThinkPad models. This occurs because the ACPI BIOS DSDT is reserving ports used by tp_smapi.<br />
<br />
As a workaround, add the <tt>force_io=1</tt> module parameter to <tt>thinkpad_ec</tt> in {{path|/etc/modprobe.conf}} (or your distribution's equivalent). Add the line:<br />
: options thinkpad_ec force_io=1<br />
<br />
For transient testing, load the modules as follows:<br />
<br />
: {{cmdroot|1=make load HDAPS=1 FORCE_IO=1}}<br />
<br />
Note: force_io option was added in tp_smapi v0.40 (released 2008-12-16).<br />
<br />
Models which need this option include:<br />
* ThinkPad {{T400}}<br />
* ThinkPad {{T500}}<br />
* ThinkPad {{X301}}<br />
<br />
More information:<br />
* http://bugzilla.kernel.org/show_bug.cgi?id=12221<br />
* http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html<br />
<br />
==== <tt>thinkpad_ec: no ThinkPad embedded controller!</tt> ====<br />
If you get "<tt>thinkpad_ec: no ThinkPad embedded controller!</tt>" when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.<br />
<br />
==== <tt>T60p writing to start_charge_thresh/stop_charge_thresh does not work!</tt> ====<br />
Writing to /sys/devices/platform/smapi/BAT0/start_charge_thresh succeeds, but the older value does not change. Solution: unknown. If you know a solution please update here.<br />
<br />
===Model-specific status===<br />
<br />
<br />
<div style="font-size: 92%"><br />
{| border="1" cellspacing="0" cellpadding="2"<br />
|+<tt>tp_smapi</tt> feature support matrix<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" | <br />
=====A series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{A22p}} 2629-USG<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || N/A || N/A || || || ||<br />
|-<br />
! {{A30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
=====G series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{G41}}<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || N/A || N/A || || || ||<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
<br />
=====R series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{R31}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || N/A || N/A || || || || No SMAPI BIOS<br />
|-<br />
! {{R40}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || N/A || N/A || || || ||<br />
|-<br />
! {{R50}}<br />
| {{Cunk}} || {{Cno}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{R50e}} 1834-JAG<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{R50e}} 1834-5US<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{R50p}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{R51}} 18*<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836<br />
|-<br />
! {{R51}} 28*<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495<br />
|-<br />
! {{R52}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||<br />
|-<br />
! {{R60}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}} || {{Cno|text=}} 1 || 0.33 || || ||<br />
|-<br />
! {{R61}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}} || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918<br />
|-<br />
! {{R61i}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}} || {{Cunk}} || || || || Machine type 8250<br />
|-<br />
! {{R400}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}} || {{Cyes|text=}} 1 || 0.40-1 || || || Machine type 7443<br />
|-<br />
! {{R500}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}} || {{Cyes|text=}} 1 || 0.40-1 || || ||<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
<br />
=====T series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{T20}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || N/A || N/A || || || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.<br />
|-<br />
! {{T22}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || N/A || N/A || || || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.<br />
|-<br />
! {{T23}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{T30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{T40}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{T40p}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{T41}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 3.23 || 3.04 ||<br />
|-<br />
! {{T41}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.20 || 3.04 ||<br />
|-<br />
! {{T41}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.23 || 3.04 ||<br />
|-<br />
! {{T41p}} 2373-AM9<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||<br />
|-<br />
! {{T42}}<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T42p}} 2373-KXU<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says "__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS".<br />
|-<br />
! {{T42p}} 2373-KUU<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T43}} 2686<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||<br />
|-<br />
! {{T43p}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 || || || ||<br />
|-<br />
! {{T60}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 || || ||<br />
|-<br />
! {{T60}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 || || ||<br />
|-<br />
! {{T60}} 1951-24G<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||<br />
|-<br />
! {{T60}} 2007-FSG<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.39 || 1.10 || 1.05b ||<br />
|-<br />
! {{T60}} 1951-CZ1<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.23 || 1.07 ||<br />
|-<br />
! {{T60p}} 8743-CTO<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || || ||<br />
|-<br />
! {{T61}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 || || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]<br />
|-<br />
! {{T61p}} 6457-7XG<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 || || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]<br />
|-<br />
! {{T400}} <br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 1.19 || || Requires <tt>force_io=1</tt> parameter to <tt>thinkpad_ec</tt><br />
|-<br />
! {{T400s}} <br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 2 || 0.40 || 1.06 || || Requires <tt>invert=2</tt> paramteter to <tt>hdaps</tt><br />
|-<br />
! {{T500}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.07 || || Requires <tt>force_io=1</tt> parameter to <tt>thinkpad_ec</tt><br />
|-<br />
! {{T510}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 1.12 || 1.08 || ||<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
<br />
=====W series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{W700}} 2757-CTO<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 2.08 || 1.05 ||<br />
|-<br />
<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
<br />
=====X series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{X22}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || N/A || N/A || || || || no EC controller found<br />
|-<br />
! {{X24}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{X30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || N/A || N/A || 0.34 || 1.09 || ||<br />
|-<br />
! {{X31}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{X32}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || N/A || N/A || || || ||<br />
|-<br />
! {{X40}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || <br />
|-<br />
! {{X41}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || || ||<br />
|-<br />
! {{X41_Tablet}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} (see ref) || 0.32 || || [http://sourceforge.net/mailarchive/message.php?msg_name=4757BD30.8080808%40ugcs.caltech.edu ref] ||<br />
|-<br />
! {{X60}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || || 2.07 || 1.10 || 2.6.20 issue (see discussion)<br />
|-<br />
! {{X60_Tablet}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34 || 7JET25WW (1.10 ) || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]<br />
|-<br />
! {{X60s}} 1704-5UG<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||<br />
|-<br />
! {{X60s}} 1704-56G<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||<br />
|-<br />
! {{X61}} 7673-CTO<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 7NETB9WW (2.19) || {{Cunk}} ||<br />
|-<br />
! {{X61}} 7675-CTO<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1 || || ||<br />
|-<br />
! {{X61}} 7675-4KU<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW 1.02 ||<br />
|-<br />
! {{X61_Tablet}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32 || || ||<br />
|-<br />
! {{X61s}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 || || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received<br />
|-<br />
! {{X100e}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 6XET36WW (1.20a) || 6XHT36WW (1.176000) || x100e NTS4UTX, dual-core L625 also works (NTT27MH)<br />
|-<br />
! {{X200}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||<br />
|-<br />
! {{X300}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW 1.00c ||<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
<br />
=====Z series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{Z60m}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{Z60t}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{Z61m}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || || ||<br />
|-<br />
! {{Z61t}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || || || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]<br />
|-<br />
! {{Z61p}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || || || ||<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
<br />
=====SL series and IdeaPad=====<br />
|-<br />
! colspan=12 style="text-align:left" |<br />
The ThinkPad SL series and IdeaPad series have firmware that is completely different from other ThinkPad models. Neither [[tp_smapi]] nor [[thinkpad-acpi]] support these models.<br />
|}<br />
</div><br />
<br />
<br />
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).<br />
<br />
Please update the above and report your experience on the [[Talk:tp_smapi|discussion]] page. If the module loads but gives a "<tt>not supported</tt>" or "<tt>not implementeded</tt>" error when you try to use some specific file in {{path|/sys/devices/platform/smapi/}}, please report the <tt>dmesg</tt> output and whether the corresponding functionality is available under Windows - maybe your ThinkPad just can't do that. <br />
<br />
While at it, you may also want to add your laptop to the [[list of DMI IDs]].<br />
<br />
=====HDAPS axis orientation=====<br />
<sup>1</sup> The HDAPS axis orientation is set using the <tt>invert</tt> module parameter (at load time) or sysfs attribute (at runtime). The <tt>hdaps</tt> driver of tp_smapi supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.<br />
<br />
The <tt>invert</tt> parameter is an integer between 0 and 7, whose meaning is defined below. (This is confusing. Most people will find it easier to just try all 8 possibilities.)<br />
<br />
Let <tt>X</tt> and <tt>Y</tt> denote the hardware readouts. Let <tt>R</tt> denote the laptop's roll (tilt left/right), and let <tt>P</tt> denote the laptop's pitch (tilt forward/backward). The possible values are as follows:<br />
invert=0: R= X P= Y (same as mainline)<br />
invert=1: R=-X P=-Y (same as mainline)<br />
invert=2: R=-X P= Y (new)<br />
invert=3: R= X P=-Y (new)<br />
invert=4: R= Y P= X (new)<br />
invert=5: R=-Y P=-X (new)<br />
invert=6: R=-Y P= X (new)<br />
invert=7: R= Y P=-X (new)<br />
<br />
[[Category:Drivers]] [[Category:Patches]]<br />
<br />
===Tools using this driver===<br />
<br />
The driver's interface can be accessed directly through the files under {{path|/sys/devices/platform/smapi}}, or via the following tools:<br />
* [[KThinkBat]] - display battery status on the KDE <tt>kicker</tt> panel.<br />
* [[gkrellm-ThinkBat]] - battery status plugin for Gkrellm2<br />
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.<br />
<br />
== Headline text ==</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48620Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-20T21:57:13Z<p>Bombenbach: /* Hardware Support */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Hard_Drive_Active_Protection_System See here]<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with ThinkFinger. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here]<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}. For configuring {{key|Fn}}{{key|Space}} [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work see here]<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Map_ThinkVantage_Button See here]<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Workaround_for_the_Volume_Buttons see here]<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_%28Lucid_Lynx%29_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work See here]<br />
|}<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
In a terminal run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48571Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-16T21:45:01Z<p>Bombenbach: /* Setup Hard Drive Active Protection System */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. See below<br />
|}<br />
<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
In a terminal run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48570Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-16T21:44:07Z<p>Bombenbach: /* Workaround for the Volume Buttons */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. See below<br />
|}<br />
<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. <br />
<br />
=== Possible Workaround #1 ===<br />
<br />
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
=== Possible Workaround #2 ===<br />
<br />
If you still want to use volume keys for volume control, you should run<br />
sudo gedit /etc/rc.local<br />
and add this before "exit 0"<br />
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask<br />
This solution is still not really acceptable because it uses a quite weird volume scale resulting in maximum loudness already on 50% of the software mixer. If you've already applied workaround #1, be sure to map "Volume Up" and "Volume Down" back to the Thinkpad volume keys<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
In a terminal run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&diff=48495How to get special keys to work2010-05-08T19:24:06Z<p>Bombenbach: suggest a solution for Fn-Space</p>
<hr />
<div>==Overview==<br />
The following table gives an overview over the special keys found on ThinkPads and what is needed to make them work.<br />
{| {{prettytable}}<br />
! key !! standard function{{footnote|1}} !! tools supporting key{{footnote|2}} !! configurability{{footnote|3}} !! remarks<br />
|-<br />
| {{key|Fn}} || - || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || on release without completed key combination<br />
|-<br />
| {{key|Fn}}{{key|F1}} || - || [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F2}} || lock screen || [[thinkpad-acpi]] || full || in models from T/X/Z 60 onwards<br />
|-<br />
| {{key|Fn}}{{key|F3}} || blank screen || [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F4}} || suspend to ram || [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the thinkpad-acpi hotkey mask<br />
|-<br />
| {{key|Fn}}{{key|F5}} || switch bluetooth || [[thinkpad-acpi]] || full || in models starting from 2002<br />
|-<br />
| {{key|Fn}}{{key|F6}} || - || [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F7}} || toggle display || [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions || [[Sample Fn-F7 script]]<br />
|-<br />
| {{key|Fn}}{{key|F8}} || toggle trackpoint/touchpad || [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|F9}} || eject from dock || [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F10}} || - || [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F11}} || - || [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|F12}} || hibernate || [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the thinkpad-acpi hotkey mask<br />
|-<br />
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || brightness up || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|End}} || brightness down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|PageUp}} || toggle thinklight || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{key|Fn}}{{key|Space}} || toggle zoom || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|Ins}} || - || [[thinkpad-acpi]]|| full ||<br />
|-<br />
| {{key|Fn}}{{key|Del}} || - || [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|Fn}}{{key|Backspace}} || - || [[thinkpad-acpi]] || full ||<br />
|-<br />
| {{key|NumLock}} || - || [[#xmodmap configuration|xmodmap]] || make working ||<br />
|-<br />
| {{key|Windows}} || - || [[#xmodmap configuration|xmodmap]] || remapping ||<br />
|-<br />
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || help application || [[thinkpad-acpi]],[[#tpb configuration|tpb]], [[KMilo]] || full ||<br />
|-<br />
| {{ibmkey|Home|#494949}} || open web browser || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Search|#494949}} || open search application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Mail|#494949}} || open mail application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Favorites|#494949}} || open favorites || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Reload|#494949}} || reload web page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Abort|#494949}} || abort loading page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards<br />
|-<br />
| {{ibmkey|Backward|#494949}} || previous page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002<br />
|-<br />
| {{ibmkey|Forward|#494949}} || next page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002<br />
|-<br />
| {{ibmkey|Volume up|#494949}} || volume up || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{ibmkey|Volume down|#494949}} || volume down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{ibmkey|Volume mute|#494949}} || mute volume || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||<br />
|-<br />
| {{ibmkey|Play/Pause|#494949}} || start/pause playback || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Down)<br />
|-<br />
| {{ibmkey|Stop|#494949}} || stop playback || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Up)<br />
|-<br />
| {{ibmkey|Next|#494949}} || play next || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Right)<br />
|-<br />
| {{ibmkey|Previous|#494949}} || play previous || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Left)<br />
|-<br />
| {{ibmkey|Power|#494949}} || shutdown || [[thinkpad-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press<br />
|-<br />
| Display lid || blank screen || acpi video || full ||<br />
|-<br />
| Ultrabay eject || announce ultrabay change || acpi bay || full ||<br />
|-<br />
| Dock eject || eject from dock || acpi dock || full ||<br />
|-<br />
| {{ibmkey|Tablet power|#494949}} || shutdown || [[thinkpad-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press<br />
|-<br />
| {{ibmkey|Tablet orientation|#494949}} || rotates screen || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet shortcut|#494949}} || shortcut menu || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet Esc|#494949}} || esc key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet Enter|#494949}} || enter key || [[#mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet Up|#494949}} || up key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet Down|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|-<br />
| {{ibmkey|Tablet (unlabeled)|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||<br />
|}<br />
<br />
For completeness, note that the WiFi enable/disable switch is located (on the X61 and other models that have it) just under the front edge of the base of the machine. You should see a small horizontal slider switch. Enable by sliding it rightwards, disable by sliding it leftwards.<br />
<br />
Tablet buttons vary with model. See [[Tablet Hardware Buttons]].<br />
<br />
==Triggering key events==<br />
<br />
===thinkpad_acpi events===<br />
The thinkpad_acpi driver should automatically select an appropriate mask for your machine.<br />
But on a rare occasions you might need to change the hotkey mask for key events to happen. In that case,<br />
read the recommended hotkey_mask from hotkey_recommended_mask, set the extra bits you need, and write<br />
the result to hotkey_mask. These files (actually, "sysfs attributes") can be found on {{path|sys/devices/platform/thinkpad_acpi}}<br />
<br />
These events can be used to configure HAL or [[How to configure acpid|acpid]].<br />
<br />
{| {{prettytable}}<br />
|+ events triggered by [[thinkpad-acpi]]. May vary on different models.<br />
! key !! acpi event || IBM ThinkPad hal event || Lenovo ThinkPad hal event<br />
|-<br />
| {{key|Fn}}{{key|F1}} || ibm/hotkey HKEY 00000080 00001001 || ||<br />
|-<br />
| {{key|Fn}}{{key|F2}} || ibm/hotkey HKEY 00000080 00001002 || 0x01:battery || 0x01:screenlock<br />
|-<br />
| {{key|Fn}}{{key|F3}} || ibm/hotkey HKEY 00000080 00001003 || 0x02:screenlock || 0x02:battery<br />
|-<br />
| {{key|Fn}}{{key|F4}} || ibm/hotkey HKEY 00000080 00001004 || 0x03:sleep || 0x03:sleep<br />
|-<br />
| {{key|Fn}}{{key|F5}} || ibm/hotkey HKEY 00000080 00001005 || 0x04:radio || 0x04:radio<br />
|- <br />
| {{key|Fn}}{{key|F6}} || ibm/hotkey HKEY 00000080 00001006 || ||<br />
|-<br />
| {{key|Fn}}{{key|F7}} || ibm/hotkey HKEY 00000080 00001007 || 0x06:switchvideomode || 0x06:switchvideomode<br />
|-<br />
| {{key|Fn}}{{key|F8}} || ibm/hotkey HKEY 00000080 00001008 || 0x07:zoom || 0x07:f22<br />
|- <br />
| {{key|Fn}}{{key|F9}} || ibm/hotkey HKEY 00000080 00001009 || 0x08:f24 || 0x08:f24<br />
|-<br />
| {{key|Fn}}{{key|F10}} || ibm/hotkey HKEY 00000080 0000100a || ||<br />
|-<br />
| {{key|Fn}}{{key|F11}} || ibm/hotkey HKEY 00000080 0000100b || ||<br />
|-<br />
| {{key|Fn}}{{key|F12}} || ibm/hotkey HKEY 00000080 0000100c || 0x0b:suspend || 0x0b:suspend<br />
|-<br />
| {{key|Fn}}{{key|Backspace}} || ibm/hotkey HKEY 00000080 0000100d || ||<br />
|-<br />
| {{key|Fn}}{{key|Ins}} || ibm/hotkey HKEY 00000080 0000100e || ||<br />
|-<br />
| {{key|Fn}}{{key|Del}} || ibm/hotkey HKEY 00000080 0000100f || ||<br />
|-<br />
| {{key|Fn}}{{key|Home}}/{{key|Fn}}{{key|Pos1}} || ibm/hotkey HKEY 00000080 00001010 || 0x0f:brightnessup || 0x0f:brightnessup<br />
|-<br />
| {{key|Fn}}{{key|End}} || ibm/hotkey HKEY 00000080 00001011 || 0x10:brightnessdown || 0x10:brightnessdown<br />
|-<br />
| {{key|Fn}}{{key|PgUp}} || ibm/hotkey HKEY 00000080 00001012 || 0x11:kbdillumtoggle || 0x11:kbdillumtoggle<br />
|-<br />
| {{key|Fn}}{{key|Space}} || ibm/hotkey HKEY 00000080 00001014 || 0x13:zoom || 0x13:zoom<br />
|-<br />
| {{ibmkey|Volume up|#494949}}|| ibm/hotkey HKEY 00000080 00001015 || 0x14:volumeup || 0x14:volumeup<br />
|-<br />
| {{ibmkey|Volume down|#494949}} || ibm/hotkey HKEY 00000080 00001016 || 0x15:volumedown || 0x15:volumedown<br />
|-<br />
| {{ibmkey|Volume mute|#494949}} || ibm/hotkey HKEY 00000080 00001017 || 0x16:mute || 0x16:mute<br />
|-<br />
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || ibm/hotkey HKEY 00000080 00001018 || 0x17:prog1 || 0x17:prog1<br />
|-<br />
| Ultrabay eject || ibm/bay MSTR 00000003 00000000 || ||<br />
|-<br />
| Ultrabay inserted || ibm/bay MSTR 00000001 00000000 || ||<br />
|-<br />
| Dock eject || ibm/dock GDCK 00000003 00000001 || ||<br />
|-<br />
| Wireless switch || ibm/hotkey HKEY 00000080 00007000 || ||<br />
|}<br />
<br />
By disassembling and editing the DSDT, more events can be added. HKEY events are triggered by calls to the MKHQ function, e.g. <tt>\_SB.PCI0.LPC.EC.HKEY.MHKQ(0×1007)</tt> will trigger "ibm/hotkey HKEY 00000080 00001007". Most of these can be found in <tt>_Qxx</tt> methods within the DSDT, which are executed on embedded controller events, e.g. _Q10 is triggered by pressing Fn-F7. You can add a call to MKHQ into an existing <tt>_Qxx</tt> method to get it recognized by thinkpad-acpi as well as creating new <tt>_Qxx</tt> methods, which if you're lucky will correspond to an EC event that IBM never used (e.g. A 770 will send Fn-Home/End/PgUp/PgDn to thinkpad-acpi if hacked in this fashion). For example, [http://www.wormnet.eu/ibm-g40/morebuttons.dsl this is a modified block of DSDT for a G40].<br />
<br />
=== ACPI events from the <tt>button</tt> module===<br />
<br />
A few keys can generate ACPI events that result from the <tt>button</tt> kernel module, as long as they are masked off in the <tt>thinkpad-acpi</tt> hotkey's mask or the hotkey function of the latter module is disabled.<br />
<br />
If you want the ThinkPad's BIOS and ACPI methods to know about these keys being pressed, you probably want to leave them masked out from thinkpad-acpi, and use their non-HKEY events listed below, instead.<br />
<br />
{| {{prettytable}}<br />
|+ events triggered by ACPI when hotkey is masked out or disabled. <br />
! key !! event !! T60 event<br />
|-<br />
| {{ibmkey|Power|#494949}} || button/power PWRF 00000080 xxxxxxxx || button/power PWRF 00000080 00000001<br />
|-<br />
| {{key|Fn}}{{key|F4}} || button/sleep SLPB 00000080 00000001 || button/sleep SLPB 00000080 00000001<br />
|-<br />
| Display lid || button/lid LID 00000080 xxxxxxxx || button/lid LID 00000080 00000001<br />
|}<br />
<br />
===Configuration using HAL===<br />
<br />
Modern distributions like Ubuntu 8.10 and Fedora 10 use HAL to configure the kernel input devices. Xorg in turn gets these key events through the evdev driver and will no longer try to take control of the input devices away from the kernel.<br />
<br />
But before you get started on this you should make sure you have all the updates applied from your distro vendor as both Ubuntu 8.10 and Fedora 10 require some additional fixes that you might need.<br />
====Xorg problems====<br />
You may find that by default some buttons will work in Xorg and others will not (e.g. Fn-Space). The reason for this is that Xorg is limited to 255 different key codes, and some keys are mapped to key codes that are out of range for Xorg. The Xorg developers are aware of this issue and plan to fix it in XKB2. Unfortunately support for XKB2 has slipped and is now planned for Xorg 1.8, sometime in 2010.<br />
<br />
{{HINT|You can get Fn-Space working via ACPI events. Here is a practical [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m#Make_Fn-Space_.28Screen_Magnify.29_work HOWTO] for Ubuntu 10.04 Lucid}} <br />
<br />
Default HAL config files are located in {{path|/usr/share/hal/fdi}}. If you create any custom files you should instead place them in {{path|/etc/hal/fdi}} to prevent them from getting overwritten by the next hal-info package update of your distribution.<br />
<br />
You can see for instance the mapping between {{path|/usr/share/hal/fdi/information/10freedesktop/30-keymap-module-thinkpad-acpi.fdi}} and that of the kernel [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=include/linux/input.h;hb=HEAD input.h] header file.<br />
<br />
keyboard events defined in input.h in the 0x100 range and above will be ignored by current Xorg. If you want to work around this you can change the hal config file such that for instance the Fn-F5 key no longer maps to '''radio''' (0x181) but to '''wlan''' (238) or '''bluetooth''' (237).<br />
<br />
Have a look at the HAL documentation for samples on how to configure your own events [http://hal.freedesktop.org/quirk/quirk-keymap-index.html].<br />
<br />
To check if a key is being handled by Xorg, start xev and press the key. If you do not see any output from the keypress it is not handled. If it is handled you can configure the key in Gnome with gnome-keybinding-properties (kde??).<br />
<br />
====bypassing Xorg====<br />
Since the keys are handled by the kernel and passed through hal, we can bypass Xorg and have a key run a specific task.<br />
This is useful if Xorg cannot handle the key (out of range, or X doesn't<br />
matter this input key), or if your not running X. This can be done with the<br />
'''halevt''' program (located at [http://www.nongnu.org/halevt|http://www.nongnu.org/halevt] ; for Debian systems, use a version >= 0.1.5-1). This program can react to some events detected by HAL such a special key press. For example, to run a custom script when Fn-F5 (Radio toggle) is pressed, you could put a stanza in halevt's configuration file ('''/etc/halevt/halevt.xml''', in XML format) :<br />
<br />
<nowiki><br />
<halevt:Device match="hal.info.category = input"><br />
<!-- Warning: /etc/sudoers must be configured to let 'halevt' user<br />
runs the given command ! --><br />
<halevt:Condition name="ButtonPressed" detail="wlan" exec="sudo /usr/local/sbin/toggle_wlan"/><br />
</halevt:Device><br />
</nowiki><br />
<br />
Here, '''sudo''' is used as the halevt daemon runs with its own user, which don't have required rights to do the work in the custom script ''/usr/local/sbin/toggle_wlan'', so in ''/etc/sudoers'', we have :<br />
<br />
halevt ALL = NOPASSWD: /usr/local/sbin/toggle_wlan<br />
<br />
Be careful when writing halevt configuration, as the daemon isn't very verbose about what it does or not : you don't get error messages when command run fails…<br />
<br />
===inputlirc configuration===<br />
<br />
An alternative to halevt is inputlirc. After installation of the packages inputlirc and lirc, you can test it with the irw command. To run custom scripts you need a configuration for the irexec daemon ('''/etc/lirc/lircrc''') :<br />
<br />
<nowiki><br />
begin<br />
prog = irexec<br />
button = KEY_RADIO<br />
config = /etc/acpi/wireless.sh<br />
end<br />
<br />
begin<br />
prog = irexec<br />
button = KEY_SCREENLOCK<br />
config = /etc/acpi/thinkpad-lockorbattery.sh<br />
end<br />
</nowiki><br />
<br />
===tpb configuration===<br />
{| {{prettytable}}<br />
|+ configuration keywords for [[tpb]] (to put in {{path|/etc/tpbrc}})<br />
! key !! config keyword<br />
|-<br />
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || THINKPAD<br />
|-<br />
| {{ibmkey|Home|#494949}} || HOME<br />
|-<br />
| {{ibmkey|Search|#494949}} || SEARCH<br />
|-<br />
| {{ibmkey|Mail|#494949}} || MAIL<br />
|-<br />
| {{ibmkey|Favorites|#494949}} || FAVORITES<br />
|-<br />
| {{ibmkey|Reload|#494949}} || RELOAD<br />
|-<br />
| {{ibmkey|Abort|#494949}} || ABORT<br />
|-<br />
| {{ibmkey|Backward|#494949}} || BACKWARD<br />
|-<br />
| {{ibmkey|Forward|#494949}} || FORWARD<br />
|-<br />
| {{key|Fn}} || FN<br />
|-<br />
| {{key|Fn}}{{key|Space}} || CALLBACK (zoom on/off)<br />
|-<br />
| {{key|Fn}}{{key|PageUp}} || CALLBACK (thinklight on/off)<br />
|-<br />
| {{key|Fn}}{{key|F7}} || CALLBACK (display lcd/crt/both)<br />
|-<br />
| {{key|Fn}}{{key|F8}} || CALLBACK (expand on/off)<br />
|-<br />
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || CALLBACK (brightness <percent>)<br />
|-<br />
| {{key|Fn}}{{key|End}} || CALLBACK (brightness <percent>)<br />
|-<br />
| {{ibmkey|Volume up|#494949}} || CALLBACK (volume <percent>)<br />
|-<br />
| {{ibmkey|Volume down|#494949}} || CALLBACK (volume <percent>)<br />
|-<br />
| {{ibmkey|Volume mute|#494949}} || CALLBACK (mute on/off)<br />
|}<br />
<br />
To all parameter keywords should be assigned the full path to the executables supposed to be started on key press.<br />
The exectable provided for the CALLBACK keyword should take the parameters given in parentheses and act according to them.<br />
If you want to use xmodmap for the HOME, SEARCH, MAIL, FAVORITES, RELOAD, ABORT, BACKWARD, FORWARD and FN keys you should<br />
provide a <tt>XEVENTS OFF</tt> in your {{path|/etc/tpbrc}}. <br />
You can use an appropriate executable to [[How to inject fake keystrokes|inject fake keystrokes]].<br />
<br />
For Debian users, tpb is started from {{path|/etc/X11/Xsession.d/90tpb}}.<br />
<br />
'''Sound Button configuration'''<br />
<br />
''Note: Tested on T60p with Ubuntu 6.06 LTS''<br />
<br />
Most Thinkpads have a hardware sound mixer, thus the volumes buttons should work without configuration. However, this change is not reflected in the software mixer. tpb has a switch to enable software mixer support via OSS. The manual recommends this only for devices without a hardware mixer, but it also works for other hadware mixer enabled devices, even with the ALSA system. Just put MIXER ON in your {{path|/etc/tpbrc}} file and you can see the effect immediately in any ALSA mixer (e.g. kmix). For this to work you need write permissions to {{path|/dev/nvram}}.<br />
<br />
''Note: Tested on X21 with Ubuntu 6.06 LTS''<br />
<br />
On the ThinkPad X21 (and maybe some other older models) ACPI causes problems with tpb. On an X21 using acpi the volume buttons would work occasionally, and the OSD for tpb functions would rarely work. If a volume buttons was pressed too often, sometimes the computer would enter a low power (unplugged state) and would require a reboot. The solution is to use APM instead of ACPI. Instructions can be found in [[How_to_make_APM_work]].<br />
<br />
===KMilo configuration===<br />
The programs to be executed by [[KMilo]] are configured via the KDE Control Center (<tt>kcontrol</tt>), under <tt>System Administration --> IBM Thinkpad Laptop</tt>. Note that you can use appropriate commands to [[How to inject fake keystrokes|inject fake keystrokes]].<br />
<br />
===xmodmap configuration===<br />
xmodmap enables you to edit the modifier map and keymap tables that are used to translate keycodes into keysyms.<br />
Understood? Well, basically it allows you to give the X server a dictionary for the translation of keycodes like "97" into more human readable synonyms like "Home". This way xmodmap allows you to make the special keys of your keyboard known to X applications.<br />
<br />
To discover the keycode that a certain keypress produces, use the tool {{cmduser|xev}} <br />
<br />
Usually you should write your keycode-keysym associations into the file {{path|~/.Xmodmap}}. This file is usually read by the X session startup scripts of your system, so that the mappings automatically get included everytime you run the X server.<br />
<br />
The {{path|~/.Xmodmap}} lines for our purpose are in the form of<br />
keycode <keycode> = <keysym><br />
<br />
Load the assocation using the command<br />
<br />
{{cmduser|xmodmap ~/.Xmodmap}} <br />
<br />
(some configurations do this automatically upon X startup). <br />
<br />
The following table shows the keycodes generated by the ThinkPad special keys and sensible keysyms to assign them to.<br />
{| {{prettytable}}<br />
|+ keycodes and recommended keysyms<br />
! key !! keycode !! keysym<br />
|-<br />
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || 159 || XF86LaunchA<br />
|-<br />
| {{ibmkey|Backward|#494949}} || 234 || XF86Back or F19<br />
|-<br />
| {{ibmkey|Forward|#494949}} || 233 || XF86Forward or F20<br />
|-<br />
| {{ibmkey|Play/Pause|#494949}} || 162 || XF86AudioPlay<br />
|-<br />
| {{ibmkey|Stop|#494949}} || 164 || XF86AudioStop<br />
|-<br />
| {{ibmkey|Next|#494949}} || 153 || XF86AudioNext<br />
|-<br />
| {{ibmkey|Previous|#494949}} || 144 || XF86AudioPrev<br />
|-<br />
<br />
<br />
| {{ibmkey|Home|#494949}} || 178 || XF86HomePage<br />
|-<br />
| {{ibmkey|Search|#494949}} || 229 || XF86Search<br />
|-<br />
| {{ibmkey|Mail|#494949}} || 236 || XF86Mail<br />
|-<br />
| {{ibmkey|Favorites|#494949}} || 230 || XF86AddFavorite or XF86Favorites<br />
|-<br />
| {{ibmkey|Reload|#494949}} || 231 || XF86Reload<br />
|-<br />
| {{ibmkey|Abort|#494949}} || 232 || XF86Stop<br />
|-<br />
| {{key|Fn}} || 227 || F35<br />
|}<br />
<br />
Note: You can also use xkeycaps (an X tool to display and edit the X keyboard mapping) to generate proper .Xmodmap.<br />
<br />
Note: if you are running [[tpb]] you might need to add the line <tt>XEVENTS=off</tt> into your tpbrc to stop it from grabbing the key events and allow them to get through to X instead. See [[http://www.thinkwiki.org/wiki/Tpb]] for more detailed instruction on how to use tpb and xmodmap.<br />
<br />
Note: XF86Forward and XF86Back do not work correctly in Firefox. You may want to map them to F19 and F20 instead if you use Firefox.<br />
<br />
Note: The "XF86AudioPlay" etc. just works with a few programs. To make it work with more multimedia programs you have map the key to use something like [http://www.kde-apps.org/content/show.php/ReMoot?content=63140 ReMoot]. ReMoot is a command line wrapper that control 18 of the most common multimedia applications. <br />
<br />
=====Enabling the Windows and Menu Keys=====<br />
On some systems the Windows and Menu keys may not be recognized. You can enable then by<br />
making the following changes:<br />
<br />
keycode 115 = F13<br />
keycode 227 = F35<br />
<br />
F13 and F35 are used for the Windows and and Menu keys respectively. Labelling keycpode 227 as "Menu" may conflict with the right-mouse-click event.<br />
<br />
=====Using Caps Lock as Super L (Windows key)=====<br />
You can easily use Caps Lock as Win key by adding the following in your ~/.Xmodmap:<br />
! No Caps Lock<br />
clear lock<br />
! Caps Lock as Win key<br />
add mod4 = Caps_Lock<br />
=====NumLock=====<br />
On the ThinkPad {{600}}, {{T20}}, {{T21}}, {{T22}}, {{T30}}, {{X20}}, {{X21}}, {{X31}}, {{X40}}, {{T42p}}, {{T43}}, {{R51}}, {{R52}} and possibly other models, X does not recognize the keycode for {{key|NumLk}} = {{key|Shift}}+{{key|ScrLk}}. To fix this, add the following to {{path|~/.Xmodmap}} in your home directory or {{path|/etc/X11/Xmodmap}} and run <tt>xmodmap</tt>, ex: <tt>xmodmap ~/.Xmodmap</tt>:<br />
keycode 77 = Num_Lock<br />
<br />
The following might work better for you:<br />
keycode 77 = Num_Lock Num_Lock<br />
because you will only get keycode 77 together with Shift (at least on the {{T43}})<br />
<br />
This configuration also enables the respective LED.<br />
<br />
Please note, pressing the {{key|Shift}}+{{key|ScrLk}} key combination, without first following the above configuration, will start an accessibility feature, which will allow the numeric keypad to maneuver the mouse pointer. Starting this accessibility feature and subsequently running xmodmap, as described above, results in the accessibility feature and the numeric lock LED functioning simultaneously. As such, the above configuration should be completed before the accessibility feature is started in order to produce numbers.<br />
======T60 (and possibly others)======<br />
It seems that on the T60, PrtSc, ScrLk and Pause all generate the correct keycodes, however Fn-PrtSc (labelled as SysRq) generates keycode 64 (Alt_L) followed by the expected 111 (Sys_Req) on down and the same thing in the opposite order on release. Fn-ScrLk (labelled as NmLk) does indeed toggle the Numlock, but only seems to register as an X event the first time it is engaged. The above solution does not appear to work. This is perhaps because the Numlock toggle is built into the firmware rather than controlled by the kernel. Finally, Fn-Pause (labelled as Break) generates keycode 37 (Control_L) followed by the expected keycode 110 (Break) on down and the same thing in reverse order on release.<br />
<br />
=====NumPad (KeyPad) keys access by a key combination=====<br />
The current state is that you have to switch NumLock '''on''' via {{key|Fn}}+{{key|ScrLk}} and then e.g. type {{key|u}} to get a {{key|KP_4}} (NumPad 4). To get back to normal keyboard, you have to type {{key|Fn}}+{{key|ScrLk}} again.<br />
<br />
Some people (including me) are missing on recent Thinkpads the option to have Fn as a modifier key to access the NumPad instead, i.e. and e.g. {{key|Fn}}+{{key|u}} gives you {{key|KP_4}}.<br />
<br />
There is currently no way to make this work in a simple way (pleeeease correct me if I am wrong!), though there is a work-around. Instead of using {{key|Fn}} for accessing the NumPad, {{key|CapsLock}} can get this function by being mapped as Mode_switch (the {{key|AltGr}} on international keyboards). The {{key|Fn}} can be remapped to be Caps_Lock - while at the same time retaining its function to access the special laptop functions (e.g. {{key|Fn}}+{{key|F4}} for sleep}}, by using .Xmodmap.<br />
<br />
So on my {{R60}} running fvwm@{{Slackware}} 12.1 the .Xmodmap would look like this:<br />
<br />
! Make the forward and back buttons work<br />
keycode 233 = XF86Forward<br />
keycode 234 = XF86Back<br />
! Make the WIN key to Super modifier<br />
keycode 115 = Super_L<br />
! Set the Caps_Lock physical key to Mode_switch (like AltGr on intl. keyboards)<br />
keycode 66 = Mode_switch<br />
! Set the Fn key to work as Caps_Lock now. The special key combos like Fn-F4 for "sleep" still work then<br />
keycode 227 = Caps_Lock<br />
clear lock<br />
add lock = Caps_Lock<br />
! Now we activate those new keys. Find some free mod slots (xmodmap) and put them there.<br />
clear mod4<br />
clear mod5<br />
add mod4 = Super_L<br />
add mod3 = Mode_switch<br />
! It's time to add the keypad keys to the third position of the key definition (pure shift mode_switch shift+mode_switch)<br />
keycode 16 = 7 ampersand KP_7<br />
keycode 17 = 8 asterisk KP_8<br />
keycode 18 = 9 parenleft KP_9<br />
keycode 19 = 0 parenright KP_Divide<br />
keycode 30 = u U KP_4<br />
keycode 31 = i I KP_5<br />
keycode 32 = o O KP_6<br />
keycode 33 = p P KP_Multiply<br />
keycode 44 = j J KP_1<br />
keycode 45 = k K KP_2<br />
keycode 46 = l L KP_3<br />
keycode 47 = semicolon colon KP_Subtract<br />
keycode 58 = m M KP_0<br />
! ... I have to use the coma key, too, on the keypad...so I set it to be F20 (which is not existing on normal keyboards and thus is free... check for side effects in programmes accepting F12+ keys!)<br />
keycode 59 = comma less F20 <br />
keycode 60 = period greater KP_Decimal <br />
keycode 61 = slash question KP_Add<br />
<br />
{{WARN|Your keycodes might be different as well as your '''mod''#''''' settings.}}<br />
Use {{cmduser|xmodmap}} and {{cmduser|xmodmap -pke}} to check your ModMap, and the tool {{cmduser|xev}} to obtain your exact key codes.<br />
<br />
===Mapping keys with setkeycodes===<br />
You can use the setkeycodes command to remap certain keys. I.e. you can use {{cmdroot|setkeycodes 6e 109 6d 104 69 28 6b 1}} to map the Tablets Up and Down keys to the standard PageUp and PageDown keys and Tablet Escape and Enter to their respective keys.<br />
<br />
The following table shows the scancodes generated by the ThinkPad keys. They vary with model - see [[Tablet Hardware Buttons]].<br />
{| {{prettytable}}<br />
|+ scancodes<br />
! key !! scancode<br />
|-<br />
| {{ibmkey|Tablet orientation|#494949}} || 0x6c<br />
|-<br />
| {{ibmkey|Tablet Shortcut|#494949}} || 0x68<br />
|-<br />
| {{ibmkey|Tablet Esc|#494949}} || 0x6b<br />
|-<br />
| {{ibmkey|Tablet Enter|#494949}} || 0x69<br />
|-<br />
| {{ibmkey|Tablet Up|#494949}} || 0x6d<br />
|-<br />
| {{ibmkey|Tablet Down|#494949}} || 0x6e<br />
|-<br />
| {{ibmkey|Tablet (unlabeled)|#494949}} || 0x67<br />
|}<br />
<br />
===acpi_fakekey===<br />
You can turn acpi events into user-level xevents by putting <tt>acpi_fakekey</tt> commands into the acpi action scripts. There are several layers involved in using acpi keys in this way, so I'll go through the example of using the ThinkVantage button to open xmms.<br />
<br />
My ThinkVantage button generates an '''acpi event''' "ibm/hotkey HKEY 00000080 00001018", so we have the event file <tt>/etc/acpi/events/ThinkVantage</tt> for it which executes the script <tt>/etc/acpi/actions/fakekey-macro.sh</tt>. <br />
<pre><br />
event=ibm/hotkey HKEY 00000080 00001018<br />
action=/etc/acpi/actions/fakekey-macro.sh<br />
</pre><br />
In turn, the executable <tt>/etc/acpi/actions/fakekey-macro.sh</tt> script calls acpi_fakekey with the '''key number''' defined in <tt>/usr/share/acpi-support/key-constants</tt> as $KEY_MACRO which is 112 (you could just as well choose an other key number, just make sure that it doesn't belong to something else like the "j" key or something). <br />
<pre><br />
#!/bin/sh<br />
. /usr/share/acpi-support/key-constants<br />
acpi_fakekey $KEY_MACRO <br />
</pre><br />
I have no idea how this actually corresponds to which xevent is generated, so I can find out out by running the program <tt>xev</tt> and hitting the ThinkVantage button while the mouse is in the <tt>xev</tt> window (remember to <tt>/etc/init.d/acpid restart</tt> first if you just created the <tt>/etc/acpi/events/ThinkVantage</tt> file). I get something popping up in the terminal where I ran xev that looks like this:<br />
<pre><br />
KeyPress event, serial 30, synthetic NO, window 0x2800001,<br />
root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),<br />
state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,<br />
XLookupString gives 0 bytes: <br />
XmbLookupString gives 0 bytes: <br />
XFilterEvent returns: False<br />
<br />
KeyRelease event, serial 30, synthetic NO, window 0x2800001,<br />
root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),<br />
state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,<br />
XLookupString gives 0 bytes: <br />
XFilterEvent returns: False<br />
</pre><br />
This tells me that the <tt>acpi_fakekey 112</tt> as executed by hitting the ThinkVantage button generates KeyPress event followed by a KeyRelease event with '''keycode''' 239 and that this keycode has been assigned no corresponding '''keysym'''. Thus, I am free to assign the keycode to any keysym I want. You can find a list of available keysyms in <tt>/usr/share/X11/XKeysymDB</tt>. Again try and pick one that is not likely to have already been taken by something, such as <tt>XF86LaunchA</tt>. To assign this keysym to keycode 239, you can either edit ~/.Xmodmap on an individual user basis, or edit the systemwide <tt>/etc/X11/Xmodmap</tt> file to contain the line<br />
<pre><br />
keycode 239 = XF86LaunchA<br />
</pre><br />
If you choose to go with the former, you may need to run <tt>xmodmap ~/.Xmodmap</tt> for every login session in order to read in your ~/.Xmodmap file if your window manager does not do it for you. Regardless of which option you choose, you can run <tt>xmodmap <file></tt> to read in the updated Xmodmap file without logging out and logging back in.<br />
<br />
You should now find that hitting the ThinkVantage button creates the following output from <tt>xev</tt>:<br />
<pre><br />
KeyPress event, serial 55, synthetic NO, window 0x2800001,<br />
root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),<br />
state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,<br />
XLookupString gives 0 bytes: <br />
XmbLookupString gives 0 bytes: <br />
XFilterEvent returns: False<br />
<br />
KeyRelease event, serial 55, synthetic NO, window 0x2800001,<br />
root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),<br />
state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,<br />
XLookupString gives 0 bytes: <br />
XFilterEvent returns: False<br />
</pre><br />
Note the change of <tt>(keysym 0x0, NoSymbol)</tt> to <tt>(keysym 0x1008ff4a, XF86LaunchA)</tt>.<br />
<br />
You're now ready to map <tt>XF86LaunchA</tt> to executing xmms. This is highly dependent on what keygrabber you decide to use. For openbox, I edit my <tt>~/.config/openbox/rc.xml</tt> file and add the following entry in the <keyboard> section:<br />
<pre><br />
<keybind key="XF86LaunchA"><br />
<action name="Execute"><br />
<startupnotify><br />
<enabled>true</enabled><br />
</startupnotify><br />
<command><br />
xmms<br />
</command><br />
</action><br />
</keybind><br />
</pre><br />
After, right clicking on the desktop and selecting the "Reconfigure" menu option, you should then have xmms pop up when you hit the ThinkVantage key.<br />
<br />
==Example Applications==<br />
===Web Browsers===<br />
====Firefox (<3.0)====<br />
<br />
There are various ways to assign actions to the browser keys. The easiest way is to install [http://mozilla.dorando.at/keyconfig.xpi keyconfig.xpi] from http://mozilla.dorando.at, which adds a menu entry Tools->Keyconfig. Then you can assign any action you want to the F19/F20 keys (you still need to create {{path|~/.Xmodmap}} as explained above).<br />
<br />
<br />
The remaining discussion gives you various more complicated ways to achieve the same thing. <br />
To have firefox make use of the browser keys you need to modify one of its files{{footnote|4}}.<br />
To do this you will first need to extract it from the {{path|browser.jar}} archive. Do...<br />
<br />
Step 1: Edit .Xmodmap and add entries for F19 and F20 as explained above.<br />
<br />
Step 2:<br />
<br />
Note: <firefox-directory> is probably /usr/lib/firefox. Use your version so, if you have 3.0.1 or 3.0.2 use /usr/lib/firefox-3.0.1<br />
<br />
:{{cmdroot|cd <firefox-directory>/chrome}}<br /><br />
:{{cmdroot|unzip browser.jar}}<br />
<br />
The file of interest is {{path|content/browser/browser.xul}}. Edit it {and don't forget to make a backup copy first}...<br />
:{{cmdroot|vi content/browser/browser.xul}}<br />
<br />
Look for the '''<keyset id="mainKeyset">''' section and add the following lines within...<br />
<key id="goBackKb" keycode="VK_F19" command="Browser:Back" /><br />
<key id="goForwardKb" keycode="VK_F20" command="Browser:Forward" /><br />
<br />
The Command you need for Next Tab <br />
<key id="goBackTabKb" keycode="VK_F19" oncommand="gBrowser.mTabContainer.advanceSelectedTab(-1)" /><br />
For the Previous Tab <br />
<key id="goForwardTabKb" keycode="VK_F20" oncommand="gBrowser.mTabContainer.advanceSelectedTab(1)" /><br />
<br />
Now save the file and repackage the {{path|browser.jar}} archive...<br />
:{{cmdroot|zip -rD0 browser.jar content/browser/}}<br />
<br />
That's it.<br />
<br />
Step 3: Restart Firefox.<br />
<br />
{{HINT|Outdated: Another interesting Page on Firefox is http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ It uses different key mappings (F19 resp. F20) but a ready [http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/dqdnavkeys-1.2.xpi .xpi] is provided which is pretty comfortable. However, this xpi file does not install on Firefox 1.5. or later.}}<br />
<br />
{{HINT| You can also use the [http://extensionroom.mozdev.org/more-info/keyconfig keyconfig] extension to configure custom keys. This extension works with Firefox 1.5 and also with Firefox 2.0. The Command you need for Next Tab is gBrowser.mTabContainer.advanceSelectedTab(1,true); For Previous Tab its gBrowser.mTabContainer.advanceSelectedTab(-1,true); You can alternatively install the [http://www.pqrs.org/~tekezo/firefox/extensions/functions_for_keyconfig/index.html functions for keyconfig] and set the variable f4kc_NextTab to F20 and f4kc_PrevTab to F19.}}.<br />
<br />
====Firefox 3.0====<br />
Thankfully the people at Mozilla decided to include the expected functionality for the XF86Back and XF86Forward keysyms in the new release so all you need to do is<br />
<br><code># printf 'keycode 234 = XF86Back\nkeycode 233 = XF86Forward' >> /etc/X11/Xmodmap</code><br><br />
And to make this take effect immediately (i.e., without having to log out and log in again), as a regular user run:<br />
<br><code>{{cmduser|Xmodmap /etc/X11/Xmodmap}}</code><br />
<br />
For Hardy Heron, the xmodmap command is all lowercase. Also, the /etc/X11/Xmodmap file is not being read on boot. I've added the command to my .bashrc to have it called on startup.<br />
<br />
====Konqueror====<br />
KDE allows you set key mappings for KDE applications (Go to KMenu > System > Control Center > Regional & Accessibility > Keyboard Shortcuts). By default (at least in KDE 3.5), XF86Back and XF86Forward are set as alternatives to Alt-Left and Alt-Right, and are mapped to KDE Back and Forward navigation actions. <br />
<br />
If you use Konqueror as your only browser, you only need to set up {{path|~/.Xmodmap}} as described [[#xmodmap configuration|above]] to assign ThinkPad back/forward keys to the symbols XF86Back/XF86Forward. This also make these keys work for other KDE applications such as Quanta Plus, KPackage and so on (not all KDE applications honor this setting, e.g. KDE help system doesn't).<br />
<br />
If you want to use Firefox, however, the above settings do not work. You will have to map ThinkPad back/forward keys to F19/F20 as described [[#Firefox|above]], and change KDE navigation key settings to use F19/F20 instead of the default.<br />
<br />
====Opera====<br />
However this isn't a simple configration file, you can set your browser manually.<br /><br />
Go to <i>Tool > Settings > Mouse and keyboard > Keyboard settings > Edit > Browser Window</i>. There add F19 - Back and F20 - Forward. Now you can surf using your TP keys ;-)<br />
<br />
====Epiphany====<br />
By default, the back/forward keys, when bound to XF86Back/XF86Forward, successfully navigate through the history.<br />
<br />
To get them switch through your tabs, you could use the extension from [http://crashman.homelinux.org/~andre/public/epiphany%20extensions/thinkpad%20browserkeys/ here]<br />
You just need to edit your Xmodmap like described for Firefox < 3.0 (bind the keys on F19 and F20)<br />
<br />
===Open an application===<br />
<br />
To configure the ThinkVantage button to open a terminal window in Gnome:<br />
<br />
Step 1:<br />
Use xev to find the keycode generated by the button on your machine. In my case is is 159.<br />
<br />
Step 2:<br />
Create an entry in .Xmodmap like so<br />
<br />
keycode 159 = XF86LaunchA<br />
<br />
replacing 159 by the keycode found in step 1. Load the map using<br />
<br />
:{{cmd|xmodmap ~/.Xmodmap}}<br />
<br />
Step 3:<br />
Configure the required function (e.g. open terminal window) in System->Preferences->Keyboard shortcuts<br />
<br />
===Window Managers===<br />
====fvwm====<br />
To get the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fvwmrc}}:<br />
Key XF86Back A A Scroll -100000 0<br />
Key XF86Forward A A Scroll +100000 0<br />
If you use multiple virtual desktops, you could instead use the keys to flip between them by using GotoDesk.<br />
<br />
====fluxbox====<br />
To get the keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fluxbox/keys}}:<br />
None F19 :PrevWorkspace<br />
None F20 :NextWorkspace<br />
<br />
====pekwm configuration====<br />
You can make the two browser keys switch workspaces in pekwm, by adding the following two lines to the {{path|~/.pekwm/keys}} file:<br />
KeyPress = "Mod1 XF86Back" { Actions = "GoToWorkspace prev" }<br />
KeyPress = "Mod1 XF86Forward" { Actions = "GoToWorkspace next" }<br />
<br />
====pwm====<br />
Another example how to use these two keys to switch between pwm tabs. These two lines should be added to {{path|~/.pwm/keys-default.conf}} or {{path|/etc/pwm/keys-default.conf}}:<br />
kbind "Back", "switch_rot", -1<br />
kbind "Forward", "switch_rot", 1<br />
<br />
====IceWM====<br />
To make IceWM cycle workspaces using the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys, change these two options in {{path|~/.icewm/preferences}} (Provided you assigned keysyms F19 and F20 with xmodmap):<br />
# "Previous workspace" shortcut<br />
KeySysWorkspacePrev="F19"<br />
# "Next workspace" shortcut<br />
KeySysWorkspaceNext="F20"<br />
<br />
==== Gnome/metacity ====<br />
<br />
On {{Debian}} Lenny, using Gnome 2.22.2, once the acpid and acpi-support packages are installed, most Fn keys do the right thing out of the box.<br />
<br />
For more advanced configuration, follow the [https://wiki.ubuntu.com/Keybindings Ubuntu guide].<br />
<br />
===Other Uses===<br />
====Console tools configuraton====<br />
To make the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys useful in console, add this to your keymap ({{path|/etc/console/boottime.kmap.gz}} in {{Debian}}):<br />
keycode 158 = Decr_Console<br />
keycode 159 = Incr_Console<br />
<br />
Alternatively you can load this script (perhaps on system startup) to enable Backward/Forward button console (VT) switch:<br />
<br />
#!/bin/sh<br />
echo keycode 158 = Decr_Console | loadkeys<br />
echo keycode 159 = Incr_Console | loadkeys<br />
<br />
It should work with any distro.<br />
<br />
====Cycling through tabs====<br />
In Gnome and Xfce4, Ctrl-PageUp/Ctrl-PageDown move to the previous/following open tab in all applications that have tabbed user interfaces (terminal emulator, web browser, ...). To make use of the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys for this task, there're two possibilities.<br />
<br />
For both ways, you should map the keycodes 233 and 234 to XF86Back and XF86Forward as described in [[#xmodmap_configuration|xmodmap configuration]].<br />
<br />
=====Using xautomation=====<br />
xautomation can be found [http://hoopajoo.net/projects/xautomation.html here].<br />
<br />
Create two files with permissions 755:<br />
<br />
{{path|/usr/local/bin/tp_back}}:<br />
<bash><br />
#!/bin/bash<br />
/usr/bin/xte 'keydown Control_L' 'keydown Page_Up' 'keyup Page_Up' 'keyup Control_L'<br />
</bash><br />
<br />
{{path|/usr/local/bin/tp_forward}}:<br />
<bash><br />
#!/bin/bash<br />
/usr/bin/xte 'keydown Control_L' 'keydown Page_Down' 'keyup Page_Down' 'keyup Control_L'<br />
</bash><br />
<br />
Use your desktop's keyboard shortcut editor to assign XF86Back as a shortcut for tp_back and XF86Forward as a shortcut for tp_forward.<br />
<br />
This should work in all distros and with all window managers (you might have to use other key combinations than Ctrl-PageUp and Ctrl-PageDown).<br />
<br />
=====Redirecting XF86Back/XF86Forward=====<br />
Create {{path|/etc/X11/xkb/compat/thinkpad}}:<br />
<pre><br />
// $XFree86$<br />
// XFree86 special keysyms<br />
default partial xkb_compatibility "basic" {<br />
interpret.repeat= True;<br />
<br />
interpret XF86Back {<br />
action = Redirect(Key=<PGUP>, modifiers=Control);<br />
};<br />
interpret XF86Forward {<br />
action = Redirect(Key=<PGDN>, modifiers=Control);<br />
};<br />
};<br />
</pre><br />
<br />
Edit {{path|/etc/X11/xkb/compat/complete}} and add <tt>'''augment "thinkpad"'''</tt> so that it looks similar to the following:<br />
<pre><br />
// $XKeyboardConfig: xkbdesc/compat/complete,v 1.3 2005/10/17 00:42:11 svu Exp $<br />
// $Xorg: complete,v 1.3 2000/08/17 19:54:34 cpqbld Exp $<br />
default xkb_compatibility "complete" {<br />
include "basic"<br />
augment "iso9995"<br />
augment "mousekeys"<br />
augment "accessx(full)"<br />
augment "misc"<br />
augment "xfree86"<br />
augment "level5"<br />
augment "thinkpad"<br />
};<br />
</pre><br />
<br />
==External Sources==<br />
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51537 IBMs page on configuring the ThinkPad buttons (ThinkPad, Access IBM, Mail, Search, and Home buttons) under Linux]<br />
*[http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ Rob Mayoffs page on using IBM Keyboard Navigation Keys in Linux Mozilla and Firefox]<br />
*[http://snarfed.org/space/thinkpad+keys+in+firefox Ryan Barretts blog article about using the browser keys in Firefox]<br />
*[http://chaotika.org/~bluesceada/?page=soft&sub=thinkpad#acpibutn DennisG's help to get the ibm-acpi buttons do useful things] on a {{Z61e}} and possibly {{Z61m}}, {{Z61t}} and {{Z61p}}<br />
*[https://help.ubuntu.com/community/KeyboardShortcuts/#Replacing%20keys%20with%20other%20keys using xbindkeys and xmacro to override key bindings]<br />
{{footnotes|<br />
#Note that the associated functionality for Fn-F* key combinations is not consistent amongst all ThinkPads. We are maintaining [[Default meanings of special keys|a table of associated meanings]].<br />
#if there are more than one tool listed, one is sufficient<br />
#'full' means you can completely reassign any action to be triggered by the key, 'additional actions' means you can trigger actions in addition to the standard function of the key, which can not be changed.<br />
#Thanks go to Ryan Barrett for writing the [http://snarfed.org/space/thinkpad+keys+in+firefox little howto] on [http://snarfed.org/space/start his blog].<br />
}}</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=How_to_enable_the_integrated_fingerprint_reader_with_ThinkFinger&diff=48494How to enable the integrated fingerprint reader with ThinkFinger2010-05-08T19:16:44Z<p>Bombenbach: /* Lucid */</p>
<hr />
<div>[[How to enable the fingerprint reader]] has a good explanation for using the fingerprint reader with the closed-source binary driver. But there is also an opensource project called [http://thinkfinger.sourceforge.net ThinkFinger] which does the same, but open.<br />
<br />
However: The fingerprint reader is an INSECURE device and gives a false sense of security! There has been quite a bit of research by a hacker named Starbug, a member of the Chaos Computer Club, Berlin, Germany. He outlined in two very good talks how to forge each and every available fingerprint sensor available at the cost of a few euros, using materials from your local hardware store, a digicam and a laser printer! Here's some links:<br />
* [http://www.ccc.de/updates/2007/umsonst-im-supermarkt?language=en Fingerprint recognition in supermarkets]<br />
* [ftp://ftp.ccc.de/pub/documentation/Fingerabdruck_Hack/fingerabdruck.mpg Video tutorial for forging fingerprints]<br />
<br />
<br />
== Installing ==<br />
=== From source ===<br />
<br />
Download thinkfinger-0.3.tar.gz from the [http://thinkfinger.sourceforge.net/ homepage] and unpack it somewhere, make sure you have the gcc compiler, libtool, pkg-config, libusb-dev and libpam0g-dev installed, then:<br />
<br />
{{cmduser|cd thinkfinger-0.3}}<br />
<br />
<code style="white-space:nowrap;color:#495988;background-color:white;"><nowiki>$</nowiki> ./configure --prefix=/usr --sysconfdir=/etc --with-securedir=/lib/security --with-birdir=/etc/pam_thinkfinger</code><br />
<br />
{{cmduser|make}}<br />
<br />
{{cmdroot|make install}}<br />
<br />
{{NOTE|/lib/security is the directory, where PAM assumes its modules on Debian and openSUSE, it may vary for your distro!}}<br />
<br />
"make install" doesn't create the birdir we specified (where thinkfinger will store users' biometric info), so create it:<br />
<br />
{{cmdroot|mkdir /etc/pam_thinkfinger}}<br />
<br />
If everything went OK assert that you find pam_thinkfinger.so in /lib/security typing:<br />
<br />
{{cmduser|ls /lib/security}}<br />
<br />
=== From package ===<br />
<br />
==== Debian ====<br />
[http://packages.debian.org/source/experimental/thinkfinger Packages] arrived in Debian experimental on Aug 2nd, 2007 (cf. [http://bugs.debian.org/409563 bug #409563]). To access the experimental packages via apt, add the following lines to your sources.list:<br />
<pre><br />
# experimental<br />
deb ftp://mirrors.kernel.org/debian/ experimental main contrib non-free<br />
deb-src ftp://mirrors.kernel.org/debian/ experimental main contrib non-free<br />
</pre><br />
where of course you may replace mirrors.kernel.org with your mirror of choice. Just make sure that it hosts the experimental repositories.<br />
<br />
{{cmdroot|aptitude update}}<br />
<br />
{{cmdroot|aptitude install libthinkfinger0 libpam-thinkfinger thinkfinger-tools}}<br />
<br />
should then get you up and running.<br />
<br />
To make everything work you'll have to have permission to work the device ({{cmduser|sudo adduser myself plugdev}} worked for me), and you'll also have to follow instructions below about adding the device to your PAM methods.<br />
<br />
==== Ubuntu ====<br />
<br />
===== Gutsy =====<br />
<br />
From https://wiki.ubuntu.com/ThinkFinger<br />
<br />
Add PPA repositories to your sources.list:<br />
<pre><br />
deb http://ppa.launchpad.net/jldugger/ubuntu gutsy main restricted universe multiverse<br />
deb-src http://ppa.launchpad.net/jldugger/ubuntu gutsy main restricted universe multiverse<br />
</pre><br />
<br />
Install necessary packages:<br />
<br />
{{cmduser|sudo apt-get install thinkfinger-tools libpam-thinkfinger}}<br />
<br />
===== Hardy =====<br />
<br />
Hardy includes the latest thinkfinger and it is up to date with subversion. Install packages:<br />
<br />
{{cmduser|sudo apt-get install thinkfinger-tools libpam-thinkfinger}}<br />
<br />
Update the pam configuration files:<br />
<br />
{{cmduser|sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable}}<br />
<br />
Enroll your fingerprint (creates $HOME/.thinkfinger.bir). If this gives an error about claiming the USB device then a reboot was claimed to work, but in fact it may just be a permissions problem. {{NOTE|Do not try to enroll using 'sudo' - it will cause hidden permission problems}}<br />
<br />
{{cmduser|tf-tool --acquire}}<br />
<br />
Check fingerprint enrollment<br />
<br />
{{cmduser|tf-tool --verify}}<br />
<br />
You can expect everything to work correctly. Note that you still have to enter your username if prompted but will be able<br />
to swipe your finger instead of the password. The prompt will usually be "Password or swipe finger"<br />
<br />
* Graphical login<br />
* Text console login<br />
* sudo<br />
* screen lock/screen saver<br />
* Administrative password prompt (eg for update or package managers). (Note no "or swipe finger" in prompt).<br />
<br />
===== Intrepid =====<br />
After installing from the normal repositories coming with Ubuntu 8.10, you would have to press enter after sweeping finger. (This bug: [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429])<br />
Therefore Jon Oberheide made an update that can be found here: <br />
[https://launchpad.net/~jon-oberheide/+archive https://launchpad.net/~jon-oberheide/+archive]<br />
(As of 2/3/09, this no longer seems to be the case. Just proceed to the install step.)<br />
<br />
Add the PPA repositories to your source.list (/etc/apt/source.list):<br />
<pre><br />
deb http://ppa.launchpad.net/jon-oberheide/ubuntu intrepid main<br />
deb-src http://ppa.launchpad.net/jon-oberheide/ubuntu intrepid main<br />
</pre><br />
<br />
Update installer:<br />
<br />
{{cmduser|sudo apt-get update}}<br />
<br />
And install:<br />
<br />
{{cmduser|sudo apt-get install thinkfinger-tools}}<br />
<br />
===== Jaunty =====<br />
<br />
The same package by Jon Oberheide is necessary, as with Intrepid, though the package thinkfinger-tools is installed by default.<br />
<br />
Add key:<br />
<br />
{{cmduser|sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F2A12FABE936A7BBDC4EA33351DB180D1323E149}}<br />
<br />
Add the PPA repositories to your source.list (/etc/apt/source.list):<br />
<br />
<pre><br />
deb http://ppa.launchpad.net/jon-oberheide/ppa/ubuntu jaunty main<br />
deb-src http://ppa.launchpad.net/jon-oberheide/ppa/ubuntu jaunty main<br />
</pre><br />
<br />
Update installer:<br />
<br />
{{cmduser|sudo apt-get update}}<br />
<br />
And install:<br />
<br />
{{cmduser|sudo apt-get install thinkfinger-tools libpam-thinkfinger}}<br />
<br />
===== Karmic =====<br />
<br />
The syntax of udev rules is changed due to Karmic's new udev package. The correct rules should be:<br />
<br />
<pre><br />
# SGS Thomson Microelectronics Fingerprint Reader<br />
ENV{ID_VENDOR_ID}=="0483", ENV{ID_MODEL_ID}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint", ENV{GENERATED}="1"<br />
<br />
# the also-needed uinput device<br />
KERNEL=="uinput", MODE="0660", GROUP="fingerprint"<br />
</pre><br />
<br />
Otherwise udev would accidentally change the ownership of /dev/null so that gdm would fail to start.<br />
<br />
===== Lucid =====<br />
<br />
From a working Karmic, upgrade to Lucid gave me a somewhat broken thinkfinger.<br />
<br />
The scanner still works, but (in X windows) you need to hit "Enter" after doing a scan.<br />
The scanner works fine while in terminal mode.<br />
<br />
This is almost definitely because of the xorg version, see this message with no response for more info:<br />
http://article.gmane.org/gmane.linux.drivers.thinkfinger/567<br />
<br />
{{HINT|There is a PPA with working ThinkFinger for Lucid. At least it works fine on my Z61m. [http://www.thinkwiki.org/wiki/Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m#Setup_Fingerprint_Reader See here] }}<br />
<br />
==== Fedora/Fedora Core ====<br />
{{cmdroot|yum install thinkfinger}}<br />
<br />
==== Gentoo ====<br />
{{cmdroot|emerge sys-auth/thinkfinger}}<br />
<br />
==== OpenSUSE ====<br />
openSUSE 10.2 includes the package "libthinkfinger" (version 0.1-7) - you will find newer packages [http://beta1.suse.com/private/thoenig/10.2/thinkfinger/ here].<br />
<br />
== Testing the driver ==<br />
<br />
Now the driver is installed and should be working. You can try it (as root) with<br />
<br />
{{cmdroot|tf-tool --acquire}}<br />
<br />
and<br />
<br />
{{cmdroot|tf-tool --verify}}<br />
<br />
This will ask you to swipe your finger three times, save the fingerprint to /tmp/test.bir and then verify your fingerprint with the bir-file.<br />
<br />
<br />
<br />
== Configuring PAM to use ThinkFinger ==<br />
Now you can configure PAM to use ThinkFinger:<br />
<br />
Open {{path|/etc/pam.d/common-auth}} (In FC6, F7, and Gentoo, this file is {{path|/etc/pam.d/system-auth}}):<br />
<br />
{{cmdroot|nano -w /etc/pam.d/common-auth}}<br />
<br />
Add this line before any pam_unix or pam_unix2 directives:<br />
auth sufficient pam_thinkfinger.so<br />
<br />
If your PAM uses the pam_unix and not the pam_unix2 module, you need to pass a specific argument in<br />
the /etc/pam.d/common-auth directive to make it consider the password entered at the pam_thinkfinger prompt.<br />
auth required pam_unix.so try_first_pass<br />
<br />
For instance, {{path|/etc/pam.d/common-auth}} looks like this:<br />
auth sufficient pam_thinkfinger.so<br />
auth required pam_unix.so nullok_secure try_first_pass<br />
<br />
On openSUSE 10.2, it looks like this now:<br />
auth required pam_env.so<br />
auth sufficient pam_thinkfinger.so<br />
auth required pam_unix2.so<br />
<br />
On Ubuntu 8.10 - Intrepid Ibex you should just add the following line the the /etc/pam.d/common-auth file so it looks like this:<br />
<pre><br />
....<br />
# here are the per-package modules (the "Primary" block)<br />
auth sufficient pam_thinkfinger.so<br />
auth [success=1 default=ignore] pam_unix.so try_first_pass nullok_secure<br />
# here's the fallback if no module succeeds<br />
....<br />
</pre><br />
<br />
On Ubuntu 9.04, you don't need to edit manually, just type:<br />
<br />
{{cmdroot|sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable}}<br />
<br />
<br />
Now we are ready to add users to thinkfinger. You can add a fingerprint for a user with:<br />
<br />
{{cmdroot|tf-tool --acquire $USERNAME}}<br />
<br />
{{NOTE|This may not work for you. Please read the Intrepid Ibex point in the discussion to this page.}}<br />
<br />
Now the user should be able to login with his finger instead of the password.<br />
<br />
If you would like to use thinkfinger for su, you have to enroll the fingerprint for root user with:<br />
<br />
{{cmdroot|tf-tool --acquire root}}<br />
<br />
{{NOTE|You should see the "Password or swipe finger:" prompt when trying to sudo or su. If you don't, you probably do not have the "User level driver support" compiled into your kernel or the "uinput" module loaded!}}<br />
<br />
== xscreensaver/gnome-screensaver ==<br />
{{NOTE|In Fedora 7, the package has been modified in such a way as to make doing this unnecessary.}}<br />
<br />
If you'd like to be able to unlock your screen using the fingerprint reader, you must have current versions of xscreesaver (>~5.03) or gnome-screensaver (>~2.18.2). Then you must give yourself access to the fingerprint reader and your bir-file, because unlike login/gdm/su/sudo, both gnome-screensaver and xscreensaver do not run as root. The following procedure will make the fingerprint reader accessible to members of the "fingerprint" group.<br />
<br />
Make the group: {{cmdroot|groupadd fingerprint}}<br />
<br />
Save the following as {{path|/etc/udev/rules.d/60-thinkfinger.rules}} and run {{cmdroot|sudo /sbin/udevtrigger}}. If you are using a Debian-based distribution, it is likely you are affected by the following [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489831 bug] where you need to replace {{path|udevtrigger}} with {{path|udevadm trigger}} (with the space!) in order for the following to work. You may need to reboot for this to take effect.<br />
#<br />
# udev rules file for the thinkfinger fingerprint scanner<br />
# <br />
# gives access to the fingerprint reader to those in the "fingerprint" group<br />
#<br />
# Taken from:<br />
# http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger<br />
# which was taken and modified from:<br />
# http://article.gmane.org/gmane.linux.drivers.thinkfinger/329<br />
#<br />
<br />
# SGS Thomson Microelectronics Fingerprint Reader<br />
SYSFS{idVendor}=="0483", SYSFS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint"<br />
<br />
# the also-needed uinput device<br />
KERNEL=="uinput", MODE="0660", GROUP="fingerprint"<br />
<br />
<br />
Finally, add the following lines at the end of {{path|/etc/pam.d/gnome-screensaver}}:<br />
auth sufficient pam_thinkfinger.so<br />
auth required pam_unix.so try_first_pass nullok_secure<br />
<br />
<br />
Per user:<br />
<br />
# Add him to the group: {{cmdroot|gpasswd -a $USERNAME fingerprint}}<br />
{{NOTE|The following steps do not need to be done in Ubuntu Intrepid as the bir files are handled differently.}}<br />
# Make him owner of his bir-file: {{cmdroot|chown $USERNAME:root /etc/pam_thinkfinger/$USERNAME.bir}}<br />
# Give him read-only access to his bir-file: {{cmdroot|chmod 400 /etc/pam_thinkfinger/$USERNAME.bir}}<br />
# Give "execute only" access to everyone for the /etc/pam_thinkfinger/ directory: {{cmdroot|chmod o+x /etc/pam_thinkfinger}} (WARNING: this opens up security a little).<br />
<br />
== GNOME ==<br />
<br />
{{NOTE|1=This problem should be solved if you're using sudo >= 1.6.9p9. Links: [http://savannah.nongnu.org/bugs/?19132], [http://www.sudo.ws/bugs/show_bug.cgi?id=180], [https://bugs.launchpad.net/ubuntu/+source/gksu/+bug/86843]}}<br />
<br />
<br />
gksu/gksudo doesn't work correctly. It just stays invisible. When starting a su privileged application such as synaptics you will not get prompted for the password. Nevertheless you can swipe your finger and it should authenticate you. Starting synaptics twice makes gksudo visible.<br />
<br />
There are two possibilities to solve it:<br />
* Changing the string "Password or swipe finger:" to a plain "Password:" (like sudo normally would do) in the file pam/pam_thinkfinger.c of the thinkfinger source directory. Of course, in the console you will then only see a "Password:" instead of "Password or swipe finger:" but this is still more usefull than having gksu/gksudo crashing everytime.<br />
* Patching libgksu with the following patch. This is also a nasty hack until a better solution is implemented.<br />
<pre><br />
--- libgksu-2.0.3/libgksu/libgksu.c.orig 2007-06-17 16:00:24.000000000 +0200<br />
+++ libgksu-2.0.3/libgksu/libgksu.c 2007-06-17 16:00:47.000000000 +0200<br />
@@ -2663,7 +2663,7 @@<br />
*/<br />
for (counter = 0; counter < 50; counter++)<br />
{<br />
- if (strncmp (buffer, "GNOME_SUDO_PASS", 15) == 0)<br />
+ if (strncmp (buffer, "GNOME_SUDO_PASS", 15) == 0 || strncmp (buffer, "Password or swi", 15) == 0)<br />
break;<br />
<br />
read_line (parent_pipe[0], buffer, 256);<br />
@@ -2675,7 +2675,7 @@<br />
if (context->debug)<br />
fprintf (stderr, "brute force GNOME_SUDO_PASS ended...\n");<br />
<br />
- if (strncmp(buffer, "GNOME_SUDO_PASS", 15) == 0)<br />
+ if (strncmp(buffer, "GNOME_SUDO_PASS", 15) == 0 || strncmp(buffer, "Password or swi", 15) == 0)<br />
{<br />
gchar *password = NULL;<br />
gboolean prompt_grab;<br />
</pre><br />
<br />
== KDE ==<br />
<br />
Integration in KDE and kdm seems not to be easily possible now. There is a filed [https://bugs.kde.org/show_bug.cgi?id=116682 bug] at kde.org where you can vote for this.<br />
<br />
Moreover, kdm in openSUSE 10.3 and in Kubuntu 8.10 crashes when pam_thinkfinger is enabled. A possible "workaround" is downgrading to thinkfinger 0.2.2. <br />
<br />
Another workaround is to use Fprint from [http://www.reactivated.net/fprint/wiki/Main_Page] which works quite nicely on my X61s and Kubuntu Hardy.<br />
<br />
<br />
This Howto was copied from [[Installing Ubuntu 6.06 on a ThinkPad T43#Fingerprint_Reader]] and then slightly modified.<br />
<br />
== Fix for the fingerprint reader getting too hot ==<br />
<br />
If you notice that your fingerprint reader occasionally gets very hot then you might be interested in this section. Thanks to Tino Keitel, he actually gave me this solution through the linux-thinkpad mailing list.<br />
<br />
First we need to determine if the reader is not on autosuspend mode.<br />
Open a terminal and run:<br />
<br />
for i in `find /sys/devices/*/*/usb* -name level` ; do echo -n "$i: " ; cat $i ; done<br />
<br />
We care about the devices that are with "on" state and we need to determine if one of those is the reader. So for each of those run something like:<br />
<br />
cat /sys/devices/pci0000\:00/0000\:00\:1a.0/usb1/1-2/idVendor <br />
0483<br />
<br />
cat /sys/devices/pci0000\:00/0000\:00\:1a.0/usb1/1-2/idProduct <br />
2016<br />
<br />
Use the corresponding path of the devices that you got with "on" state and then compare the output with the output of the lsusb command. An example:<br />
<br />
lsusb output: Bus 001 Device 004: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader<br />
<br />
Which matches the output above (0483:2016). Once you have determined the path of your reader then become root with su - and:<br />
<br />
echo "auto" > /sys/<path-to-device>/power/level<br />
<br />
After this, the fingerprint reader should be in "autosuspend" and will not get hot anymore. And it will still work as normal.<br />
<br />
This will only work for the current session. If you want to make this change persistent and have [http://linux-diag.sourceforge.net/Sysfsutils.html sysfsutils] installed, edit the file {{path|/etc/sysfs.conf}} and add the line<br />
<br />
<path-to-device>/power/level = auto<br />
<br />
Following the above example, that would be <br />
<br />
devices/pci0000\:00/0000\:00\:1a.0/usb1/1-2/power/level = auto<br />
<br />
Alternatively, you can install an init script:<br />
<br />
sudo gedit /etc/init.d/ReaderNoMoreHot<br />
<br />
Paste the following into it:<br />
<br />
#!/bin/bash<br />
#<br />
echo "auto" > /sys/<path-to-device>/power/level<br />
<br />
Save and close. Then:<br />
<br />
sudo chmod 755 /etc/init.d/ReaderNoMoreHot<br />
sudo update-rc.d ReaderNoMoreHot defaults 90<br />
<br />
--[[User:Lunatico|Lunatico]] 19:19, 1 August 2008 (CEST), extended by --[[User:Michaelthomas h|Michaelthomas h]] 23:36, 9 August 2008 (CEST)<br />
<br />
For the init script above, you can use the following more elaborate script, which does all the work for you of identifying the <path-to-device>. This can be useful since the USB device id can change under various circumstances (kernel upgrade etc).<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# find the fingerprint reader and change its power level to autosuspend<br />
<br />
usbname="SGS Thomson Microelectronics Fingerprint Reader"<br />
usbid=$(lsusb |grep "$usbname" |cut -d' ' -f6);<br />
[[ -z $usbid ]] && echo "USB Device \"$usbname\" not found" && exit 1<br />
<br />
unset failed_bool<br />
find /sys/devices/*/*/usb* -name idVendor -print | (<br />
while read vfile; do<br />
dir=$(dirname $vfile);<br />
vendor=$(<$vfile);<br />
product=$(<$dir/idProduct);<br />
if [[ $vendor:$product = $usbid ]]; then<br />
plevel_file=$dir/power/level<br />
old_level=$(<$plevel_file);<br />
[[ $old_level = auto ]] || echo auto >$plevel_file || failed_bool=1<br />
break;<br />
fi;<br />
done<br />
if [[ $failed_bool ]]; then<br />
echo "Failed to set the fingerprint reader's power level to 'auto'."<br />
exit 1<br />
fi<br />
)<br />
</pre><br />
<br />
Here is an alternate script. The code is cleaner and it's about 20x faster (updated for jaunty):<br />
<pre><br />
#!/bin/bash<br />
<br />
# find the fingerprint reader and change its power level to autosuspend<br />
<br />
find_manuf=STMicroelectronics<br />
find_prod="Biometric Coprocessor"<br />
<br />
for devdir in /sys/class/usb_*/*/device; do<br />
[[ -r $devdir/manufacturer ]] || continue<br />
manuf=$(<$devdir/manufacturer)<br />
[[ $manuf = $find_manuf ]] || continue;<br />
prod=$(<$devdir/product)<br />
[[ $prod = $find_prod ]] || continue;<br />
# if we get here then we have the right device!<br />
plevel_file=$devdir/power/level<br />
old_level=$(<$plevel_file);<br />
# if it is already set properly then exit silently:<br />
[[ $old_level = auto ]] && exit 0<br />
# if we successfully change it then exit silently:<br />
echo auto >$plevel_file && exit 0<br />
echo "Failed to set the fingerprint reader's power level to 'auto'."<br />
exit 1<br />
done<br />
<br />
# if we make it through the for loop without exiting, the search failed<br />
echo "Could not find the $find_manuf $find_prod (fingerprint reader)"<br />
exit 1<br />
</pre><br />
<br />
<br />
So, I decided to see if udev (on Ubuntu hardy) could do the job in this regard. I put the following in {{path|/etc/udev/rules.d/99-fingerprint-reader.rules}} and IWFM:<br />
<pre><br />
ACTION!="add", GOTO="fingerprint_end"<br />
<br />
SYSFS{idVendor}=="0483", SYSFS{idProduct}=="2016", RUN+="/bin/sh -c 'echo auto > /sys/$devpath/power/level'"<br />
<br />
LABEL="fingerprint_end"<br />
</pre><br />
[[User:Bkuhn|Bkuhn]] 01:39, 12 August 2009 (UTC)</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48493Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-08T19:11:13Z<p>Bombenbach: There is a PPA with fixed ThinkFinger for Lucid -> don't need UPEK's driver any more</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. See below<br />
|}<br />
<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
In a terminal run <br />
sudo add-apt-repository ppa:martin-meltin/ppa<br />
sudo apt-get update<br />
sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5<br />
sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable<br />
after that run<br />
tf-tool --acquire $USERNAME<br />
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48490Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-06T23:09:19Z<p>Bombenbach: </p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|{{key|Fn}}{{key|Space}} (Screen Magnify)<br />
|{{Cyes}} <br />
|requires some acpi hacking. See below<br />
|}<br />
<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter approximately 3 seconds after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48489Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-06T23:07:22Z<p>Bombenbach: Finally Fn-Space Screen Magnify works!!!! Hurrah!!</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Make Fn-Space (Screen Magnify) work ==<br />
<br />
Open a terminal and run<br />
sudo apt-get install kmag<br />
sudo gedit /etc/acpi/events/asus-rotate<br />
replace it's content by the following<br />
# /etc/acpi/events/ibmwireless<br />
# This is called when the user presses Fn-Space<br />
event=ibm/hotkey HKEY 00000080 00001014<br />
action=/etc/acpi/ibm-zoom.sh<br />
and save. Now run<br />
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh<br />
sudo gedit /etc/acpi/ibm-zoom.sh<br />
and replace its content by the following<br />
#!/bin/sh<br />
#<br />
# This script activates gnome-mag when Fn+Space is pressed<br />
test -f /usr/share/acpi-support/key-constants || exit 0<br />
. /usr/share/acpi-support/power-funcs<br />
magnifier_pid=`pidof kmag`<br />
for x in /tmp/.X11-unix/*; do<br />
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`<br />
getXconsole;<br />
if [ x"$XAUTHORITY" != x"" ]; then<br />
export DISPLAY=":$displaynum"<br />
if [ "$magnifier_pid" != "" ]; then <br />
/usr/bin/killall kmag<br />
break<br />
else<br />
/usr/bin/kmag &<br />
break<br />
fi<br />
fi<br />
done<br />
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter approximately 3 seconds after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48488Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-06T20:03:31Z<p>Bombenbach: /* Setup Hard Drive Active Protection System */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter approximately 3 seconds after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
To change the sensitivity run<br />
sudo gedit /etc/default/hdapsd<br />
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48487Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-06T19:59:11Z<p>Bombenbach: </p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} (should work) <br />
|not tested, for further information check out these links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} (should work) <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter approximately 3 seconds after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48486Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-06T19:19:13Z<p>Bombenbach: added tpm information</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|TPM<br />
|{{Cunk}} <br />
|not tested, for further information check out this links [http://die-klapsmuehle.org/2009/01/29/how-to-use-a-tpm-with-ubuntu/], [https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux] <br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter approximately 3 seconds after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48485Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-06T19:14:15Z<p>Bombenbach: </p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter approximately 3 seconds after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48484Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-06T19:02:34Z<p>Bombenbach: /* Configure Trackpoint and Touchpad */</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/rc.local<br />
paste <br />
<br />
for i in 1 2 3<br />
do<br />
if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then<br />
echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed<br />
echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select<br />
fi<br />
done<br />
<br />
before <br />
exit 0<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity<br />
echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48473Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-05T22:25:49Z<p>Bombenbach: </p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/init/trackpoint.conf<br />
<br />
paste <br />
<br />
description "Trackpoint-Settings"<br />
env TPDIR=/sys/devices/platform/i8042/serio1/serio3<br />
start on virtual-filesystems<br />
script<br />
while [ ! -f $TPDIR/sensitivity ]; do<br />
sleep 2<br />
done<br />
echo -n 200 > $TPDIR/sensitivity<br />
echo -n 150 > $TPDIR/speed<br />
echo -n 1 > $TPDIR/press_to_select<br />
end script<br />
<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
<br />
sudo sh -c "echo -n 200 > /sys/devices/platform/i8042/serio1/serio3/sensitivity"<br />
sudo sh -c "echo -n 150 > /sys/devices/platform/i8042/serio1/serio3/speed"<br />
<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed. <br />
<br />
If you get an error message like<br />
sh: cannot create /sys/devices/platform/i8042/serio1/serio3/sensitivity: Directory nonexistent<br />
then you should run <br />
ls /sys/devices/platform/i8042/serio1/<br />
to get the correct name (like serio2 or serio1). After that replace serio3 by the correct name in all related commands and in trackpoint.conf<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
== Configure Battery Charge Control ==<br />
<br />
In a terminal run<br />
sudo apt-get install sysfsutils<br />
sudo apt-get install tp-smapi-dkms<br />
<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file. Run<br />
sudo gedit /etc/sysfs.conf<br />
and add <br />
devices/platform/smapi/BAT0/start_charge_thresh=85<br />
devices/platform/smapi/BAT0/stop_charge_thresh=96<br />
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.<br />
<br />
To check the current thresholds run<br />
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh<br />
and<br />
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh<br />
<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48472Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-05T21:51:29Z<p>Bombenbach: added HDAPS setup</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Hard Drive Active Protection System<br />
|{{Cyes}} <br />
|must be activated and configured. See below<br />
<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/init/trackpoint.conf<br />
<br />
paste <br />
<br />
description "Trackpoint-Settings"<br />
env TPDIR=/sys/devices/platform/i8042/serio1/serio3<br />
start on virtual-filesystems<br />
script<br />
while [ ! -f $TPDIR/sensitivity ]; do<br />
sleep 2<br />
done<br />
echo -n 200 > $TPDIR/sensitivity<br />
echo -n 150 > $TPDIR/speed<br />
echo -n 1 > $TPDIR/press_to_select<br />
end script<br />
<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
<br />
sudo sh -c "echo -n 200 > /sys/devices/platform/i8042/serio1/serio3/sensitivity"<br />
sudo sh -c "echo -n 150 > /sys/devices/platform/i8042/serio1/serio3/speed"<br />
<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed. <br />
<br />
If you get an error message like<br />
sh: cannot create /sys/devices/platform/i8042/serio1/serio3/sensitivity: Directory nonexistent<br />
then you should run <br />
ls /sys/devices/platform/i8042/serio1/<br />
to get the correct name (like serio2 or serio1). After that replace serio3 by the correct name in all related commands and in trackpoint.conf<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
== Setup Hard Drive Active Protection System ==<br />
Open a terminal and run<br />
sudo apt-get install tp-smapi-dkms<br />
sudo apt-get install python python-gtk2 python-gnome2 hdapsd<br />
Now run<br />
sudo gedit /etc/modules<br />
and add <br />
tp_smapi <br />
to the very end of the file so that it looks like this (example)<br />
# /etc/modules: kernel modules to load at boot time.<br />
#<br />
# This file contains the names of kernel modules that should be loaded<br />
# at boot time, one per line. Lines beginning with "#" are ignored.<br />
lp<br />
tp_smapi<br />
<br />
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area<br />
like in Windows, follow these steps to install [http://thpani.at/projects/thinkhdaps/ ThinkHDAPS]<br />
<br />
Download [https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb] and put it into your home directory. Right click on the file and select "Extract Here". In terminal run<br />
cd ~<br />
cd thinkhdaps_0.2.1-1_all<br />
sudo cp<br />
tar -zxvf data.tar.gz <br />
sudo cp usr/bin/thinkhdaps /usr/bin/<br />
sudo chmod +x /usr/bin/thinkhdaps<br />
sudo cp usr/share/pixmaps/* /usr/share/pixmaps/<br />
<br />
Now you can run<br />
thinkhdaps &<br />
to make the '''ThinkHDAPS''' icon appear in the notification area<br />
<br />
[[File:ThinkHDAPS.png]]<br />
<br />
To make it autostart go to '''System -> Preferences -> Startup Applications''', select the "Startup Programms" tab, click Add and add this <br />
Name: thinkhdaps<br />
Command: thinkhdaps<br />
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=File:ThinkHDAPS.png&diff=48471File:ThinkHDAPS.png2010-05-05T21:47:01Z<p>Bombenbach: </p>
<hr />
<div></div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48470Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-05T20:29:54Z<p>Bombenbach: </p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|-<br />
|Back and Forward keys (near the arrow keys)<br />
|{{Cyes}} <br />
|out of the box<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/init/trackpoint.conf<br />
<br />
paste <br />
<br />
description "Trackpoint-Settings"<br />
env TPDIR=/sys/devices/platform/i8042/serio1/serio3<br />
start on virtual-filesystems<br />
script<br />
while [ ! -f $TPDIR/sensitivity ]; do<br />
sleep 2<br />
done<br />
echo -n 200 > $TPDIR/sensitivity<br />
echo -n 150 > $TPDIR/speed<br />
echo -n 1 > $TPDIR/press_to_select<br />
end script<br />
<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
<br />
sudo sh -c "echo -n 200 > /sys/devices/platform/i8042/serio1/serio3/sensitivity"<br />
sudo sh -c "echo -n 150 > /sys/devices/platform/i8042/serio1/serio3/speed"<br />
<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed. <br />
<br />
If you get an error message like<br />
sh: cannot create /sys/devices/platform/i8042/serio1/serio3/sensitivity: Directory nonexistent<br />
then you should run <br />
ls /sys/devices/platform/i8042/serio1/<br />
to get the correct name (like serio2 or serio1). After that replace serio3 by the correct name in all related commands and in trackpoint.conf<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48469Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-05T20:23:27Z<p>Bombenbach: </p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/init/trackpoint.conf<br />
<br />
paste <br />
<br />
description "Trackpoint-Settings"<br />
env TPDIR=/sys/devices/platform/i8042/serio1/serio3<br />
start on virtual-filesystems<br />
script<br />
while [ ! -f $TPDIR/sensitivity ]; do<br />
sleep 2<br />
done<br />
echo -n 200 > $TPDIR/sensitivity<br />
echo -n 150 > $TPDIR/speed<br />
echo -n 1 > $TPDIR/press_to_select<br />
end script<br />
<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
<br />
sudo sh -c "echo -n 200 > /sys/devices/platform/i8042/serio1/serio3/sensitivity"<br />
sudo sh -c "echo -n 150 > /sys/devices/platform/i8042/serio1/serio3/speed"<br />
<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed. <br />
<br />
If you get an error message like<br />
sh: cannot create /sys/devices/platform/i8042/serio1/serio3/sensitivity: Directory nonexistent<br />
then you should run <br />
ls /sys/devices/platform/i8042/serio1/<br />
to get the correct name (like serio2 or serio1). After that replace serio3 by the correct name in all related commands and in trackpoint.conf<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48468Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-05T20:20:39Z<p>Bombenbach: added s-video information</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cpart}} <br />
|a 100HZ Sony TV was recognized as a 30HZ TV, poor picture<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/init/trackpoint.conf<br />
<br />
paste <br />
<br />
description "Trackpoint-Settings"<br />
env TPDIR=/sys/devices/platform/i8042/serio1/serio3<br />
start on virtual-filesystems<br />
script<br />
while [ ! -f $TPDIR/sensitivity ]; do<br />
sleep 2<br />
done<br />
echo -n 200 > $TPDIR/sensitivity<br />
echo -n 150 > $TPDIR/speed<br />
echo -n 1 > $TPDIR/press_to_select<br />
end script<br />
<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
<br />
sudo sh -c "echo -n 200 > /sys/devices/platform/i8042/serio1/serio3/sensitivity"<br />
sudo sh -c "echo -n 150 > /sys/devices/platform/i8042/serio1/serio3/speed"<br />
<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed. <br />
<br />
If you get an error message like<br />
sh: cannot create /sys/devices/platform/i8042/serio1/serio3/sensitivity: Directory nonexistent<br />
then you should run <br />
ls /sys/devices/platform/i8042/serio1/<br />
to get the correct name (like serio2 or serio1). After that replace serio3 by the correct name in all related commands and in trackpoint.conf<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
You can also use this to configure an external device connected to S-Video Out.<br />
<br />
[[File:File:Z61m_svideo.JPG]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=File:Z61m_svideo.JPG&diff=48467File:Z61m svideo.JPG2010-05-05T20:20:02Z<p>Bombenbach: </p>
<hr />
<div></div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_10.04_(Lucid_Lynx)_on_a_ThinkPad_Z61m&diff=48466Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m2010-05-05T19:58:21Z<p>Bombenbach: added fan control and volume buttons</p>
<hr />
<div>= Installing from USB stick=<br />
<br />
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the [http://www.ubuntu.com/getubuntu/download latest ISO], plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check [https://help.ubuntu.com/community/Installation/FromUSBStick#Creating%20a%20bootable%20USB%20Drive this page]. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.<br />
<br />
= Tested Configuration =<br />
* Lenovo ThinkPad {{Z61m}} (9450-H9G)<br />
** [[Intel Core 2 Duo]] T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)<br />
** 2 GB RAM (2x 1 GB [[PC2-5300]] DDR2 667MHz)<br />
** 15.4" wide-screen TFT WXGA 1280x800<br />
** [[Intel Graphics Media Accelerator 950]]<br />
** Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) [http://www.thinkwiki.org/wiki/Talk:Problem_with_hard_drive_clicking reflashed to Dell OEM Firmware]<br />
** Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)<br />
** Intel HD Audio with [[AD1981HD]] codec<br />
** [[Broadcom Gigabit Ethernet (10/100/1000)]]<br />
** [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)]]<br />
** [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]<br />
** [[IrDA]] 1.1 (FIR - 4Mbps)<br />
** [[SD_Card_slot|4-in-1 digital media reader]] (MultiMedia Card, MemoryStick, SD)<br />
** [[Integrated Fingerprint Reader]]<br />
** [[ThinkLight]]<br />
** [[UltraNav]]<br />
** [[CardBus]] slot (Type 2)<br />
** [[ExpressCard slot]] (54 or 34)<br />
** [[UltraBay|UltraBay Enhanced]]<br />
** 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack<br />
** Built-in Microphone<br />
<br />
= Hardware Support =<br />
<br />
{| border="2"<br />
|Device / Function<br />
|Works?<br />
|Comment<br />
|-<br />
|Suspend & Hibernate<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel GMA950 2D and 3D<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Intel 3945ABG WiFi<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Bluetooth<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Broadcom Gigabit Ethernet<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|DVD±RW Burner<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Ultrabay Hotswapping<br />
|{{Cpart}} <br />
|hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping [http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_libata-acpi_and_udev look here]<br />
|-<br />
|Intel HDA Sound<br />
|{{Cyes}} <br />
|out of the box, modem must be enabled in BIOS<br />
|-<br />
|PCMCIA<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Express Card<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Firewire<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|USB<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|IRDA<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Docking<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Fingerprint Reader<br />
|{{Cyes}}<br />
|works with UPEK's proprietary driver. See bellow<br />
|-<br />
|VGA out<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|S-Video out<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Modem<br />
|{{Cunk}} <br />
|not tested<br />
|-<br />
|Microphone<br />
|{{Cyes}} <br />
|both internal and external mics work out of the box, but are muted by default. See bellow<br />
|-<br />
|Headphones<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Touchpad<br />
|{{Cyes}} <br />
|out of the box<br />
|-<br />
|Trackpoint<br />
|{{Cyes}} <br />
|out of the box, to enable middle button scrolling see bellow<br />
|-<br />
|Multimedia Card Reader<br />
|{{Cyes}}?<br />
|works out of the box with all kinds of SD cards. No other cards have been tested<br />
|-<br />
|{{key|Fn}}{{key|Fx}}, {{key|Fn}}{{key|PageUp}}, {{key|Fn}}{{key|Home}}, {{key|Fn}}{{key|End}}<br />
|{{Cyes}} <br />
|out of the box, except of {{key|Fn}}{{key|F9}} and {{key|Fn}}{{key|Space}}<br />
|-<br />
|{{key|Fn}}{{key|Up}}, {{key|Fn}}{{key|Down}}, {{key|Fn}}{{key|Left}}, {{key|Fn}}{{key|Right}}<br />
|{{Cpart}}<br />
|depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration<br />
|-<br />
|{{ibmkey|ThinkVantage|#495988}}<br />
|{{Cyes}} <br />
|does nothing by default, but can be easily mapped to something useful. See bellow<br />
|-<br />
|{{ibmkey|Volume up|#494949}}, {{ibmkey|Volume down|#494949}}, {{ibmkey|Volume mute|#494949}}<br />
|{{Cpart}} <br />
|the volume buttons work but don't affect the software (Pulse Audio) mixer. See bellow<br />
|}<br />
<br />
<br />
[[Category:Z61m]]<br />
<br />
= HOWTOS = <br />
<br />
== Setup the Middle Button Scrolling == <br />
<br />
Start a terminal and run <br />
<br />
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf<br />
<br />
paste this <br />
<br />
Section "InputClass"<br />
Identifier "Trackpoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "EmulateWheelTimeout" "200" <br />
Option "Emulate3Buttons" "false"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
EndSection<br />
<br />
and save. Reboot.<br />
<br />
== Configure Trackpoint and Touchpad ==<br />
The most convenient way to do this is to install GPointing Device Settings via <br />
sudo apt-get install gpointing-device-settings<br />
After that you will find it in System -> Preferences -> Pointing Devices<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run<br />
sudo apt-get install sysfsutils<br />
sudo gedit /etc/init/trackpoint.conf<br />
<br />
paste <br />
<br />
description "Trackpoint-Settings"<br />
env TPDIR=/sys/devices/platform/i8042/serio1/serio3<br />
start on virtual-filesystems<br />
script<br />
while [ ! -f $TPDIR/sensitivity ]; do<br />
sleep 2<br />
done<br />
echo -n 200 > $TPDIR/sensitivity<br />
echo -n 150 > $TPDIR/speed<br />
echo -n 1 > $TPDIR/press_to_select<br />
end script<br />
<br />
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing<br />
<br />
sudo sh -c "echo -n 200 > /sys/devices/platform/i8042/serio1/serio3/sensitivity"<br />
sudo sh -c "echo -n 150 > /sys/devices/platform/i8042/serio1/serio3/speed"<br />
<br />
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed. <br />
<br />
If you get an error message like<br />
sh: cannot create /sys/devices/platform/i8042/serio1/serio3/sensitivity: Directory nonexistent<br />
then you should run <br />
ls /sys/devices/platform/i8042/serio1/<br />
to get the correct name (like serio2 or serio1). After that replace serio3 by the correct name in all related commands and in trackpoint.conf<br />
<br />
== Workaround for the Volume Buttons ==<br />
Volume buttons work but don't control software mixer settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673 Bug #357673]) still unfixed. A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure {{key|Win}}{{key|F1}} and {{key|Win}}{{key|F2}} which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to '''System -> Preferenced -> Keyboard shortcuts''', click on "Volume Down" and press {{key|Win}}{{key|F1}}. Now click on "Volume Up" and press {{key|Win}}{{key|F2}}. If you also need mute, you can define {{key|Win}}{{key|1}} for that. The changes will be applied immediately.<br />
<br />
[[File:Screenshot-Keyboard_Shortcuts.png]]<br />
<br />
== Map ThinkVantage Button ==<br />
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to '''System->Preferences-> Keyboard shortcuts'''. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press {{ibmkey|ThinkVantage|#495988}}. Via Add you can also add your own commands, for instance to start your browser or e-mail client.<br />
<br />
== Setup External Monitor or Beamer (VGA) == <br />
<br />
Connect your monitor/beamer to VGA port and go to '''System -> Preferences -> Monitors'''. For quick access to those settings it might be useful to activate "Show monitors in panel".<br />
<br />
[[File:Lucid_ext_Monitor_new.png]]<br />
<br />
== Setup Fingerprint Reader == <br />
The common open source solution [http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger ThinkFinger] doesn't work properly with Lucid (see [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/543540 Bug #543540] and [https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429 Bug #256429]). There's also [http://reactivated.net/fprint/wiki/Main_Page fprint] out there, but it has a nasty bug concerning invisible GKSU windows (see [https://bugs.launchpad.net/ubuntu/+source/pam-fprint/+bug/347778 Bug #347778]). Thus, as of 2010-05-03 the easiest way to get fingerprint reader working on a Z61m is to use UPEK's proprietary driver. First you must get a deb-package called ps-for-linux-0.1.deb from here [http://www.upek.com/support/downloads/linux/ http://www.upek.com/support/downloads/linux/]. Install the package and go to System -> Administration -> Fingerprint Enrollment to register you fingerprint(s). Reboot.<br />
<br />
[[File:Fingerprint_Enrollment_new.png]]<br />
<br />
The only nasty thing about this driver is that you always must press Enter after scanning your fingerprint. Apart from that it works fine for GDM (login), gksudo and sudo.<br />
<br />
= Power Management =<br />
<br />
== Fix the hard drive clicking bug ==<br />
If you don't know what the hard drive clicking bug is, read [http://www.thinkwiki.org/wiki/Problem_with_hard_drive_clicking this]. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected. <br />
<br />
{{WARN|Here is a solution that worked for me. It's a bit dirty and turns off the power management of your HDD. This will slightly decrease your battery life but greatly improve your drive's lifetime.}} <br />
{{HINT|If you have a better solution, be sure to share it here}} <br />
<br />
To fix the bug open a terminal and run<br />
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/<br />
sudo gedit /etc/pm/power.d/95hdparm-apm<br />
<br />
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this<br />
<br />
case "$1" in<br />
thaw|resume|true|false) # true and false for power.d<br />
resume_hdparm_apm<br />
hdparm -B 254 /dev/sda<br />
;;<br />
*)<br />
exit 254<br />
;;<br />
esac<br />
<br />
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run<br />
sudo hdparm -B /dev/sda<br />
hdparm should always report<br />
<br />
/dev/sda:<br />
APM_level = 254<br />
<br />
== Setup Fan Control ==<br />
<br />
{{WARN|Wrong fan control settings may seriously damage you Thinkpad. You do it on your own risk!}} <br />
<br />
To override BIOS fan control you can install '''ThinkPad Fan Control'''. Go to '''System -> Administration -> Synaptic Package Manager'''. Switch to the "Third Party Software" tab and click on "Add". As APT line add this<br />
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main<br />
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages<br />
tpfand tpfan-admin tpfand-profiles<br />
Go to '''System -> Administration -> ThinkPad Fan Control''' and click on "Unlock". Select "Control system fan by software" and you're done.<br />
<br />
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. <br />
Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.<br />
<br />
[[File:Screenshot-ThinkPad_Fan_Control_Configuration.png]]<br />
<br />
= External Sources =<br />
*[http://wiki.ubuntuusers.de/Trackpoint] Trackpoint Configuration</div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=File:Screenshot-Keyboard_Shortcuts.png&diff=48465File:Screenshot-Keyboard Shortcuts.png2010-05-05T19:50:08Z<p>Bombenbach: </p>
<hr />
<div></div>Bombenbachhttps://www.thinkwiki.org/w/index.php?title=File:Screenshot-ThinkPad_Fan_Control_Configuration.png&diff=48464File:Screenshot-ThinkPad Fan Control Configuration.png2010-05-05T19:28:25Z<p>Bombenbach: </p>
<hr />
<div></div>Bombenbach