https://www.thinkwiki.org/w/api.php?action=feedcontributions&user=Centic&feedformat=atomThinkWiki - User contributions [en]2024-03-29T10:14:50ZUser contributionsMediaWiki 1.31.12https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_(October_2005)_on_a_ThinkPad_T42&diff=54255Installing Debian Sid (October 2005) on a ThinkPad T422013-01-05T12:41:08Z<p>Centic: remove spam</p>
<hr />
<div>== Debian netinst ==<br />
Insert the Debian net installation disk (download size ~130 MB) and on bootup, the laptop should go directly to the Debian splash image prompting you for a boot parameter. If you don't see this screen, then you possibly need to change the boot device configuration in your BIOS and make the CD drive the first boot disk.<br />
<br />
Enter expert26 to start the installation with Kernel 2.6, and it will take you through the regular Debian setup which contrary to published reports on Slashdot and SuSe forums is very intuitive and non-scary. Everything I had on this machine (lspci output below) was detected with the sole exception of the Intel Pro Wireless 2200 wireless card. It turned out later that getting wirless to work was really easy in debian.<br />
<br />
Debian should install just fine and on first bootup, install the packages you want. X should just work with all the auto-detect options in the installer. I have a SXGA monitor and the display worked correctly from the first go. The only problem I had with the Debian installer is that at the time of my install, gnome was in transition so I couldn't immediately install the mail client of choice -> Evolution.<br />
<br />
== My configuration ==<br />
Here is the lspci output from my system, a more non-cryptic description of my config is below<br />
<br />
:0000:00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03)<br />
:0000:00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03)<br />
:0000:00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)<br />
:0000:00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)<br />
:0000:00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)<br />
:0000:00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)<br />
:0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)<br />
:0000:00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)<br />
:0000:00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)<br />
:0000:00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)<br />
:0000:00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)<br />
:0000:00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)<br />
:0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]<br />
:0000:02:00.0 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)<br />
:0000:02:00.1 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)<br />
:0000:02:01.0 Ethernet controller: Intel Corporation 82540EP Gigabit Ethernet Controller (Mobile) (rev 03)<br />
:0000:02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)<br />
<br />
In summary,<br />
:Intel 1.73 Pentium M (Dothan)<br />
:Intel Pro Wirless 2200<br />
:SXGA monitor (14", 1400x1050)<br />
:512 MB of RAM<br />
:Intel Gigabit Ethernet<br />
:IBM Security System<br />
:Integrated fingerprint reader<br />
:56 K modem<br />
<br />
== Getting wireless to work ==<br />
Intel 2200BG wireless chipsets work right out of the box since the source is in the kernel tree since 2.6.15. You will still need to download and install the firmware for these cards. The firmware files change with the version number of the driver that is included in the kernel source. The version of the firmware may be checked by apt-getting the kernel source and viewing Documentation/networking/README.ipw2200<br />
<br />
The ipw2200 sourceforge page at [http://ipw2200.sourceforge.net/firmware.php IPW-Sourceforge] will have directions for you.<br />
<br />
Check that everything works by<br />
$ iwlist scanning<br />
<br />
Either eth1 or eth0 should show a list of available wirless networks (if any)<br />
<br />
You can create your wirless preferences by modifying your /etc/network/interfaces file. I show a part of mine as reference<br />
=== Network intefaces file ===<br />
<br />
mapping eth1<br />
map home <br />
map work<br />
map none<br />
# The loopback network interface<br />
auto lo<br />
iface lo inet loopback<br />
# The primary network interface<br />
# auto eth0<br />
iface eth0 inet dhcp<br />
autho eth1<br />
iface eth1 inet dhcp<br />
iface home inet dhcp<br />
wireless-essid enter your wireless ID <br />
wireless-key whatever your wirless key is<br />
iface work inet dhcp<br />
wireless-essid whatever your work wireleess ID<br />
wireless-key whatever your wireless key is<br />
iface none inet dhcp<br />
wireless-essid ANY<br />
wireless-key none<br />
<br />
== Getting power management to work ==<br />
Power-management works with ACPI but there are issues with getting ATI Radeon cards to sleep (see below). <br />
<br />
For power-management, apt-get install hibernate<br />
<br />
=== ACPI sleep ===<br />
ACPI sleep works out of the box. Just login as root and type<br />
$ echo mem > sys/power/state<br />
<br />
Your laptop should go through the suspend cycle and the sleep light should come on. To resume, press the Fn key and the laptop shoud resume where you left it. <br />
<br />
You can automate this whole operation, so that when you close the lid, the laptop should go to sleep automatically. Here's how.<br />
<br />
=== Hibernate ===<br />
I recommend using the suspend2 patch found on www.suspend2.net. The instructions there are quite easy to follow and after downloading the patch you can patch the kernel by executing in the kernel directory the command<br />
<br />
$bzcat /path/to/patch | patch -p1<br />
<br />
Select the suspend2 configuration options in the kernel tree. Make sure LZF compression is built in in the Cryptographic routines section.<br />
<br />
=== Compiling the kernel ===<br />
In Debian this is easy to do using the kernel-package program. apt-get install kernel-package initramfs-tools fakeroot and in the kernel directory, you can execute<br />
<br />
$ make-kpkg --initrd --rootcmd fakeroot --append-to-version <system_name> --revision <2.6.x-y> --arch i386 kernel_image<br />
<br />
and after a while the kernel .deb package is made. Make sure you have initramfs-tools installed and NOT yaird because suspend2 is not supported using yaird. <br />
<br />
To get suspend2 to resume successfully, you will have to pass resume2=swap:/dev/hdax as a kernel parameter in /boot/grub/menu.lst<br />
<br />
=== ACPI sleep drain and framebuffer problem ===<br />
Thinkpad laptops with ATI radeon cards currently suffer from high ACPI sleep power drain. This is because, the radeon card doesn't shut down when the rest of the laptop goes to sleep. This is probably because the Radeon driver programmers are working in the dark due to ATI not fully releasing the specs of their card. This problem may be fixed in kernel 2.6.21 where the ACPI subsystem is rumored to be completely revamped.<br />
<br />
Another problem is that the current implementation of the radeon power management (drivers/video/aty/radeon_pm.c) maintains a whitelist of thinkpad systems where the radeon card can be successfully shut off using a kernel parameter. However, this stopped working sometime in eary 2007 with an upgrade of the X.org server. Thus many have reported hangs as covered in [http://bugme.osdl.org/show_bug.cgi?id=3022]. For the time being, if you want to use the framebuffer, you will have to recompile your kernel with the Radeon driver built in. Pass video=radeonfb:ignore_devllist=1 as the kernel parameter in grub or lilo.<br />
<br />
=== Sample kernel configuration in Grub ===<br />
title Debian GNU/Linux, kernel 2.6.20-custom<br />
root (hd0,0)<br />
kernel /boot/vmlinuz-2.6.20-custom root=/dev/hda1 ro resume2=swap:/dev/hda5 video=radeonfb:ignore_devlist=1<br />
initrd /boot/initrd.img-2.6.20-custom<br />
savedefault<br />
<br />
=== ACPI sleep drain test script ===<br />
<br />
You can test if your laptop suffers from the Radeon ACPI problems by running the script available at [http://www.thinkwiki.org/wiki/ACPI_sleep_power_drain_test_script]. If your power drain during ACPI sleep is greather than 1W, its too much. When working correctly, power usage during ACPI sleep for most ATI cards is around 620 mW.<br />
<br />
=== Enabling power management Fn keys ===<br />
<br />
apt-get install acpi-support. Modify the scripts found in /etc/acpi/events to point to actions that will do the necessary function. <br />
<br />
=== Enabling hibernate on closing lid ===<br />
<br />
Modify /etc/acpi/actions/lm_lid.sh so that it points to /usr/sbin/hibernate when the lid is shut. The one on my system is listed below<br />
<source lang="bash"><br />
#!/bin/bash<br />
test -f /usr/sbin/laptop_mode || exit 0<br />
# lid button pressed/released event handler<br />
/usr/sbin/laptop_mode auto<br />
#!/bin/bash<br />
test -f /usr/sbin/laptop_mode || exit 0<br />
grep -q closed /proc/acpi/button/lid/*/state<br />
if [ $? = 0 ]<br />
then<br />
# chvt 12<br />
# rmmod uhci_hcd ehci_hcd usbhid<br />
/usr/sbin/hibernate<br />
else<br />
sleep 2<br />
# modprobe uhci_hcd<br />
# modprobe ehci_hcd<br />
# modprobe usbhid<br />
chvt 7<br />
</source><br />
<br />
=== CPU Frequency scaling ===<br />
In debian this is really easy. With your default stock kernel, you can just modprobe cpufreq_userspace and speedstep_centrino and your CPU will dynamically change the frequency to conserver power. Very cool. Most of the time, my processor sits at 599 MHz. Again, add them to /etc/modules to enable them at bootup.<br />
<br />
=== HDD spin down ===<br />
Again in debian, this is really easy. Just apt-get laptop-mode-tools and powernowd and your HDD will spn down when idle to conserve power. Very cool.<br />
<br />
=== Misc tweaks ===<br />
You can use the powerplay feature of your Radeon GPU by adding the following in your /etc/X11/xorg.conf<br />
<br />
Section "Device"<br />
Identifier "ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]"<br />
Driver "ati"<br />
Option "AGPMode" "4"<br />
Option "EnablePageFlip" "on"<br />
Option "RenderAccel" "on"<br />
Option "DynamicClocks" "on"<br />
Option "ColorTiling" "on"<br />
BusID "PCI:1:0:0"<br />
Option "UseFBDev" "true"<br />
Option "BIOSHotkeys" "on"<br />
EndSection<br />
<br />
Check to see if DynamicClocks, etc are working by looking at /var/log/Xorg.0.log. These features doesn't work with XFree86.<br />
<br />
== Thinkpad buttons ==<br />
You can get an online display for your screen brightness and volume control by apt-getting tpb. You need to make /dev/nvram user-writable to get it work with regular user perms. Add tpb to your .xsession file to have it running when you first start X. /dev/nvram can be made user-writable by adding yourself to the nvram group. This way you don't have to do it everytime you boot up.<br />
<br />
[[Category:Debian]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Tp_smapi&diff=52749Tp smapi2011-08-08T22:23:25Z<p>Centic: add link to 0.41, which is now used by Debian</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, a newer version 0.41 is available in a fork at https://github.com/evgeni/tp_smapi which is also available in Debian<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 />
'''NOTE:''' If {{cmdroot|modprobe}} fails and dmesg says something about <tt>__stack_chk_fail()</tt>, you probably just compiled your modules with <tt>-fstack-protector</tt> and/or <tt>-fstack-protector-all</tt> without having a kernel that supports it. You can either configure your kernel to have <tt>CC_STACKPROTECTOR</tt> enabled (in ''Processor type and features'' if you use {{cmdroot|make menuconfig}}) or edit your <tt>make.conf</tt> (or, if you're using paludis, your <tt>/etc/paludis/bashrc</tt>) and remove <tt>-fstack-protector</tt> and <tt>-fstack-protector-all</tt> from your <tt>CFLAGS</tt>. If you choose to enable it in the kernel, be aware that you need a patched GCC for it (and I do not know if the gcc in stage3 is patched).<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 Debian unstable (sid) or testing (squeeze) (kernel >=2.6.32-5)====<br />
You can use 'dkms' on Debian unstable (sid) or testing (squeeze) (kernel >=2.6.32-5) (Note: If installation seems ineffective, confirm your have the linux-headers of your kernel installed, purge tp-smapi-dkms and reinstall.)<br />
* {{cmdroot|aptitude install tp-smapi-dkms}}<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 />
{{HINT|This appears to be the ideal solution. A description of DKMS, from [http://linux.dell.com/projects.shtml#dkms Dell]: "DKMS stands for Dynamic Kernel Module Support. It is designed to create a framework where kernel dependent module source can reside so that it is very easy to rebuild modules as you upgrade kernels."}}<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 />
{{NOTE|Not all Thinkpad ECs support these charge control features. If you get the message "Operation not supported" when trying to cat for the status of a given parameter, it means your controller does not support that feature.}}<br />
<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 />
{{HINT|TPBattStat-Applet is a gnome applet for integrating battery balancing with a graphics and/or text display of both batteries in a panel. Battery balancing improves battery life by not leaving one battery empty while the other discharges. For the latest alpha release, see https://github.com/teleshoes/tpbattstat-applet}}<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: {{T400}}, {{T500}}, {{X60s}}, {{X61}}, {{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 />
UPDATE: Failure to effectively change sysfs values sometimes happens at boot time (through sysfs.conf OR etc/local.start for instance) when the values have never previously been changed manually (ie using echo from a shell). Try initializing the values manually before including them in boot-time scripting.<br />
<br />
===Model-specific status===<br />
<br />
Tip: The <tt>thinkpad-acpi</tt> module reports both the BIOS and EC firmware versions when it loads.<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 />
<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 />
<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 />
! {{T40}} 2373-72U<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || N/A || N/A || 0.40 || 3.23 || 1RHT71WW-3.04 ||<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 />
! {{T410s}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 4 || 0.40 || 1.14 || || Requires <tt>invert=4</tt> accoding to <tt>hdaps-gl</tt><br />
|-<br />
! {{T410}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 1.25 || ||<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 />
! {{T510}}<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 1.35 || 1.17 || ||<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 />
! {{W500}} 4062-4EG<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || 0.40 || {{Cunk}} || {{Cunk}} ||<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}} || {{Cno}} || {{Cyes}} || N/A || N/A || 0.40 || 3.02 || ||<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=}} 3 || 0.40 || 75ET60WW (2.06 ) || 75HT20WW (1.02) ||<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}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||<br />
|-<br />
! {{X61}} 7673-CTO<br />
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 6 || 0.40 || 7NETB9WW (2.19) || 7MHT25WW-1.03 ||<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}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||<br />
|-<br />
! {{X200s}} 7470-X01<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6DET63WW (3.13) || 7XHT24WW 1.06 ||<br />
|-<br />
! {{X201}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.40 || || ECP: ||<br />
|-<br />
! {{X201s}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6QET44WW (1.14 ) || ECP: 1.09/1.09 ||<br />
|-<br />
! {{X220}} 4290-2GW<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || 0.40 || 8DET46WW (1.16 ) || "unknown" ||<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>Centichttps://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_9.04_(Jaunty_Jackalope)_on_a_ThinkPad_T61&diff=44997Installing Ubuntu 9.04 (Jaunty Jackalope) on a ThinkPad T612009-12-07T14:02:25Z<p>Centic: /* Enabling Active Protection System */ fix modprobe command, see https://bugs.launchpad.net/ubuntu/+source/tp-smapi/+bug/493120</p>
<hr />
<div>Comprehensive review (including graphics fix): http://www.eastwoodzhao.com/ubuntu-904-jaunty-jackalope-on-thinkpad-t61/<br />
<br />
== Items that work out of the box ==<br />
<br />
'''Intel Video:''' 2D and 3D acceleration quite messed up, see section [[#Intel Graphics|below]]<br />
<br />
'''Nvidia Video:''' 2D and 3D acceleration works<br />
<br />
'''Wireless:''' Intel cards tested. Arethros wireless card works, but unstable. See below for instructions on how to revert back to madwifi drivers. <br />
<br />
'''Network Card:''' Intel 10/100/1000 tested<br />
<br />
'''Wireless switch:''' Tested.<br />
<br />
'''Webcam:''' Works out of the box<br />
<br />
'''Headphones:''' Works out of the box<br />
<br />
'''Microphone:''' Just needs to be activated.<br />
<br />
'''Keyboard Shortcuts:''' Most of them work out of the box, including the {{ibmkey|ThinkVantage|#495988}} button, although it is unassigned, see section [[#Enabling touchpad on/off key (fn-f8)|below]]<br />
<br />
'''Fingerprint Reader:''' some packages, i.e. thinkfinger-tools, installed by default, otherwise [[Installing Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T61#Fingerprint Reader with ThinkFinger|same fix as with 8.10]] required.<br />
<br />
== Items that need (some) tweaking to obtain full functionality ==<br />
=== Emulate Wheel (Middle-click scrolling) ===<br />
[http://mvogt.wordpress.com/2008/08/15/xorg-evdev-and-emulatewheel/ Michael Vogt described] how to get middle-click scrolling to work again in Intrepid. Xorg.conf is not used to configure mice and keyboards anymore, but evdev is. This makes the configuration of middle-click scrolling a little bit different than previous versions of Ubuntu. In terminal:<br />
<br />
{{cmduser|sudo gedit /etc/hal/fdi/policy/mouse-wheel.fdi}}<br />
<br />
Past and save the following code, which will give vertical wheel emulation only:<br />
<pre><br />
<match key="info.product" string="TPPS/2 IBM TrackPoint"><br />
<merge key="input.x11_options.EmulateWheel" type="string">true</merge><br />
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge><br />
<merge key="input.x11_options.ZAxsisMapping" type="string">4 5</merge><br />
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge><br />
</match><br />
</pre><br />
There is [http://psung.blogspot.com/2008/09/scrolling-with-thinkpads-trackpoint-in.html another method] to get horizontal scrolling as well, but I don't think it worked for me.<br />
<br />
=== Enabling touchpad on/off key (fn-f8) ===<br />
The procedure shown [[Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_ThinkPad_T500#Enabling_Touchpad_on.2Foff_key|here]] for T500 also works for T61. <br />
<br />
=== Enabling [[Active Protection System]]===<br />
<br />
for this part I mainly followed [http://www.thinkwiki.org/wiki/Install_Ubuntu_9.04_(Jaunty_Jackalope)_on_a_ThinkPad_T400]<br />
, which seems to work on T61 7664-1FG running ubuntu 9.04 (64bit 2.6.28-11-generic)<br />
most of what follows was copied directly from the above reference<br />
(I apologise BUT - I take no responsibility for any problems that may occur - I followed these instructions and it worked well for me. Unfortunately I cannot promise anything... do it at your own risk!<br />
Anyway - the worst that could happen is that you will have to buy a new laptop ;-)<br />
<br />
Another thing worth noting - it seems you have to repeat all this after each kernel upgrade (anyone knows how to get this done atomatically?)<br />
<br />
The original author urges corrections and offers help, therefore I will quote his original lines also here:<br />
"<br />
Please feel free to correct mistakes. If you have trouble, don't be shy and contact me with jabber: jango4@jabber.org<br />
"<br />
<br />
'''Here is a Step by Step guidance [[How to protect the harddisk through APS]] with Kernel 2.6.28!'''<br />
<br />
At first you have to delete existing kernel modules to make space for the new ones (Press ENTER after each line):<br />
(these did not exist for me originally)<br />
sudo rm /lib/modules/$KVER/kernel/ubuntu/misc/thinkpad_ec.ko<br />
sudo rm /lib/modules/$KVER/kernel/ubuntu/misc/tp_smapi.ko<br />
sudo rm /lib/modules/$KVER/kernel/drivers/hwmon/hdaps.ko<br />
<br />
<br />
Then download the newest packages:<br />
<br />
You will need <br />
*tp_smapi-0.4 from here: http://sourceforge.net/project/showfiles.php?group_id=1212&package_id=171579<br />
*gnome-hdaps-applet-20081204.tar.gz from here: http://www.zen24593.zen.co.uk/hdaps/<br />
(in the original link there were explanations for hdapsd installation as well. I didn't follow them as the hdapsd package in the ppa repositories seems to work - ver 1:20090129-1ubuntu1~ppa3~jaunty1 )<br />
<br />
<br />
Save this files and unpack them (following the original link I'll assume it was unpacked on the desktop).<br />
<br />
Open a Terminal in the tp_smapi directory in order to attempt kernel modules loading:<br />
<br />
sudo make load HDAPS=1 FORCE_IO=1<br />
<br />
If there is written "drivers successfully loaded", you can type this for installation:<br />
<br />
sudo make install HDAPS=1 FORCE_IO=1<br />
<br />
To laod this modules on startup you have to write them into the /etc/modules file:<br />
<br />
sudo gedit /etc/modules<br />
<br />
Append this to the file:<br />
<br />
thinkpad_ec <br />
tp_smapi<br />
hdaps<br />
<br />
<br />
Edit /etc/modprobe.d/local.conf (for me it did not exist before)<br />
<br />
sudo gedit /etc/modprobe.d/local.conf<br />
<br />
Adding the following lines:<br />
<br />
# enable thinkpad_ec<br />
options thinkpad_ec force_io=1<br />
<br />
# option to correctly set tilting through hdaps sensor<br />
options hdaps invert=1<br />
<br />
Now you can check if the modules are loaded yet. Do so with <br />
<br />
lsmod | grep hdaps<br />
<br />
if not perform:<br />
<br />
sudo modprobe -a thinkpad_ec tp_smapi hdaps<br />
<br />
<br />
Then install this packages:<br />
<br />
sudo apt-get install hdaps-utils hdapsd<br />
<br />
Afterwards you can test hdaps-gl (with typing hdaps-gl in terminal) which shows the position of your Laptop.<br />
<br />
If hdapsd is not working you can compile it from source as found in [http://www.thinkwiki.org/wiki/Active_Protection_System]<br />
<br />
To test it, you can type this into your terminal:<br />
<br />
sudo hdapsd -d sda -s 15 -a -v -y <br />
<br />
If you suddenly move your laptop the output will change! (stop it with pressing Str + C)<br />
<br />
<br />
The last step is, to copy an overworked initiation-script over the existing one.<br />
<br />
The first line will download it, the second will set rights and the third one copies it to the right position. (Press ENTER after each!)<br />
<br />
wget http://www.unet.univie.ac.at/~a0604095/hdapsd<br />
sudo chmod 733 hdapsd<br />
sudo cp hdapsd /etc/init.d/<br />
<br />
Now you can start hdapsd with typing<br />
<br />
sudo /etc/init.d/hdapsd start<br />
<br />
After a reboot everything should start automatically and work correctly! You can change the sensitivity value and other things in this file: "'''/etc/default/hdapsd'''". <br />
To see the effects you have to type "sudo /etc/init.d/hdapsd restart" to restart hdapsd!<br />
<br />
To install the gnome-panel-applet type this lines into the terminal:<br />
<br />
sudo apt-get install libpanel-applet2-dev<br />
cd Desktop/gnome-hdaps-applet-20081204<br />
gcc $(pkg-config --cflags --libs libpanelapplet-2.0) -o gnome-hdaps-applet gnome-hdaps-applet.c<br />
sudo cp gnome-hdaps-applet /usr/bin/<br />
sudo mkdir /usr/share/pixmaps/gnome-hdaps-applet/<br />
sudo cp *.png /usr/share/pixmaps/gnome-hdaps-applet/<br />
sudo cp GNOME_HDAPS_StatusApplet.server /usr/lib/bonobo/servers/<br />
<br />
===Fixing Atheros Ath5K Stability Issues===<br />
If you're having issues with the built-in ath5k wireless driver, try installing Jaunty backports. <br />
<br />
{{cmduser| sudo apt-get install linux-backports-modules-jaunty}} <br />
<br />
This will take you back to madwifi (ath_pci) a la Intrepid (and ath5k will be blacklisted). Since installing the backports, stability issues related to ath5k and AR5212 wireless card have disappeared. Speed is also back to acceptable, instead of quite sluggish (slow SSH/SFTP, slow DNS lookups, etc).<br />
<br />
Alternate Atheros "madwifi" driver was additionally enabled under System -> Administration -> Hardware Drivers<br />
<br />
Note: you many need to power off your laptop after performing these steps. Sometimes the hardware gets very confused, AP scanning will stop working, etc.<br />
<br />
===Intel Graphics===<br />
There have been significant regressions with many intel graphics chip in 9.04 Jaunty. There is an active [http://ubuntuforums.org/showthread.php?t=1130582 Ubuntu Forums thread] discussing the problem.<br />
<br />
To significantly improve performance, install the latest 2.6.30-rc kernel and headers from http://kernel.ubuntu.com/~kernel-ppa/mainline/ . The thread was written when the rc2 version was the latest, but the rc2 kernel disables screen brightness shurtcut keys. The rc4 kernel has fixed that. <br />
<br />
Add the xorg-edgers PPA, as per the thread. <br />
<br />
Ammend your xorg.conf file to include the following:<br />
<pre>Section "Device"<br />
Identifier "Configured Video Device"<br />
Option "AccelMethod" "uxa"<br />
Option "AddARGBVisuals" "True"<br />
Option "AddARGBGLXVisuals" "True"<br />
EndSection<br />
</pre><br />
<br />
and fix the MTRR issue.<br />
<br />
The script fixmtrr.sh should read:<br />
<pre><br />
echo "Before:"<br />
echo "-------"<br />
cat /proc/mtrr<br />
echo "base=e0000000 size=0x10000000 type=write-combining" >| /proc/mtrr<br />
<br />
echo ""<br />
echo "After:"<br />
echo "------"<br />
cat /proc/mtrr<br />
</pre><br />
<br />
====Compiz====<br />
The Intel graphics chip has been '''blacklisted''' upstream by Compiz. To ignore the blacklist, download and run the script Compiz-Check available [http://forlong.blogage.de/entries/pages/Compiz-Check here].<br />
<br />
<br />
<br />
<br />
<br />
[[Category:T61]][[Category:Ubuntu 9.04]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Category:T500&diff=44753Category:T5002009-11-13T10:40:25Z<p>Centic: /* Standard Features */ my T500 has the 82567LM</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 />
=== ThinkPad T500 ===<br />
This pages gives an overview of all ThinkPad T500 related topics.<br />
<br />
Page under construction<br />
<br />
<br />
==== Standard Features ====<br />
<br />
*One of the following [[Intel Core 2 Duo (Penryn)]] processors:<br />
** Intel® Core™2 Duo processor P8400 (2.26GHz, 3MB L2, 1066MHz FSB, TDP 25W)<br />
** Intel® Core™2 Duo processor P8600 (2.40GHz, 3MB L2, 1066MHz FSB, TDP 25W)<br />
** Intel® Core™2 Duo processor P8700 (2.53GHz, 3MB L2, 1066MHz FSB, TDP 25W)<br />
** Intel® Core™2 Duo processor P9500 (2.53GHz, 6MB L2, 1066MHz FSB, TDP 25W)<br />
** Intel® Core™2 Duo processor T9550 (2.67GHz, 6MB L2, 1066MHz FSB, TDP 35W)<br />
** Intel® Core™2 Duo processor T9400 (2.53GHz, 6MB L2, 1066MHz FSB, TDP 35W)<br />
** Intel® Core™2 Duo processor T9600 (2.80GHz, 6MB L2, 1066MHz FSB, TDP 35W)<br />
*One of the following graphics adapters option: <br />
**[[Intel Graphics Media Accelerator 4500MHD]]<br />
**[[ATI Mobility Radeon 3650]] (256 MB) at the same time (so called "Switchable Graphics")<br />
* 15.4" widescreen [[TFT display]]:<br />
** 1280x800 (WXGA) or 1440x900 (WSXGA) or 1680x1050 (WSXGA+) resolution<br />
** WXGA available with LED backlight in some regions<br />
* 1GB [[PC3-8500]] memory standard, upgradable to 8GB<br />
* One of the following disk drives:<br />
** 80, 160, 250 or 320GB 5400rpm 2.5" SATA HDD<br />
** 200GB 7200rpm 2.5" SATA HDD (available with full disk encryption)<br />
** 100 or 160GB 7200rpm 2.5" SATA HDD<br />
** 128GB SATA Solid-State Drive<br />
* [[Ethernet Controllers#Intel Gigabit (10/100/1000) PCI-Express|Intel Gigabit Ethernet Controller]]<br />
* [[Ultrabay|Serial Ultrabay Slim]] with one of the following:<br />
**[[Serial Ultrabay Slim DVD-ROM Drive]]<br />
**[[Serial Ultrabay Slim CD-RW/DVD combo Drive]]<br />
**[[Serial Ultrabay Slim DVD Multi III Drive]] (8x Dual Layer)<br />
**[[Serial Ultrabay Slim Blu Ray Drive]]<br />
* [[MiniPCI Express slot]] 1 with one of the following:<br />
** [[ThinkPad 11b/g WLAN III controller]]<br />
** [[ThinkPad 11b/g/n Wireless LAN Mini-PCI Express Adapter II]]<br />
** [[Intel WiFi Link 5100/5300 WLAN controller]]<br />
** [[Intel WiMAX/WiFi Link 5150/5350 WiFi/WiMAX controller]]<br />
* [[MiniPCI Express slot]] 2 with one of the following:<br />
** None (empty)<br />
** [[Verizon 1xEV-DO WWAN]] (It seems to be a Sierra Wireless MC5720 Modem) (In germany this is a "Vodafone Modem" but as with Verizon, this is not the hardware vendor nor chipset manufacturer.)<br />
** [[Cingular HSDPA WWAN]] (Sierra Wireless MC8775)<br />
** [[Ericsson F3507g Mobile Broadband Module]]<br />
** [[Intel® Turbo Memory hard drive cache]] up to 2GB<br />
* 1 [[CardBus slot]] (Type 2)<br />
* 1 Slot with one of the following:<br />
** [[ExpressCard slot|ExpressCard/54 slot]] <br />
** [[Lenovo Integrated Smart Card Reader]]<br />
* [[Ricoh_R5C843|4-in-1 Memory reader]]<br />
* [[Embedded Security Subsystem|IBM Embedded Security Subsystem 2.0]]<br />
* [[Active Protection System|IBM Active Protection System]]<br />
* [[Integrated Fingerprint Reader]] on select models<br />
* [[Integrated camera]] on selected models<br />
* [[ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)|Bluetooth]] on select models<br />
* [[ThinkPad Modem (MDC-3.0, 56kbps HDA)]]<br />
* [[UltraNav]] (TrackPoint / Touchpad combo)<br />
* IEEE1394 Firewire<br />
* [[DisplayPort]]<br />
* [[Intel Active Management Technology (AMT)]] on select models<br />
</div><br />
|style="vertical-align:top" |<br />
[[Image:ThinkPadT500.jpg|ThinkPad T500|300px]]<br />
|}<br />
<br />
=== Resources ===<br />
* [http://www-307.ibm.com/pc/support/site.wss/product.do?subcategoryind=0&familyind=422608&brandind=10&doccategoryind=0&modelind=0&doctypeind=9&validate=true&partnumberind=0&sitestyle=lenovo&template=%2Fproductpage%2Flandingpages%2FproductPageLandingPage.vm&operatingsystemind=49979&machineind=0 Lenovo Product page]<br />
* [http://www5.pc.ibm.com/europe/me.nsf/webdocs-L/Data+Sheet:EMEA_Datasheet+ThinkPad+T400_T500+notebooks:English/$FILE/EMEA_DS_Q2_09_1746.pdf EMEA_Datasheet ThinkPad T400 T500 notebooks - 13 Aug 2008 (PDF 3791751 Bytes)]<br />
* [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/43y6630_01.pdf Hardware Maintenance Manual - ThinkPad T500 and W500 - 2008-11-03 (PDF, 5,417,034 bytes)]<br />
* [http://eric.persson.tm/?id=public:t500 Debian Lenny on T500] ([http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-70068 Source])<br />
<br />
<br />
{{footnotes|<br />
#Hardware is documented in the Hardware Maintenance Manual - ThinkPad T500 and W500.<br />
}}<br />
<br />
<br />
[[Category:T Series]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Ethernet_Controllers&diff=44752Ethernet Controllers2009-11-13T10:38:49Z<p>Centic: /* Intel Gigabit (10/100/1000) PCI-Express */ T500</p>
<hr />
<div>== Internal Ethernet controller ==<br />
<br />
A variety of [[Ethernet]] controllers is integrated into almost all models starting with the introduction of the A, T and X series.<br />
<br />
The Ethernet controller is located on either a MiniPCI card, Communications Daughter Card (CDC), or integrated on the systemboard.<br />
<br />
=== 3COM Fast Ethernet (10/100) ===<br />
Driver: [[3c59x]]<br />
<br />
MiniPCI cards featuring this chip:<br />
*[[3Com 10/100 Ethernet Mini-PCI Adapter with 56K Modem]]<br />
<br />
=== Intel Fast Ethernet (10/100) ===<br />
Driver: [[e100]]<br />
<br />
CDC and MiniPCI cards featuring this chip:<br />
*[[Ethernet Daughter Card (EDC)]]<br />
*[[Intel 10/100 Ethernet Mini-PCI Adapter with 56K Modem]]<br />
*[[Intel PRO/100 SP Mobile Combo Adapter]]<br />
*[[Mini-PCI Ethernet card]]<br />
*[[Xircom 10/100 EtherJet Mini PCI Adapter with 56K Modem]]<br />
<br />
In addition, this chip is integrated into select systemboards of the following machines:<br><br />
'''Intel 82550GY'''<br />
* {{R30}}<br />
'''Intel 82558'''<br />
* [[SelectaBase PC Card Enabler with Advanced EtherJet]]<br />
* [[ThinkPad Port Replicator with Advanced EtherJet]]<br />
'''Intel 82562ET'''<br />
* {{R31}}, {{R32}}<br />
* {{T30}}<br />
* {{X30}}<br />
'''Intel 82562EZ'''<br />
* {{R40}}, {{R50e}}, {{R50}}, {{R51}}<br />
* {{T40}}<br />
* {{X31}}<br />
<br />
=== Intel Gigabit (10/100/1000) ===<br />
Chipset: Intel PRO/1000 MT Mobile Ethernet<br /><br />
Driver: [[e1000]]<br />
<br />
This chip is integrated into select systemboards of the following machines:<br><br />
'''Intel 82540EP'''<br />
* {{R50}}, {{R50p}}, {{R51}}<br />
* {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}<br />
* {{X31}}, {{X32}}<br />
'''Intel 82541GI'''<br />
* {{R51}}<br />
* {{X40}}<br />
=== Intel Gigabit (10/100/1000) PCI-Express===<br />
Driver: [[e1000e]]<br />
<br />
'''Intel 82573L''' (PCI-Express)<br />
* {{T60}}, {{T60p}}<br />
* {{X60}}, {{X60s}}<br />
** Note: known to freeze the whole system on Ubuntu 8.10 when used with the e1000 driver, while e1000e driver does not recognize the adapter - see https://bugs.launchpad.net/ubuntu/+bug/226906/<br />
'''Intel 82566MM''' (PCI-Express) (w/ [[Intel Active Management Technology (AMT)]])<br />
* {{T61}}, {{T61p}}, {{X61}}, {{X61s}}, {{X61_Tablet}}<br />
'''Intel 82567LM''' (PCI-Express) (w/ [[Intel Active Management Technology (AMT)]])<br />
* {{X200}}, {{T500}}<br />
<br />
=== Broadcom Fast Ethernet (10/100) ===<br />
Driver: [[tg3]]<br />
<br />
This chip is integrated into select systemboards of the following machines:<br><br />
'''Broadcom BCM5901'''<br />
* {{G40}}, {{G41}}<br />
* {{R40e}}<br />
'''Broadcom BCM5751F'''<br />
* {{R51e}}<br />
<br />
=== Broadcom Gigabit (10/100/1000) ===<br />
Driver: [[tg3]]<br />
<br />
This chip is integrated into select systemboards of the following machines:<br />
<br />
'''Broadcom BCM5752M'''<br />
* {{Z61e}}<br />
<br />
'''Broadcom BCM5751M'''<br />
* {{R52}}, {{R60}}<br />
* {{G41}}<br />
* {{T43}}, {{T43p}}<br />
* {{X41}}, {{X41T}}<br />
* {{Z60m}}, {{Z60t}}<br />
* {{Z61m}}, {{Z61p}}<br />
<br />
[[Category:Components]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=DisplayPort&diff=44751DisplayPort2009-11-13T10:24:54Z<p>Centic: T500 has one of these</p>
<hr />
<div>== DisplayPort ==<br />
<br />
Certain ThinkPad models have a DisplayPort connection which offers DVI pass-through.<br />
<br />
Check [http://www-307.ibm.com/pc/support/site.wss/MIGR-72148.html ThinkPad Digital Video Interface (DVI) and DVI Pass-Through] for more information, and to see if a specific model and configuration is supported.<br />
<br />
== External Sources ==<br />
* [http://www-307.ibm.com/pc/support/site.wss/MIGR-72148.html ThinkPad Digital Video Interface (DVI) and DVI Pass-Through]<br />
* [http://www-307.ibm.com/pc/support/site.wss/MIGR-70321.html DisplayPort Monitor Cables - Overview]<br />
<br />
[[Category:T500]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=PC3-8500&diff=42475PC3-85002009-04-04T08:06:34Z<p>Centic: /* PC3-8500 */</p>
<hr />
<div>__NOTOC__<br />
{| 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 />
=== PC3-8500 ===<br />
This is DDR3-SDRAM memory at 1066 MHz in 204-pin SO-DIMM form-factor.<br><br />
PC3-5800 memory is also called DDR3-1066.<br />
<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:so-dimm.jpg|SO-DIMM]]<br />
|}<br />
<br />
=== Available memory types from Lenovo ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
|'''DDR3 Memory'''<br />
|'''Individual / Single-Pack<br>Option Marketing Part Number'''<br />
|'''25-Pack Option<br>Marketing Part Number'''<br />
|'''Field Replacement Unit<br>(FRU) Service Part Number'''<br />
|-<br />
|4GB PC3-8500 1066MHz DDR3 SODIMM<br />
|51J0493<br />
|<br />
|51J0494<br />
|-<br />
|2GB PC3-8500 1066MHz DDR3 SODIMM<br />
|43R1988<br />
|51J0552<br />
|43R1989<br />
|-<br />
|1GB PC3-8500 1066MHz DDR3 SODIMM<br />
|43R1987<br />
|51J0551<br />
|43R1969<br />
|}<br />
<br />
See [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-55644 Lenovo.com - Memory compatibility - Notebooks]<br />
<br />
=== ThinkPads that support this technology ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! ThinkPad Models !! Soldered<br>On Systemboard !! DIMM<br>Slot 1 !! DIMM<br>Slot 2 !! Official<br>Max-Memory !! Unofficial<br>Max-Memory{{Footnote|1}}<br />
|-<br />
| {{T400}}, {{T500}}|| TBD || TBD || TBD || 8GB{{Footnote|2}} || TBD<br />
|}<br />
{{Footnotes|<br />
# See [[Unofficial maximum memory specs]]<br />
# Based on 2x 4GB DIMMs.<br />
<!-- not sure if something like this applies...<br />
# Due to Intel 945 chipset limitation, addressable memory will be (4GB - I/O space) ~ 3.2GB<br />
# Due to Intel 965 chipset limitation, max addressable memory is 4GB<br />
--><br />
}}<br />
<br />
== Available PC2-5300 memory from other manufacturers ==<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! Manufacturer !! Partnumber !! Description !! Tested on model<br />
|-<br />
| TBD || TBD || TBD || TDB<br />
|}<br />
<br />
[[Category:Components]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Harddrive_Upgrade&diff=42466Harddrive Upgrade2009-04-03T08:42:26Z<p>Centic: </p>
<hr />
<div>= Why? =<br />
<br />
* More capacity<br />
* Quieter drives<br />
* Faster drives<br />
* To replace a malfunctioning drive<br />
<br />
= Options =<br />
<br />
[http://www.seagate.com/www/en-us/products/laptops/momentus/ Seagate Momentus] 2.5-inch notebook drives are highly recommended.<br />
<br />
= Howto =<br />
<br />
# Buy the upgrade<br />
# Buy a USB enclosure ~10USD<br />
# Mount upgrade in the USB enclosure<br />
# Boot with a liveCD such as Knoppix or Ubuntu's LiveCD<br />
<br />
Normally your hard drive would be /dev/hda and your external USB hard drive upgrade should be /dev/sda. Check with `dmesg` if this is the case. There is [http://thinkwiki.org/wiki/How_to_copy_a_Linux_installation several different irksome ways to migrate your data to the upgrade.] I've performed the `cat` method:<br />
<br />
cat /dev/hda > /dev/sda<br />
<br />
This can take as much as an entire day to perform, depending on the size of your original hard drive. You can work out how long it takes if you know the USB throughput.<br />
<br />
And then resize the partition with the tool `parted`. This takes far less time thankfully, 30 minutes in my case.<br />
<br />
Now the tricky part, [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-42410 taking your hard drive out and replacing it with the upgrade.]<br />
<br />
# Shutdown the machine, disconnect from the mains and take out the battery.<br />
# Take the upgrade out the USB enclosure. In my case my upgrade got stuck in the USB enclosure. Be wary of these types of awful situations!<br />
# With a good Philips screw driver remove the hard drive. Refer to [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-42410 IBM's documentation how to do this.] My tips are to have the lid open when performing this. The hard drive is mounted typically just above your audio jacks - though this depends on your model. Again, check IBM's documentation - there's also step by step instructions available.<br />
# The side panel covering on the hard drive mount clips off and now mounting the new upgrade should be straight forward.<br />
# You need to put the b(l)ack panel back on the mount, otherwise it is very difficult to get the hard drive out of Thinkpad's enclosure.<br />
# Once the swap is complete you should be able to boot into your new hard drive. Thinkpads typically automagically detect the hard drive so, that's it!<br />
<br />
= Source=<br />
<br />
* http://natalian.org/archives/2006/02/03/dreading-the-upgrade/<br />
<br />
[[Category:Components]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=PC3-8500&diff=42465PC3-85002009-04-03T08:17:51Z<p>Centic: /* Available memory types from Lenovo */</p>
<hr />
<div>__NOTOC__<br />
{| 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 />
=== PC2-5300 ===<br />
This is DDR2-SDRAM memory at 333 MHz in 204-pin SO-DIMM form-factor.<br><br />
PC2-5800 memory is also called DDR3-1066.<br />
<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:so-dimm.jpg|SO-DIMM]]<br />
|}<br />
<br />
=== Available memory types from Lenovo ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
|'''DDR3 Memory'''<br />
|'''Individual / Single-Pack<br>Option Marketing Part Number'''<br />
|'''25-Pack Option<br>Marketing Part Number'''<br />
|'''Field Replacement Unit<br>(FRU) Service Part Number'''<br />
|-<br />
|4GB PC3-8500 1066MHz DDR3 SODIMM<br />
|51J0493<br />
|<br />
|51J0494<br />
|-<br />
|2GB PC3-8500 1066MHz DDR3 SODIMM<br />
|43R1988<br />
|51J0552<br />
|43R1989<br />
|-<br />
|1GB PC3-8500 1066MHz DDR3 SODIMM<br />
|43R1987<br />
|51J0551<br />
|43R1969<br />
|}<br />
<br />
See [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-55644 Lenovo.com - Memory compatibility - Notebooks]<br />
<br />
=== ThinkPads that support this technology ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! ThinkPad Models !! Soldered<br>On Systemboard !! DIMM<br>Slot 1 !! DIMM<br>Slot 2 !! Official<br>Max-Memory !! Unofficial<br>Max-Memory{{Footnote|1}}<br />
|-<br />
| {{T400}}, {{T500}}|| TBD || TBD || TBD || 8GB{{Footnote|2}} || TBD<br />
|}<br />
{{Footnotes|<br />
# See [[Unofficial maximum memory specs]]<br />
# Based on 2x 4GB DIMMs.<br />
<!-- not sure if something like this applies...<br />
# Due to Intel 945 chipset limitation, addressable memory will be (4GB - I/O space) ~ 3.2GB<br />
# Due to Intel 965 chipset limitation, max addressable memory is 4GB<br />
--><br />
}}<br />
<br />
== Available PC2-5300 memory from other manufacturers ==<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! Manufacturer !! Partnumber !! Description !! Tested on model<br />
|-<br />
| TBD || TBD || TBD || TDB<br />
|}<br />
<br />
[[Category:Components]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=PC2-5300&diff=42464PC2-53002009-04-03T08:12:30Z<p>Centic: edited wrong page, Undo revision 42462 by Centic (Talk)</p>
<hr />
<div>__NOTOC__<br />
{| 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 />
=== PC2-5300 ===<br />
This is DDR2-SDRAM memory at 333 MHz in 200-pin SO-DIMM form-factor.<br><br />
PC2-5300 memory is also called DDR2-667.<br />
<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:so-dimm.jpg|SO-DIMM]]<br />
|}<br />
<br />
=== Available memory types from Lenovo ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! Partnumber !! FRU !! Description<br />
|-<br />
| 40Y7732 || 40Y8401 || 256MB PC2-5300 DDR2 CL5 SO-DIMM<br />
|-<br />
| 40Y7733 || 40Y8402 || 512MB PC2-5300 DDR2 CL5 SO-DIMM<br />
|-<br />
| 40Y7734 || 40Y8403 || 1GB PC2-5300 DDR2 CL5 SO-DIMM<br />
|-<br />
| 40Y7735 || 40Y8404 || 2GB PC2-5300 DDR2 CL5 SO-DIMM<br />
|}<br />
<br />
=== ThinkPads that support this technology ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! ThinkPad Models !! Soldered<br>On Systemboard !! DIMM<br>Slot 1 !! DIMM<br>Slot 2 !! Official<br>Max-Memory !! Unofficial<br>Max-Memory{{Footnote|1}}<br />
|-<br />
| {{T60}}, {{T60p}} || || Occupied || depends || 4GB{{Footnote|2}} {{Footnote|3}} || 4GB{{Footnote|2}} {{Footnote|3}}<br />
|-<br />
| {{R61}} || || Occupied || depends || 4GB{{Footnote|2}} || 4GB{{Footnote|4}}<br />
|-<br />
| {{T61}}, {{T61p}} || || Occupied || depends || 4GB{{Footnote|2}} || 8GB{{Footnote|1}}<br />
|-<br />
| {{R60e}} || || Occupied || depends || 4GB{{Footnote|2}} {{Footnote|3}} || 4GB{{Footnote|2}} {{Footnote|3}}<br />
|-<br />
| {{X60}}, {{X60s}}, || || Occupied || Empty || 4GB{{Footnote|2}} {{Footnote|3}} || 4GB{{Footnote|2}} {{Footnote|3}}<br />
|-<br />
| {{X61}}, {{X61s}}, {{X61_Tablet}} || || Occupied || depends || 4GB{{Footnote|2}} || 4GB{{Footnote|2}} {{Footnote|3}}<br />
|-<br />
| {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}} || || Occupied || Empty || 3GB || Unknown<br />
|-<br />
| {{X300}} || || Occupied || depends || 4GB{{Footnote|2}} || 4GB{{Footnote|4}}<br />
|}<br />
{{Footnotes|<br />
# See [[Unofficial maximum memory specs]]<br />
# Based on 2x 2GB DIMMs.<br />
# Due to Intel 945 chipset limitation, addressable memory will be (4GB - I/O space) ~ 3.2GB<br />
# Due to Intel 965 chipset limitation, max addressable memory is 4GB<br />
}}<br />
<br />
== Available PC2-5300 memory from other manufacturers ==<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! Manufacturer !! Partnumber !! Description !! Tested on model<br />
|-<br />
| [http://www.crucial.com Crucial] || [http://www.crucial.com/store/partspecs.Asp?IMODULE=CT2KIT12864AC667 CT2KIT12864AC667] || 2x1 GB || {{R60e}} ([[0657-3LG]]{{Footnote|1}})<br />
|-<br />
| [http://www.crucial.com Crucial] || [http://www.crucial.com/store/partspecs.Asp?IMODULE=CT25664AC667 CT25664AC667] || 2 GB || {{T60}} ([[1951-A47]])<br />
|-<br />
| [http://www.crucial.com Crucial] || [http://www.crucial.com/store/partspecs.Asp?IMODULE=CT2KIT6464AC667 CT2KIT6464AC667] || 2x512 MB ||<br />
|-<br />
| [http://www.crucial.com Crucial] || [http://www.crucial.com/store/partspecs.Asp?IMODULE=CT12864AC667 CT12864AC667] || 1 GB ||<br />
|-<br />
| [http://www.crucial.com Crucial] || [http://www.crucial.com/store/partspecs.Asp?IMODULE=CT6464AC667 CT6464AC667] || 512 MB ||<br />
|-<br />
| [http://www.crucial.com Crucial Rendition] || RM12864AC667{{Footnote|4}} || 1 GB || {{T60}} ([[2007-49G]])<br />
|-<br />
| [http://www.transcendusa.com Transcend] || [http://ec.transcendusa.com/product/ItemDetail.asp?ItemID=TS2GIB3847 TS2GIB3847] || 2 GB || {{R60}} {{X41}}<br />
|- <br />
<br />
| [http://www.gskill.com/indexen.html G.Skill] || [http://www.gskill.com/en/f2-5400phu1-sa.html F2-5400PHU1-1GBSA] || 1 GB || {{T60p}} ([[2007-93G]]{{Footnote|2}})<br />
|-<br />
| [http://www.corsair.com Corsair] || [http://www.corsair.com/products/valueselect/default.aspx VS1GSDS667D2] || 1 GB || {{Z61m}}<br />
|-<br />
| [http://www.corsair.com Corsair] || [http://www.corsair.com/products/valueselect/default.aspx VS2GSDS667D2] || 2 GB || {{T60}} ([[2007-FSG]]) {{Z61m}} {{X60}} ([[1707-V28]])<br />
|-<br />
| [http://www.corsair.com Corsair] || [http://www.corsair.com/products/valueselect/default.aspx VS4GSDSKIT667D2] || 2x2 GB{{footnote|5}} || {{R60}} ([[9456-HTG]])<br />
|-|-<br />
| [http://www.gskill.com/indexen.html G.Skill] || [http://www.gskill.com/en/f2-5300cl5s-sa.html F2-5300CL5S-2GBSA]{{Footnote|3}} || 2 GB ||<br />
|}<br />
{{Footnotes|<br />
#The memory module that was shipped with this laptop had the same [http://www.micron.com Micron] logo as the modules from [http://www.crucial.com Crucial], which is a division of that company.<br />
# Memory for T60p spec is CL5, but this module which was CL4 works fine. The product page at [http://www.gskill.com/indexen.html G.Skill] describes it wrongly as a CL5 module.<br />
#Some users reported the RAM module is in fact overclocked from 533MHz to 677MHz, hence some systems may report 533MHz and/or CL4<br />
#Crucials website doesnt list Rendition memory, but the memory is clearly labelled as Crucial Rendition by several resellers<br />
# Due to Intel 945 chipset limitation, addressable memory will be (4GB - I/O space) ~ 3.2GB<br />
}}<br />
<br />
[[Category:Components]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=PC3-8500&diff=42463PC3-85002009-04-03T08:12:22Z<p>Centic: â†Created page with '__NOTOC__ {| width="100%" |style="vertical-align:top" | <div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8...'</p>
<hr />
<div>__NOTOC__<br />
{| 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 />
=== PC2-5300 ===<br />
This is DDR2-SDRAM memory at 333 MHz in 204-pin SO-DIMM form-factor.<br><br />
PC2-5800 memory is also called DDR3-1066.<br />
<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:so-dimm.jpg|SO-DIMM]]<br />
|}<br />
<br />
=== Available memory types from Lenovo ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! Partnumber !! FRU !! Description<br />
| TBD || TDB || TDB<br />
|}<br />
<br />
=== ThinkPads that support this technology ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! ThinkPad Models !! Soldered<br>On Systemboard !! DIMM<br>Slot 1 !! DIMM<br>Slot 2 !! Official<br>Max-Memory !! Unofficial<br>Max-Memory{{Footnote|1}}<br />
|-<br />
| {{T400}}, {{T500}}|| TBD || TBD || TBD || 8GB{{Footnote|2}} || TBD<br />
|}<br />
{{Footnotes|<br />
# See [[Unofficial maximum memory specs]]<br />
# Based on 2x 4GB DIMMs.<br />
<!-- not sure if something like this applies...<br />
# Due to Intel 945 chipset limitation, addressable memory will be (4GB - I/O space) ~ 3.2GB<br />
# Due to Intel 965 chipset limitation, max addressable memory is 4GB<br />
--><br />
}}<br />
<br />
== Available PC2-5300 memory from other manufacturers ==<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! Manufacturer !! Partnumber !! Description !! Tested on model<br />
|-<br />
| TBD || TBD || TBD || TDB<br />
|}<br />
<br />
[[Category:Components]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=PC2-5300&diff=42462PC2-53002009-04-03T08:11:45Z<p>Centic: </p>
<hr />
<div>__NOTOC__<br />
{| 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 />
=== PC2-5300 ===<br />
This is DDR2-SDRAM memory at 333 MHz in 204-pin SO-DIMM form-factor.<br><br />
PC2-5800 memory is also called DDR3-1066.<br />
<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:so-dimm.jpg|SO-DIMM]]<br />
|}<br />
<br />
=== Available memory types from Lenovo ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! Partnumber !! FRU !! Description<br />
| TBD || TDB || TDB<br />
|}<br />
<br />
=== ThinkPads that support this technology ===<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! ThinkPad Models !! Soldered<br>On Systemboard !! DIMM<br>Slot 1 !! DIMM<br>Slot 2 !! Official<br>Max-Memory !! Unofficial<br>Max-Memory{{Footnote|1}}<br />
|-<br />
| {{T400}}, {{T500}}|| TBD || TBD || TBD || 8GB{{Footnote|2}} || TBD<br />
|}<br />
{{Footnotes|<br />
# See [[Unofficial maximum memory specs]]<br />
# Based on 2x 4GB DIMMs.<br />
<!-- not sure if something like this applies...<br />
# Due to Intel 945 chipset limitation, addressable memory will be (4GB - I/O space) ~ 3.2GB<br />
# Due to Intel 965 chipset limitation, max addressable memory is 4GB<br />
--><br />
}}<br />
<br />
== Available PC2-5300 memory from other manufacturers ==<br />
{| border=1 cellspacing=0 cellpadding=2<br />
|- style="background:#ffdead;white-space:nowrap;"<br />
! Manufacturer !! Partnumber !! Description !! Tested on model<br />
|-<br />
| TBD || TBD || TBD || TDB<br />
|}<br />
<br />
<br />
[[Category:Components]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Memory&diff=42461Memory2009-04-03T08:07:53Z<p>Centic: add DD3</p>
<hr />
<div>=General information=<br />
A variety of memory (RAM) types have been used.<br />
<br />
IBM provides [http://www-306.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-53166 instructions] for memory removal and installation.<br />
<br />
For more information on RAM, have a look at the [[:WikiPedia:Random access memory|WikiPedia RAM article]].<br />
<br />
{| border="0" cellspacing="0" cellpadding="2" style="width:100%;vertical-align:top;"<br />
|- style="vertical-align:top;"<br />
| style="vertical-align:top;width:50%;padding-right:20px;" |<br />
==DRAM==<br />
* IC DRAM Card Non-Parity<br />
* IC DRAM Card Parity<br />
'''JEDEC 72-pin SO-DIMM'''<br />
* 70ns Non-Parity<br />
* 70ns Parity<br />
'''JEDEC 144-pin EDO SO-DIMM'''<br />
* [[EDO 70ns]]<br />
* [[EDO 60ns]]<br />
| style="padding-left:10px;white-space:nowrap;" |<br />
==SDRAM==<br />
* [[PC-66]]<br />
* [[PC-100]]<br />
* [[PC-133]]<br />
|- style="vertical-align:top;"<br />
| style="padding-right:10px;white-space:nowrap;" |<br />
==DDR==<br />
* [[PC2100]]<br />
* [[PC2700]]<br />
| style="padding-left:10px;white-space:nowrap;" |<br />
==DDR2==<br />
* [[PC2-4200]]<br />
* [[PC2-5300]]<br />
|- style="vertical-align:top;"<br />
| style="padding-right:10px;white-space:nowrap;" |<br />
==DDR3==<br />
* [[PC3-8500]]<br />
| style="padding-left:10px;white-space:nowrap;" |<br />
|}<br />
<br />
[[Category:Components]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=T500&diff=42460T5002009-04-03T08:06:05Z<p>Centic: Redirected page to Category:T500</p>
<hr />
<div>#REDIRECT [[:Category:T500]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Thermal_Sensors&diff=41968Thermal Sensors2009-03-10T10:14:06Z<p>Centic: /* Utilities for viewing temperatures */</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 summarizes known information about the locations and properties of thermal sensors on ThinkPad laptops. <br />
|}<br />
<br />
==Accessing the sensors==<br />
<br />
===Basic ACPI system temperature sensors===<br />
The primary means of accessing the thermal sensors is through the [[thinkpad-acpi]] module, up to 16 sensors are supported. When the module is loaded, the sensors (some of which may be inactive) are shown through the standard sysfs hwmon interface used by the lm-sensors utilities, and also in {{path|/proc/acpi/ibm/thermal}} (which is deprecated, and will be removed someday).<br />
<br />
lm-sensors/libsensors uses the hwmon interface exposed through {{path|/sys/bus/platform/devices/thinkpad_hwmon/}} to read the temperatures, note that the sysfs interface returns normal open errors instead of weird values for sensors that are not active (which the simplistic '''sensors''' command ignore). lm-sensors/libsensors can be configured to give proper names to each sensor, which will be used by any properly written sensor applet.<br />
<br />
{{cmdroot|sensors}}<br />
{{cmdresult|thinkpad-isa-0000<br />
Adapter: ISA adapter<br />
fan1: 3914 RPM<br />
CPU: +45.0°C<br />
LAN/Heatsink/HDAPS: +44.0°C<br />
PC-CARD slot: +35.0°C<br />
GPU: +48.0°C<br />
Main battery charger: +35.0°C<br />
ERROR: Can't get value of subfeature temp6_input: Can't read<br />
Bay battery charger: +0.0°C<br />
Main battery cells: +30.0°C<br />
ERROR: Can't get value of subfeature temp8_input: Can't read<br />
Bay battery cells: +0.0°C<br />
MCH: +42.0°C<br />
PLL clock/ICH/WLAN: +50.0°C<br />
Voltage regulator: +43.0°C}}<br />
<br />
The old method to access the thermal readings is through the {{path|/proc}} interface:<br />
<br />
:{{cmdroot|cat /proc/acpi/ibm/thermal}}<br />
:{{cmdresult|temperatures: 44 41 33 42 33 -128 30 -128}}<br />
<br />
A value of -128 (i.e., 0x80 hex) means the sensor is not connected. For example, above the two -128 values belong to the UltraBay battery, which is not plugged in.<br />
<br />
If the ThinkPad supports the extended sensor set, eight more values will be displayed:<br />
<br />
:{{cmdroot|cat /proc/acpi/ibm/thermal}}<br />
:{{cmdresult|temperatures: 44 41 33 42 33 -128 30 -128 48 50 49 -128 -128 -128 -128 -128}}<br />
<br />
===HDAPS temperature sensor===<br />
The [[Active Protection System]] firmware also reports a temperature, which is identical to one of the ACPI sensors. The corresponding sensor is actually not inside the HDAPS chip, and sometimes not even close to it.<br />
:{{cmdroot|cat /sys/bus/platform/drivers/hdaps/hdaps/temp1}}<br />
:{{cmdresult|41}}<br />
<br />
===Harddisks SMART temperature sensor===<br />
The system hard disk temperature can be read through the disk's SMART interface:<br />
:{{cmdroot|<nowiki>smartctl -A /dev/hda | grep Temperature</nowiki>}}<br />
:{{cmdresult|194 Temperature_Celsius 0x0022 145 097 000 Old_age Always - 31}}<br />
<br />
Or, for SATA-equipped models running a recent Linux kernel (see [[Problems with SATA and Linux]]):<br />
<br />
:{{cmdroot|<nowiki>smartctl -A -d ata /dev/sda | grep Temperature</nowiki>}}<br />
:{{cmdresult|194 Temperature_Celsius 0x0022 145 097 000 Old_age Always - 31}}<br />
<br />
When the [[UltraBay Slim HDD Adapter]] or [[UltraBay Slim SATA HDD Adapter]] are used, the second hard disk will typically provide another temperature readout via its SMART interface, analogously to the above.<br />
<br />
Reading this sensor will typically cause a drive spin-up and head unload.<br />
<br />
===Hitachi harddisks <tt>SENSE CONDITION</tt> temperature sensor===<br />
<br />
Recent Hitachi disks provide a non-standard <tt>SENSE CONDITION</tt> command which reads the disk temperature without causing a spin-up or head load. The reported value is the same as when using SMART. This can be invoked, e.g., using {{cmdroot|hdparm -H}}, or the relevant code in {{CodeRef|tp-fancontrol}}. When using the <tt>libata</tt> driver, this requires kernel >= 2.6.19-rc1.<br />
<br />
==Utilities for viewing temperatures==<br />
<br />
The following utilities display the ThinkPad-specific thermal sensor readouts:<br />
* The above shell commands.<br />
* The "Sensors" builtin of [[GKrellM]] can show 6 specific ACPI sensors (out of up to 11).<br />
* [http://kima.sourceforge.net/ Kima] is a KDE applet that can display the 8 first ACPI sensors as well as the HDAPS sensor.<br />
* [http://www.kraus.tk/projects/IBMDoK/ IBMDoK], another KDE applet. Shows 4 specific sensors (out of up to 11). So far only tested at the {{T60}}.<br />
* There is an [http://munin.projects.linpro.no/wiki/plugin-ibm_acpi ibm_acpi plugin] for [http://munin.projects.linpro.no/ Munin].<br />
* [http://sensors-applet.sourceforge.net/ GNOME Sensors Applet] supports ibm_acpi.<br />
<br />
==Sensor locations==<br />
This information is model specific.<br />
<br />
===ThinkPad {{A31}}===<br />
Found by Milos Popovic using cooling spray to cool down components on a completely removed, running motherboard, to locate the sensors. Also reported [http://forum.thinkpads.com/viewtopic.php?t=31837 here].<br />
EC offset Index in "thermal" Location (estimated)<br />
0x78 1 CPU<br />
0x79 2 Battery (this one heats up when on battery power)<br />
0x7A 3 Power (sensor near power diodes and CPU; heats up when high power consumption, has crosstalk from CPU)<br />
0x7B 4 Ultrabay 2000 battery?<br />
0x7C 5 Northbridge (sensor next to Northbridge, also somewhat near GPU)<br />
0x7D 6 PCMCIA/ambient (sensor is a National Semiconductor LM75 Digital Temperature Sensor/Thermal Watchdog chip<br />
next to the 9-pin VGA connector; sits right under PCMCIA slots but doesn't touch)<br />
0x7E 7 Battery (this one stays near ambient temperature, even when on battery power)<br />
0x7F 8 Ultrabay 2000 battery?<br />
0xC0 none zero<br />
0xC1 none zero<br />
0xC2 none zero<br />
The following photos (resolution reduced for server space) show the locations found for the listed temperature sensors.<br />
{{gallery_start}}<br />
{{thumb|A31_2652M3U_systemboardtop_DSCN6105_tempsensors_lores.jpg|ThinkPad A31 sensor locations on top of motherboard.}}<br />
{{thumb|A31_2652M3U_systemboardbottom_DSCN6105_tempsensors_lores.jpg|ThinkPad A31 sensor locations on bottom of motherboard.}}<br />
{{gallery_end}}<br />
On this A31 systemboard (FRU 26P8398), there is a [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2313 Maxim MAX1668] 5-channel remote/local temperature sensor (4 remote + 1 self temperature) on top of the systemboard, and a [http://www.national.com/pf/LM/LM75.html National Semiconductor LM75] single-channel "digital temperature sensor and thermal watchdog" chip. It would appear that the LM75 has the ability to hard shutdown the processor (without software intervention) if its temperature exceeds a given threshold. I'm not sure if it is wired for this, nor whether the Thinkpad changes the threshold temperature from the chip's power-up default of 80°C. A software application with drivers on the LM75 webpage is available that claims to allow direct access to the thermal sensor chip (this hasn't been tried, but could be useful in other models to determine if this sensor is somewhere on the MB, and which register it corresponds to). The MAX1668's self-temperature reading does not appear anywhere in the above temperature registers; it's not clear whether it is read at all, and whether it is to be found elsewhere in the EC memory. These two chips (LM75 and MAX1668) account for some of the sensors.<br />
<br />
===ThinkPad {{R51}}===<br />
The [[ibm-acpi]] documentation includes the report by Thomas Gruber:<br />
EC offset Index in "thermal" Location (estimated)<br />
0x78 1 CPU<br />
0x79 2 Mini-PCI<br />
0x7A 3 HDD<br />
0x7B 4 GPU<br />
0x7C 5 System battery<br />
0x7D 6 UltraBay battery<br />
0x7E 7 System battery<br />
0x7F 8 UltraBay battery<br />
0xC0 none ?<br />
0xC1 none ?<br />
0xC2 none ?<br />
<br />
===ThinkPad {{T40}}===<br />
The location of one of the sensors is identified [http://forum.thinkpads.com/viewtopic.php?t=11574 here].<br />
EC offset Index in "thermal" Location (estimated)<br />
0x78 1 CPU<br />
0x79 2 System board under rear left corner of Mini-PCI module<br />
0x7A 3 ?<br />
0x7B 4 GPU<br />
0x7C 5 Battery<br />
0x7D 6 n/a<br />
0x7E 7 Battery<br />
0x7F 8 n/a<br />
0xC0 none n/a<br />
0xC1 none n/a<br />
0xC2 none n/a<br />
<br />
===ThinkPad {{T43}}, {{T43p}}===<br />
Found by Shmidoax using cooling spray to cool down components and observe the effect on the sensors.<br />
EC offset Index in "thermal" Location (estimated)<br />
0x78 1 CPU<br />
0x79 2 Between PCMCIA slot and CPU (same as HDAPS module)<br />
0x7A 3 PCMCIA slot<br />
0x7B 4 GPU<br />
0x7C 5 System battery (front left = charging circuit)<br />
0x7D 6 UltraBay battery<br />
0x7E 7 System battery (rear right)<br />
0x7F 8 UltraBay battery<br />
0xC0 9 Bus between Northbridge and DRAM; Ethernet chip<br />
0xC1 10 Southbridge, WLAN and clock generator (under Mini-PCI card, under touchpad)<br />
0xC2 11 Power circuitry, on underside of system board under F2 key<br />
{{gallery_start}}<br />
{{thumb|T43-thermal-sensors.jpg|ThinkPad T43 sensor locations}}<br />
{{thumb|T43-2668-thermal-sensors-zoom.jpg|ThinkPad T43 sensor locations detail}}<br />
{{thumb|T43p-H8S2161.jpg|ThinkPad T43/p 26xx Embedded Controller Renesas H8S/2161BV}}<br />
{{gallery_end}}<br />
<br />
===ThinkPad {{T60}}===<br />
Found by Marco Kraus for use in [http://www.kraus.tk/projects/IBMDoK/ IBMDok].<br />
EC offset Index in "thermal" Location (estimated)<br />
0x78 1 CPU 0<br />
0x79 2 HDD<br />
0x7A 3 HDD<br />
0x7B 4 GPU<br />
0x7C 5 Battery<br />
0x7D 6 n/a<br />
0x7E 7 Battery<br />
0x7F 8 n/a<br />
0xC0 9 ?<br />
0xC1 10 ?<br />
0xC2 11 ?<br />
<br />
The CPU thermal sensors seem to be exposed in both {{path|/proc/acpi/thermal_zone/THM0/temperature}} and {{path|/proc/acpi/thermal_zone/THM1/temperature}}, though the latter curiously seems to exist only in this file and nowhere in {{path|/proc/acpi/ibm/ecdump}}.<br />
<br />
===ThinkPad {{T61}}===<br />
Found By Daniel Castro. There are two sensors for the battery but I'm not sure of the difference or exact location of them. There are still 3 sensors that I couldn't figure out. If anyone can help please update it.<br />
<br />
Index in "thermal" Location<br />
1 CPU<br />
2 MiniPCI<br />
3 HDD<br />
4 n/a (-128)<br />
5 Battery 1<br />
6 n/a (-128)<br />
7 Battery 2<br />
8 n/a (-128)<br />
9 ?<br />
10 ?<br />
11 ?<br />
12 n/a (-128)<br />
13 n/a (-128)<br />
14 n/a (-128)<br />
15 n/a (-128)<br />
16 n/a (-128)<br />
<br />
The reading for Battery 1 is always 50C, even right after turning the computer on, and it never seems to change, so I monitor the other one.<br />
<br />
--[[User:Lunatico|Lunatico]] 23:44, 10 August 2008 (CEST)<br />
<br />
===ThinkPad {{X31}}===<br />
I figured these out by myself ([[User:BDKMPSS|BDKMPSS]]), as there are just a few available, this wasn't a huge problem. I verified my presumptions with a contactless thermometer.<br />
EC offset Index in "thermal" Location (estimated)<br />
0x78 1 CPU<br />
0x79 2 n/a<br />
0x7A 3 GPU?<br />
0x7B 4 near or the ICH4M Southbrige, on the back of the Motherboard<br />
0x7C 5 Battery<br />
0x7D 6 Extended-Life-Battery; may also UltraBay battery<br />
0x7E 7 Battery<br />
0x7F 8 Extended-Life-Battery; may also UltraBay battery<br />
0xC0 none n/a<br />
0xC1 none n/a<br />
0xC2 none n/a<br />
<br />
0x7A "GPU?" is pretty hot and seems like the GPU, but as the Chipset and the GPU are cooled with the same heatsink it is difficult to separate them without roasting the machine. However the left and GPU side of the heatsink is much closer to the shown value than the right Chipset side.</div>Centichttps://www.thinkwiki.org/w/index.php?title=Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_ThinkPad_T400&diff=41961Install Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T4002009-03-08T21:01:47Z<p>Centic: /* Brightness control broken - lowest level after Booting/Suspend/Hibernate/Screen-off */</p>
<hr />
<div>[[:Category:T400|T400]] '''Site under construction. You are invited building an useful guidance!'''<br />
<br />
==Before Installation==<br />
<br />
Before you can start Ubuntu from CD or USB you have to change two BIOS settings:<br />
* Change to Internal or ATI Graphics with Config --> Display --> Graphics Device --> [Integrated graphics] or [Discrete Graphics]<br />
* Disable OS Detection for Switchable Graphics. Otherwise it will mysteriously switch back to Switchable Graphics.<br />
<br />
Now you can boot your Live-CD, connect to Wireless Lan, and install the OS.<br />
<br />
With one version of the installer CD, the installation works fine, but after rebooting it hangs with ATA errors. Solution was to boot the Live CD, mount the partition, chroot, and upgrade to the newest kernel (from 2.6.27-7 to 2.6.27-9).<br />
<br />
==What works out of the box?==<br />
<br />
*Wireless with iwlagn driver ([[Intel WiFi Link 5100/5300 WLAN controller]])<br />
**G mode + WEP and WPA2 PSK (If you have the ThinkPad 11b/g Wireless LAN mini PCI Express Adapter III (Aetheros Chipset), see below!)<br />
**with status LED and everything!<br />
*Bluetooth<br />
**Even with [[Bluetooth Laser Mouse]]<br />
**Note: Bluetooth can only be toggled together with WLAN on and off, to add a bluetooth-only-toggle (Fn+F6) that doesn't affect WLAN take a look [[ThinkPad_Bluetooth_with_Enhanced_Data_Rate_(BDC-2)|here]].<br />
*[[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]<br />
*Intel driver for Integrated Graphics ([[Intel Integrated Intel GMA 4500MHD]])<br />
** with 3D acceleration out-of-the-box<br />
** VGA output - mirrored and extended desktop both work, but might need to run the following to enable 1600x1200 resolution<br />
{{cmduser|sudo dpkg-reconfigure -phigh xserver-xorg}}<br />
*ATI [[fglrx]] driver for Discrete Graphics ([[ATI Mobility Radeon 3470 graphics]])<br />
**To enjoy 3D acceleration, you have to install the proprietary [[fglrx]] Driver. (for example with the jockey-gtk tool)<br />
*Touchpoint and Trackpad<br />
**Including scroll at the right side of the pad by default. (for scrolling with the middle mouse button, see below!)<br />
*Optical drive<br />
**Including DVD burning<br />
*Sound card<br />
**To use your internal microphone you have to change to "HDA Intel CONEXANT Analog (ALSA)" in audio-settings.<br />
*built-in webcam with Skype<br />
*7-in-1 card reader from Ricoh (MMC, Memory Stick, Mem Stick Pro, SD, SDHC, XD, XD Type H Memory)<br />
**Only tested SD cards.<br />
*Control buttons/Hotkeys<br />
**Volume control buttons<br />
**Screen brightness control (but changing brightness is a little bit diffuse. It's getting brighter but on maximum it changes to nearly lowest and get brighter again.)<br />
**Thinklight control<br />
**WLAN/BT/OFF toggle (Fn+F5 and mechanical toggle)<br />
**Media player control<br />
*Some ACPI features<br />
**Battery status, power graphs and history (tested with an single 6-Cell battery)<br />
**Lid states and events<br />
*Suspend/Hibernate on a fully updated System!<br />
<br />
==What needs some Tweaks?==<br />
<br />
====[[ThinkVantage Button]] {{ibmkey|ThinkVantage|#495988}}====<br />
<br />
Edit the file /usr/share/hotkey-setup/ibm.hk with adding this line:<br />
<br />
setkeycodes e017 148 #thinkpad button<br />
<br />
You have to restart, then you refer a program with the "System -> Preferences -> Keyboard Shortcuts"-Menu (eg. Terminal, Firefox,...).<br />
<br />
====Internal LCD Resolution Fix====<br />
<br />
The native screen resolution of 1440x900 is not detected automatically. The problem is that a secondary cloned display is set to 1360x768, and is being displayed on the integrated screen. Disable screen cloning, and disable the secondary display to fix the problem. For a complete fix, a restart of X is required (CTRL+ALT+BACKSPACE) is required, and when logging in again, you may need to fix your dock icon positions.<br />
<br />
However, GDM still displays at either 1152x864 or 1360x768, creating a fuzzy image, or leaving borders at right and bottom, respectively. But it isn't a problem after logging in.<br />
<br />
'''UPDATE:'''The solution posted above was too sparse for me. Instead, I found a new driver and compviz packages that fixed the problem using the v.2.5.0 of the intel drivers that are available here:https://launchpad.net/~thjaeger/+archive<br />
<br />
'''UPDATE:''' Thomas Jaeger no longer maintains the updated Intel drivers, but he helpfully directed me to the intel-gfx-testing team's Personal Package Archive (here:https://launchpad.net/~intel-gfx-testing/+archive) which does maintain them.<br />
<br />
'''UPDATE:''' Resolutions work fine on both gpus for me, maybe this issue was fixed in the standard driver?<br />
<br />
<br />
Create a file /etc/apt/sources.list.d/intel-gfx-testing.list with the following contents:<br />
<br />
<pre><br />
deb http://ppa.launchpad.net/intel-gfx-testing/ubuntu intrepid main<br />
deb-src http://ppa.launchpad.net/intel-gfx-testing/ubuntu intrepid main<br />
</pre><br />
<br />
You can edit it using:<br />
<br />
<pre><br />
sudo gedit /etc/apt/sources.list.d/intel-gfx-testing.list<br />
</pre><br />
<br />
<br />
once you've closed gedit, update the list of updates by typing:<br />
<br />
<pre>sudo apt-get update</pre><br />
<br />
<br />
this will update the package db, and you should see the 'package update' icon light up. Open that up, and apply the updates. Alternately, you can open it via System->Administration->Update Manager<br />
<br />
Once the updates are applied, you will need to revert your /etc/X11/xorg.conf file if you've made any changes to it. You can do this via:<br />
<br />
sudo dpkg-reconfigure -phigh xserver-xorg<br />
<br />
<br />
Finally press ctrl-alt-backspace to restart the X-server.<br />
<br />
Now, once you've logged back in, under System->Preferences->Screen Resolution, you should see 1440x900 listed.<br />
<br />
'''UPDATE:''' Using the intel-gfx-testing drivers causes a 3D performance issue, but only because the permissions on the DRM device are not set up properly, which forces 3D applications to use software rendering. This is tracked in this bug: https://bugs.launchpad.net/ubuntu/+source/hal/+bug/306014. Fixes and workarounds are provided in the bug comments.<br />
<br />
You can test if you're using the software renderer by running:<br />
<br />
<pre>glxinfo | grep renderer</pre><br />
<br />
If you're using the software renderer, you will see:<br />
<br />
<pre>OpenGL renderer string: Software Rasterizer</pre><br />
<br />
With the fix in place, I get:<br />
<pre>OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset 20061102 x86/MMX/SSE2</pre><br />
<br />
====Shutdown freezes sometimes====<br />
<br />
It seems that ALSA has problems to shut down if network devices are still active.<br />
You can force ALSA during its unloading to disable the networking first (remember to backup your files!):<br />
sudo gedit /etc/init.d/alsa-utils<br />
Search for "stop)" and add immediately below:<br />
<br />
ifconfig eth0 down<br />
ifconfig wlan0 down<br />
<br />
'''NOTE''' - This doesn't seem to be a problem with Madwifi drivers, it is created by the Intel wireless card?<br />
<br />
Now your shutdown should go smoothly.<br />
<br />
====VGA Output Resolution Fix====<br />
<br />
To enable 1600x1200 resolution to show up, run<br />
{{cmduser|sudo dpkg-reconfigure -phigh xserver-xorg}}<br />
<br />
====Suspend/Hibernate====<br />
<br />
'''UPDATE:''' On a fully updated 8.10-32bit-System Suspend and Hibernate now work out of the box. You do not need this workaround anymore!<br />
<br />
'''UPDATE:''' In 9.04 64-Bit Suspend works fine.<br />
<br />
Neither Suspend nor Hibernate work out of the box. They fall asleep, but when waking up only the mousepointer is on the black screen, put neither keyboard, nor mouse showing response.<br />
<br />
Here's a [http://ubuntuforums.org/showthread.php?p=6057496 Ubuntu forum discussion thread] about the problem! <br />
<br />
Petri K posted a workaround, to get suspend and hibernate working:<br />
<br />
"I would say that this is a classical multiprocessor concurrency control problem! Disabling all but one core makes the bug disappear.<br />
Here is my suggestion for a workaround. Save in /etc/pm/sleep.d/00CPU with 755 permissions. <br />
Note that it has to be called 00CPU so that it gets executed before and after anything else."<br />
<br />
Open Terminal and type:<br />
<br />
{{cmduser|sudo gedit /etc/pm/sleep.d/00CPU}}<br />
<br />
Copy the following Code into gedit and save the file!<br />
<br />
#!/bin/sh<br />
# Workaround for concurrency bug in xserver-xorg-video-intel 2:2.4.1-1ubuntu10.<br />
# Save this as /etc/pm/sleep.d/00CPU<br />
<br />
. "${PM_FUNCTIONS}"<br />
<br />
case "$1" in<br />
hibernate|suspend)<br />
for i in /sys/devices/system/cpu/cpu*/online ; do<br />
echo 0 >$i<br />
done<br />
;;<br />
thaw|resume) <br />
sleep 10 # run with one core for 10 secs<br />
for i in /sys/devices/system/cpu/cpu*/online ; do<br />
echo 1 >$i<br />
done<br />
;;<br />
*)<br />
;;<br />
esac<br />
<br />
Then close gedit and copy this line into the terminal to set permission 755 (read, write and execute):<br />
<br />
{{cmduser|sudo chmod 755 /etc/pm/sleep.d/00CPU}}<br />
<br />
After reboot suspend and hibernate should work for you, because there is only one core running while doing this events.<br />
<br />
====ThinkPad 11b/g Wireless LAN mini PCI Express Adapter III (Atheros AR5007EG/AR2425 Chipset)====<br />
<br />
There are two options for drivers here, the ath5k project, or older Madwifi drivers. The Madwifi drivers are based on the older, closed source HAL by Atheros, and the ath5k driver are based on the newer open source HAL by Atheros. Note that you should not enable more than one Atheros driver, or they will conflict with each other (this includes ath5k, ath9k, and Madwifi). If you need both BG & N support, do not use ath5k & ath9k, use Madwifi instead (only applicable if you are running multiple wireless cards).<br />
<br />
'''ath5k cons:''' One user (with the a B/G card) reports that wireless performance was awful with the FOSS ath5k driver, but smooth and nice with Madwifi. YMMV - Also, the ath5k do not correctly detect hardware settings such as txpower.<br />
<br />
'''Madwifi cons:''' For one user at least, the madwifi driver is dumping *tons* of text into /var/log/messages , /var/log/syslog , /var/log/kern.log , wasting several GBs of disk space. (In general, if your /var/log directory uses more than 100 MB of space, there's probably something wrong) I don't know if the driver is set up to dump debug info to the log files, or if there is some error that keeps occurring (although the wireless seems to work just). If anyone figures out how to fix this, please post here!<br />
<br />
'''NOTE:''' Due to a conflict, in order to achieve a stable connection it may be necessary to remove linux-restricted-modules beforehand using the following command: "sudo update-rc.d -f linux-restricted-modules-common remove"<br />
http://madberry.org/2008/11/how-to-get-atheros-ar242x-to-work-on-810-intrepid-ibex/<br />
<br />
<br />
'''Installing the ath5k drivers from the compat-wireless package'''<br />
<br />
Original discussion thread: [http://ubuntuforums.org/showpost.php?p=6071960&postcount=2]<br />
<br />
1. Become the super user of the system:<br />
<br />
{{cmduser|sudo su}}<br />
<br />
*NOTE: Becareful here, as you have complete access to the system, and can do damage if careless. Optionally, you can work as a normal user, and preface each command with sudo.<br />
<br />
Disable any currently running Madwifi drivers by running this in the terminal:<br />
<br />
{{cmdroot|rmmod ath_pci; rmmod ath_hal}}<br />
<br />
3. These drivers require source compilitation, so the build-essential package is required:<br />
<br />
{{cmdroot|apt-get install build-essential}}<br />
<br />
4. Enter the /usr/src directory, and download the source package:<br />
<br />
{{cmdroot|cd /usr/src; wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2008-10-31.tar.bz2}}<br />
<br />
5. Extract the source and enter the directory:<br />
<br />
{{cmdroot|tar xjvf compat-wireless-2008-10-31.tar.bz2; cd compat-wireless-2008-10-31}}<br />
<br />
6. Take a quick look at the README:<br />
<br />
{{cmdroot|less README}}<br />
<br />
7. Begin the compiliation process<br />
<br />
{{cmdroot|make}}<br />
<br />
8. Next, disable any active wireless connections, and run a script to make sure all wireless drivers that are going to be replaced are unloaded:<br />
<br />
{{cmdroot|make unload}}<br />
<br />
9. Install the drivers:<br />
<br />
{{cmdroot|make install}}<br />
<br />
10. If everything completed without errors, load the ath5k module:<br />
<br />
{{cmdroot|modprobe ath5k}}<br />
<br />
11. Check to make sure the new drivers detected the wireless card (you may need to adjust the interface name if you have several wireless cards):<br />
<br />
{{cmdroot|ifconfig wlan0 up; iwconfig}}<br />
<br />
NOTE: When I first installed these drivers, they were unable to bring the MAC chip up, and needed a restart.<br />
<br />
12. Clean the src directory<br />
<br />
{{cd /usr/src; rm compat-wireless-2008-10-31}}<br />
<br />
NOTE: You can also delete the compat-wireless-2008-10-31/ folder if you need to recover the space, but it is useful to keep because the Makefile has a 'make uninstall' switch.<br />
<br />
13. Last, blacklist any other drivers that may interfere with the new ath5k drivers:<br />
<br />
{{echo "blacklist ath_pci" >> /etc/modprobe.d/blacklist; echo "blacklist ath_hal" >> /etc/modprobe.d/blacklist}}<br />
<br />
'''Installing the Madwifi drivers:''' <br />
<br />
The following instructions were originally found here [http://ubuntuforums.org/showpost.php?p=5711824&postcount=6]:<br />
<br />
1. Under System/Administration/HarwareDrivers disable "Support for Atheros 802.11 wireless LAN cards<br />
<br />
2. Reboot<br />
<br />
3. The kernel headers and the compiler are needed to build this driver so install build-essential. In a terminal window (Applications/Accessories/Terminal) enter:<br />
<br />
{{cmduser|sudo apt-get install build-essential}}<br />
<br />
4. Install Subversion<br />
<br />
{{cmduser|sudo apt-get install subversion}}<br />
<br />
5. Checkout the Madwifi drivers to a directory on your local disk<br />
<br />
{{cmduser|cd~}}<br />
{{cmduser|mkdir madwifi}}<br />
{{cmduser|cd madwifi}}<br />
{{cmduser|svn co https://svn.madwifi.org/madwifi/branches/madwifi-hal-0.10.5.6}}<br />
<br />
6. Build the drivers<br />
<br />
{{cmduser|cd madwifi-hal-0.10.5.6}}<br />
{{cmduser|make}}<br />
<br />
7. Install the drivers<br />
<br />
{{cmduser|make install}}<br />
<br />
8. Add the Atheros kernel module to the list of modules to be automatically loaded at boot by adding "ath_pci" (without the quotes) to the end of the /etc/modules file and save the file<br />
<br />
{{cmduser|sudo gedit /etc/modules}}<br />
<br />
9. Now you can reboot and it should work.<br />
<br />
====Scrolling with Trackpoint====<br />
<br />
Create a new file called /etc/hal/fdi/policy/mouse-wheel.fdi typing:<br />
<br />
{{cmduser|sudo gedit /etc/hal/fdi/policy/mouse-wheel.fdi}}<br />
<br />
And fill it with this code:<br />
<br />
<match key="info.product" string="TPPS/2 IBM TrackPoint"><br />
<merge key="input.x11_options.EmulateWheel" type="string">true</merge><br />
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge><br />
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge><br />
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge><br />
<merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge><br />
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge><br />
</match><br />
<br />
Source: [http://psung.blogspot.com/2008/09/scrolling-with-thinkpads-trackpoint-in.html]<br />
<br />
(Based on code from [http://mvogt.wordpress.com/2008/08/15/xorg-evdev-and-emulatewheel/ Michael Vogt] and adapted to support both vertical and horizontal scrolling.)<br />
<br />
'''Note:''' If you change to another Shell (<ctrl><alt>F1 etc) the Trackpoint does not scroll anymore. Restarting the Xserver works and can most easily done by choosing "switch user" and than log in again. All programs stay open and it does not take much time.<br />
<br />
<br />
====Enabling Touchpad on/off key====<br />
Source: [[https://help.ubuntu.com/community/SynapticsTouchpad#shmconfig]]<br />
The SHMConfig is now controlled through hal. In the past this was done through xorg.conf<br />
<br />
You have to add the file <br />
{{cmduser|sudo gedit /etc/hal/fdi/policy/shmconfig.fdi}}<br />
with the following content:<br />
<?xml version="1.0" encoding="ISO-8859-1"?><br />
<deviceinfo version="0.2"><br />
<device><br />
<match key="input.x11_driver" string="synaptics"><br />
<merge key="input.x11_options.SHMConfig" type="string">True</merge><br />
</match><br />
</device><br />
</deviceinfo><br />
<br />
After this change please reboot. Restarting hal doesn't help.<br />
<br />
<br />
<br />
====Brightness control broken - lowest level after Booting/Suspend/Hibernate/Screen-off====<br />
<br />
I had the problem (after kernel-update to 2.6.27-11), that while booting, or after suspend/hibernate/screen-off my brightness was on lowest level, which peeved a lot.<br />
<br />
You always had to change brightness level to jump back to previous setting.<br />
<br />
'''The workaround:'''<br />
<br />
Edit following file:<br />
<br />
sudo gedit /etc/modprobe.d/options<br />
<br />
And add this line:<br />
<br />
options thinkpad_acpi brightness_enable=1<br />
<br />
Please note that it seems that removing the module and reloading it with this option does not work. A reboot after adding the option to the module-properties is necessary to activate the workaround.<br />
<br />
''See also'' [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/322610 Ubuntu Bug 322610]<br />
<br />
==What doesn't work at the moment?==<br />
<br />
====[[Integrated Fingerprint Reader]]====<br />
<br />
Theres a new chipset build in, the "AuthenTec AES2810". So neither the [http://thinkfinger.sourceforge.net thinkfinger] nor the [http://www.reactivated.net/fprint/wiki/Main_Page fprint] Project support this Device at the moment.<br />
<br />
lsusb:<br />
Bus 002 Device 004: ID 08ff:2810 AuthenTec, Inc.<br />
<br />
Daniel from fprint Project wrote in their mailing list, that support for our device is in development!<br />
For more information look here: [http://reactivated.net/fprint/wiki/Unsupported_devices fprint Unsupported devices]<br />
<br />
====[[Switchable Graphics]]====<br />
<br />
I installed Ubuntu 8.10 with the on-board Intel Graphic chip. So 3D acceleration works out-of-the-box.<br />
<br />
Then I booted with the ATI Graphics, which was no problem, because the [[radeon]] driver works very well, but only in 2D.<br />
<br />
After installing [[fglrx]] packages, jockey also found out, that proprietary drivers are available. So i let him configure my xorg.conf:<br />
<br />
Section "Monitor"<br />
Identifier "Configured Monitor"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Monitor "Configured Monitor"<br />
Device "Configured Video Device"<br />
DefaultDepth 24<br />
EndSection<br />
<br />
Section "Module"<br />
Load "glx"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "Configured Video Device"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "ATI Technologies Inc Mobility Radeon HD 3400 Series"<br />
BusID "PCI:01:00.0"<br />
Driver "fglrx"<br />
EndSection<br />
<br />
After reboot also Compiz works (but not so smooth as with Intel, i allege)<br />
<br />
'''Problem:''' Strating up with integrated graphic again, no 3D desktop works. After removing all [[fglrx]] packages, Compiz normally works.<br />
<br />
So i changed my xorg.conf using the [[radeon]] driver, succeeding to have 3D on onboard Graphics and 2D on ATI Graphics.<br />
<br />
I also tried [[radeonhd]] driver, which does not work.<br />
<br />
'''Note 1:''' I got tired of going in to BIOS to switch chipsets, so I explicitly set the BusID in xorg.conf. The problem with this approach is that power consumption doubles, even when you are not using the discrete graphics card. I had 28W consumption when in switchable graphics mode, and 16W consumption when I configured "Integrated graphics" in BIOS.<br />
<br />
'''Note 2:''' fglrx diverts libGL.so.1.2 that is installed by mesa. This means that you can't simply swap xorg.conf files and kernel modules, you need to replace libGL.so.1.2 with the proper one if you want restart X with a certain chipset.<br />
<br />
{{Todo|Maybe anybody can get both working!}}<br />
<br />
<br />
====Menu-Key====<br />
<br />
I changed keyboard modell to "IBM Thinkpad R60/T60/R61/T61" using the "German Dead acute" Layout.<br />
<br />
But also with these settings my menu-key does not work.<br />
I tried to refer it with Firefox using the keyborad shortcuts-tool. It writes: "XF86WakeUp"<br />
<br />
'''Problem:''' The FN-Key also writes "XF86WakeUp", which is not so practical, so I removed allocation!<br />
<br />
{{Todo| Is ist possible to have a real menu-key?}}<br />
<br />
==Not tested yet==<br />
<br />
====[[Active Protection System]]====<br />
<br />
There is no patch for Kernel 2.6.27-7 at the moment to use [[HDAPS]]. See also [[How to protect the harddisk through APS]].<br />
<br />
====VGA/HDMI====<br />
*NEC MultiSync LCD 2190UX - VGA tested and working in mirrored and extended desktop modes (had to run {{cmduser|sudo dpkg-reconfigure -phigh xserver-xorg}} to get 1600x1200 resolution to show up)<br />
{{todo|please test other external monitors!}}<br />
<br />
<br />
[[Category:T400]][[Category:Ubuntu]][[Category:Ubuntu_8.10]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_ThinkPad_T400&diff=41765Install Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T4002009-03-03T08:19:50Z<p>Centic: /* Brightness control broken - lowest level after Booting/Suspend/Hibernate/Screen-off */</p>
<hr />
<div>[[:Category:T400|T400]] '''Site under construction. You are invited building an useful guidance!'''<br />
<br />
==Before Installation==<br />
<br />
Before you can start Ubuntu from CD or USB you have to change two BIOS settings:<br />
* Change to Internal or ATI Graphics with Config --> Display --> Graphics Device --> [Integrated graphics] or [Discrete Graphics]<br />
* Disable OS Detection for Switchable Graphics. Otherwise it will mysteriously switch back to Switchable Graphics.<br />
<br />
Now you can boot your Live-CD, connect to Wireless Lan, and install the OS.<br />
<br />
With one version of the installer CD, the installation works fine, but after rebooting it hangs with ATA errors. Solution was to boot the Live CD, mount the partition, chroot, and upgrade to the newest kernel (from 2.6.27-7 to 2.6.27-9).<br />
<br />
==What works out of the box?==<br />
<br />
*Wireless with iwlagn driver ([[Intel WiFi Link 5100/5300 WLAN controller]])<br />
**G mode + WEP and WPA2 PSK (If you have the ThinkPad 11b/g Wireless LAN mini PCI Express Adapter III (Aetheros Chipset), see below!)<br />
**with status LED and everything!<br />
*Bluetooth<br />
**Even with [[Bluetooth Laser Mouse]]<br />
**Note: Bluetooth can only be toggled together with WLAN on and off, to add a bluetooth-only-toggle (Fn+F6) that doesn't affect WLAN take a look [[ThinkPad_Bluetooth_with_Enhanced_Data_Rate_(BDC-2)|here]].<br />
*[[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]<br />
*Intel driver for Integrated Graphics ([[Intel Integrated Intel GMA 4500MHD]])<br />
** with 3D acceleration out-of-the-box<br />
** VGA output - mirrored and extended desktop both work, but might need to run the following to enable 1600x1200 resolution<br />
{{cmduser|sudo dpkg-reconfigure -phigh xserver-xorg}}<br />
*ATI [[fglrx]] driver for Discrete Graphics ([[ATI Mobility Radeon 3470 graphics]])<br />
**To enjoy 3D acceleration, you have to install the proprietary [[fglrx]] Driver. (for example with the jockey-gtk tool)<br />
*Touchpoint and Trackpad<br />
**Including scroll at the right side of the pad by default. (for scrolling with the middle mouse button, see below!)<br />
*Optical drive<br />
**Including DVD burning<br />
*Sound card<br />
**To use your internal microphone you have to change to "HDA Intel CONEXANT Analog (ALSA)" in audio-settings.<br />
*built-in webcam with Skype<br />
*7-in-1 card reader from Ricoh (MMC, Memory Stick, Mem Stick Pro, SD, SDHC, XD, XD Type H Memory)<br />
**Only tested SD cards.<br />
*Control buttons/Hotkeys<br />
**Volume control buttons<br />
**Screen brightness control (but changing brightness is a little bit diffuse. It's getting brighter but on maximum it changes to nearly lowest and get brighter again.)<br />
**Thinklight control<br />
**WLAN/BT/OFF toggle (Fn+F5 and mechanical toggle)<br />
**Media player control<br />
*Some ACPI features<br />
**Battery status, power graphs and history (tested with an single 6-Cell battery)<br />
**Lid states and events<br />
*Suspend/Hibernate on a fully updated System!<br />
<br />
==What needs some Tweaks?==<br />
<br />
====[[ThinkVantage Button]] {{ibmkey|ThinkVantage|#495988}}====<br />
<br />
Edit the file /usr/share/hotkey-setup/ibm.hk with adding this line:<br />
<br />
setkeycodes e017 148 #thinkpad button<br />
<br />
You have to restart, then you refer a program with the "System -> Preferences -> Keyboard Shortcuts"-Menu (eg. Terminal, Firefox,...).<br />
<br />
====Internal LCD Resolution Fix====<br />
<br />
The native screen resolution of 1440x900 is not detected automatically. The problem is that a secondary cloned display is set to 1360x768, and is being displayed on the integrated screen. Disable screen cloning, and disable the secondary display to fix the problem. For a complete fix, a restart of X is required (CTRL+ALT+BACKSPACE) is required, and when logging in again, you may need to fix your dock icon positions.<br />
<br />
However, GDM still displays at either 1152x864 or 1360x768, creating a fuzzy image, or leaving borders at right and bottom, respectively. But it isn't a problem after logging in.<br />
<br />
'''UPDATE:'''The solution posted above was too sparse for me. Instead, I found a new driver and compviz packages that fixed the problem using the v.2.5.0 of the intel drivers that are available here:https://launchpad.net/~thjaeger/+archive<br />
<br />
'''UPDATE:''' Thomas Jaeger no longer maintains the updated Intel drivers, but he helpfully directed me to the intel-gfx-testing team's Personal Package Archive (here:https://launchpad.net/~intel-gfx-testing/+archive) which does maintain them.<br />
<br />
'''UPDATE:''' Resolutions work fine on both gpus for me, maybe this issue was fixed in the standard driver?<br />
<br />
<br />
Create a file /etc/apt/sources.list.d/intel-gfx-testing.list with the following contents:<br />
<br />
<pre><br />
deb http://ppa.launchpad.net/intel-gfx-testing/ubuntu intrepid main<br />
deb-src http://ppa.launchpad.net/intel-gfx-testing/ubuntu intrepid main<br />
</pre><br />
<br />
You can edit it using:<br />
<br />
<pre><br />
sudo gedit /etc/apt/sources.list.d/intel-gfx-testing.list<br />
</pre><br />
<br />
<br />
once you've closed gedit, update the list of updates by typing:<br />
<br />
<pre>sudo apt-get update</pre><br />
<br />
<br />
this will update the package db, and you should see the 'package update' icon light up. Open that up, and apply the updates. Alternately, you can open it via System->Administration->Update Manager<br />
<br />
Once the updates are applied, you will need to revert your /etc/X11/xorg.conf file if you've made any changes to it. You can do this via:<br />
<br />
sudo dpkg-reconfigure -phigh xserver-xorg<br />
<br />
<br />
Finally press ctrl-alt-backspace to restart the X-server.<br />
<br />
Now, once you've logged back in, under System->Preferences->Screen Resolution, you should see 1440x900 listed.<br />
<br />
'''UPDATE:''' Using the intel-gfx-testing drivers causes a 3D performance issue, but only because the permissions on the DRM device are not set up properly, which forces 3D applications to use software rendering. This is tracked in this bug: https://bugs.launchpad.net/ubuntu/+source/hal/+bug/306014. Fixes and workarounds are provided in the bug comments.<br />
<br />
You can test if you're using the software renderer by running:<br />
<br />
<pre>glxinfo | grep renderer</pre><br />
<br />
If you're using the software renderer, you will see:<br />
<br />
<pre>OpenGL renderer string: Software Rasterizer</pre><br />
<br />
With the fix in place, I get:<br />
<pre>OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset 20061102 x86/MMX/SSE2</pre><br />
<br />
====Shutdown freezes sometimes====<br />
<br />
It seems that ALSA has problems to shut down if network devices are still active.<br />
You can force ALSA during its unloading to disable the networking first (remember to backup your files!):<br />
sudo gedit /etc/init.d/alsa-utils<br />
Search for "stop)" and add immediately below:<br />
<br />
ifconfig eth0 down<br />
ifconfig wlan0 down<br />
<br />
'''NOTE''' - This doesn't seem to be a problem with Madwifi drivers, it is created by the Intel wireless card?<br />
<br />
Now your shutdown should go smoothly.<br />
<br />
====VGA Output Resolution Fix====<br />
<br />
To enable 1600x1200 resolution to show up, run<br />
{{cmduser|sudo dpkg-reconfigure -phigh xserver-xorg}}<br />
<br />
====Suspend/Hibernate====<br />
<br />
'''UPDATE:''' On a fully updated 8.10-32bit-System Suspend and Hibernate now work out of the box. You do not need this workaround anymore!<br />
<br />
'''UPDATE:''' In 9.04 64-Bit Suspend works fine.<br />
<br />
Neither Suspend nor Hibernate work out of the box. They fall asleep, but when waking up only the mousepointer is on the black screen, put neither keyboard, nor mouse showing response.<br />
<br />
Here's a [http://ubuntuforums.org/showthread.php?p=6057496 Ubuntu forum discussion thread] about the problem! <br />
<br />
Petri K posted a workaround, to get suspend and hibernate working:<br />
<br />
"I would say that this is a classical multiprocessor concurrency control problem! Disabling all but one core makes the bug disappear.<br />
Here is my suggestion for a workaround. Save in /etc/pm/sleep.d/00CPU with 755 permissions. <br />
Note that it has to be called 00CPU so that it gets executed before and after anything else."<br />
<br />
Open Terminal and type:<br />
<br />
{{cmduser|sudo gedit /etc/pm/sleep.d/00CPU}}<br />
<br />
Copy the following Code into gedit and save the file!<br />
<br />
#!/bin/sh<br />
# Workaround for concurrency bug in xserver-xorg-video-intel 2:2.4.1-1ubuntu10.<br />
# Save this as /etc/pm/sleep.d/00CPU<br />
<br />
. "${PM_FUNCTIONS}"<br />
<br />
case "$1" in<br />
hibernate|suspend)<br />
for i in /sys/devices/system/cpu/cpu*/online ; do<br />
echo 0 >$i<br />
done<br />
;;<br />
thaw|resume) <br />
sleep 10 # run with one core for 10 secs<br />
for i in /sys/devices/system/cpu/cpu*/online ; do<br />
echo 1 >$i<br />
done<br />
;;<br />
*)<br />
;;<br />
esac<br />
<br />
Then close gedit and copy this line into the terminal to set permission 755 (read, write and execute):<br />
<br />
{{cmduser|sudo chmod 755 /etc/pm/sleep.d/00CPU}}<br />
<br />
After reboot suspend and hibernate should work for you, because there is only one core running while doing this events.<br />
<br />
====ThinkPad 11b/g Wireless LAN mini PCI Express Adapter III (Atheros AR5007EG/AR2425 Chipset)====<br />
<br />
There are two options for drivers here, the ath5k project, or older Madwifi drivers. The Madwifi drivers are based on the older, closed source HAL by Atheros, and the ath5k driver are based on the newer open source HAL by Atheros. Note that you should not enable more than one Atheros driver, or they will conflict with each other (this includes ath5k, ath9k, and Madwifi). If you need both BG & N support, do not use ath5k & ath9k, use Madwifi instead (only applicable if you are running multiple wireless cards).<br />
<br />
'''ath5k cons:''' One user (with the a B/G card) reports that wireless performance was awful with the FOSS ath5k driver, but smooth and nice with Madwifi. YMMV - Also, the ath5k do not correctly detect hardware settings such as txpower.<br />
<br />
'''Madwifi cons:''' For one user at least, the madwifi driver is dumping *tons* of text into /var/log/messages , /var/log/syslog , /var/log/kern.log , wasting several GBs of disk space. (In general, if your /var/log directory uses more than 100 MB of space, there's probably something wrong) I don't know if the driver is set up to dump debug info to the log files, or if there is some error that keeps occurring (although the wireless seems to work just). If anyone figures out how to fix this, please post here!<br />
<br />
'''NOTE:''' Due to a conflict, in order to achieve a stable connection it may be necessary to remove linux-restricted-modules beforehand using the following command: "sudo update-rc.d -f linux-restricted-modules-common remove"<br />
http://madberry.org/2008/11/how-to-get-atheros-ar242x-to-work-on-810-intrepid-ibex/<br />
<br />
<br />
'''Installing the ath5k drivers from the compat-wireless package'''<br />
<br />
Original discussion thread: [http://ubuntuforums.org/showpost.php?p=6071960&postcount=2]<br />
<br />
1. Become the super user of the system:<br />
<br />
{{cmduser|sudo su}}<br />
<br />
*NOTE: Becareful here, as you have complete access to the system, and can do damage if careless. Optionally, you can work as a normal user, and preface each command with sudo.<br />
<br />
Disable any currently running Madwifi drivers by running this in the terminal:<br />
<br />
{{cmdroot|rmmod ath_pci; rmmod ath_hal}}<br />
<br />
3. These drivers require source compilitation, so the build-essential package is required:<br />
<br />
{{cmdroot|apt-get install build-essential}}<br />
<br />
4. Enter the /usr/src directory, and download the source package:<br />
<br />
{{cmdroot|cd /usr/src; wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2008-10-31.tar.bz2}}<br />
<br />
5. Extract the source and enter the directory:<br />
<br />
{{cmdroot|tar xjvf compat-wireless-2008-10-31.tar.bz2; cd compat-wireless-2008-10-31}}<br />
<br />
6. Take a quick look at the README:<br />
<br />
{{cmdroot|less README}}<br />
<br />
7. Begin the compiliation process<br />
<br />
{{cmdroot|make}}<br />
<br />
8. Next, disable any active wireless connections, and run a script to make sure all wireless drivers that are going to be replaced are unloaded:<br />
<br />
{{cmdroot|make unload}}<br />
<br />
9. Install the drivers:<br />
<br />
{{cmdroot|make install}}<br />
<br />
10. If everything completed without errors, load the ath5k module:<br />
<br />
{{cmdroot|modprobe ath5k}}<br />
<br />
11. Check to make sure the new drivers detected the wireless card (you may need to adjust the interface name if you have several wireless cards):<br />
<br />
{{cmdroot|ifconfig wlan0 up; iwconfig}}<br />
<br />
NOTE: When I first installed these drivers, they were unable to bring the MAC chip up, and needed a restart.<br />
<br />
12. Clean the src directory<br />
<br />
{{cd /usr/src; rm compat-wireless-2008-10-31}}<br />
<br />
NOTE: You can also delete the compat-wireless-2008-10-31/ folder if you need to recover the space, but it is useful to keep because the Makefile has a 'make uninstall' switch.<br />
<br />
13. Last, blacklist any other drivers that may interfere with the new ath5k drivers:<br />
<br />
{{echo "blacklist ath_pci" >> /etc/modprobe.d/blacklist; echo "blacklist ath_hal" >> /etc/modprobe.d/blacklist}}<br />
<br />
'''Installing the Madwifi drivers:''' <br />
<br />
The following instructions were originally found here [http://ubuntuforums.org/showpost.php?p=5711824&postcount=6]:<br />
<br />
1. Under System/Administration/HarwareDrivers disable "Support for Atheros 802.11 wireless LAN cards<br />
<br />
2. Reboot<br />
<br />
3. The kernel headers and the compiler are needed to build this driver so install build-essential. In a terminal window (Applications/Accessories/Terminal) enter:<br />
<br />
{{cmduser|sudo apt-get install build-essential}}<br />
<br />
4. Install Subversion<br />
<br />
{{cmduser|sudo apt-get install subversion}}<br />
<br />
5. Checkout the Madwifi drivers to a directory on your local disk<br />
<br />
{{cmduser|cd~}}<br />
{{cmduser|mkdir madwifi}}<br />
{{cmduser|cd madwifi}}<br />
{{cmduser|svn co https://svn.madwifi.org/madwifi/branches/madwifi-hal-0.10.5.6}}<br />
<br />
6. Build the drivers<br />
<br />
{{cmduser|cd madwifi-hal-0.10.5.6}}<br />
{{cmduser|make}}<br />
<br />
7. Install the drivers<br />
<br />
{{cmduser|make install}}<br />
<br />
8. Add the Atheros kernel module to the list of modules to be automatically loaded at boot by adding "ath_pci" (without the quotes) to the end of the /etc/modules file and save the file<br />
<br />
{{cmduser|sudo gedit /etc/modules}}<br />
<br />
9. Now you can reboot and it should work.<br />
<br />
====Scrolling with Trackpoint====<br />
<br />
Create a new file called /etc/hal/fdi/policy/mouse-wheel.fdi typing:<br />
<br />
{{cmduser|sudo gedit /etc/hal/fdi/policy/mouse-wheel.fdi}}<br />
<br />
And fill it with this code:<br />
<br />
<match key="info.product" string="TPPS/2 IBM TrackPoint"><br />
<merge key="input.x11_options.EmulateWheel" type="string">true</merge><br />
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge><br />
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge><br />
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge><br />
<merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge><br />
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge><br />
</match><br />
<br />
Source: [http://psung.blogspot.com/2008/09/scrolling-with-thinkpads-trackpoint-in.html]<br />
<br />
(Based on code from [http://mvogt.wordpress.com/2008/08/15/xorg-evdev-and-emulatewheel/ Michael Vogt] and adapted to support both vertical and horizontal scrolling.)<br />
<br />
'''Note:''' If you change to another Shell (<ctrl><alt>F1 etc) the Trackpoint does not scroll anymore. Restarting the Xserver works and can most easily done by choosing "switch user" and than log in again. All programs stay open and it does not take much time.<br />
<br />
<br />
====Enabling Touchpad on/off key====<br />
Source: [[https://help.ubuntu.com/community/SynapticsTouchpad#shmconfig]]<br />
The SHMConfig is now controlled through hal. In the past this was done through xorg.conf<br />
<br />
You have to add the file <br />
{{cmduser|sudo gedit /etc/hal/fdi/policy/shmconfig.fdi}}<br />
with the following content:<br />
<?xml version="1.0" encoding="ISO-8859-1"?><br />
<deviceinfo version="0.2"><br />
<device><br />
<match key="input.x11_driver" string="synaptics"><br />
<merge key="input.x11_options.SHMConfig" type="string">True</merge><br />
</match><br />
</device><br />
</deviceinfo><br />
<br />
After this change please reboot. Restarting hal doesn't help.<br />
<br />
<br />
<br />
====Brightness control broken - lowest level after Booting/Suspend/Hibernate/Screen-off====<br />
<br />
I had the problem (after kernel-update to 2.6.27-11), that while booting, or after suspend/hibernate/screen-off my brightness was on lowest level, which peeved a lot.<br />
<br />
You always had to change brightness level to jump back to previous setting.<br />
<br />
'''The workaround:'''<br />
<br />
Edit following file:<br />
<br />
sudo gedit /etc/modprobe.d/options<br />
<br />
And add this line:<br />
<br />
options thinkpad_acpi brightness_enable=1<br />
<br />
''See also'' [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/322610 Ubuntu Bug 322610]<br />
<br />
==What doesn't work at the moment?==<br />
<br />
====[[Integrated Fingerprint Reader]]====<br />
<br />
Theres a new chipset build in, the "AuthenTec AES2810". So neither the [http://thinkfinger.sourceforge.net thinkfinger] nor the [http://www.reactivated.net/fprint/wiki/Main_Page fprint] Project support this Device at the moment.<br />
<br />
lsusb:<br />
Bus 002 Device 004: ID 08ff:2810 AuthenTec, Inc.<br />
<br />
Daniel from fprint Project wrote in their mailing list, that support for our device is in development!<br />
For more information look here: [http://reactivated.net/fprint/wiki/Unsupported_devices fprint Unsupported devices]<br />
<br />
====[[Switchable Graphics]]====<br />
<br />
I installed Ubuntu 8.10 with the on-board Intel Graphic chip. So 3D acceleration works out-of-the-box.<br />
<br />
Then I booted with the ATI Graphics, which was no problem, because the [[radeon]] driver works very well, but only in 2D.<br />
<br />
After installing [[fglrx]] packages, jockey also found out, that proprietary drivers are available. So i let him configure my xorg.conf:<br />
<br />
Section "Monitor"<br />
Identifier "Configured Monitor"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Monitor "Configured Monitor"<br />
Device "Configured Video Device"<br />
DefaultDepth 24<br />
EndSection<br />
<br />
Section "Module"<br />
Load "glx"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "Configured Video Device"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "ATI Technologies Inc Mobility Radeon HD 3400 Series"<br />
BusID "PCI:01:00.0"<br />
Driver "fglrx"<br />
EndSection<br />
<br />
After reboot also Compiz works (but not so smooth as with Intel, i allege)<br />
<br />
'''Problem:''' Strating up with integrated graphic again, no 3D desktop works. After removing all [[fglrx]] packages, Compiz normally works.<br />
<br />
So i changed my xorg.conf using the [[radeon]] driver, succeeding to have 3D on onboard Graphics and 2D on ATI Graphics.<br />
<br />
I also tried [[radeonhd]] driver, which does not work.<br />
<br />
'''Note 1:''' I got tired of going in to BIOS to switch chipsets, so I explicitly set the BusID in xorg.conf. The problem with this approach is that power consumption doubles, even when you are not using the discrete graphics card. I had 28W consumption when in switchable graphics mode, and 16W consumption when I configured "Integrated graphics" in BIOS.<br />
<br />
'''Note 2:''' fglrx diverts libGL.so.1.2 that is installed by mesa. This means that you can't simply swap xorg.conf files and kernel modules, you need to replace libGL.so.1.2 with the proper one if you want restart X with a certain chipset.<br />
<br />
{{Todo|Maybe anybody can get both working!}}<br />
<br />
<br />
====Menu-Key====<br />
<br />
I changed keyboard modell to "IBM Thinkpad R60/T60/R61/T61" using the "German Dead acute" Layout.<br />
<br />
But also with these settings my menu-key does not work.<br />
I tried to refer it with Firefox using the keyborad shortcuts-tool. It writes: "XF86WakeUp"<br />
<br />
'''Problem:''' The FN-Key also writes "XF86WakeUp", which is not so practical, so I removed allocation!<br />
<br />
{{Todo| Is ist possible to have a real menu-key?}}<br />
<br />
==Not tested yet==<br />
<br />
====[[Active Protection System]]====<br />
<br />
There is no patch for Kernel 2.6.27-7 at the moment to use [[HDAPS]]. See also [[How to protect the harddisk through APS]].<br />
<br />
====VGA/HDMI====<br />
*NEC MultiSync LCD 2190UX - VGA tested and working in mirrored and extended desktop modes (had to run {{cmduser|sudo dpkg-reconfigure -phigh xserver-xorg}} to get 1600x1200 resolution to show up)<br />
{{todo|please test other external monitors!}}<br />
<br />
<br />
[[Category:T400]][[Category:Ubuntu]][[Category:Ubuntu_8.10]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_ThinkPad_T500&diff=40585Install Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T5002009-01-11T22:17:07Z<p>Centic: /* Enabling Touchpad on/off key */</p>
<hr />
<div>[[:Category:T500|T500]] '''Site under construction. You are invited building an useful guidance!'''<br />
<br />
==Before Installation==<br />
<br />
Before you can start Ubuntu from CD or USB you have to change two BIOS settings:<br />
* Change to Internal or ATI Graphics with Config --> Display --> Graphics Device --> [Integrated graphics] or [Discrete Graphics]<br />
* Disable OS Detection for Switchable Graphics. Otherwise it will mysteriously switch back to Switchable Graphics.<br />
<br />
Now you can boot your Live-CD, connect to Wireless Lan, and install the OS.<br />
<br />
==What works out of the box?==<br />
<br />
*Wireless with iwlagn driver ([[Intel WiFi Link 5100/5300 WLAN controller]])<br />
**G mode + WEP, WPA and WPA2.<br />
**with status LED and everything!<br />
*Bluetooth<br />
**I could connect my nokia mobile phone through bluetooth<br />
*[[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]<br />
*Intel driver for Integrated Graphics ([[Intel Integrated Intel GMA 4500MHD]])<br />
** with 3D acceleration out-of-the-box<br />
** VGA output - mirrored, other not fixed yet<br />
*ATI [[fglrx]] doesn't matter for me at the moment. Intel Graphics works fine!<br />
*Touchpoint and Trackpad<br />
**Including scroll at the right side of the pad by default. <br />
*Optical drive<br />
**Not tested burning yet.<br />
*Sound card<br />
**To use your internal microphone you have to change to "HDA Intel CONEXANT Analog (ALSA)" in audio-settings.<br />
*7-in-1 card reader from Ricoh (MMC, Memory Stick, Mem Stick Pro, SD, SDHC, XD, XD Type H Memory)<br />
**Only tested SD cards.<br />
*Control buttons/Hotkeys<br />
**Volume control buttons<br />
**Screen brightness control works fine. So there is a strange behaviour. If you change the brightness to dark it gets darker then it gets a bit lighter and after view steps it stay dark. The display of ubuntu shows that it is maximum dark or maximum light, but it still changes. Not a real problem though.<br />
**Thinklight control<br />
**WLAN/BT/OFF toggle (Fn+F5 and mechanical toggle)<br />
**Media player control<br />
*Some ACPI features: Works great with "Listen".<br />
**Battery status, power graphs and history (tested with an single 6-Cell battery)<br />
**Lid states and events<br />
<br />
<br />
====Enabling Touchpad on/off key====<br />
Source: [https://help.ubuntu.com/community/SynapticsTouchpad#shmconfig]<br />
The SHMConfig is now controlled through hal. In the past this was done through xorg.conf<br />
<br />
You have to add the file <br />
{{cmduser|sudo gedit /etc/hal/fdi/policy/shmconfig.fdi}}<br />
with the following content:<br />
<?xml version="1.0" encoding="ISO-8859-1"?><br />
<deviceinfo version="0.2"><br />
<device><br />
<match key="input.x11_driver" string="synaptics"><br />
<merge key="input.x11_options.SHMConfig" type="string">True</merge><br />
</match><br />
</device><br />
</deviceinfo><br />
<br />
After this change please reboot. Restarting hal doesn't help.<br />
<br />
====Disabling Touchpad while typing====<br />
Enable SHMConfig as described above under '''Enabling Touchpad on/off key''' and add the command <br />
{{cmduser|syndaemon -S -d}} <br />
under System -> Preferences -> Sessions -> Startup Programs.<br />
<br />
====Links for more information====<br />
Most stuff is identical to T400. so watch this link [[Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_Thinkpad_T400]]<br />
I will add more information in the next days. Please contribute, if you have more information!<br />
<br />
[[Category:T500]]<br />
<br />
====Fix runaway process issue====<br />
I had this issue where dd, klog, and syslog processes were consuming 50-100 of my cpu when running top. And they were filling my /var/log/klog, syslog files. They were up to 28gigs each when I found them.<br />
To fix this issue you have to enable the proposed updates repository and get the kernel update to 2.6.27-11<br />
Go to System->Administration->Software Sources and click the proposed updates checkbox, then when the updates come up make sure to get the kernel update to 2.6.27-11.<br />
[http://ubuntuforums.org/archive/index.php/t-1016864.html]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_ThinkPad_T500&diff=40584Install Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T5002009-01-11T22:16:51Z<p>Centic: /* Fix runaway process issue */</p>
<hr />
<div>[[:Category:T500|T500]] '''Site under construction. You are invited building an useful guidance!'''<br />
<br />
==Before Installation==<br />
<br />
Before you can start Ubuntu from CD or USB you have to change two BIOS settings:<br />
* Change to Internal or ATI Graphics with Config --> Display --> Graphics Device --> [Integrated graphics] or [Discrete Graphics]<br />
* Disable OS Detection for Switchable Graphics. Otherwise it will mysteriously switch back to Switchable Graphics.<br />
<br />
Now you can boot your Live-CD, connect to Wireless Lan, and install the OS.<br />
<br />
==What works out of the box?==<br />
<br />
*Wireless with iwlagn driver ([[Intel WiFi Link 5100/5300 WLAN controller]])<br />
**G mode + WEP, WPA and WPA2.<br />
**with status LED and everything!<br />
*Bluetooth<br />
**I could connect my nokia mobile phone through bluetooth<br />
*[[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]<br />
*Intel driver for Integrated Graphics ([[Intel Integrated Intel GMA 4500MHD]])<br />
** with 3D acceleration out-of-the-box<br />
** VGA output - mirrored, other not fixed yet<br />
*ATI [[fglrx]] doesn't matter for me at the moment. Intel Graphics works fine!<br />
*Touchpoint and Trackpad<br />
**Including scroll at the right side of the pad by default. <br />
*Optical drive<br />
**Not tested burning yet.<br />
*Sound card<br />
**To use your internal microphone you have to change to "HDA Intel CONEXANT Analog (ALSA)" in audio-settings.<br />
*7-in-1 card reader from Ricoh (MMC, Memory Stick, Mem Stick Pro, SD, SDHC, XD, XD Type H Memory)<br />
**Only tested SD cards.<br />
*Control buttons/Hotkeys<br />
**Volume control buttons<br />
**Screen brightness control works fine. So there is a strange behaviour. If you change the brightness to dark it gets darker then it gets a bit lighter and after view steps it stay dark. The display of ubuntu shows that it is maximum dark or maximum light, but it still changes. Not a real problem though.<br />
**Thinklight control<br />
**WLAN/BT/OFF toggle (Fn+F5 and mechanical toggle)<br />
**Media player control<br />
*Some ACPI features: Works great with "Listen".<br />
**Battery status, power graphs and history (tested with an single 6-Cell battery)<br />
**Lid states and events<br />
<br />
<br />
====Enabling Touchpad on/off key====<br />
Source: [[https://help.ubuntu.com/community/SynapticsTouchpad#shmconfig]]<br />
The SHMConfig is now controlled through hal. In the past this was done through xorg.conf<br />
<br />
You have to add the file <br />
{{cmduser|sudo gedit /etc/hal/fdi/policy/shmconfig.fdi}}<br />
with the following content:<br />
<?xml version="1.0" encoding="ISO-8859-1"?><br />
<deviceinfo version="0.2"><br />
<device><br />
<match key="input.x11_driver" string="synaptics"><br />
<merge key="input.x11_options.SHMConfig" type="string">True</merge><br />
</match><br />
</device><br />
</deviceinfo><br />
<br />
After this change please reboot. Restarting hal doesn't help.<br />
====Disabling Touchpad while typing====<br />
Enable SHMConfig as described above under '''Enabling Touchpad on/off key''' and add the command <br />
{{cmduser|syndaemon -S -d}} <br />
under System -> Preferences -> Sessions -> Startup Programs.<br />
<br />
====Links for more information====<br />
Most stuff is identical to T400. so watch this link [[Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_Thinkpad_T400]]<br />
I will add more information in the next days. Please contribute, if you have more information!<br />
<br />
[[Category:T500]]<br />
<br />
====Fix runaway process issue====<br />
I had this issue where dd, klog, and syslog processes were consuming 50-100 of my cpu when running top. And they were filling my /var/log/klog, syslog files. They were up to 28gigs each when I found them.<br />
To fix this issue you have to enable the proposed updates repository and get the kernel update to 2.6.27-11<br />
Go to System->Administration->Software Sources and click the proposed updates checkbox, then when the updates come up make sure to get the kernel update to 2.6.27-11.<br />
[http://ubuntuforums.org/archive/index.php/t-1016864.html]</div>Centichttps://www.thinkwiki.org/w/index.php?title=ThinkPad_Button&diff=40583ThinkPad Button2009-01-11T22:08:28Z<p>Centic: /* Models featuring this Technology */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;" | [[Image:Accessibm.png]]<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 />
The ThinkPad Button is a button situated in the upper left corner of the keyboard on modern ThinkPads. It is intended to be a means of quick access to help and support. Technically it is nothing else than a button that can be configured to launch a certain piece of software. While originally it was grey and labelled {{ibmkey|ThinkPad|#494949}}, IBM later made it blue and called it the {{ibmkey|Access IBM|#495988}} Button. Lenovo relabelled it as {{ibmkey|ThinkVantage|#495988}} after it took over the ThinkPad line from IBM.<br />
</div><br />
|}<br />
__NOTOC__<br />
== System Boot ==<br />
Pressing {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkVantage|#495988}} at system boot can launch the [[Predesktop Area| Predesktop Area]]. This depends on a specific setting of the BIOS Setup Utility and on the availability of either a [[Hidden Protected Area|Hidden Protected Area]] or a [[Rescue and Recovery|Rescue and Recovery partition]]. See the linked pages for details.<br />
<br />
== Linux support ==<br />
===Using tpb===<br />
Under Linux, the IBM ThinkPad(tm) special keys can be enabled using [[tpb]].<br />
<br />
I.e., to make pressing the Access IBM Button launch ntpctl, add the following line {{path|/etc/tpbrc}} file: <br />
THINKPAD /usr/bin/X11/xterm -T ntpctl -e ntpctl<br />
<br />
To make pressing the Access IBM Button launch the ThinkWiki homepage in Firefox, add the following line: <br />
<nowiki>THINKPAD /usr/bin/firefox http://www.thinkwiki.org</nowiki><br />
<br />
See the [[tpb]] page and the [[How to get special keys to work | ThinkPad special keys HOWTO]] for more information.<br />
<br />
===Using KDE===<br />
<br />
KDE supports assigning actions to (some) ThinkPad special keys, through the ThinkPad buttons [[KMilo]] plugin. <br />
<br />
It can be activated and configured in the KDE Control Center (<tt>kcontrol</tt>), under <tt>System Administration --> IBM Thinkpad Laptop</tt>.<br />
<br />
===Using xbindkeys on Ubuntu===<br />
<br />
On Ubuntu (at least 7.04/Feisty) <code>tpb</code> is not really an option, because it conflicts with <code>hotkey-setup</code>, which is responsible for much things working out of the box.<br />
<br />
An alternative is to use <code>xbindkeys</code>, which can easily be installed with <code>aptitude install xbindkeys</code> or via the Synaptic package manager. It can be used to assign arbitrary commands to certain keycodes. Therefore, we first have to find this keycode by running <code>xbindkeys --key</code> and pressing the ThinkPad Button. This should result in something like the following:<br />
sean@amalthea ~ $ xbindkeys --key<br />
Press combination of keys or/and click under the window.<br />
You can use one of the two lines after "NoCommand"<br />
in $HOME/.xbindkeysrc to bind a key.<br />
"NoCommand"<br />
m:0x0 + c:159<br />
NoSymbol<br />
<br />
Now we can construct a minimal configuration file in <code>~/.xbindkeysrc</code>:<br />
"gnome-terminal"<br />
m:0x0 + c:159<br />
After starting <code>xbindkeys</code> without further options the ThinkPad Button should launch a new terminal. <br />
<br />
To start the program automatically at login add it under "System -> Preferences -> Sessions -> Startup Programs" (assuming the Gnome Desktop is used, otherwise add it to your <code>~/.xinitrc</code>, <code>~/.xsession</code> or whatever is responsible for startup items in your setting).<br />
<br />
===Using Gnome===<br />
<br />
A simpler but less flexible possibility than <code>xbindkeys</code> is "System -> Preferences -> Keyboard Shortcuts". Just go to (for example) "Run a terminal" and press the ThinkPad Button, when asked for a "New accelerator...". This will only work under the Gnome Desktop and cannot execute arbitrary commands, as <code>xbindkeys</code> and <code>tpb</code> can.<br />
<br />
== Windows support (2000 or XP) ==<br />
If you want to customize the program that is launched when the {{ibmkey|ThinkPad|#494949}}, {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkVantage|#495988}} button is pressed while<br />
the machine is running {{Windows}} (2000 or XP) you can change the following registry entry:<br />
<br />
<code>HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\8001</code><br />
<br />
Here are the default values for the original IBM version:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\8001]<br />
"File"="C:\\Program Files\\IBM\\Access IBM\\aibm.exe"<br />
"DispName"="Access IBM"<br />
<br />
And these are the default values for the Lenovo version:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\8001]<br />
"File"="C:\\PROGRA~1\\THINKV~1\\PrdCtr\\LPL1.exe"<br />
<br />
== Related Links ==<br />
*[[Python script for Windows to control ThinkPad features]] that also allows querying of the ThinkPad button<br />
*[http://www.pc.ibm.com/us/think/thinkvantagetech/accessibm.html IBMs Access IBM ThinkVantage Technology page]<br />
*[http://www-3.ibm.com/pc/support/site.wss/AIBM-TOOLS.html Access IBM - Customization Guide]<br />
<br />
==Models featuring this Technology==<br />
'''"ThinkPad" button'''<br />
*ThinkPad {{A Series}}<br />
*ThinkPad {{R30}}, {{R31}}, {{R32}}<br />
*ThinkPad {{T20}}, {{T21}}, {{T22}}, {{T23}}, {{T30}}<br />
*ThinkPad {{X20}}, {{X21}}, {{X22}}, {{X23}}, {{X24}}, {{X30}}<br />
*ThinkPad {{TransNote}}<br />
*ThinkPad {{S30}}, {{S31}}<br />
<br />
'''"Access IBM" button'''<br />
*ThinkPad {{G40}}, {{G41}}<br />
*ThinkPad {{R40}}, {{R40e}}, {{R50}}, {{R50e}}, {{R50p}}, {{R51}}, {{R51e}}, {{R52}}<br />
*ThinkPad {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}<br />
*ThinkPad {{X31}}, {{X32}}, {{X40}}, {{X41}}, {{X41T}}<br />
<br />
'''"ThinkVantage" button'''<br />
*ThinkPad {{R60}}, {{R60e}}, {{R61}}<br />
*ThinkPad {{T60}}, {{T60p}}, {{T61}}, {{T61p}}, {{T400}}, {{T500}}<br />
*ThinkPad {{X60}}, {{X60s}}, {{X61}}, {{X61s}}, {{X61_Tablet}}, {{X300}}, {{X200}}<br />
*ThinkPad {{Z Series}}<br />
<br />
<br />
[[Category:Glossary]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Fglrx&diff=40512Fglrx2009-01-09T07:48:11Z<p>Centic: add intrepid</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 />
<br />
'''Fglrx''' is a proprietary, Linux binary-only driver for ATI graphic chips with support for 3D acceleration.<br />
<br />
<adsense></adsense><br />
|}<br />
<br />
== Packages ==<br />
The ATI drivers have explicit permission for repackaging and redistribution of the Linux drivers. Many distributions are supported within the installer, and many more repackaged by external developers. Please visit the [http://wiki.cchtml.com/index.php/Category:Distributions Distribution Page at the Unofficial ATI driver Wiki]<br />
<br />
*{{Debian}}<br />
** These packages have been added to Debian unstable as <tt>fglrx-driver</tt>, so you can now apt-get them and use module-assistant to install.<br />
** If you are on stable sarge with backport's kernel 2.6.15, download ATI's installer, let it build Debian packages and proceed as usual. There's a [http://jroller.com/page/erAck?entry=lot_day_6_2_fglrx detailed description] available.<br />
** [http://wiki.cchtml.com/index.php/Debian_Installation_Guide Debian Howto]<br />
*{{SUSE}} packages: http://www.suse.de/~sndirsch/ati-installer-HOWTO.html<br />
*{{Gentoo}} {{cmdroot|emerge ati-drivers}}<br />
*{{Fedora}} 4 packages: http://rpm.livna.org<br />
** For stock Fedora kernels: {{cmdroot|yum install kernel-module-fglrx-$(uname -r) ati-fglrx }}<br />
** For custom-compiled kernels: see [[How to build custom packages for fglrx]]<br />
*{{Fedora}} 5 packages: http://rpm.livna.org<br />
** For stock Fedora kernels: {{cmdroot|yum install xorg-x11-drv-fglrx}}<br />
** For custom-compiled kernels: see [[How to build custom packages for fglrx]]<br />
*{{Fedora}} 7 packages: http://rpm.livna.org<br />
** The newest version of the driver (8.39.4) is supposed to work with Fedora 7, and is available from Livna.<br />
*{{Arch Linux}}<br />
:{{cmdroot|pacman -S catalyst}} (kernel module for the stock kernel)<br />
:{{cmdroot|pacman -S catalyst-utils}} (xorg7 stuff and tools)<br />
*{{Ubuntu}}<br />
**[http://wiki.cchtml.com/index.php/Ubuntu_Dapper_Installation_Guide Dapper Drake Howto]<br />
**[http://wiki.cchtml.com/index.php/Ubuntu_Breezy_Installation_Guide Breezy Badger Howto]<br />
**[http://wiki.cchtml.com/index.php/Ubuntu_Edgy_Installation_Guide Edgy Eft Howto]<br />
**[http://wiki.cchtml.com/index.php/Ubuntu_Feisty_Installation_Guide Feisty Fawn Howto]<br />
**[http://wiki.cchtml.com/index.php/Ubuntu_Gutsy_Installation_Guide Gutsy Howto]<br />
**[http://wiki.cchtml.com/index.php?title=Ubuntu_Hardy_Installation_Guide Hardy Howto]<br />
**[http://wiki.cchtml.com/index.php?title=Ubuntu_Intrepid_Installation_Guide Intrepid Howto]<br />
<br />
== Building for Xorg 7.0==<br />
To compile fglrx versions <= 8.24.8 for Xorg 7.0.0, fake Xorg 6.9.0 by <br />
:{{cmdroot|1=export X_VERSION=x690; sh ati-driver-installer-8.24.8-x86.run}}<br />
Next, move the various resulting libraries and modules from /usr/X11R6 to /usr/lib/xorg<br />
<br />
In {{path|/usr/src/ATI}} additional sources are installed for fireglcontrol and fgl_glxgears<br />
<br />
== Status ==<br />
Current version: 8.1 (8.454) (18st January 2008).<br />
Major changes:<br />
* 8.4 compilable on 2.6.25 using this [http://forums.gentoo.org/viewtopic-p-5037932.html#5037932 patch]<br />
<!-- some versions missing --><br />
* [https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/catalyst_81_linux.html 8.1]: Fixed suspending on kernel version 2.6.23 or later. Custom code in xorg.conf will no longer be ignored.<br />
* [http://www2.ati.com/drivers/linux/catalyst_712_linux.html 7-12]: FireGL support, fixed memory leak when running OpenGL applications, X -configure no longer results in a segmentation fault. Connecting a display device that supports 1680x1050 may result in a maximum display resolution of 1280x1024 only being available.<br />
* [http://www2.ati.com/drivers/linux/catalyst_711_linux.html 7-11]: new versioning scheme, kernel 2.6.23 support. Required for Xorg server 1.4, but does not support FireGL cards. So don't upgrade to Xorg 1.4 if you have one!<br />
* 8.42.3: Composite support added enabling AIGLX and Beryl/Compiz on the desktop. Support for (most?) FireGl cards dropped (should be restored in upcoming versions)<br />
* 8.41.7: increased OpenGL performance on some Radeon Cards, size/position TV-out adjustments work for Radeon X1900 or higher, X crash when connecting external DFP display fixed <br />
* 8.40.4: some new TV out control options in CCC, another (non-exciting) maintenance release (see [http://www.phoronix.com/scan.php?page=article&item=804&num=1 Phoronix])<br />
* 8.39.4: kernel 2.6.22 support, TexturedVideo fix, aticonfig segfault fix (see 8.38.7 hotfix), to get rid of the "AMD Testing use only" logo, use [http://www.phoronix.com/forums/showpost.php?p=10641&postcount=44 this] workaround.<br />
* 8.38.7: hotfix release for "Using aticonfig --initial segfaults destroying xorg.conf file when run in X with Vesa driver.", search for "737-28261" on the ATI website.<br />
* 8.38.6: RedHat Enterprise Linux 5 support, Xserver crashes on moving video window between two monitors fixed, corruption when playing multiple vodeps with textured video fixed<br />
* 8.37.6: Xorg Server 1.3 support, CCC 1.0, crash when logging off from X fixed, Xv cropping bug fixed<br />
* 8.36.5: Kernel 2.6.20 support, CCC Beta 0.9 with localization<br />
* 8.35.5: Beta AMD Catalyst Control Center, X-Server termination from console does not result in a blank screen. Kernel 2.6.20 requires some patching (see [[Problems_with_fglrx#fglrx_8.35.5|fglrx patches section]]).<br />
* 8.34.8: Radeon Xpress 1250 support, X-Video on x86_64 fix, hibernation mode fix. Kernel 2.6.20 requires some patching (see [[Problems_with_fglrx#fglrx_8.34.8|fglrx patches section]]).<br />
<br />
== Known problems and solutions ==<br />
See [[Problems with fglrx]].<br />
<br />
== User experience ==<br />
=== Speed ===<br />
How much is the speed gain versus the opensource drivers?<br />
<br />
Compared to the old drivers, approximately 40% speed gain have been noticed with fglrx. However, there are issues with freezing/garbage after suspend, garbage when resizing desktop (via {{key|ctrl}}{{key|alt}}{{key|plus}}, {{key|ctrl}}{{key|alt}}{{key|minus}}), and garbage while using VMware. The current 8.14.13 has shown 400% improvement over using the open source radeon driver: 1200 FPS for glxgears{{footnote|1}}!<br />
<br />
However the situation seems to be changing significantly as time goes on. With recent x11-drm-20060608 driver (gentoo) and thinkpad t42 (ati 9600) the speed is confirmed as 1900fps and stable. As of October 2007 there is dramatic improvement in the open source 3d drivers in speed and stability.<br />
<br />
=== 3D acceleration ===<br />
<br />
According to [http://xoomer.alice.it/flavio.stanchina/debian/fglrx-installer.html#configure Flavio's page] you need these options:<br />
<br />
Section "Module"<br />
...<br />
Load "GLcore"<br />
Load "glx"<br />
Load "dri"<br />
...<br />
EndSection<br />
<br />
# Of course you need to activate the driver<br />
Section "Device"<br />
...<br />
Driver "fglrx"<br />
EndSection<br />
<br />
Don't forget to load the module <tt>fglrx</tt> (<tt>modprobe fglrx</tt>). Under Debian the module can be placed in <tt>/etc/modules</tt>.<br />
<br />
With fglrx drivers prior to 8.42.3 will need to disable composite to enable 3D DRI acceleration. To do this, add an extra Extensions section (if necessary) containing:<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable" #make DRI work with fglrx.<br />
EndSection<br />
<br />
If you are unsure whether you have DRI running, issue <tt>glxinfo | grep -i direct</tt> after disabling composite. Note, this <br />
<br />
{{NOTE|1=Video overlay acceleration may be disabled when 3D acceleration is enabled. The following comment from the xorg.conf file bundled with the fglrx driver indicates that:<br />
# === OpenGL Overlay ===<br />
# Note: When OpenGL Overlay is enabled, Video Overlay<br />
# will be disabled automatically<br />
Option "OpenGLOverlay" "1"<br />
However, you can use either regular Xv video overlay or make the video an opengl texture and let the OpenGL engine scale your video. This has nothing to do with the acceleration of 2D drawing primitives. Further, your mileage on performance may vary depending on what card you have. The open source drivers don't support newer cards, while the ATI drivers don't support older cards.<br />
<br />
You may be able to preserve VideoOverlay acceleration if you explicitly remove the OpenGLOverlay using:<br />
<br />
Option "VideoOverlay" "True" and Option "OpenGLOverlay" "False". See [http://xoomer.alice.it/flavio.stanchina/debian/fglrx-installer.html#configure Flavio's page] for detail.}}<br />
<br />
=== Power saving ===<br />
Power saving is much better than with the <tt>radeon</tt> driver, but doesn't work in dual-screen configuration (see [[How to make use of Graphics Chips Power Management features]]).<br />
<br />
=== Suspending with fglrx ===<br />
<br />
On a ThinkPad T42 with Kernel 2.6.19 with Software Suspend 2 and R60 with Kernel 2.6.18-suspend2-r1 (Gentoo) , the following addition to <tt>/etc/hibernate/suspend2.conf</tt> is required:<br />
<br />
# For fglrx<br />
ProcSetting extra_pages_allowance 20000<br />
<br />
=== Display Switching (Dynamic Display Management) ===<br />
<br />
Version 8.25.18 introduces a new feature: Dynamic Display Management. It allows display switching on-the-fly.<br />
<br />
To list all connected and enabled monitors:<br />
:{{cmdroot|1=aticonfig --query-monitor}}<br />
<br />
To switch displays:<br />
:{{cmdroot|1=aticonfig --enable-monitor=STRING,STRING}}, where STRING can be: none, lvds, crt1, crt2, tv, tdms1, tdms2<br />
<br />
Only 2 displays can be enabled at the same time. Any displays that are not on the list will be disabled.<br />
<br />
Using an [[Script for Dynamic Display Management with fglrx|ACPI script]], aticonfig can be used to switch displays on a key press.<br />
<br />
The '''Catalyst Control Center''', which comes with the driver (at least from Livna in Fedora Core 6) can be used to do this switching. It also does various other kinds of display managements. However, the version that comes with 8.39.4 doesn't seem to handle switching into Big Desktop mode, does anyone know how to get this to work? The control center also complains a lot about rebooting, but rebooting doesn't seem to be required. Does anyone have decent documentation for the control center?<br />
<br />
== Useful links == <br />
* [http://www.ati.com/products/catalyst/linux.html ATI Linux Driver FAQ]<br />
* [http://www.rage3d.com/content/articles/atilinuxhowto/ ATI Radeon Linux How-To]<br />
* [http://www.rage3d.com/board/forumdisplay.php?f=61&daysprune=30&order=asc&sort=title Rage3D Linux Discussion Forum]<br />
* [http://www.driverheaven.net/forumdisplay.php?f=103 Radeon Driver Forum at Driverheaven]<br />
* [http://odin.prohosting.com/wedge01/gentoo-radeon-faq.html Gentoo ATI Radeon FAQ]<br />
* [http://forums.gentoo.org/viewtopic-t-374745-highlight-t42+ati+dri.html Gentoo T42 ATI. DRI + xorg driver]<br />
* [http://ati.cchtml.com/ Unofficial community ATI bugzilla] - tracks bugs in the driver. Might be monitored by ATI ([http://www.rage3d.com/board/showpost.php?p=1333438751&postcount=386], [http://www.rage3d.com/board/showpost.php?p=1333439009&postcount=390]).<br />
<br />
== ThinkPads that may be supported ==<br />
Supported chips, as found in select IBM ThinkPads:<br />
{{NOTE|fglrx version 8.29.6 discontinued support for Radeon 9200 and earlier.}}<br />
* [[ATI Mobility FireGL 9000]]<br />
** {{T40p}}<br />
* [[ATI Mobility FireGL T2]]<br />
** {{R50p}}<br />
** {{T41p}}, {{T42p}}<br />
* [[ATI Mobility FireGL V3200]]<br />
** {{T43p}}<br />
* [[ATI Mobility Radeon 9000]]<br />
** {{R50}}, {{R51}}<br />
** {{T40}}, {{T41}}, {{T42}}<br />
* [[ATI Mobility Radeon 9600]]<br />
** {{T42}}<br />
* [[ATI Mobility Radeon X300]]<br />
** {{R52}}<br />
** {{T43}}<br />
** {{Z60m}}<br />
* [[ATI Mobility Radeon Xpress 200M]]<br />
** {{R51e}}<br />
* [[ATI Mobility Radeon X600]]<br />
** {{Z60m}}<br />
* [[ATI Mobility Radeon X1400]]<br />
** {{T60}}, {{R60}}, {{Z61m}}<br />
* [[ATI Mobility FireGL V5200]]<br />
** {{T60p}}, {{Z61p}}<br />
<br />
== ThinkPads that are NOT supported by fglrx==<br />
Unsupported chips, as found in select IBM ThinkPads:<br />
* [[ATI Mobility Radeon 7500]]<br />
** {{R40}}<br />
** {{R51}}<br />
** {{T30}}<br />
** {{T41}}<br />
** {{T42}}<br />
<br />
{{footnotes|<br />
#Note that glxgears isn't a benchmark tool, it's so simple that its FPS values is without any meaning... you can only compare glxgears using the same drivers/machine, if you change any of then you can have higher/lower values and in real life programs/games happen to have the opposite effects. Think in terms of a car engines rpms: higher rpms in the same car usually means a faster car, change anything and it's meaningless, ie: gears, truck, wheel size, etc. make it useless.<br />
}}<br />
<br />
== See also ==<br />
* [[radeon]]<br />
<br />
== External links ==<br />
* [http://ati.amd.com/support/drivers/linux/linux-radeon.html Official website]<br />
<br />
<br />
[[Category:Drivers]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Category_talk:T500&diff=40443Category talk:T5002009-01-02T10:01:17Z<p>Centic: â†Created page with '== Type of ATI graphics adapter == * I think the ATI graphics adapter is a "ATI Radeon HD3650", see http://www-307.ibm.com/pc/support/site.wss/quickPath.do?quickPathEntry...'</p>
<hr />
<div>== Type of ATI graphics adapter ==<br />
<br />
* I think the ATI graphics adapter is a "ATI Radeon HD3650", see http://www-307.ibm.com/pc/support/site.wss/quickPath.do?quickPathEntry=205545g&sitestyle=lenovo --[[User:Centic|Centic]] 11:01, 2 January 2009 (CET)----</div>Centichttps://www.thinkwiki.org/w/index.php?title=Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_ThinkPad_T500&diff=40065Install Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T5002008-11-30T11:49:24Z<p>Centic: cat</p>
<hr />
<div>[[:Category:T500|T500]] '''Site under construction. You are invited building an useful guidance!'''<br />
<br />
==Before Installation==<br />
<br />
Before you can start Ubuntu from CD or USB you have to change two BIOS settings:<br />
* Change to Internal or ATI Graphics with Config --> Display --> Graphics Device --> [Integrated graphics] or [Discrete Graphics]<br />
* Disable OS Detection for Switchable Graphics. Otherwise it will mysteriously switch back to Switchable Graphics.<br />
<br />
Now you can boot your Live-CD, connect to Wireless Lan, and install the OS.<br />
<br />
==What works out of the box?==<br />
<br />
*Wireless with iwlagn driver ([[Intel WiFi Link 5100/5300 WLAN controller]])<br />
**G mode + WEP, WPA and WPA2.<br />
**with status LED and everything!<br />
*Bluetooth<br />
**I could connect my nokia mobile phone through bluetooth<br />
*[[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]<br />
*Intel driver for Integrated Graphics ([[Intel Integrated Intel GMA 4500MHD]])<br />
** with 3D acceleration out-of-the-box<br />
** VGA output - mirrored, other not fixed yet<br />
*ATI [[fglrx]] doesn't matter for me at the moment. Intel Graphics works fine!<br />
*Touchpoint and Trackpad<br />
**Including scroll at the right side of the pad by default. <br />
*Optical drive<br />
**Not tested burning yet.<br />
*Sound card<br />
**To use your internal microphone you have to change to "HDA Intel CONEXANT Analog (ALSA)" in audio-settings.<br />
*7-in-1 card reader from Ricoh (MMC, Memory Stick, Mem Stick Pro, SD, SDHC, XD, XD Type H Memory)<br />
**Only tested SD cards.<br />
*Control buttons/Hotkeys<br />
**Volume control buttons<br />
**Screen brightness control works fine. So there is a strange behaviour. If you change the brightness to dark it gets darker then it gets a bit lighter and after view steps it stay dark. The display of ubuntu shows that it is maximum dark or maximum light, but it still changes. Not a real problem though.<br />
**Thinklight control<br />
**WLAN/BT/OFF toggle (Fn+F5 and mechanical toggle)<br />
**Media player control<br />
*Some ACPI features: Works great with "Listen".<br />
**Battery status, power graphs and history (tested with an single 6-Cell battery)<br />
**Lid states and events<br />
<br />
<br />
====Enabling Touchpad on/off key====<br />
Source: [[https://help.ubuntu.com/community/SynapticsTouchpad#shmconfig]]<br />
The SHMConfig is now controlled through hal. In the past this was done through xorg.conf<br />
<br />
You have to add the file <br />
{{cmduser|sudo gedit /etc/hal/fdi/policy/shmconfig.fdi}}<br />
with the following content:<br />
<?xml version="1.0" encoding="ISO-8859-1"?><br />
<deviceinfo version="0.2"><br />
<device><br />
<match key="input.x11_driver" string="synaptics"><br />
<merge key="input.x11_options.SHMConfig" type="string">True</merge><br />
</match><br />
</device><br />
</deviceinfo><br />
<br />
After this change please reboot. Restarting hal doesn't help.<br />
<br />
====Links for more information====<br />
Most stuff is identical to T400. so watch this link [[Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_Thinkpad_T400]]<br />
I will add more information in the next days. Please contribute, if you have more information!<br />
<br />
[[Category:T500]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Talk:HDAPS&diff=40064Talk:HDAPS2008-11-30T11:34:21Z<p>Centic: answer question and move older discussion from top to the bottom</p>
<hr />
<div>== Where can one find the recent hdapsd version mentioned in the article ? ==<br />
The article mentions "New interface (requires hdapsd dated 2008-10-04 or newer)" without giving any clue about where one can find such a version, I looked in repositories, google and elsewhere in this very site and found an outdated http://www.dresco.co.uk/hdaps/ , as a newcomer here, it eludes me completely. [[User:Bugmenot1|Bugmenot1]] 21:38, 28 November 2008 (CET)<br />
<br />
:I had the same problem, I think I found it via [[How_to_protect_the_harddisk_through_APS#Manual_compilation_from_source]], it links to a mailing list post at [http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1040] which has an attached source file at [http://cache.gmane.org//gmane/linux/drivers/hdaps/devel/1040-001.bin], this can be compiled easily with ''gcc -o hdapsd hdapsd.c''. Why this is not released cleanly on the original homepage eludes me as well... --[[User:Centic|Centic]] 12:34, 30 November 2008 (CET)<br />
<br />
== "Reduced Power" hdapsd Consuming More Power ==<br />
<br />
There is a link to a "reduced power" version of hdapsd, which is supposed to lower the number of timer interrupts (thereby reducing the power consumed by the daemon). From my experiments (using powertop), however, this program requires about twice as many interrupts to operate in "low power" mode as it does using the (older) sysfs interface. It also consumes enough CPU cycles to force my CPU back on periodically, consuming more power. Has anybody else had this experience?<br />
<br />
--[[User:Mbsullivan|Mbsullivan]] 05:41, 24 August 2007 (UTC)<br />
<br />
:Well, not really. With tp_smapi 0.31 and older hdapsd I had wakeups from hdapsd and from the hdaps module, now powertop only shows about 50wakeups from hdapsd (which are really from the module, but this is a bug in powertop, it tells who first called a function, not whose function it is [it's a function in the module code]). So I get a lower power consumption with the newer pair of tpsmapi and hdapsd<br />
:--[[User:Zhenech|Zhenech]] 07:26, 24 August 2007 (UTC)<br />
<br />
== I hawe a problem ==<br />
<br />
I tray to start working my IBM x40 with hdaps function but I can't make it right.<br />
<br />
The main problem is in a not hanging variables when I read<br />
/sys/devices/platform/hdaps/position<br />
<br />
==I also have this problem!==<br />
Hi, I also have this problem that on my X40 the device/platform/hdaps/position does not give the right response. It is simply constant (128,1).<br />
Does anyone have a clue? I use the suse kernel 2.6.16.13-4-default from suse10.1. the hdaps sources in that kernel are the same as in the original kernel.<br />
thanks in advance,<br />
----<br />
<br />
Does the HDAPS sensor work under Windows (as observed from actual disk parking, or the graphical animation)? <br />
Also, try loading [[tp_smapi]], it includes some patches for the hdaps driver. Does it help?<br />
<br />
--[[User:Thinker|Thinker]] 16:45, 8 June 2006 (CEST)<br />
----<br />
<br />
HI Again,<br />
HDAPS does work under windows. When I had windows running and then reboot the machine, hdaps is running under suse10.1 also. If I, however, turn off the machine and restart it, then, hdaps does *not* work anymore.<br />
I remember that with suse 10.0 and the separate module, hdaps did work.<br />
HDAPS now works with tp_smapi as suggested above.<br />
Still, where does the problem derive from?<br />
<br />
----<br />
<br />
The hdaps in the vanilla kernel has some bugs (i.e., in doesn't talk to the hardware correctly) which tp_smapi fixes. Looks like you've hit one of these.<br />
<br />
--[[User:Thinker|Thinker]] 18:05, 12 June 2006 (CEST)<br />
----<br />
<br />
==laptop acpi problem with hdaps==<br />
<b> UPDATE: the problem seems fixed in the version 0.21 </b><br><br><br />
<s><br />
My my both IBM T42/T43 laptops freezes time to times with the follow:<br />
<br />
kernel 2.6.16/sata patch<br><br />
hdaps build as a module from the kernel.<br />
tp_smapi 0.20/hdapsd<br />
<br />
The freez is quite common then I access CD-ROM,but it also might freez without touching anything.<br><br />
After the freez keyboard doesn't work or priting some character,power button doesn't work, however mouse might continue to work.<br><br />
KDE battery systray shows discarchged batteries.<br><br />
Still under investigation that cases the problem.<br><br />
The related software:<br />
khdapsmon 0.1.2<br><br />
ibm-acpi build-in as a module from the kernel(for ksensors)<br />
modified ksensors without lm_sensors with a patch<br />
http://bugs.gentoo.org/show_bug.cgi?id=116661<br />
<br />
--noname 00:25, 13 June 2006 (CEST)Anton<br />
<br />
----<br />
<br />
You're the 2nd one reporting this. The fact you can reproduce it on two machines may be very helpful! Are these machines configured identically? Do they run the same software? Can you send your kernel .config, and precise kernel version + patches, to the e-mail address in the tp_smapi README? Please specify which hdaps or tp_smapi -related applications you're typically running.<br />
<br />
BTW, if you have [[swsusp]] or [[Software Suspend 2]] installed, you can do a suspend-to-disk cycle to recover from the hang.<br />
<br />
--[[User:Thinker|Thinker]] 11:53, 13 June 2006 (CEST)<br />
----<br />
<br />
I also have the follow <br />
[[Problems_with_SATA_and_Linux#No_DMA_on_DVD_drive]].<br />
So I switched cdrom driver from IDE to ATA and it fixed the problem.<br />
However HDAPS has stared to freez a machine if I shake it then HDD is active.<br />
The issue might be not related to ACPI but I'll log it here for now.<br />
<br />
I'll send configs. Thank you.<br />
ps. 0.21 is out so let me try the new version.<br />
--noname 08:34, 22 June 2006 (CEST)Anton<br />
</s><br />
<br />
== hdaps and /sys ==<br />
<br />
Hey Fellas,<br />
<br />
I've just upgraded from 2.6.15.2, where the patches all dropped in ok and all was well, to 2.6.17.6, where hdaps is built into the kernel.<br />
the hdapsd daemon referenced on thinkwiki looks in /sys/block/<drive>/queue/protect to get started.<br />
The default drivers that come with 2.6.17.6 for hdaps apparently dont put anything in /queue there, so there is no 'protect' directory.<br />
Has anyone else experienced this? I'd love to get my drive protection back :)<br />
ON THE UPSIDE! - the Ricoh card reader in my z60m came to life, and I can read sd cards (but not sony memory sticks, oddly enough)<br />
Any input would be awesome!<br />
dan@itkinetix.com<br />
<br />
----<br />
<br />
You need an extra kernel patch for "protect". Please read the page more carefully.<br />
<br />
--[[User:Thinker|Thinker]] 00:24, 22 July 2006 (CEST)<br />
----<br />
<br />
== Older discussion ==<br />
<br />
So, this is in the stable kernel now, but what userspace program do we need to actually park the heads?<br />
--[[User:MrStaticVoid|MrStaticVoid]] 01:26, 30 Oct 2005 (CEST)<br />
----<br />
Yes the hdaps driver is in the 2.6.14 kernel, but support to park the heads quickly and freeze the disk queue (to prevent the heads from getting un-parked) is not. There is some disagreement into how that should be implemented.<br />
<br />
In other words, the hdaps driver for the moment is rather useless, unless you want to use it to play games.<br />
<br />
--[[User:Tonko|Tonko]] 02:10, 30 Oct 2005 (CEST)<br />
<br />
----<br />
I head rumours that you can make SDL handle this like a joystick, e.g. for playing Neverball. Can anyone confirm or deny that? Thanx --[[User:Nomeata|Nomeata]] 01:16, 16 Nov 2005 (CET)<br />
<br />
Yes it is possible to use it as a joystick, as Tonko allready mentioned.<br />
/dev/input/jsX modprobe joydev<br />
<br />
Ozi<br />
<br />
Thanks, I didn't have the joydev module. Rebuilding... --[[User:129.13.186.1|129.13.186.1]] 15:30, 16 Nov 2005 (CET)<br />
<br />
----<br />
Yeah, it's a pretty good party trick - set up the HDAPS joystick as xmame input. You can play Ms. Pac-man by tilting your laptop to make pac-man navigate the maze. You can imagine that the pac-man "rolls" downhill, just like those old wooden marble-puzzles that you see around. Heh, can actually clear a level or two.<br />
<br />
Marble madness was strangely unsatisfying though, and just didn't work well (probably due to the diagonal nature of the screen in that game).<br />
<br />
--[[User:gsmenden|gsmenden]] 20:10, 13 Jan 2006 (CEST)<br />
<br />
----<br />
Anyone got the queue freezing patch running on 2.6.16? I'm going to try to manually merge it but didn't want to duplicate someone else's work.<br />
<br />
--[[User:Ajbarr|Ajbarr]] 19:12, 22 March 2006 (CET)</div>Centichttps://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&diff=39881List of DMI IDs2008-11-23T14:32:30Z<p>Centic: /* T series */ T500</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"<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>baseboard-<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 />
| {{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 />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<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 />
| {{A22p}} 2629-USG<br />
|| IBM || 2629USG || Not Available || IBM || 2629USG || Not Available || IBM || Not Available || IBM || KYET36WW (1.09a) || 10/17/2002 <br />
||<br />
|| {{WARN|Outdated BIOS}}<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 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1NHT04WW-1.01 ]-</nowiki><br />
||<br />
|-<br />
| {{A31p}} 2653H6U<br />
|| IBM || 2653H6U || Not Available || IBM || 2653H6U || Not Available || IBM || Not Available || IBM || 1GET31WW (1.03 ) || 07/23/2002<br />
||<br />
|| {{WARN|Missing EC string, extremely outdated BIOS}}{{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 />
|| {{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 />
|| {{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}} 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 />
|| {{WARN|Outdated BIOS}}<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 />
|{{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 />
| {{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 />
|| {{NOTE|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 />
|| {{NOTE|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 />
|| {{NOTE|With this bios version the brightness control buttons don't work for kernel < 2.6.20}}<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}} 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 />
|| {{NOTE|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 />
|<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}} 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 />
| {{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 />
| {{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 />
! 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 />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====SL series====<br />
|-<br />
| {{SL500}} 2746-3ZG<br />
|| LENOVO. || 27463ZG || ThinkPad SL500 || LENOVO || BOXSTER || LENOVO 6AET42WW || LENOVO || LENOVO 6AET42WW || LENOVO || 6AET42WW || 08/04/2008 <br />
|| <nowiki></nowiki><br />
|| {{WARN|IdeaPad EC and BIOS. This is an IdeaPad in disguise.}}<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 />
|| {{WARN|Very outdated BIOS}}<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 />
| {{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-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 />
|| {{NOTE|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 />
| {{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 />
|| {{NOTE|Missing EC string, this bug is known to be fixed in latest BIOS}}<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 />
| {{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 />
|| {{NOTE|Missing EC string, this bug is known to be fixed in latest BIOS}}<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 />
| {{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-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}} 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-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-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 />
|| {{NOTE|User reports this is really a 2669-CEU with 1GB RAM + BlueTooth, and not a 2669-WE5 (unverified if this makes sense)}}<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}} 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 />
| {{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}}<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 />
| {{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}} 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}} 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 />
|| {{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}} 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}} 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 />
| {{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 />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<br />
====X series====<br />
|-<br />
| {{X20}} 266231G<br />
|| IBM || 266231G || Not Available || IBM || 266231G || Not Available || IBM || Not Available || IBM || IZET9DWW (2.25 ) || 04/17/2003<br />
||<br />
||<br />
|-<br />
|| 266232G || IBM || 266232G || Not Available || IBM || 266232G || Not Available || IBM || Not Available || IBM || IZET9AWW (2.22 ) || 09/11/2002<br />
|| <nowiki></nowiki><br />
||<br />
|-<br />
| {{X23}} 2662EBG<br />
|| IBM || 2662EBG || Not Available || IBM || 2662EBG || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003<br />
|| <nowiki></nowiki><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 || 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-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-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 />
| {{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}} 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-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-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 />
| {{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}} 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 />
| {{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-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 />
| {{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 />
| {{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}} 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 />
| {{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 />
| {{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 />
! 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}} 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 />
| {{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 || 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 />
! colspan=14 style="text-align:center;background:#efefef;" |<br />
<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 />
|| <nowiki></nowiki><br />
|| {{WARN|Non-ThinkPad EC firmware and BIOS}}<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` "; 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 />
While at it, you may also want to 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 />
* [[ibm-acpi]]/thinkpad-acpi driver quirk list</div>Centichttps://www.thinkwiki.org/w/index.php?title=Tp_smapi&diff=39880Tp smapi2008-11-23T14:30:48Z<p>Centic: /* T series */ fix and BIOS version</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. It 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 />
For older ThinkPad models, see also [[tpctl]].<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 />
*Battery charge/discharge control<br />
*Battery status information<br />
*Modified [[HDAPS]] driver with improved stability, model support and functionality<br />
<br />
===Project Homepage / Availability===<br />
* Project page: http://tpctl.sourceforge.net/<br />
* You need to [http://sourceforge.net/project/showfiles.php?group_id=1212&package_id=171579 download] only the <tt>tp_smapi</tt> 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.39.tgz}}<br />
:{{cmdroot|cd tp_smapi-0.39}}<br />
<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 />
<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 />
<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) or testing (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 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 />
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 />
<br />
====Installation on Ubuntu Hardy====<br />
Ubuntu ships tp_smapi in their linux-ubuntu-modules Package since 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>. You should load <tt>hdaps_ec</tt>, not <tt>hdaps</tt>.<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 source -> /usr/src/linux-source-2.6.20</nowiki></pre><br />
Create the link if the line above is not existent:<br />
<pre><nowiki>root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/source</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 ad 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]].}}<br />
<br />
To cancel forced discharge:<br />
:{{cmdroot|echo 0 > /sys/devices/platform/smapi/BAT0/force_discharge}}<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. 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 />
<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 />
===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}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{A30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<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}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
=====R series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{R31}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cunk}} || || || || No SMAPI BIOS<br />
|-<br />
! {{R40}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{R50}}<br />
| {{Cunk}} || {{Cno}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{R50e}} 1834-JAG<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{R50e}} 1834-5US<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<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 />
| {{Cunk}} || {{Cunk}} || {{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 />
<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}} || {{Cunk}} || {{Cunk}} || || || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.<br />
|-<br />
! {{T22}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cunk}} || || || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.<br />
|-<br />
! {{T23}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T40}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T40p}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T41}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<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 />
! {{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}} and {{T500}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} 1 || 0.37 || 1.19 || || Modules ''tp_smapi'' and ''thinkpad_ec'' fail to load on Ubuntu/Kubuntu, see http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html for discussion.<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
<br />
=====X series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{X20}} 2662-31G<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{X24}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{X30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.34 || 1.09 || ||<br />
|-<br />
! {{X31}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{X32}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<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 />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{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 />
! {{X60s}} 1704-5UG<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||<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 />
! {{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 />
! {{X61_Tablet}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32 || || ||<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}} 7675-CTO<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1 || || ||<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 tp_smapi's hdaps driver 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 />
<tt>invert</tt> is an integer between 0 and 7, whose meaning is as follows. 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.</div>Centichttps://www.thinkwiki.org/w/index.php?title=Tp_smapi&diff=39879Tp smapi2008-11-23T14:06:44Z<p>Centic: /* T series */ add line for T400 and T500</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. It 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 />
For older ThinkPad models, see also [[tpctl]].<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 />
*Battery charge/discharge control<br />
*Battery status information<br />
*Modified [[HDAPS]] driver with improved stability, model support and functionality<br />
<br />
===Project Homepage / Availability===<br />
* Project page: http://tpctl.sourceforge.net/<br />
* You need to [http://sourceforge.net/project/showfiles.php?group_id=1212&package_id=171579 download] only the <tt>tp_smapi</tt> 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.39.tgz}}<br />
:{{cmdroot|cd tp_smapi-0.39}}<br />
<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 />
<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 />
<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) or testing (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 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 />
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 />
<br />
====Installation on Ubuntu Hardy====<br />
Ubuntu ships tp_smapi in their linux-ubuntu-modules Package since 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>. You should load <tt>hdaps_ec</tt>, not <tt>hdaps</tt>.<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 source -> /usr/src/linux-source-2.6.20</nowiki></pre><br />
Create the link if the line above is not existent:<br />
<pre><nowiki>root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/source</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 ad 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]].}}<br />
<br />
To cancel forced discharge:<br />
:{{cmdroot|echo 0 > /sys/devices/platform/smapi/BAT0/force_discharge}}<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. 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 />
<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 />
===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}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{A30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<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}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! colspan=12 style="text-align:center;background:#efefef;" |<br />
=====R series=====<br />
|-<br />
{{tp_smapi/model_status_table_header}}<br />
|-<br />
! {{R31}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cunk}} || || || || No SMAPI BIOS<br />
|-<br />
! {{R40}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{R50}}<br />
| {{Cunk}} || {{Cno}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{R50e}} 1834-JAG<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{R50e}} 1834-5US<br />
| {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<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 />
| {{Cunk}} || {{Cunk}} || {{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 />
<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}} || {{Cunk}} || {{Cunk}} || || || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.<br />
|-<br />
! {{T22}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cunk}} || || || || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.<br />
|-<br />
! {{T23}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T40}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T40p}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{T41}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<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 />
! {{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 />
|-<br />
! {{T400}} and {{T500}}<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} 1 || 0.37 || || || Modules ''tp_smapi'' and ''thinkpad_ec'' fail to load on Ubuntu/Kubuntu, see http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html for discussion.<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 />
! {{X20}} 2662-31G<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{X24}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{X30}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.34 || 1.09 || ||<br />
|-<br />
! {{X31}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<br />
|-<br />
! {{X32}}<br />
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || || || ||<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 />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{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 />
! {{X60s}} 1704-5UG<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||<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 />
! {{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 />
! {{X61_Tablet}}<br />
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32 || || ||<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}} 7675-CTO<br />
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1 || || ||<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 tp_smapi's hdaps driver 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 />
<tt>invert</tt> is an integer between 0 and 7, whose meaning is as follows. 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.</div>Centichttps://www.thinkwiki.org/w/index.php?title=Template:T_Series&diff=39874Template:T Series2008-11-23T09:42:41Z<p>Centic: add T400 and T500 to the T-Series list</p>
<hr />
<div>{{T20}}, {{T21}}, {{T22}}, {{T23}}, {{T30}}, {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}, {{T60p}}, {{T61}}, {{T61p}}, {{T400}}, {{T500}}</div>Centichttps://www.thinkwiki.org/w/index.php?title=Switchable_Graphics&diff=39717Switchable Graphics2008-11-13T22:19:20Z<p>Centic: cat and links</p>
<hr />
<div>With newer laptops based on the Intel [[Centrino]] 2 platform (codename [[Montevina]]) switching between a weak, low power consumption integrated GPU and high performance dedicated GPU is possible with laptops with the feature enabled. Some examples are the [[:Category:T400|T400]], [[:Category:T500|T500]]. Note that this feature is not available on any X, W or SL series laptop.<br />
<br />
In Linux, switching graphics has to be done in the BIOS. Vista currently has drivers that allows on the fly switching.<br />
<br />
[[Category:T400]]<br />
[[Category:T500]]</div>Centichttps://www.thinkwiki.org/w/index.php?title=Installation_instructions_for_the_ThinkPad_T61p&diff=39716Installation instructions for the ThinkPad T61p2008-11-13T22:06:39Z<p>Centic: /* Other */ cat</p>
<hr />
<div>The links on this page are specific for installing distributions on the T61p<br />
<br />
=== Debian ===<br />
* [[Installing_Debian_lenny_on_a_ThinkPad_T61p | Debian Lenny]]<br />
* [http://www.klabs.be/~fpiat/linux/debian/Etch_on_Thinkpad_T61.html Debian Etch], 2007-05-22<br />
<br />
=== Fedora ===<br />
* [[Installing_Fedora_7_on_a_ThinkPad_T61p | Fedora 7]]<br />
* [[Installing_Fedora_8_on_a_ThinkPad_T61p | Fedora 8]]<br />
<br />
=== Gentoo ===<br />
* [http://schlitt.info/applications/blog/index.php?/archives/563-My-now-notebook.html Migrating Gentoo from T43p to T61p], 2007-09-27<br />
<br />
=== OpenSUSE ===<br />
* [[Installing OPENSUSE 10.3 on a ThinkPad T61p | OpenSUSE 10.3]]<br />
* [[Installing OPENSUSE 11.0 on a ThinkPad T61p | OpenSUSE 11.0]]<br />
<br />
=== Ubuntu ===<br />
* [[Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_T61 | 7.04 (Feisty Fawn)]]<br />
* [[Install Ubuntu Gutsy Gibbon on a T61p | 7.10 (Gutsy Gibbon)]]<br />
* [[Install Ubuntu Hardy Heron on a T61p | 8.04 (Hardy Heron)]]<br />
* [[Install Ubuntu Intrepid Ibex on a T61p | 8.10 (Intrepid Ibex)]]<br />
<br />
=== Other ===<br />
* [http://lists.2rosenthals.com/ecs-t6x/List.html T61 eComStation (OS/2) Mailing List archives ]<br />
<br />
<br />
(Note that the following categories applies to T60, They might also apply to T61 (test and update the list, please) : Thermal_Sensors Tp_smapi Table_of_ibm-acpi_LEDs Swsusp Software_Suspend_2 Rescue_and_Recovery Problems_with_SATA_and_Linux Problem_with_video_output_switching Problem_with_fan_noise Problem_with_high_pitch_noises How_to_control_fan_speed Embedded_Controller_Firmware<br />
<br />
[[Category:T61p]]</div>Centic