<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ryanc</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ryanc"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Ryanc"/>
	<updated>2026-04-30T20:42:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:X200&amp;diff=38724</id>
		<title>Category:X200</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:X200&amp;diff=38724"/>
		<updated>2008-08-28T00:39:05Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
=== ThinkPad X200 ===&lt;br /&gt;
This page gives an overview of all ThinkPad X200 related topics.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
* One of the following processors:&lt;br /&gt;
** [[Intel Core 2 Duo]] P8400, 2.26Ghz, 3MB L2, 1066Mhz FSB&lt;br /&gt;
** [[Intel Core 2 Duo]] P8600, 2.40Ghz, 3MB L2, 1066Mhz FSB&lt;br /&gt;
* [[Intel Graphics Media Accelerator 4700 MHD]] onboard graphics&lt;br /&gt;
** 12&amp;quot; CCFL with 1280×800 (WXGA, 200 nit)&lt;br /&gt;
* Support for up to 5GB DDR3-RAM [[PC3-8500]]&lt;br /&gt;
** As of 27 Aug 2008, 4GB option is most available and '''only''' if you select upgrade to Windows Vista Business 64&lt;br /&gt;
* One of the following hard drives:&lt;br /&gt;
** 80,160,250 GB SATA 2.5&amp;quot; 5400/7200RPM&lt;br /&gt;
** 320 GB 5400RPM&lt;br /&gt;
** 200 GB Sata 2.5&amp;quot; 7200RPM with [[Full Disk Encryption (FDE)]]&lt;br /&gt;
** 64 GB SATA 1.8&amp;quot; SSD&lt;br /&gt;
* ThinkPad X200 Ultrabase&lt;br /&gt;
** DVD-ROM, CD-RW/DVD-ROM, DVD Burner, Blu-ray&lt;br /&gt;
* One of the following expansion slots:&lt;br /&gt;
** 5-1 Media card Reader with Modem&lt;br /&gt;
** 3-1 Media card Reader without Modem&lt;br /&gt;
* [[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]&lt;br /&gt;
* [[MiniPCI Express slot]] 1 with one of the following:&lt;br /&gt;
** [[ThinkPad 11b/g Wireless LAN Mini-PCI Express Adapter III]]&lt;br /&gt;
** [[Intel Wifi Link 5100 (AGN)]]&lt;br /&gt;
** [[Intel Wifi Link 5300 (AGN)]]&lt;br /&gt;
* [[MiniPCI Express slot]] 2 with one of the following:&lt;br /&gt;
** Integrated WWAN with GPS&lt;br /&gt;
** Integrated Ultra Wide Band (UWB) for AT&amp;amp;T&lt;br /&gt;
** Integrated Ultra Wide Band (UWB) for Verizon&lt;br /&gt;
** WiMAX (late 2008)&lt;br /&gt;
** [[Intel® Turbo Memory hard drive cache]] 2GB&lt;br /&gt;
* Optional Features&lt;br /&gt;
** Integrated camera&lt;br /&gt;
** Integrated digital microphone&lt;br /&gt;
** Security cable slot&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
* [[ThinkPad_Bluetooth_with_Enhanced_Data_Rate_(BDC-2)|Bluetooth]]&lt;br /&gt;
* [[Embedded Security Subsystem|IBM Embedded Security Subsystem 2.0]]&lt;br /&gt;
* [[Active Protection System|IBM Active Protection System]]&lt;br /&gt;
* TrackPoint '''only'''&lt;br /&gt;
* One of the following batteries&lt;br /&gt;
** 4-cell battery, up to 3.3 hr, 1.34kg&lt;br /&gt;
** 6-cell battery, up to 6.5 hr, 1.47kg&lt;br /&gt;
** 9-cell battery, up to 9.8 hr, 1.63kg (protrudes out back 22.8cm/.9in)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Resources ====&lt;br /&gt;
* [http://shop.lenovo.com/ISS_Static/merchandising/US/PDFs/x200_datasheet.pdf X200 Technical Specifications (pdf)]&lt;br /&gt;
&lt;br /&gt;
==== Reviews ====&lt;br /&gt;
* [http://www.notebookreview.com/default.asp?newsID=4497 Notebookreview.com] 2008-07-15&lt;br /&gt;
* [http://www.laptopmag.com/review/laptops/lenovo-thinkpad-x200.aspx Laptopmag.com] 2007-07-14&lt;br /&gt;
* [http://reviews.cnet.com/laptops/lenovo-thinkpad-x200/4505-3121_7-33184078.html Cnet.com] 2008-08-14&lt;br /&gt;
&lt;br /&gt;
[[Category:X Series]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Template:X_Series&amp;diff=38723</id>
		<title>Template:X Series</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Template:X_Series&amp;diff=38723"/>
		<updated>2008-08-28T00:35:25Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{X20}}, {{X21}}, {{X22}}, {{X23}}, {{X24}}, {{X30}}, {{X31}}, {{X32}}, {{X40}}, {{X41}}, {{X41_Tablet}}, {{X60}}, {{X60s}}, {{X60_Tablet}}, {{X61}}, {{X61s}}, {{X61_Tablet}}, {{X200}}&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=MiniPCI_Express_slot&amp;diff=38721</id>
		<title>MiniPCI Express slot</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=MiniPCI_Express_slot&amp;diff=38721"/>
		<updated>2008-08-28T00:32:43Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* Models featuring this Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
A MiniPCI Express slot is a version of the PCI-Express x1 slot for Notebooks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=== MiniPCI Express Adapters ===&lt;br /&gt;
* [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]&lt;br /&gt;
* [[Intel PRO/Wireless 4965AGN Mini-PCI Express Adapter]]&lt;br /&gt;
* [[Intel Wifi Link 5100 (AGN)]]&lt;br /&gt;
* [[Intel Wifi Link 5300 (AGN)]]&lt;br /&gt;
* [[ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter]]&lt;br /&gt;
* [[ThinkPad 11a/b/g Wireless LAN Mini Express Adapter]]&lt;br /&gt;
* [[ThinkPad 11b/g Wireless LAN Mini-PCI Express Adapter III]]&lt;br /&gt;
* [[Verizon 1xEV-DO WWAN]]&lt;br /&gt;
&lt;br /&gt;
=== (In)Compatibility ===&lt;br /&gt;
Though the slot is MiniPCIe in form factor, it has been crippled to only accept devices with PCI-ID's contained in a BIOS whitelist consisting of the above list of devices (likely not exhaustive and varying depending on the particular system) with the additional requirement that they '''must carry the Lenovo brand name and consequently cost twice as much'''. If an unauthorized card is plugged in it gives a &amp;lt;tt&amp;gt;1802&amp;lt;/tt&amp;gt; error on initial boot up before it even touches the operating system. (see [[Problem with unauthorized MiniPCI network card]], [http://forum.notebookreview.com/showthread.php?t=69445 1802 with MiniPCIe on t60],[http://forums.lenovo.com/lnv/board/message?board.id=T_Series_Thinkpads&amp;amp;message.id=274 same]). The workarounds on the first link concerning MiniPCI devices may or may not be directly applicable to the MiniPCIe slot. Anyone who has added non-Lenovo components to this slot either successfully or unsuccessfully is encouraged to provide any relevant details here.&lt;br /&gt;
&lt;br /&gt;
=== Linux support ===&lt;br /&gt;
MiniPCI Express adapters are handled by the Linux PCI subsystem.&lt;br /&gt;
&lt;br /&gt;
=== Models featuring this Technology ===&lt;br /&gt;
* ThinkPad {{T60}}, {{T60p}}, {{R61}}, {{T61}}, {{T61p}}&lt;br /&gt;
* ThinkPad {{X60}}, {{X60s}}, {{X61}}, {{X61s}}, {{X200}}&lt;br /&gt;
* ThinkPad {{Z Series}}, {{Z61m}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;br /&gt;
&lt;br /&gt;
=== External sources ===&lt;br /&gt;
* Lenovo  [ftp://ftp.software.ibm.com/pc/pccbbs/mobiles/accessories_guide_us_can_dec2007.pdf accessories guide].&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Integrated_Fingerprint_Reader&amp;diff=38720</id>
		<title>Integrated Fingerprint Reader</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Integrated_Fingerprint_Reader&amp;diff=38720"/>
		<updated>2008-08-28T00:32:06Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* Models featuring this Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; | [[Image:fingerprintreader.jpg|IBM Integrated Fingerprint Reader]] __NOTOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
===Integrated Fingerprint Reader===&lt;br /&gt;
IBM released a second generation of T42 models in Autumn 2004 featuring Intel Pentium M 765 processors and an integrated fingerprint reader.&lt;br /&gt;
&lt;br /&gt;
The fingerprint reader is produced by a company called UPEK, which specializes in the manufacture of fingerprint readers. It is integrated as an USB device, and does all the matching in hardware, making it rather easy to use. Furthermore, IBM states that there's an interface with the [[Embedded Security Subsystem]].  UPEK now sells the fingerprint reader as a USB peripheral bundled with the same underlying software for accessing password-protected online accounts and Windows: [http://www.upek.com/solutions/eikon Eikon Digital Privacy Manager]&lt;br /&gt;
&lt;br /&gt;
However: The fingerprint reader is an INSECURE device and gives a false sense of security! There has been quite a bit of research by a hacker named Starbug, a member of the Chaos Computer Club, Berlin, Germany. He outlined in two very good talks how to forge each and every available fingerprint sensor available at the cost of a few euros, using materials from your local hardware store, a digicam and a laser printer! Here's some links:&lt;br /&gt;
* [http://www.ccc.de/updates/2007/umsonst-im-supermarkt?language=en  Fingerprint recognition in supermarkets]&lt;br /&gt;
* [ftp://ftp.ccc.de/pub/video/Fingerabdruck_Hack/fingerabdruck.mpg?language=en Video tutorial for forging fingerprints]&lt;br /&gt;
Remember, using fingerprints for authentication is much similar to having a password which is written on anything you touch.&lt;br /&gt;
&lt;br /&gt;
==Open Source==&lt;br /&gt;
&lt;br /&gt;
There is a new GPL driver at http://thinkfinger.sourceforge.net; see the [[How to enable the fingerprint reader with ThinkFinger]] for detailed instructions. This is the recommended option as it integrates more seamlessly with PAM and doesn't produce a tacky graphical prompt.&lt;br /&gt;
&lt;br /&gt;
{{HINT|If you've followed the instructions and &amp;quot;tf-tool --verify&amp;quot; works, but nothing else does, make sure that the &amp;quot;uinput&amp;quot; module is loaded.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Newer variants of the {{R61}} require a different driver.  This newer fingerprint reader [http://www.reactivated.net/fprint/wiki/Upeksonly device] sits on the USB bus with USB ID 147e:2016.  An open source driver has been developed by [http://www.reactivated.net/fprint/wiki/Main_Page the fprint project].  Installation instructions can be found at [http://knowledge76.com/index.php/Fingerprint_Reader_Installation System76].&lt;br /&gt;
&lt;br /&gt;
==Binary Only==&lt;br /&gt;
A closed source driver from the vendor has been released.  It interfaces to the hardware as a user-space USB driver through {{path|/proc/bus/usb|}} and provides a BioAPI 1.10 device, which can then be interfaced to pam for authentication by user programs.  The driver can be downloaded from http://www.upek.com/support/dl_linux_bsp.asp; see the [[How to enable the fingerprint reader|corresponding HOWTO]] for detailed instructions. It however tends to be less stable than the above opensource driver.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* [http://www.trustedreviews.com/article.aspx?page=1643&amp;amp;head=36 Review from TrustedReviews of the fingerprint scanner]&lt;br /&gt;
* [http://biomark.org.ru/en/ A (Russian) project that provides support for a (different model) of fingerprint scanner] (also a USB device, though)&lt;br /&gt;
* [http://www.upek.com/support/pdf/UPEK_flyer_TCS3_TCD4.pdf TouchStrip TCS3/TCD4 spec sheet]&lt;br /&gt;
* [http://www.qrivy.net/~michael/blua/ A branch of the BioAPI reference implementation]&lt;br /&gt;
* [http://www.reactivated.net/fprint/wiki/Main_Page fprint project]&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
*ThinkPad {{R52}}, {{R60}}, {{R61}}&lt;br /&gt;
*ThinkPad {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}, {{T60p}}, {{T61}}, {{T61p}}&lt;br /&gt;
*ThinkPad {{X41}}, {{X41T}}, {{X60}}, {{X60s}}, {{X61s}}, {{X61_Tablet}}, {{X200}}&lt;br /&gt;
*ThinkPad {{Z60m}}, {{Z60t}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Active_Protection_System&amp;diff=38719</id>
		<title>Active Protection System</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Active_Protection_System&amp;diff=38719"/>
		<updated>2008-08-28T00:31:48Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* Models featuring this Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; | [[Image:APS.jpg|IBM Active Protection System]] __NOTOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== The Active Protection System ===&lt;br /&gt;
With the new series of ThinkPads IBM introduced the Active Protection System (APS) in 2003. The APS is a protection system for the ThinkPad's internal harddrive. A sensor inside the ThinkPad recognizes when the notebook is accelerated. A software applet then is triggered to park the harddisk. This way the risk of data loss in case of when the notebook is dropped is significantly reduced since the read/write head of the harddrive is parked and hence can't crash onto the platter when the notebook drops onto the floor.&lt;br /&gt;
&lt;br /&gt;
The hardware sensor is capable of not only recognizing acceleration of the notebook, but also (to a certain degree) of its whole orientation in space, relative to gravity's axis. Furthermore, having the actual control put into software, its functionality is extendable and it gives chance to implement features like the &amp;quot;ignore minor shocks&amp;quot; feature which is present in the Windows based control applet. (This feature prevents the harddrive from parking in case of minor regular shocks such as occur when in a train or car.)&lt;br /&gt;
&lt;br /&gt;
The measurements are physically performed by an [[Analog Devices ADXL320 accelerometer]] chip, managed by the [[Embedded Controller Chips|embedded controller]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* [ftp://ftp.software.ibm.com/pc/pccbbs/mobiles_pdf/aps2mst.pdf IBM Active Protection System Whitepaper]&lt;br /&gt;
&lt;br /&gt;
==Hard-disk Support==&lt;br /&gt;
&lt;br /&gt;
HD-APS requires a hard-disk with [http://www.hitachigst.com/hdd/research/storage/hdi/loadunload.html head unload ramp technology] and also support on the hard-disk firmware to unload heads without flushing the disk cache.  This is required, because as soon as the APS system detects a shock is imminent, the system has less than 500ms to prepare for the shock.&lt;br /&gt;
&lt;br /&gt;
Unloading heads without flushing the cache is done using the [http://www.t13.org/Documents/UploadedDocuments/docs2003/e03120r5.pdf optional Unload Immediate feature of the IDLE IMMEDIATE ATA command].  It finishes whatever sector write is in-flight, and immediately moves the heads to the unload ramp.  Without this command, hard-disk APS cannot be trusted, as disks with big caches can take a lot of time to write it all to disk.&lt;br /&gt;
&lt;br /&gt;
So far, only hard-disks with IBM APS firmware, as well as the consumer Fujitsu HV2060AH/MHV2100AH/MHV2120AH HDs have been found to implement all the necessary functions.  Head unload technology is reasonably common in modern laptop disks, but the APS firmware is very rare in regular consumer products.  Please note that newer Apple notebooks also support APS, so it is somewhat likely that their disks also support unload immediate or a similar feature.&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
Linux support is in development.&lt;br /&gt;
&lt;br /&gt;
This feature definitely depends on software and there is no hardware or BIOS only way of making it work.&lt;br /&gt;
IBM made contradictory statements about their willingness to release the specifications of the hardware sensor and its API to the linux community or some developers. Although a lot of developers and other interested people from the OpenSource community actively contacted IBM to get the specs, in fact they never got them.&lt;br /&gt;
&lt;br /&gt;
However, after first efforts of [http://www.kernelthread.com/software/ams/ Amit Singh on a PowerBook] and [http://www.almaden.ibm.com/cs/people/marksmith/tpaps.html Mark Smith on a ThinkPad], the [[HDAPS]] project was founded to produce a linux kernel driver for the acceleration sensor and a user space application to monitor it. Later, a kernel patch to enable harddisk parking followed.&lt;br /&gt;
&lt;br /&gt;
See [[How to protect the harddisk through APS]] for instructions and [[Problem with APS harddisk parking]] for Troubleshooting.&lt;br /&gt;
&lt;br /&gt;
Furthermore, a list of alternative applications like theft alarm and others can be found on the [[HDAPS]] driver page.&lt;br /&gt;
&lt;br /&gt;
==Tilt detection field tests==&lt;br /&gt;
Using Perl code for WinXP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
use Win32API::File qw(:ALL);&lt;br /&gt;
sub get_tilt {&lt;br /&gt;
      my $file = createFile(&amp;quot;//./ShockMgr&amp;quot;, &amp;quot;r ke&amp;quot;) or die &amp;quot;Can't get ShockMgr device&amp;quot;;&lt;br /&gt;
      DeviceIoControl($file, 0x733fc, [], 0, my($buf), 0x24, my($bytes), []);&lt;br /&gt;
      my @data = unpack &amp;quot;x4s*&amp;quot;, $buf;&lt;br /&gt;
      return @data[1, 0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
my T42 gives values of roughly 490 when at rest in normal upright position with base parallel to the ground.  As I gently tilt the T42 through all possible x or y angles, the values range from about 335-645, meaning a resolution of about 155 units per Earth gravity.  This seems to suggest that the operating range of the APS is actually about +-3 gs, although the ADXL320 is supposed to allow +-5 gs.&lt;br /&gt;
&lt;br /&gt;
As the tilt angle is the arcsine of the normalized APS reading, the Thinkpad is most tilt sensitive when in a normal upright position with base parallel to the ground.  In this position, the tilt resolution is about 0.35 - 0.4 degrees.  At maximum tilt, the resolution is much worse, about 6.5 degrees.&lt;br /&gt;
&lt;br /&gt;
Shouldn't matter much, but my tests are at an elevation of about 60 meters above sea level.&lt;br /&gt;
&lt;br /&gt;
===More field tests===&lt;br /&gt;
When placed on a reasonably flat and reasonably horizontal work surface my T43 provides readings of about x=503 and y=569. I wrote a command-line application in C# (using the .NET DllImport annotation to access the sensor.dll API) to log the sensor readings at some interval. With 150ms sampling I found the following extreme values: 335 to 654 for x, and 409 to 723 for y.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 x: 494.5   +/- 159.5&lt;br /&gt;
 y: 566.0   +/- 157.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on the maximum and minimum x and y readings I calculated the above &amp;quot;zero&amp;quot; and range values in order to convert the sensor readings to degrees and wrapped this up in a small graphical application for Windows. My data, source code, executables and a complete description can be found [http://www.stanford.edu/~bsuter/thinkpad-accelerometer/ here].&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
*[http://www.stanford.edu/~bsuter/thinkpad-accelerometer/ Sensor Data, Calibration, command-line and GUI executables for Windows and C# .NET source code]&lt;br /&gt;
*[http://www.ibm.com/developerworks/blogs/page/johnston?entry=python_and_thinkpad Python and ThinkPad, a Python script for Windows to access the sensor data]&lt;br /&gt;
*[http://www.pc.ibm.com/presentations/us/thinkvantage/56/index.html?shortcut=aps&amp;amp; IBMs ThinkVantage&amp;amp;trade; Technologies Flash presentation - Active Protection System]&lt;br /&gt;
*[http://www.musatcha.com/software/LaptopTheftPrevention/ Motion-Sensitive anti-theft alarm for ThinkPads with APS]&lt;br /&gt;
*[http://www-128.ibm.com/developerworks/linux/library/l-knockage.html?ca=dgr-lnxw01Knock-Knock IBM HDAPS/Linux HDAPS information page]&lt;br /&gt;
*[http://hdaps.sourceforge.net HDAPS project page]&lt;br /&gt;
*[http://sourceforge.net/mailarchive/forum.php?forum=hdaps-devel HDAPS-devel list archive]&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
*ThinkPad {{R50}}, {{R50p}}, {{R51}}, {{R52}}, {{R60}}, {{R61}}, {{R61i}}&lt;br /&gt;
*ThinkPad {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}, {{T60p}}, {{T61}}, {{T61p}}&lt;br /&gt;
*ThinkPad {{X40}}, {{X41}}, {{X41_Tablet}}, {{X60}}, {{X60s}}, {{X60_Tablet}}, {{X61}}, {{X61s}}, {{X61 Tablet}}, {{X200}}&lt;br /&gt;
*ThinkPad {{Z60m}}, {{Z60t}}, {{Z61m}}, {{Z61t}}, {{Z61e}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Embedded_Security_Subsystem&amp;diff=38718</id>
		<title>Embedded Security Subsystem</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Embedded_Security_Subsystem&amp;diff=38718"/>
		<updated>2008-08-28T00:31:31Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* IBM Embedded Security Subsystem 2.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; | [[Image:ESS.jpg|IBM Embedded Security Subsystem]] __NOTOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== The Embedded Security Subsystem ===&lt;br /&gt;
The Embedded Security Subsystem is a chip on the ThinkPad's mainboard that can take care of certain security related tasks conforming to the TCPA standard. It was first introduced among the T23 models and is now under the name &amp;quot;Embedded Security Subsystem 2.0&amp;quot;. It is an integral part of most of the modern ThinkPads. The functions of the chip are fall into three main groups:&lt;br /&gt;
* Public key functions&lt;br /&gt;
* Trusted boot functions&lt;br /&gt;
* Initialization and management functions&lt;br /&gt;
&lt;br /&gt;
The purpose of the Embedded Security Subsystem is to keep the user's sensitive data out of range from software based attacks (like viruses, Internet attacks etc.). One way the chip offers to achieve this is by providing storage for keys along with the necessary functions to handle them within itself, so that a for example a private key never has to leave the chip (can't be seen by any piece of software). Besides this, there are more complex topics covered by the functionality of the chip. If you want to find out more about it you can find good documents on the [http://www.research.ibm.com/gsal/tcpa/ IBM Research TCPA resources page].&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Some ThinkPads have the TPM chip integrated into the SuperIO chip, and in a not-so-distant future, the TPM will be integrated into the chipset. Don't let the picture fool you...}}&lt;br /&gt;
&lt;br /&gt;
{{WARN|There's a bug in the latest release of the security chip software.  You end up facing a security chip login, and you press Ctrl-alt-delete, and it just sits there.  '''Do not''' download the latest patch (Dated 13/06/2006 v 7.00.0017.00) &amp;lt;BR&amp;gt;&lt;br /&gt;
Actually, they appear to have removed that patch.&amp;lt;BR&amp;gt;&lt;br /&gt;
Ring IBM support (in Australia 131426, 1, 2) and they'll talk you through doing a system restore.}}&lt;br /&gt;
&lt;br /&gt;
==Trusted or Treacherous?==&lt;br /&gt;
&lt;br /&gt;
TC - Trusted Computing - will be the biggest change of the information landscape since decades. Besides positive features like a more secure hardware storage for cryptographic keys, an analysis of the proposed TCG-standards shows some problematic properties. &amp;lt;br /&amp;gt;&lt;br /&gt;
As ThinkPads of recent generations following the ThinkPad {{T23}} ([[Embedded Security Subsystem#Models featuring this Technology|see the complete list of models]]) are equipped with this disputed TCG-/TCPA-Technology, it can be interesting, which promises of the TCG are fulfilled inside your ThinkPad and which parts of the TCG-specifications still seem to be a privacy issue for every user of digital devices like a MP3-player or a ThinkPad - so please read [[TCPA/TCG - Trusted or Treacherous|this article]] for more details.&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
Two linux drivers are available, a [[tpm|classical one]] and a [[tpmdd|newer one]].&lt;br /&gt;
Coverage of functionality of the first is unknown so far, the second is part of a bigger project aiming to provide a usable security framework.&lt;br /&gt;
&lt;br /&gt;
David Stafford (one of the developers of the tpm code at IBM) on March 10, 2005 sent me the most recent version of the tpm-kml code. With his permission, I quote his email:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I am attaching our latest driver and library.&lt;br /&gt;
This version is in the process of kernel mailing list review, and&lt;br /&gt;
will hopefully be accepted into the official kernel. It works&lt;br /&gt;
much better across various 2.6 kernels. Note that this builds&lt;br /&gt;
three modules tpm, tpm_atmel, and tpm_nsc. You modprobe the&lt;br /&gt;
tpm_atmel (for all current shipping atmel based systems), or&lt;br /&gt;
tpm_nsc (for the coming national based systems).&lt;br /&gt;
&lt;br /&gt;
Also note that there is a conflict with the snd-intel8x0&lt;br /&gt;
kernel module (they each try to grab the LPC bus). You can&lt;br /&gt;
either: load the tpm modules first (such as in initrd or&lt;br /&gt;
rc.sysinit, before sound), or recompile the snd-intel8x0, turning&lt;br /&gt;
off the MIDI and JOYSTICK support. The latest 2.6.11 version&lt;br /&gt;
of snd-intel8x0 also reportedly fixes things.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Compiling this library was easy. Compiling the driver on my 2.6.8-686 (debian testing) laptop failed. But the library works with the driver I compiled from the tpm-2.0 package IBM made available on its pages (see the links below).&lt;br /&gt;
&lt;br /&gt;
Gijs&lt;br /&gt;
&lt;br /&gt;
The T43 requires a patch posted to the LKML by Kylene Jo Hall: [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111884603309146&amp;amp;w=2 LKML posting]. An updated patch for linux 2.6.12 is available [http://shamrock.dyndns.org/~ln/linux/tpm_2.6.12.diff here].&lt;br /&gt;
&lt;br /&gt;
The atmel driver comes with 2.6.12.&lt;br /&gt;
----&lt;br /&gt;
Now suported in 2.6.15.1 (and maybe others kernels under this number) in:&lt;br /&gt;
&lt;br /&gt;
/device drivers/caracter devices/tpm devices&lt;br /&gt;
&lt;br /&gt;
==Versions &amp;amp; Features==&lt;br /&gt;
=== Embedded Security Chip ===&lt;br /&gt;
IBM introduced it's TCPA/TCG features with some of the [[:Category:T23|T23]] models. The earlier of them didn't yet have the Embedded Security Subsystem, but a kind of pre 1.0 version called the Embedded Security Chip. This chip had the following capabilities:&lt;br /&gt;
*Data communications authentication and encryption&lt;br /&gt;
*Storage of encrypted passwords&lt;br /&gt;
&lt;br /&gt;
=== Embedded Security Subsystem (1.0) ===&lt;br /&gt;
The original Embedded Security Subsystem (in IBM documents there is no use of the additive version-number 1.0) claims to be compliant with TCG specs, but apparently did not fully implement any specific TCG spec.&lt;br /&gt;
&lt;br /&gt;
The Embedded Security Subsystem has the following features:&lt;br /&gt;
*hardware key storage&lt;br /&gt;
*multi-factor authentication&lt;br /&gt;
*local file encryption&lt;br /&gt;
*enhances VPN security&lt;br /&gt;
&lt;br /&gt;
=== Embedded Security Subsystem 2.0 ===&lt;br /&gt;
The Embedded Security Subsystem 2.0 conforms to the TCG TPM 1.1b specification, with a TPM manufactured by either Atmel or National Semiconductor, and TCG TPM PC client 1.1 BIOS extensions.&lt;br /&gt;
&lt;br /&gt;
The Embedded Security Subsystem 2.0 has the following features:&lt;br /&gt;
*hardware key storage&lt;br /&gt;
*multi-factor authentication&lt;br /&gt;
*local file encryption&lt;br /&gt;
*enhances VPN security&lt;br /&gt;
*TCG compliant&lt;br /&gt;
&lt;br /&gt;
National Semiconductor TPMs are likely part of the Winbond SuperIO chip (e.g. in a {{T43}}).&lt;br /&gt;
&lt;br /&gt;
{{NOTE|It is possible that second-generation T60s and the T61/X61/R61 have TPM chips conforming to TCG TPM 1.2.  If you own one, please verify if that's true, and update this page}}&lt;br /&gt;
&lt;br /&gt;
==Clearing/Reseting the Embedded Security Subsystem==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Be sure that there are no active HDD passwords, and that you have uninstalled any IBM/Lenovo security software that might want information stored or encrypted with the help of the TPM chip '''before''' you clear the chip.  Any data that is encrypted using information inside the TPM chip will be useless after you clear the TPM chip.  It is unknown if clearing the TPM chip can mess with the BIOS HDD password support, but until someone tests it, it is best to play it safe.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT|A password-locked HDD can be made useful again by using a low-level utility capable of issuing the SECURE-ERASE command to it.  You will lose all data, but at least the HDD will be usable again, as that also unlocks the HDD.}}&lt;br /&gt;
&lt;br /&gt;
If there is a need to reset and clear the TPM chip, the IBM BIOS has a &amp;quot;Clear Security Chip&amp;quot; option that will work (as long as you did not issue one of the very few &amp;quot;permanently lock the TPM chip in a certain state for life&amp;quot; commands, so '''Do Not Do That!''').&lt;br /&gt;
&lt;br /&gt;
That option is not readily accessible. To unhide it and reset the TPM chip, you have to:&lt;br /&gt;
&lt;br /&gt;
=== Method 1 ===&lt;br /&gt;
#Power down the ThinkPad;&lt;br /&gt;
#Power up the ThinkPad, with the Fn key pressed (or CTRL in a ThinkCenter);&lt;br /&gt;
#When the BIOS screen shows up, release the Fn key;&lt;br /&gt;
#Press the required key to enter the BIOS configuration;&lt;br /&gt;
#Enter BIOS supervisor password if required;&lt;br /&gt;
#Go to the security menu, security chip submenu, and clear the TPM chip.&lt;br /&gt;
&lt;br /&gt;
=== Method 2 ===&lt;br /&gt;
&lt;br /&gt;
#Power down the ThinkPad;&lt;br /&gt;
#Power up the ThinkPad;&lt;br /&gt;
#Press the ThinkVantage/Access IBM button while the BIOS is still booting;&lt;br /&gt;
#Type in the supervisor password if the BIOS asks for it;&lt;br /&gt;
#Press ESC a number of times, which will cause the BIOS to switch to maintenance mode and display a number of text screens;&lt;br /&gt;
#Power down the ThinkPad as soon as it hits the boot loader of the Operating System (it doesn't matter which O.S.);&lt;br /&gt;
#Power on the ThinkPad;&lt;br /&gt;
#Enter the BIOS configuration screen (may require supervisor password);&lt;br /&gt;
#Go to the security menu, security chip submenu, and clear the TPM chip.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the Embedded Security Subsystem==&lt;br /&gt;
&lt;br /&gt;
=== TPM 1.1b basics ===&lt;br /&gt;
&lt;br /&gt;
The TPM chip is a &amp;quot;secure&amp;quot; brokerer of data signatures and keys, as well as a slow but very good hardware RNG.  It has some registers called PCRs that are used for trusted platform attestation.  It can sign data using 2048-bit RSA keys.  It is '''slow'''.  It is not easy to use, either :-)&lt;br /&gt;
&lt;br /&gt;
The current version of the TPM chips found on ThinkPads (TPM 1.1b) isn't secure at all against moderately sophisticated physical attacks, and it is also useless for DRM and other Treacherous Platform corporate ideas.&lt;br /&gt;
&lt;br /&gt;
A Trusted Platform in a context involving a TPM means that the PCRs contains values that they are expected to, because the TPM will allow data that is &amp;quot;sealed&amp;quot; (as opposed to &amp;quot;bound&amp;quot;) to it to be accessed (&amp;quot;unsealed&amp;quot;) only when the PCRs match the PCRs at sealing time.  The interesting magic is, therefore, in the process of updating the contents of the PCRs.&lt;br /&gt;
&lt;br /&gt;
The PCRs start zeroed at TPM reset.  As things load (BIOS, bootloader, OS, userspace), they are supposed to verify if the PCRs are at a state they can trust, and if so, to add the checksum of their own code, data, and configuration to the PCRs and load the next stage.  Alternatively, they can skip the PCR test and just extend it if they don't care that they are running in an untrusted state.&lt;br /&gt;
&lt;br /&gt;
PCRs cannot be set to a given value.  The TPM only allows one to &amp;quot;extend&amp;quot; a PCR, which is an operation where the result is a SHA-1 hash that depends on the previous value of the PCR and on the data you give the TPM to extend the PCR with.  It is non-trivial to get the PCR to a desired value based only on its previous contents and the desired target value.&lt;br /&gt;
&lt;br /&gt;
It is obviously a total nightmare to update the system in a trusted platform scenario, as the contents of the PCRs starting from the update point will change.  A changed PCR immediately makes any data that was sealed based on its old value impossible to access.  This is one of the reasons why nobody is doing remote trusted platform assurance, except in very controlled scenarios right now.  New versions of the specifications around the trusted platform support specifications (like TPM 1.2) are trying to address this problem.&lt;br /&gt;
&lt;br /&gt;
Trusted Platform assurance with a TPM 1.1b isn't easy to do, but it is possible (and it is not in any way unbreakable!, but it is a lot better than nothing for many uses).&lt;br /&gt;
&lt;br /&gt;
The ThinkPad BIOS measures the boot loader and stores the relevant data on PCR registers and the TPCA log, so if one adds a trusted boot loader to the system (like trusted-grub), one can load a trusted operating system and from there, trusted userspace applications, etc.&lt;br /&gt;
&lt;br /&gt;
Note that LPC-bus tricks using modchips to trap and modify the data flow to the TPM chip can effectively bust the Trusted Platform assurance completely on any ThinkPads up to the T61/R61/X61. To avoid that, a TPM inside the northbridge is needed.  Intel plans to add a TPM 1.2 to their chipsets in 2008, so it is likely that the T62/X62/R62 TPMs won't be as vulnerable to hardware hacks.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPad BIOS TPM basics ===&lt;br /&gt;
&lt;br /&gt;
The TCG TCPA specification also defines PC BIOS behaviour and extensions to deal with the TPM chip and Trusted Platform requirements.  The ThinkPad BIOS is compliant to the TCG PC Client specification v1.1 (and, in new ThinkPads, maybe v1.2).&lt;br /&gt;
&lt;br /&gt;
This means that:&lt;br /&gt;
*The BIOS can be used to reset the TPM using physical presence (see above for the reset procedure);&lt;br /&gt;
*Physical presence is only available to the BIOS (unless you hack the BIOS or the hardware, obviously);&lt;br /&gt;
*The BIOS can be configured to log or not (which also means calculate PCRs) the checksum of some of the platform data. If you don't want the ESCD or NVRAM contents to interfere in PCR calculations, you need to disable their logging in the BIOS for example;&lt;br /&gt;
*The BIOS touches PCRs 0 to 7, but leaves PCRs 8 to 15 alone (zeroed);&lt;br /&gt;
*You can disable the TPM chip in the BIOS, and not worry about someone using it behind your back.  But they will be able to know that there is a TPM in the system (the chip can still be found, and will report its version, manufacturer, and disabled state), unless you remove all the kernel TPM support, including tpm_bios;&lt;br /&gt;
*The BIOS might use the TPM, so watch out for trouble if you have HDD passwords enabled, etc;&lt;br /&gt;
&lt;br /&gt;
==== PCR registers extended by the BIOS ====&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{prettytable}}&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; width=&amp;quot;10%&amp;quot; | '''PCR #'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; | '''Description (TCG PC client spec v1.1)'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; | '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== T43 26xx BIOS 1.29 ====&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| CRTM, BIOS, and platform extensions&lt;br /&gt;
| The BIOS logs many BIOS POST PCR extensions, probably hardware and firmware-related&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Platform configuration:&lt;br /&gt;
*BIOS ROM strings (BIOS version and checksum)&lt;br /&gt;
*NVRAM (Asset tag data)&lt;br /&gt;
*CMOS configuration (basic, always logged)&lt;br /&gt;
*CMOS configuration (extended)&lt;br /&gt;
*ESCD platform configuration data (like size of memory modules, etc)&lt;br /&gt;
*SMBIOS data (?)&lt;br /&gt;
|&lt;br /&gt;
*Useful when BIOS ROM logging is enabled, since one has to trust the BIOS and it is best to not let someone update it behind your back.  Upgrading the BIOS invalidates data sealed to this PCR, though&lt;br /&gt;
*NVRAM logging is useful to seal data to a particular asset tag&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Option ROM code&lt;br /&gt;
| Can be used to detect the addition/subtraction/upgrade of Option ROMs (extra BIOS code from third parties)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Option ROM configuration and data&lt;br /&gt;
| Not modified except for the event separator on my current T43 config&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| IPL Code (system bootstrap)&lt;br /&gt;
* BIOS password used to authorize booting (if any)&lt;br /&gt;
* Boot device used&lt;br /&gt;
* MBR/boot sector checksum (LILO, Grub stage 1, etc)&lt;br /&gt;
|&lt;br /&gt;
* The password hash itself of the BIOS user or supervisor password is used to extend this PCR&lt;br /&gt;
* When you reboot, if the box doesn't ask for a password, the PCR will have different contents (work around: go into BIOS and exit saving changes, so that you are asked the password again)&lt;br /&gt;
* Lets one seal data to a particular boot password and to the fact that the password was typed in the keyboard&lt;br /&gt;
* Takes into account the device used to boot, and the bootstrap code checksum&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| IPL Code configuration and data&lt;br /&gt;
| This PCR is reserved for the boot loader to extend with its configuration and whatever else it loads&lt;br /&gt;
*trusted-grub extends it with stage 1.5 and stage 2 checksums, grub.conf checksum, and kernel and initrd checksum&lt;br /&gt;
*Not modified by the BIOS itself, except for the event separator&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| State transitions and wake events&lt;br /&gt;
| Logs a WAKE EVENT 0 hash on power up and simple reset (same event)&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Reserved&lt;br /&gt;
| Not modified except for the event separator.  Reserved by the TCG for future use.&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| User PCRs&lt;br /&gt;
|&lt;br /&gt;
*Not modified by BIOS or bootstrap&lt;br /&gt;
*Still zeroed at end of Linux boot&lt;br /&gt;
*Can be used for whatever the user wants&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Using the TPM in Windows ===&lt;br /&gt;
&lt;br /&gt;
Just install the full IBM Security solution, and let it use the TPM.  What good it will do to increase the security of your data is unknown.&lt;br /&gt;
&lt;br /&gt;
=== Using the TPM in Linux ===&lt;br /&gt;
&lt;br /&gt;
This section is very incomplete, but here are some pointers to get you started:&lt;br /&gt;
&lt;br /&gt;
*Compile a 2.6.23 or later kernel with the driver for the tpm chip in your ThinkPad model enabled;&lt;br /&gt;
**You need to enable CONFIG_SECURITY to get securityfs, and CONFIG_KEYS to use eCryptfs TPM support;&lt;br /&gt;
**You need to enable tpm_bios to access the TCPA log;&lt;br /&gt;
*Make sure to mount the securityfs filesystem on /sys/kernel/security to access tpm_bios data (the TCPA log);&lt;br /&gt;
*You should use dm-crypt to have an encrypted swap partition with an ephemeral key;&lt;br /&gt;
*The TCPA log can be found in the securityfs directory, and it might help you understand how the BIOS and boot loaders are using the PCRs.  The first number for each event in the log is the number PCR register that was extended by that event;&lt;br /&gt;
*You need an up-to-date version of the TrouSerS software stack to use the TPM for anything other than reading the TPCA log;&lt;br /&gt;
*You need an up-to-date eCryptfs userspace (with TPM support compiled in) to use the TPM to store filesystem keys;&lt;br /&gt;
*Using the TPM as a PKCS11 token is possible, but I have no idea how safe it is, since that requires a null (well-known) SRK;&lt;br /&gt;
*trusted-grub can be used to play with the PCRs before Linux loads, and to checksum the Linux kernel and extend a PCR with that data;&lt;br /&gt;
*The PCRs can be read through sysfs, under the /sys/bus/platform/devices/tpm*/pcrs file for the TPM driver for your TPM chip;&lt;br /&gt;
*TrouSerS 0.3.1 tpm_getpubek seems not to work too well, it gets the PUBEK attributes wrong from the NSC TPM chip in a T43 (but the key data itself is correct).  Compare to sys/bus/platform/devices/tpm*/pubek to check yours.&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
===IBM Embedded Security Chip===&lt;br /&gt;
*ThinkPad {{T23}}&lt;br /&gt;
===IBM Embedded Security Subsystem===&lt;br /&gt;
*ThinkPad {{A30p}}&lt;br /&gt;
*ThinkPad {{R31}}&lt;br /&gt;
*ThinkPad {{T23}}, {{T30}}&lt;br /&gt;
*ThinkPad {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
&lt;br /&gt;
===IBM Embedded Security Subsystem 2.0===&lt;br /&gt;
*ThinkPad {{R32}}, {{R40}}, {{R50}}, {{R50p}}, {{R51}}, {{R51e}}, {{R52}}, {{R60}}, {{R61}}&lt;br /&gt;
*ThinkPad {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}, {{T60p}}, {{T61}}, {{T61p}}&lt;br /&gt;
*ThinkPad {{X30}}, {{X31}}, {{X32}}, {{X40}}, {{X41}}, {{X41T}}, {{X60}}, {{X60s}}, {{X61s}}, {{X61_Tablet}}, {{X200}}&lt;br /&gt;
*ThinkPad {{Z60m}}, {{Z60t}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]] &lt;br /&gt;
[[Category:Trusted Computing]]&lt;br /&gt;
&lt;br /&gt;
==TCPA/TCG clean models==&lt;br /&gt;
*all models produced before 2000&lt;br /&gt;
*all i Series models&lt;br /&gt;
*ThinkPad [[:Category:240X|240X]]&lt;br /&gt;
*ThinkPad [[:Category:A20m|A20m]], [[:Category:A20p|A20p]], [[:Category:A21e|A21e]], [[:Category:A21m|A21m]], [[:Category:A21p|A21p]], [[:Category:A22e|A22e]], [[:Category:A22m|A22m]], [[:Category:A22p|A22p]], [[:Category:A30|A30]]&lt;br /&gt;
*ThinkPad [[:Category:R50e|R50e]]&lt;br /&gt;
*ThinkPad [[:Category:T20|T20]], [[:Category:T21|T21]], [[:Category:T22|T22]]&lt;br /&gt;
*ThinkPad [[:Category:X20|X20]], [[:Category:X21|X21]], [[:Category:X22|X22]]&lt;br /&gt;
*ThinkPad [[:Category:TransNote|TransNote]]&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www.pc.ibm.com/us/think/thinkvantagetech/security.html IBMs ThinkVantage&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Technologies Embedded Security Subsystem page]&lt;br /&gt;
*[http://www.pc.ibm.com/presentations/us/thinkvantage/56/index.html?shortcut=ess&amp;amp; IBMs ThinkVantage&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Technologies Flash presentation - Embedded Security Subsystem]&lt;br /&gt;
*[https://www.trustedcomputinggroup.org/specs/PCClient/ TCG PC Client specifications]&lt;br /&gt;
*[http://www.research.ibm.com/gsal/tcpa/ IBM Research TCPA resources page]&lt;br /&gt;
*[http://www.prosec.rub.de/trusted_grub.html Trusted Grub]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Embedded_Security_Subsystem&amp;diff=38717</id>
		<title>Embedded Security Subsystem</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Embedded_Security_Subsystem&amp;diff=38717"/>
		<updated>2008-08-28T00:31:05Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* IBM Embedded Security Subsystem 2.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; | [[Image:ESS.jpg|IBM Embedded Security Subsystem]] __NOTOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== The Embedded Security Subsystem ===&lt;br /&gt;
The Embedded Security Subsystem is a chip on the ThinkPad's mainboard that can take care of certain security related tasks conforming to the TCPA standard. It was first introduced among the T23 models and is now under the name &amp;quot;Embedded Security Subsystem 2.0&amp;quot;. It is an integral part of most of the modern ThinkPads. The functions of the chip are fall into three main groups:&lt;br /&gt;
* Public key functions&lt;br /&gt;
* Trusted boot functions&lt;br /&gt;
* Initialization and management functions&lt;br /&gt;
&lt;br /&gt;
The purpose of the Embedded Security Subsystem is to keep the user's sensitive data out of range from software based attacks (like viruses, Internet attacks etc.). One way the chip offers to achieve this is by providing storage for keys along with the necessary functions to handle them within itself, so that a for example a private key never has to leave the chip (can't be seen by any piece of software). Besides this, there are more complex topics covered by the functionality of the chip. If you want to find out more about it you can find good documents on the [http://www.research.ibm.com/gsal/tcpa/ IBM Research TCPA resources page].&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Some ThinkPads have the TPM chip integrated into the SuperIO chip, and in a not-so-distant future, the TPM will be integrated into the chipset. Don't let the picture fool you...}}&lt;br /&gt;
&lt;br /&gt;
{{WARN|There's a bug in the latest release of the security chip software.  You end up facing a security chip login, and you press Ctrl-alt-delete, and it just sits there.  '''Do not''' download the latest patch (Dated 13/06/2006 v 7.00.0017.00) &amp;lt;BR&amp;gt;&lt;br /&gt;
Actually, they appear to have removed that patch.&amp;lt;BR&amp;gt;&lt;br /&gt;
Ring IBM support (in Australia 131426, 1, 2) and they'll talk you through doing a system restore.}}&lt;br /&gt;
&lt;br /&gt;
==Trusted or Treacherous?==&lt;br /&gt;
&lt;br /&gt;
TC - Trusted Computing - will be the biggest change of the information landscape since decades. Besides positive features like a more secure hardware storage for cryptographic keys, an analysis of the proposed TCG-standards shows some problematic properties. &amp;lt;br /&amp;gt;&lt;br /&gt;
As ThinkPads of recent generations following the ThinkPad {{T23}} ([[Embedded Security Subsystem#Models featuring this Technology|see the complete list of models]]) are equipped with this disputed TCG-/TCPA-Technology, it can be interesting, which promises of the TCG are fulfilled inside your ThinkPad and which parts of the TCG-specifications still seem to be a privacy issue for every user of digital devices like a MP3-player or a ThinkPad - so please read [[TCPA/TCG - Trusted or Treacherous|this article]] for more details.&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
Two linux drivers are available, a [[tpm|classical one]] and a [[tpmdd|newer one]].&lt;br /&gt;
Coverage of functionality of the first is unknown so far, the second is part of a bigger project aiming to provide a usable security framework.&lt;br /&gt;
&lt;br /&gt;
David Stafford (one of the developers of the tpm code at IBM) on March 10, 2005 sent me the most recent version of the tpm-kml code. With his permission, I quote his email:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I am attaching our latest driver and library.&lt;br /&gt;
This version is in the process of kernel mailing list review, and&lt;br /&gt;
will hopefully be accepted into the official kernel. It works&lt;br /&gt;
much better across various 2.6 kernels. Note that this builds&lt;br /&gt;
three modules tpm, tpm_atmel, and tpm_nsc. You modprobe the&lt;br /&gt;
tpm_atmel (for all current shipping atmel based systems), or&lt;br /&gt;
tpm_nsc (for the coming national based systems).&lt;br /&gt;
&lt;br /&gt;
Also note that there is a conflict with the snd-intel8x0&lt;br /&gt;
kernel module (they each try to grab the LPC bus). You can&lt;br /&gt;
either: load the tpm modules first (such as in initrd or&lt;br /&gt;
rc.sysinit, before sound), or recompile the snd-intel8x0, turning&lt;br /&gt;
off the MIDI and JOYSTICK support. The latest 2.6.11 version&lt;br /&gt;
of snd-intel8x0 also reportedly fixes things.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Compiling this library was easy. Compiling the driver on my 2.6.8-686 (debian testing) laptop failed. But the library works with the driver I compiled from the tpm-2.0 package IBM made available on its pages (see the links below).&lt;br /&gt;
&lt;br /&gt;
Gijs&lt;br /&gt;
&lt;br /&gt;
The T43 requires a patch posted to the LKML by Kylene Jo Hall: [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111884603309146&amp;amp;w=2 LKML posting]. An updated patch for linux 2.6.12 is available [http://shamrock.dyndns.org/~ln/linux/tpm_2.6.12.diff here].&lt;br /&gt;
&lt;br /&gt;
The atmel driver comes with 2.6.12.&lt;br /&gt;
----&lt;br /&gt;
Now suported in 2.6.15.1 (and maybe others kernels under this number) in:&lt;br /&gt;
&lt;br /&gt;
/device drivers/caracter devices/tpm devices&lt;br /&gt;
&lt;br /&gt;
==Versions &amp;amp; Features==&lt;br /&gt;
=== Embedded Security Chip ===&lt;br /&gt;
IBM introduced it's TCPA/TCG features with some of the [[:Category:T23|T23]] models. The earlier of them didn't yet have the Embedded Security Subsystem, but a kind of pre 1.0 version called the Embedded Security Chip. This chip had the following capabilities:&lt;br /&gt;
*Data communications authentication and encryption&lt;br /&gt;
*Storage of encrypted passwords&lt;br /&gt;
&lt;br /&gt;
=== Embedded Security Subsystem (1.0) ===&lt;br /&gt;
The original Embedded Security Subsystem (in IBM documents there is no use of the additive version-number 1.0) claims to be compliant with TCG specs, but apparently did not fully implement any specific TCG spec.&lt;br /&gt;
&lt;br /&gt;
The Embedded Security Subsystem has the following features:&lt;br /&gt;
*hardware key storage&lt;br /&gt;
*multi-factor authentication&lt;br /&gt;
*local file encryption&lt;br /&gt;
*enhances VPN security&lt;br /&gt;
&lt;br /&gt;
=== Embedded Security Subsystem 2.0 ===&lt;br /&gt;
The Embedded Security Subsystem 2.0 conforms to the TCG TPM 1.1b specification, with a TPM manufactured by either Atmel or National Semiconductor, and TCG TPM PC client 1.1 BIOS extensions.&lt;br /&gt;
&lt;br /&gt;
The Embedded Security Subsystem 2.0 has the following features:&lt;br /&gt;
*hardware key storage&lt;br /&gt;
*multi-factor authentication&lt;br /&gt;
*local file encryption&lt;br /&gt;
*enhances VPN security&lt;br /&gt;
*TCG compliant&lt;br /&gt;
&lt;br /&gt;
National Semiconductor TPMs are likely part of the Winbond SuperIO chip (e.g. in a {{T43}}).&lt;br /&gt;
&lt;br /&gt;
{{NOTE|It is possible that second-generation T60s and the T61/X61/R61 have TPM chips conforming to TCG TPM 1.2.  If you own one, please verify if that's true, and update this page}}&lt;br /&gt;
&lt;br /&gt;
==Clearing/Reseting the Embedded Security Subsystem==&lt;br /&gt;
&lt;br /&gt;
{{WARN|Be sure that there are no active HDD passwords, and that you have uninstalled any IBM/Lenovo security software that might want information stored or encrypted with the help of the TPM chip '''before''' you clear the chip.  Any data that is encrypted using information inside the TPM chip will be useless after you clear the TPM chip.  It is unknown if clearing the TPM chip can mess with the BIOS HDD password support, but until someone tests it, it is best to play it safe.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT|A password-locked HDD can be made useful again by using a low-level utility capable of issuing the SECURE-ERASE command to it.  You will lose all data, but at least the HDD will be usable again, as that also unlocks the HDD.}}&lt;br /&gt;
&lt;br /&gt;
If there is a need to reset and clear the TPM chip, the IBM BIOS has a &amp;quot;Clear Security Chip&amp;quot; option that will work (as long as you did not issue one of the very few &amp;quot;permanently lock the TPM chip in a certain state for life&amp;quot; commands, so '''Do Not Do That!''').&lt;br /&gt;
&lt;br /&gt;
That option is not readily accessible. To unhide it and reset the TPM chip, you have to:&lt;br /&gt;
&lt;br /&gt;
=== Method 1 ===&lt;br /&gt;
#Power down the ThinkPad;&lt;br /&gt;
#Power up the ThinkPad, with the Fn key pressed (or CTRL in a ThinkCenter);&lt;br /&gt;
#When the BIOS screen shows up, release the Fn key;&lt;br /&gt;
#Press the required key to enter the BIOS configuration;&lt;br /&gt;
#Enter BIOS supervisor password if required;&lt;br /&gt;
#Go to the security menu, security chip submenu, and clear the TPM chip.&lt;br /&gt;
&lt;br /&gt;
=== Method 2 ===&lt;br /&gt;
&lt;br /&gt;
#Power down the ThinkPad;&lt;br /&gt;
#Power up the ThinkPad;&lt;br /&gt;
#Press the ThinkVantage/Access IBM button while the BIOS is still booting;&lt;br /&gt;
#Type in the supervisor password if the BIOS asks for it;&lt;br /&gt;
#Press ESC a number of times, which will cause the BIOS to switch to maintenance mode and display a number of text screens;&lt;br /&gt;
#Power down the ThinkPad as soon as it hits the boot loader of the Operating System (it doesn't matter which O.S.);&lt;br /&gt;
#Power on the ThinkPad;&lt;br /&gt;
#Enter the BIOS configuration screen (may require supervisor password);&lt;br /&gt;
#Go to the security menu, security chip submenu, and clear the TPM chip.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the Embedded Security Subsystem==&lt;br /&gt;
&lt;br /&gt;
=== TPM 1.1b basics ===&lt;br /&gt;
&lt;br /&gt;
The TPM chip is a &amp;quot;secure&amp;quot; brokerer of data signatures and keys, as well as a slow but very good hardware RNG.  It has some registers called PCRs that are used for trusted platform attestation.  It can sign data using 2048-bit RSA keys.  It is '''slow'''.  It is not easy to use, either :-)&lt;br /&gt;
&lt;br /&gt;
The current version of the TPM chips found on ThinkPads (TPM 1.1b) isn't secure at all against moderately sophisticated physical attacks, and it is also useless for DRM and other Treacherous Platform corporate ideas.&lt;br /&gt;
&lt;br /&gt;
A Trusted Platform in a context involving a TPM means that the PCRs contains values that they are expected to, because the TPM will allow data that is &amp;quot;sealed&amp;quot; (as opposed to &amp;quot;bound&amp;quot;) to it to be accessed (&amp;quot;unsealed&amp;quot;) only when the PCRs match the PCRs at sealing time.  The interesting magic is, therefore, in the process of updating the contents of the PCRs.&lt;br /&gt;
&lt;br /&gt;
The PCRs start zeroed at TPM reset.  As things load (BIOS, bootloader, OS, userspace), they are supposed to verify if the PCRs are at a state they can trust, and if so, to add the checksum of their own code, data, and configuration to the PCRs and load the next stage.  Alternatively, they can skip the PCR test and just extend it if they don't care that they are running in an untrusted state.&lt;br /&gt;
&lt;br /&gt;
PCRs cannot be set to a given value.  The TPM only allows one to &amp;quot;extend&amp;quot; a PCR, which is an operation where the result is a SHA-1 hash that depends on the previous value of the PCR and on the data you give the TPM to extend the PCR with.  It is non-trivial to get the PCR to a desired value based only on its previous contents and the desired target value.&lt;br /&gt;
&lt;br /&gt;
It is obviously a total nightmare to update the system in a trusted platform scenario, as the contents of the PCRs starting from the update point will change.  A changed PCR immediately makes any data that was sealed based on its old value impossible to access.  This is one of the reasons why nobody is doing remote trusted platform assurance, except in very controlled scenarios right now.  New versions of the specifications around the trusted platform support specifications (like TPM 1.2) are trying to address this problem.&lt;br /&gt;
&lt;br /&gt;
Trusted Platform assurance with a TPM 1.1b isn't easy to do, but it is possible (and it is not in any way unbreakable!, but it is a lot better than nothing for many uses).&lt;br /&gt;
&lt;br /&gt;
The ThinkPad BIOS measures the boot loader and stores the relevant data on PCR registers and the TPCA log, so if one adds a trusted boot loader to the system (like trusted-grub), one can load a trusted operating system and from there, trusted userspace applications, etc.&lt;br /&gt;
&lt;br /&gt;
Note that LPC-bus tricks using modchips to trap and modify the data flow to the TPM chip can effectively bust the Trusted Platform assurance completely on any ThinkPads up to the T61/R61/X61. To avoid that, a TPM inside the northbridge is needed.  Intel plans to add a TPM 1.2 to their chipsets in 2008, so it is likely that the T62/X62/R62 TPMs won't be as vulnerable to hardware hacks.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPad BIOS TPM basics ===&lt;br /&gt;
&lt;br /&gt;
The TCG TCPA specification also defines PC BIOS behaviour and extensions to deal with the TPM chip and Trusted Platform requirements.  The ThinkPad BIOS is compliant to the TCG PC Client specification v1.1 (and, in new ThinkPads, maybe v1.2).&lt;br /&gt;
&lt;br /&gt;
This means that:&lt;br /&gt;
*The BIOS can be used to reset the TPM using physical presence (see above for the reset procedure);&lt;br /&gt;
*Physical presence is only available to the BIOS (unless you hack the BIOS or the hardware, obviously);&lt;br /&gt;
*The BIOS can be configured to log or not (which also means calculate PCRs) the checksum of some of the platform data. If you don't want the ESCD or NVRAM contents to interfere in PCR calculations, you need to disable their logging in the BIOS for example;&lt;br /&gt;
*The BIOS touches PCRs 0 to 7, but leaves PCRs 8 to 15 alone (zeroed);&lt;br /&gt;
*You can disable the TPM chip in the BIOS, and not worry about someone using it behind your back.  But they will be able to know that there is a TPM in the system (the chip can still be found, and will report its version, manufacturer, and disabled state), unless you remove all the kernel TPM support, including tpm_bios;&lt;br /&gt;
*The BIOS might use the TPM, so watch out for trouble if you have HDD passwords enabled, etc;&lt;br /&gt;
&lt;br /&gt;
==== PCR registers extended by the BIOS ====&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{prettytable}}&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; width=&amp;quot;10%&amp;quot; | '''PCR #'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; | '''Description (TCG PC client spec v1.1)'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; | '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== T43 26xx BIOS 1.29 ====&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| CRTM, BIOS, and platform extensions&lt;br /&gt;
| The BIOS logs many BIOS POST PCR extensions, probably hardware and firmware-related&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Platform configuration:&lt;br /&gt;
*BIOS ROM strings (BIOS version and checksum)&lt;br /&gt;
*NVRAM (Asset tag data)&lt;br /&gt;
*CMOS configuration (basic, always logged)&lt;br /&gt;
*CMOS configuration (extended)&lt;br /&gt;
*ESCD platform configuration data (like size of memory modules, etc)&lt;br /&gt;
*SMBIOS data (?)&lt;br /&gt;
|&lt;br /&gt;
*Useful when BIOS ROM logging is enabled, since one has to trust the BIOS and it is best to not let someone update it behind your back.  Upgrading the BIOS invalidates data sealed to this PCR, though&lt;br /&gt;
*NVRAM logging is useful to seal data to a particular asset tag&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Option ROM code&lt;br /&gt;
| Can be used to detect the addition/subtraction/upgrade of Option ROMs (extra BIOS code from third parties)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Option ROM configuration and data&lt;br /&gt;
| Not modified except for the event separator on my current T43 config&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| IPL Code (system bootstrap)&lt;br /&gt;
* BIOS password used to authorize booting (if any)&lt;br /&gt;
* Boot device used&lt;br /&gt;
* MBR/boot sector checksum (LILO, Grub stage 1, etc)&lt;br /&gt;
|&lt;br /&gt;
* The password hash itself of the BIOS user or supervisor password is used to extend this PCR&lt;br /&gt;
* When you reboot, if the box doesn't ask for a password, the PCR will have different contents (work around: go into BIOS and exit saving changes, so that you are asked the password again)&lt;br /&gt;
* Lets one seal data to a particular boot password and to the fact that the password was typed in the keyboard&lt;br /&gt;
* Takes into account the device used to boot, and the bootstrap code checksum&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| IPL Code configuration and data&lt;br /&gt;
| This PCR is reserved for the boot loader to extend with its configuration and whatever else it loads&lt;br /&gt;
*trusted-grub extends it with stage 1.5 and stage 2 checksums, grub.conf checksum, and kernel and initrd checksum&lt;br /&gt;
*Not modified by the BIOS itself, except for the event separator&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| State transitions and wake events&lt;br /&gt;
| Logs a WAKE EVENT 0 hash on power up and simple reset (same event)&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Reserved&lt;br /&gt;
| Not modified except for the event separator.  Reserved by the TCG for future use.&lt;br /&gt;
|-&lt;br /&gt;
| 8-15&lt;br /&gt;
| User PCRs&lt;br /&gt;
|&lt;br /&gt;
*Not modified by BIOS or bootstrap&lt;br /&gt;
*Still zeroed at end of Linux boot&lt;br /&gt;
*Can be used for whatever the user wants&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Using the TPM in Windows ===&lt;br /&gt;
&lt;br /&gt;
Just install the full IBM Security solution, and let it use the TPM.  What good it will do to increase the security of your data is unknown.&lt;br /&gt;
&lt;br /&gt;
=== Using the TPM in Linux ===&lt;br /&gt;
&lt;br /&gt;
This section is very incomplete, but here are some pointers to get you started:&lt;br /&gt;
&lt;br /&gt;
*Compile a 2.6.23 or later kernel with the driver for the tpm chip in your ThinkPad model enabled;&lt;br /&gt;
**You need to enable CONFIG_SECURITY to get securityfs, and CONFIG_KEYS to use eCryptfs TPM support;&lt;br /&gt;
**You need to enable tpm_bios to access the TCPA log;&lt;br /&gt;
*Make sure to mount the securityfs filesystem on /sys/kernel/security to access tpm_bios data (the TCPA log);&lt;br /&gt;
*You should use dm-crypt to have an encrypted swap partition with an ephemeral key;&lt;br /&gt;
*The TCPA log can be found in the securityfs directory, and it might help you understand how the BIOS and boot loaders are using the PCRs.  The first number for each event in the log is the number PCR register that was extended by that event;&lt;br /&gt;
*You need an up-to-date version of the TrouSerS software stack to use the TPM for anything other than reading the TPCA log;&lt;br /&gt;
*You need an up-to-date eCryptfs userspace (with TPM support compiled in) to use the TPM to store filesystem keys;&lt;br /&gt;
*Using the TPM as a PKCS11 token is possible, but I have no idea how safe it is, since that requires a null (well-known) SRK;&lt;br /&gt;
*trusted-grub can be used to play with the PCRs before Linux loads, and to checksum the Linux kernel and extend a PCR with that data;&lt;br /&gt;
*The PCRs can be read through sysfs, under the /sys/bus/platform/devices/tpm*/pcrs file for the TPM driver for your TPM chip;&lt;br /&gt;
*TrouSerS 0.3.1 tpm_getpubek seems not to work too well, it gets the PUBEK attributes wrong from the NSC TPM chip in a T43 (but the key data itself is correct).  Compare to sys/bus/platform/devices/tpm*/pubek to check yours.&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
===IBM Embedded Security Chip===&lt;br /&gt;
*ThinkPad {{T23}}&lt;br /&gt;
===IBM Embedded Security Subsystem===&lt;br /&gt;
*ThinkPad {{A30p}}&lt;br /&gt;
*ThinkPad {{R31}}&lt;br /&gt;
*ThinkPad {{T23}}, {{T30}}&lt;br /&gt;
*ThinkPad {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
&lt;br /&gt;
===IBM Embedded Security Subsystem 2.0===&lt;br /&gt;
*ThinkPad {{R32}}, {{R40}}, {{R50}}, {{R50p}}, {{R51}}, {{R51e}}, {{R52}}, {{R60}}, {{R61}}&lt;br /&gt;
*ThinkPad {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}, {{T60p}}, {{T61}}, {{T61p}}&lt;br /&gt;
*ThinkPad {{X30}}, {{X31}}, {{X32}}, {{X40}}, {{X41}}, {{X41T}}, {{X60}}, {{X60s}}, {{X61s}}, {{X61_Tablet}}&lt;br /&gt;
*ThinkPad {{Z60m}}, {{Z60t}}&lt;br /&gt;
*ThinkPad {{X200}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]] &lt;br /&gt;
[[Category:Trusted Computing]]&lt;br /&gt;
&lt;br /&gt;
==TCPA/TCG clean models==&lt;br /&gt;
*all models produced before 2000&lt;br /&gt;
*all i Series models&lt;br /&gt;
*ThinkPad [[:Category:240X|240X]]&lt;br /&gt;
*ThinkPad [[:Category:A20m|A20m]], [[:Category:A20p|A20p]], [[:Category:A21e|A21e]], [[:Category:A21m|A21m]], [[:Category:A21p|A21p]], [[:Category:A22e|A22e]], [[:Category:A22m|A22m]], [[:Category:A22p|A22p]], [[:Category:A30|A30]]&lt;br /&gt;
*ThinkPad [[:Category:R50e|R50e]]&lt;br /&gt;
*ThinkPad [[:Category:T20|T20]], [[:Category:T21|T21]], [[:Category:T22|T22]]&lt;br /&gt;
*ThinkPad [[:Category:X20|X20]], [[:Category:X21|X21]], [[:Category:X22|X22]]&lt;br /&gt;
*ThinkPad [[:Category:TransNote|TransNote]]&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www.pc.ibm.com/us/think/thinkvantagetech/security.html IBMs ThinkVantage&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Technologies Embedded Security Subsystem page]&lt;br /&gt;
*[http://www.pc.ibm.com/presentations/us/thinkvantage/56/index.html?shortcut=ess&amp;amp; IBMs ThinkVantage&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Technologies Flash presentation - Embedded Security Subsystem]&lt;br /&gt;
*[https://www.trustedcomputinggroup.org/specs/PCClient/ TCG PC Client specifications]&lt;br /&gt;
*[http://www.research.ibm.com/gsal/tcpa/ IBM Research TCPA resources page]&lt;br /&gt;
*[http://www.prosec.rub.de/trusted_grub.html Trusted Grub]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Bluetooth_Daughter_Card_(14_pins)&amp;diff=38716</id>
		<title>Bluetooth Daughter Card (14 pins)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Bluetooth_Daughter_Card_(14_pins)&amp;diff=38716"/>
		<updated>2008-08-28T00:30:33Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* ThinkPads Using This Device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |[[Image:Logo_bluetooth.jpg|Bluetooth Logo]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad Bluetooth with Enhanced Data Rate (BDC-2) ===&lt;br /&gt;
This is a USB Bluetooth Adapter that is installed in a [[CDC slot]] in the screen assembly.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: Broadcom&lt;br /&gt;
* Model: BCM2045B&lt;br /&gt;
* USB VID/PID: 0A5C:2110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IBM Partnumbers ===&lt;br /&gt;
IBM FRU PN: 39T0497&lt;br /&gt;
&lt;br /&gt;
=== Linux Driver ===&lt;br /&gt;
&lt;br /&gt;
The Bluetooth adapter uses the '''hci_usb''' driver {{kernelconf|CONFIG_BT_HCIUSB||||||}}.&lt;br /&gt;
&lt;br /&gt;
One can enable Bluetooth by pressing {{key|Fn}}{{key|F5}}.  If this doesn't work, you can load the [[ibm-acpi|ibm_acpi]] or [[ibm-acpi|thinkpad_acpi]] kernel module and run the following command with root privileges:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|echo &amp;quot;enable&amp;quot; &amp;gt; /proc/acpi/ibm/bluetooth}}&lt;br /&gt;
&lt;br /&gt;
When Bluetooth is enabled, the Bluetooth-logo LED will light up and executing {{cmdroot|lsusb}} will show an entry mentioning &amp;quot;Broadcom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On recent ThinkPads the Wireless killswitch disables both WiFi and Bluetooth (verified on a ThinkPad Z60m, Z61t, T60, T61 and X61).&lt;br /&gt;
&lt;br /&gt;
=== Set Fn + F5 as hotkey to enable/disable Bluetooth ===&lt;br /&gt;
If the {{key|Fn}}{{key|F5}} combo doesn't work for you out-of-box, you can easily use Linux ACPI subsystem to enable and disable Bluetooh. You only need to create two small files (shown below). Note that you need to have &amp;lt;code&amp;gt;acpid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;thinkpad_acpi&amp;lt;/code&amp;gt; installed and properly working. The following scripts were tested on openSUSE 10.3.&lt;br /&gt;
==== ACPI action script ====&lt;br /&gt;
&amp;lt;pre&amp;gt;# cat /etc/acpi/actions/bluetooth&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Bluetooth enable/disable script&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/bluetooth status | grep -q running&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; -ne 0 ]; then&lt;br /&gt;
        /etc/init.d/bluetooth start &amp;gt; /dev/null&lt;br /&gt;
        echo enabled &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
        echo &amp;quot;Bluetooth enabled&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
        /etc/init.d/bluetooth stop &amp;gt; /dev/null&lt;br /&gt;
        echo disabled &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
        echo &amp;quot;Bluetooth disabled&amp;quot;&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
This script, when executed, detects the current state of Bluetooth subsystem and changes it to the opposite state.&lt;br /&gt;
==== ACPI event handler ====&lt;br /&gt;
&amp;lt;pre&amp;gt;# cat /etc/acpi/events/bluetooth&lt;br /&gt;
event=ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
action=/etc/acpi/actions/bluetooth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;acpid&amp;lt;/code&amp;gt;, once detects Fn + F5 keypress, runs the given script which disables or enables Bluetooth (and changes state of indication LED).&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
* [[How_to_setup_Bluetooth|How to Setup Bluetooth]]&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads Using This Device ===&lt;br /&gt;
* {{Z60m}}, {{Z60t}}, {{Z61t}}&lt;br /&gt;
* {{R60}}, {{R61}}&lt;br /&gt;
* {{T60}}, {{T60p}}, {{T61}}, {{T61p}}&lt;br /&gt;
* {{X200}}&lt;br /&gt;
&lt;br /&gt;
=== External Sources ===&lt;br /&gt;
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51427 IBM's page about configuring Bluetooth under Linux]&lt;br /&gt;
*[http://www.broadcom.com/products/Bluetooth/Bluetooth-RF-Silicon-and-Software-Solutions/BCM2045 Broadcom BCM2045 Product]&lt;br /&gt;
*[http://blogs.ebay.com.hk/lingqi-tech/archive/2007/12 Compare CDC slot types and CDC Bluetooth Cards for various ThinkPad Models]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Integrated_Fingerprint_Reader&amp;diff=38715</id>
		<title>Integrated Fingerprint Reader</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Integrated_Fingerprint_Reader&amp;diff=38715"/>
		<updated>2008-08-28T00:30:05Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* Models featuring this Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; | [[Image:fingerprintreader.jpg|IBM Integrated Fingerprint Reader]] __NOTOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
===Integrated Fingerprint Reader===&lt;br /&gt;
IBM released a second generation of T42 models in Autumn 2004 featuring Intel Pentium M 765 processors and an integrated fingerprint reader.&lt;br /&gt;
&lt;br /&gt;
The fingerprint reader is produced by a company called UPEK, which specializes in the manufacture of fingerprint readers. It is integrated as an USB device, and does all the matching in hardware, making it rather easy to use. Furthermore, IBM states that there's an interface with the [[Embedded Security Subsystem]].  UPEK now sells the fingerprint reader as a USB peripheral bundled with the same underlying software for accessing password-protected online accounts and Windows: [http://www.upek.com/solutions/eikon Eikon Digital Privacy Manager]&lt;br /&gt;
&lt;br /&gt;
However: The fingerprint reader is an INSECURE device and gives a false sense of security! There has been quite a bit of research by a hacker named Starbug, a member of the Chaos Computer Club, Berlin, Germany. He outlined in two very good talks how to forge each and every available fingerprint sensor available at the cost of a few euros, using materials from your local hardware store, a digicam and a laser printer! Here's some links:&lt;br /&gt;
* [http://www.ccc.de/updates/2007/umsonst-im-supermarkt?language=en  Fingerprint recognition in supermarkets]&lt;br /&gt;
* [ftp://ftp.ccc.de/pub/video/Fingerabdruck_Hack/fingerabdruck.mpg?language=en Video tutorial for forging fingerprints]&lt;br /&gt;
Remember, using fingerprints for authentication is much similar to having a password which is written on anything you touch.&lt;br /&gt;
&lt;br /&gt;
==Open Source==&lt;br /&gt;
&lt;br /&gt;
There is a new GPL driver at http://thinkfinger.sourceforge.net; see the [[How to enable the fingerprint reader with ThinkFinger]] for detailed instructions. This is the recommended option as it integrates more seamlessly with PAM and doesn't produce a tacky graphical prompt.&lt;br /&gt;
&lt;br /&gt;
{{HINT|If you've followed the instructions and &amp;quot;tf-tool --verify&amp;quot; works, but nothing else does, make sure that the &amp;quot;uinput&amp;quot; module is loaded.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Newer variants of the {{R61}} require a different driver.  This newer fingerprint reader [http://www.reactivated.net/fprint/wiki/Upeksonly device] sits on the USB bus with USB ID 147e:2016.  An open source driver has been developed by [http://www.reactivated.net/fprint/wiki/Main_Page the fprint project].  Installation instructions can be found at [http://knowledge76.com/index.php/Fingerprint_Reader_Installation System76].&lt;br /&gt;
&lt;br /&gt;
==Binary Only==&lt;br /&gt;
A closed source driver from the vendor has been released.  It interfaces to the hardware as a user-space USB driver through {{path|/proc/bus/usb|}} and provides a BioAPI 1.10 device, which can then be interfaced to pam for authentication by user programs.  The driver can be downloaded from http://www.upek.com/support/dl_linux_bsp.asp; see the [[How to enable the fingerprint reader|corresponding HOWTO]] for detailed instructions. It however tends to be less stable than the above opensource driver.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* [http://www.trustedreviews.com/article.aspx?page=1643&amp;amp;head=36 Review from TrustedReviews of the fingerprint scanner]&lt;br /&gt;
* [http://biomark.org.ru/en/ A (Russian) project that provides support for a (different model) of fingerprint scanner] (also a USB device, though)&lt;br /&gt;
* [http://www.upek.com/support/pdf/UPEK_flyer_TCS3_TCD4.pdf TouchStrip TCS3/TCD4 spec sheet]&lt;br /&gt;
* [http://www.qrivy.net/~michael/blua/ A branch of the BioAPI reference implementation]&lt;br /&gt;
* [http://www.reactivated.net/fprint/wiki/Main_Page fprint project]&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
*ThinkPad {{R52}}, {{R60}}, {{R61}}&lt;br /&gt;
*ThinkPad {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}, {{T60p}}, {{T61}}, {{T61p}}&lt;br /&gt;
*ThinkPad {{X41}}, {{X41T}}, {{X60}}, {{X60s}}, {{X61s}}, {{X61_Tablet}}&lt;br /&gt;
*ThinkPad {{Z60m}}, {{Z60t}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
*ThinkPad {{X200}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Wifi_Link_5100_(AGN)&amp;diff=38713</id>
		<title>Intel Wifi Link 5100 (AGN)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Wifi_Link_5100_(AGN)&amp;diff=38713"/>
		<updated>2008-08-28T00:28:39Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://lkml.org/lkml/2008/8/13/435 Support for Linux appears in 2.6.27]&lt;br /&gt;
&lt;br /&gt;
==== Models ====&lt;br /&gt;
* {{X200}}&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Wifi_Link_5300_(AGN)&amp;diff=38712</id>
		<title>Intel Wifi Link 5300 (AGN)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Wifi_Link_5300_(AGN)&amp;diff=38712"/>
		<updated>2008-08-28T00:28:04Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://lkml.org/lkml/2008/8/13/435 Support for Linux appears in 2.6.27]&lt;br /&gt;
&lt;br /&gt;
==== Models ====&lt;br /&gt;
* {{X200}}&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Wifi_Link_5300_(AGN)&amp;diff=38711</id>
		<title>Intel Wifi Link 5300 (AGN)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Wifi_Link_5300_(AGN)&amp;diff=38711"/>
		<updated>2008-08-28T00:27:40Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: â†Created page with '[http://lkml.org/lkml/2008/8/13/435 Support for Linux appears in 2.6.27]'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://lkml.org/lkml/2008/8/13/435 Support for Linux appears in 2.6.27]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Wifi_Link_5100_(AGN)&amp;diff=38710</id>
		<title>Intel Wifi Link 5100 (AGN)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Wifi_Link_5100_(AGN)&amp;diff=38710"/>
		<updated>2008-08-28T00:27:04Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: â†Created page with '[http://lkml.org/lkml/2008/8/13/435 Support for Linux appears in 2.6.27]'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://lkml.org/lkml/2008/8/13/435 Support for Linux appears in 2.6.27]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=MiniPCI_Express_slot&amp;diff=38709</id>
		<title>MiniPCI Express slot</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=MiniPCI_Express_slot&amp;diff=38709"/>
		<updated>2008-08-28T00:24:59Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
A MiniPCI Express slot is a version of the PCI-Express x1 slot for Notebooks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=== MiniPCI Express Adapters ===&lt;br /&gt;
* [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]]&lt;br /&gt;
* [[Intel PRO/Wireless 4965AGN Mini-PCI Express Adapter]]&lt;br /&gt;
* [[Intel Wifi Link 5100 (AGN)]]&lt;br /&gt;
* [[Intel Wifi Link 5300 (AGN)]]&lt;br /&gt;
* [[ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter]]&lt;br /&gt;
* [[ThinkPad 11a/b/g Wireless LAN Mini Express Adapter]]&lt;br /&gt;
* [[ThinkPad 11b/g Wireless LAN Mini-PCI Express Adapter III]]&lt;br /&gt;
* [[Verizon 1xEV-DO WWAN]]&lt;br /&gt;
&lt;br /&gt;
=== (In)Compatibility ===&lt;br /&gt;
Though the slot is MiniPCIe in form factor, it has been crippled to only accept devices with PCI-ID's contained in a BIOS whitelist consisting of the above list of devices (likely not exhaustive and varying depending on the particular system) with the additional requirement that they '''must carry the Lenovo brand name and consequently cost twice as much'''. If an unauthorized card is plugged in it gives a &amp;lt;tt&amp;gt;1802&amp;lt;/tt&amp;gt; error on initial boot up before it even touches the operating system. (see [[Problem with unauthorized MiniPCI network card]], [http://forum.notebookreview.com/showthread.php?t=69445 1802 with MiniPCIe on t60],[http://forums.lenovo.com/lnv/board/message?board.id=T_Series_Thinkpads&amp;amp;message.id=274 same]). The workarounds on the first link concerning MiniPCI devices may or may not be directly applicable to the MiniPCIe slot. Anyone who has added non-Lenovo components to this slot either successfully or unsuccessfully is encouraged to provide any relevant details here.&lt;br /&gt;
&lt;br /&gt;
=== Linux support ===&lt;br /&gt;
MiniPCI Express adapters are handled by the Linux PCI subsystem.&lt;br /&gt;
&lt;br /&gt;
=== Models featuring this Technology ===&lt;br /&gt;
* ThinkPad {{T60}}, {{T60p}}, {{R61}}, {{T61}}, {{T61p}}&lt;br /&gt;
* ThinkPad {{X60}}, {{X60s}}, {{X61}}, {{X61s}}, {{Z61m}}&lt;br /&gt;
* ThinkPad {{Z Series}}&lt;br /&gt;
* ThinkPad {{X200}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;br /&gt;
=== External sources ===&lt;br /&gt;
* Lenovo  [ftp://ftp.software.ibm.com/pc/pccbbs/mobiles/accessories_guide_us_can_dec2007.pdf accessories guide].&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Template:X200&amp;diff=38708</id>
		<title>Template:X200</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Template:X200&amp;diff=38708"/>
		<updated>2008-08-28T00:22:16Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: â†Created page with 'X200Category:X200'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[:Category:X200|X200]][[Category:X200]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Ethernet_Controllers&amp;diff=38707</id>
		<title>Ethernet Controllers</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Ethernet_Controllers&amp;diff=38707"/>
		<updated>2008-08-28T00:17:44Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* Intel Gigabit (10/100/1000) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Internal Ethernet controller ==&lt;br /&gt;
&lt;br /&gt;
A variety of [[Ethernet]] controllers is integrated into almost all models starting with the introduction of the A, T and X series.&lt;br /&gt;
&lt;br /&gt;
The Ethernet controller is located on either a MiniPCI card, Communications Daughter Card (CDC), or integrated on the systemboard.&lt;br /&gt;
&lt;br /&gt;
=== 3COM Fast Ethernet (10/100) ===&lt;br /&gt;
MiniPCI cards featuring this chip:&lt;br /&gt;
*[[3Com 10/100 Ethernet Mini-PCI Adapter with 56K Modem]]&lt;br /&gt;
&lt;br /&gt;
=== Intel Fast Ethernet (10/100) ===&lt;br /&gt;
CDC and MiniPCI cards featuring this chip:&lt;br /&gt;
*[[Ethernet Daughter Card (EDC)]]&lt;br /&gt;
*[[Intel 10/100 Ethernet Mini-PCI Adapter with 56K Modem]]&lt;br /&gt;
*[[Intel PRO/100 SP Mobile Combo Adapter]]&lt;br /&gt;
*[[Mini-PCI Ethernet card]]&lt;br /&gt;
*[[Xircom 10/100 EtherJet Mini PCI Adapter with 56K Modem]]&lt;br /&gt;
&lt;br /&gt;
In addition, this chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Intel 82550GY'''&lt;br /&gt;
* {{R30}}&lt;br /&gt;
'''Intel 82558'''&lt;br /&gt;
* [[SelectaBase PC Card Enabler with Advanced EtherJet]]&lt;br /&gt;
* [[ThinkPad Port Replicator with Advanced EtherJet]]&lt;br /&gt;
'''Intel 82562ET'''&lt;br /&gt;
* {{R31}}, {{R32}}&lt;br /&gt;
* {{T30}}&lt;br /&gt;
* {{X30}}&lt;br /&gt;
'''Intel 82562EZ'''&lt;br /&gt;
* {{R40}}, {{R50e}}, {{R50}}, {{R51}}&lt;br /&gt;
* {{T40}}&lt;br /&gt;
* {{X31}}&lt;br /&gt;
&lt;br /&gt;
Driver: [[e100]] (The 'e100' driver is the suggested driver, but '[[eepro100]]' should also work.)&lt;br /&gt;
&lt;br /&gt;
=== Intel Gigabit (10/100/1000) ===&lt;br /&gt;
Chipset: Intel PRO/1000 MT Mobile Ethernet&amp;lt;br /&amp;gt;&lt;br /&gt;
Driver: [[e1000]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Intel 82540EP'''&lt;br /&gt;
* {{R50}}, {{R50p}}, {{R51}}&lt;br /&gt;
* {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}&lt;br /&gt;
* {{X31}}, {{X32}}&lt;br /&gt;
'''Intel 82541GI'''&lt;br /&gt;
* {{R51}}&lt;br /&gt;
* {{X40}}&lt;br /&gt;
'''Intel 82573L''' (PCI-Express)&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}&lt;br /&gt;
** 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/&lt;br /&gt;
'''Intel 82566MM''' (PCI-Express) (w/ [[Intel Active Management Technology (AMT)]])&lt;br /&gt;
* {{T61}}, {{T61p}}, {{X61}}, {{X61s}}, {{X61_Tablet}}&lt;br /&gt;
'''Intel 82567LM''' (PCI-Express) (w/ [[Intel Active Management Technology (AMT)]])&lt;br /&gt;
* {{X200}}&lt;br /&gt;
* Driver: [[e1000e]]&lt;br /&gt;
Note: DO NOT(!!!) use the &amp;quot;irqpoll&amp;quot;  boot parameter. This causes the network card to lose it's irq, and makes any stability of the network connection impossible.&lt;br /&gt;
Note: There is a [[Problem with e1000: Open issue with latency|known issue]] with the e1000, t60/t60p and the 2.6.17 kernel. It is unconfirmed if this issue effects other configurations.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This chip supports Auto-MDIX, meaning you will never need a crossover ethernet cable.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: The first signs of explicit support for this chip in 2.6 kernels is with 2.6.12-rc2.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Red Hat Enterprise Linux 3.0 (2.4 kernel based) begins 82573L support with Update 7.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Some users report issues: [[Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid]]. This issue stands behind the symptom, that the intel controller 82573L will only work, if a network cable is attached at boot time (seen at X60 running with ubuntu).&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Some users have reported [http://forum.thinkpads.com/viewtopic.php?p=201279&amp;amp;sid=787564d7cf9de5d7d76b0cb312a98c61 latency problems] with e1000 driver. It seems, that [http://agenda.clustermonkey.net/index.php/Tuning_Intel_e1000_NICs switching off Interupt Throttle Rate (ITR)] helps. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: [http://support.intel.com/support/network/sb/CS-009209.htm Additional configuration options from Intel]&amp;lt;br/&amp;gt;&lt;br /&gt;
Note: Another possibility is to use &amp;quot;RxIntDelay=5&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For Gentoo users - compile e1000 as a kernel module and add 'options e1000 InterruptThrottleRate=0,0' to /etc/modules.d/e1000&lt;br /&gt;
&lt;br /&gt;
I had serious performance problems on Ubuntu Edgy (ca. 400 kb/s File transfer rate).&lt;br /&gt;
I compiled version e1000-7.3.20 from http://sourceforge.net/projects/e1000/ and this solved my problem.&lt;br /&gt;
All other hints above did not improve the file transfer performance (they did improve the ping latency) for me.&lt;br /&gt;
&lt;br /&gt;
=== Broadcom Fast Ethernet (10/100) ===&lt;br /&gt;
Driver: [[tg3]] or [[bcm5700]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Broadcom BCM5901'''&lt;br /&gt;
* {{G40}}, {{G41}}&lt;br /&gt;
* {{R40e}}&lt;br /&gt;
'''Broadcom BCM5751F'''&lt;br /&gt;
* {{R51e}}&lt;br /&gt;
&lt;br /&gt;
=== Broadcom Gigabit (10/100/1000) ===&lt;br /&gt;
Driver: [[tg3]] or [[bcm5700]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&lt;br /&gt;
&lt;br /&gt;
'''Broadcom BCM5752M'''&lt;br /&gt;
* {{Z61e}}&lt;br /&gt;
&lt;br /&gt;
'''Broadcom BCM5751M'''&lt;br /&gt;
* {{R52}}, {{R60}}&lt;br /&gt;
* {{G41}}&lt;br /&gt;
* {{T43}}, {{T43p}}&lt;br /&gt;
* {{X41}}, {{X41T}}&lt;br /&gt;
* {{Z60m}}, {{Z60t}}&lt;br /&gt;
* {{Z61m}}, {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
Note: There are some problems with the driver since kernel 2.6.17 (at least on a Z61p, Z61m). After an ifdown &amp;amp;&amp;amp; ifup it doesn't work anymore. A possible workaround is to build the tg3-driver as a module and reload it when this problem occours. (Adding ''pre-up modprobe tg3'' and ''post-down rmmod tg3'' to the corresponding section in /etc/network/interfaces works fine.) Rebooting the machine would also be possible.&lt;br /&gt;
This is fixed in kernel 2.6.19-rc5.&lt;br /&gt;
&lt;br /&gt;
The T43 with a stock Linux 2.6.18.1 kernel does not have any problems. &lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:X200&amp;diff=38706</id>
		<title>Category:X200</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:X200&amp;diff=38706"/>
		<updated>2008-08-28T00:14:16Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: Expanded features list, linked to resources and reviews&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
=== ThinkPad X200 ===&lt;br /&gt;
This page gives an overview of all ThinkPad X200 related topics.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
* One of the following processors:&lt;br /&gt;
** [[Intel Core 2 Duo]] P8400, 2.26Ghz, 3MB L2, 1066Mhz FSB&lt;br /&gt;
** [[Intel Core 2 Duo]] P8600, 2.40Ghz, 3MB L2, 1066Mhz FSB&lt;br /&gt;
* [[Intel Graphics Media Accelerator 4700 MHD]] onboard graphics&lt;br /&gt;
** 12&amp;quot; CCFL with 1280×800 (WXGA, 200 nit)&lt;br /&gt;
* Support for up to 5GB DDR3-RAM [[PC3-8500]]&lt;br /&gt;
** As of 27 Aug 2008, 4GB option is most available and '''only''' if you select upgrade to Windows Vista Business 64&lt;br /&gt;
* One of the following hard drives:&lt;br /&gt;
** 80,160,250 GB SATA 2.5&amp;quot; 5400/7200RPM&lt;br /&gt;
** 320 GB 5400RPM&lt;br /&gt;
** 200 GB Sata 2.5&amp;quot; 7200RPM with [[Full Disk Encryption (FDE)]]&lt;br /&gt;
** 64 GB SATA 1.8&amp;quot; SSD&lt;br /&gt;
* ThinkPad X200 Ultrabase&lt;br /&gt;
** DVD-ROM, CD-RW/DVD-ROM, DVD Burner, Blu-ray&lt;br /&gt;
* One of the following expansion slots:&lt;br /&gt;
** 5-1 Media card Reader with Modem&lt;br /&gt;
** 3-1 Media card Reader without Modem&lt;br /&gt;
* [[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]&lt;br /&gt;
* [[MiniPCI Express slot]] 1 with one of the following:&lt;br /&gt;
** [[ThinkPad 11b/g Wireless LAN Mini-PCI Express Adapter III]]&lt;br /&gt;
** [[Intel Wifi Link 5100 (AGN)]] (supported in Linux as of kernel 2.6.27)&lt;br /&gt;
** [[Intel Wifi Link 5300 (AGN)]] (supported in Linux as of kernel 2.6.27)&lt;br /&gt;
* [[MiniPCI Express slot]] 2 with one of the following:&lt;br /&gt;
** Integrated WWAN with GPS&lt;br /&gt;
** Integrated Ultra Wide Band (UWB) for AT&amp;amp;T&lt;br /&gt;
** Integrated Ultra Wide Band (UWB) for Verizon&lt;br /&gt;
** WiMAX (late 2008)&lt;br /&gt;
** [[Intel® Turbo Memory hard drive cache]] 2GB&lt;br /&gt;
* Optional Features&lt;br /&gt;
** Integrated camera&lt;br /&gt;
** Integrated digital microphone&lt;br /&gt;
** Security cable slot&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
* [[ThinkPad_Bluetooth_with_Enhanced_Data_Rate_(BDC-2)|Bluetooth]]&lt;br /&gt;
* [[Embedded Security Subsystem|IBM Embedded Security Subsystem 2.0]]&lt;br /&gt;
* [[Active Protection System|IBM Active Protection System]]&lt;br /&gt;
* TrackPoint '''only'''&lt;br /&gt;
* One of the following batteries&lt;br /&gt;
** 4-cell battery, up to 3.3 hr, 1.34kg&lt;br /&gt;
** 6-cell battery, up to 6.5 hr, 1.47kg&lt;br /&gt;
** 9-cell battery, up to 9.8 hr, 1.63kg (protrudes out back 22.8cm/.9in)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Resources ====&lt;br /&gt;
* [http://shop.lenovo.com/ISS_Static/merchandising/US/PDFs/x200_datasheet.pdf X200 Technical Specifications (pdf)]&lt;br /&gt;
&lt;br /&gt;
==== Reviews ====&lt;br /&gt;
* [http://www.notebookreview.com/default.asp?newsID=4497 Notebookreview.com] 2008-07-15&lt;br /&gt;
* [http://www.laptopmag.com/review/laptops/lenovo-thinkpad-x200.aspx Laptopmag.com] 2007-07-14&lt;br /&gt;
* [http://reviews.cnet.com/laptops/lenovo-thinkpad-x200/4505-3121_7-33184078.html Cnet.com] 2008-08-14&lt;br /&gt;
&lt;br /&gt;
[[Category:X Series]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Ethernet_Controllers&amp;diff=38705</id>
		<title>Ethernet Controllers</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Ethernet_Controllers&amp;diff=38705"/>
		<updated>2008-08-27T23:57:41Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* Intel Gigabit (10/100/1000) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Internal Ethernet controller ==&lt;br /&gt;
&lt;br /&gt;
A variety of [[Ethernet]] controllers is integrated into almost all models starting with the introduction of the A, T and X series.&lt;br /&gt;
&lt;br /&gt;
The Ethernet controller is located on either a MiniPCI card, Communications Daughter Card (CDC), or integrated on the systemboard.&lt;br /&gt;
&lt;br /&gt;
=== 3COM Fast Ethernet (10/100) ===&lt;br /&gt;
MiniPCI cards featuring this chip:&lt;br /&gt;
*[[3Com 10/100 Ethernet Mini-PCI Adapter with 56K Modem]]&lt;br /&gt;
&lt;br /&gt;
=== Intel Fast Ethernet (10/100) ===&lt;br /&gt;
CDC and MiniPCI cards featuring this chip:&lt;br /&gt;
*[[Ethernet Daughter Card (EDC)]]&lt;br /&gt;
*[[Intel 10/100 Ethernet Mini-PCI Adapter with 56K Modem]]&lt;br /&gt;
*[[Intel PRO/100 SP Mobile Combo Adapter]]&lt;br /&gt;
*[[Mini-PCI Ethernet card]]&lt;br /&gt;
*[[Xircom 10/100 EtherJet Mini PCI Adapter with 56K Modem]]&lt;br /&gt;
&lt;br /&gt;
In addition, this chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Intel 82550GY'''&lt;br /&gt;
* {{R30}}&lt;br /&gt;
'''Intel 82558'''&lt;br /&gt;
* [[SelectaBase PC Card Enabler with Advanced EtherJet]]&lt;br /&gt;
* [[ThinkPad Port Replicator with Advanced EtherJet]]&lt;br /&gt;
'''Intel 82562ET'''&lt;br /&gt;
* {{R31}}, {{R32}}&lt;br /&gt;
* {{T30}}&lt;br /&gt;
* {{X30}}&lt;br /&gt;
'''Intel 82562EZ'''&lt;br /&gt;
* {{R40}}, {{R50e}}, {{R50}}, {{R51}}&lt;br /&gt;
* {{T40}}&lt;br /&gt;
* {{X31}}&lt;br /&gt;
&lt;br /&gt;
Driver: [[e100]] (The 'e100' driver is the suggested driver, but '[[eepro100]]' should also work.)&lt;br /&gt;
&lt;br /&gt;
=== Intel Gigabit (10/100/1000) ===&lt;br /&gt;
Chipset: Intel PRO/1000 MT Mobile Ethernet&amp;lt;br /&amp;gt;&lt;br /&gt;
Driver: [[e1000]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Intel 82540EP'''&lt;br /&gt;
* {{R50}}, {{R50p}}, {{R51}}&lt;br /&gt;
* {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}&lt;br /&gt;
* {{X31}}, {{X32}}&lt;br /&gt;
'''Intel 82541GI'''&lt;br /&gt;
* {{R51}}&lt;br /&gt;
* {{X40}}&lt;br /&gt;
'''Intel 82573L''' (PCI-Express)&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}&lt;br /&gt;
** 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/&lt;br /&gt;
'''Intel 82566MM''' (PCI-Express) (w/ [[Intel Active Management Technology (AMT)]])&lt;br /&gt;
* {{T61}}, {{T61p}}, {{X61}}, {{X61s}}, {{X61_Tablet}}&lt;br /&gt;
'''Intel 82567LM''' (PCI-Express) (w/ [[Intel Active management Technology (AMT)]])&lt;br /&gt;
* {{X200}}&lt;br /&gt;
* Driver: [[e1000e]]&lt;br /&gt;
Note: DO NOT(!!!) use the &amp;quot;irqpoll&amp;quot;  boot parameter. This causes the network card to lose it's irq, and makes any stability of the network connection impossible.&lt;br /&gt;
Note: There is a [[Problem with e1000: Open issue with latency|known issue]] with the e1000, t60/t60p and the 2.6.17 kernel. It is unconfirmed if this issue effects other configurations.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This chip supports Auto-MDIX, meaning you will never need a crossover ethernet cable.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: The first signs of explicit support for this chip in 2.6 kernels is with 2.6.12-rc2.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Red Hat Enterprise Linux 3.0 (2.4 kernel based) begins 82573L support with Update 7.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Some users report issues: [[Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid]]. This issue stands behind the symptom, that the intel controller 82573L will only work, if a network cable is attached at boot time (seen at X60 running with ubuntu).&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Some users have reported [http://forum.thinkpads.com/viewtopic.php?p=201279&amp;amp;sid=787564d7cf9de5d7d76b0cb312a98c61 latency problems] with e1000 driver. It seems, that [http://agenda.clustermonkey.net/index.php/Tuning_Intel_e1000_NICs switching off Interupt Throttle Rate (ITR)] helps. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: [http://support.intel.com/support/network/sb/CS-009209.htm Additional configuration options from Intel]&amp;lt;br/&amp;gt;&lt;br /&gt;
Note: Another possibility is to use &amp;quot;RxIntDelay=5&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For Gentoo users - compile e1000 as a kernel module and add 'options e1000 InterruptThrottleRate=0,0' to /etc/modules.d/e1000&lt;br /&gt;
&lt;br /&gt;
I had serious performance problems on Ubuntu Edgy (ca. 400 kb/s File transfer rate).&lt;br /&gt;
I compiled version e1000-7.3.20 from http://sourceforge.net/projects/e1000/ and this solved my problem.&lt;br /&gt;
All other hints above did not improve the file transfer performance (they did improve the ping latency) for me.&lt;br /&gt;
&lt;br /&gt;
=== Broadcom Fast Ethernet (10/100) ===&lt;br /&gt;
Driver: [[tg3]] or [[bcm5700]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Broadcom BCM5901'''&lt;br /&gt;
* {{G40}}, {{G41}}&lt;br /&gt;
* {{R40e}}&lt;br /&gt;
'''Broadcom BCM5751F'''&lt;br /&gt;
* {{R51e}}&lt;br /&gt;
&lt;br /&gt;
=== Broadcom Gigabit (10/100/1000) ===&lt;br /&gt;
Driver: [[tg3]] or [[bcm5700]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&lt;br /&gt;
&lt;br /&gt;
'''Broadcom BCM5752M'''&lt;br /&gt;
* {{Z61e}}&lt;br /&gt;
&lt;br /&gt;
'''Broadcom BCM5751M'''&lt;br /&gt;
* {{R52}}, {{R60}}&lt;br /&gt;
* {{G41}}&lt;br /&gt;
* {{T43}}, {{T43p}}&lt;br /&gt;
* {{X41}}, {{X41T}}&lt;br /&gt;
* {{Z60m}}, {{Z60t}}&lt;br /&gt;
* {{Z61m}}, {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
Note: There are some problems with the driver since kernel 2.6.17 (at least on a Z61p, Z61m). After an ifdown &amp;amp;&amp;amp; ifup it doesn't work anymore. A possible workaround is to build the tg3-driver as a module and reload it when this problem occours. (Adding ''pre-up modprobe tg3'' and ''post-down rmmod tg3'' to the corresponding section in /etc/network/interfaces works fine.) Rebooting the machine would also be possible.&lt;br /&gt;
This is fixed in kernel 2.6.19-rc5.&lt;br /&gt;
&lt;br /&gt;
The T43 with a stock Linux 2.6.18.1 kernel does not have any problems. &lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel%C2%AE_Turbo_Memory_hard_drive_cache&amp;diff=38704</id>
		<title>Intel® Turbo Memory hard drive cache</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel%C2%AE_Turbo_Memory_hard_drive_cache&amp;diff=38704"/>
		<updated>2008-08-27T23:56:52Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; &lt;br /&gt;
| style=&amp;quot;vertical-align:top&amp;quot; | &lt;br /&gt;
Intel Turbo Memory is an add-on memory for read and write caching of the hard-drive. (Previously dubbed as Robson.)&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Non-volatile Flash Memory (512MB or 1GB NAND-flash)&lt;br /&gt;
* Improve system responsiveness&lt;br /&gt;
* Speed-up boot time&lt;br /&gt;
* Reduce power consumption&lt;br /&gt;
| style=&amp;quot;vertical-align:top&amp;quot; | [[Image:Intel_turbomemory.jpg|Turbo Memory card]]&lt;br /&gt;
&lt;br /&gt;
(picture credits intel)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Support Operating system ==&lt;br /&gt;
* Windows Vista only (via Vista ReadyBoost and Vista ReadyDrive)&lt;br /&gt;
&lt;br /&gt;
== Supported Laptops ==&lt;br /&gt;
{{T61}}, {{T61p}}, {{X61_Tablet}}, {{X200}} (only Turbo Memory module or WWAN module can exists at the same time)&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.intel.com/design/flash/nand/turbomemory/index.htm Official website]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel%C2%AE_Turbo_Memory_hard_drive_cache&amp;diff=38703</id>
		<title>Intel® Turbo Memory hard drive cache</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel%C2%AE_Turbo_Memory_hard_drive_cache&amp;diff=38703"/>
		<updated>2008-08-27T23:56:40Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; &lt;br /&gt;
| style=&amp;quot;vertical-align:top&amp;quot; | &lt;br /&gt;
Intel Turbo Memory is an add-on memory for read and write caching of the hard-drive. (Previously dubbed as Robson.)&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Non-volatile Flash Memory (512MB or 1GB NAND-flash)&lt;br /&gt;
* Improve system responsiveness&lt;br /&gt;
* Speed-up boot time&lt;br /&gt;
* Reduce power consumption&lt;br /&gt;
| style=&amp;quot;vertical-align:top&amp;quot; | [[Image:Intel_turbomemory.jpg|Turbo Memory card]]&lt;br /&gt;
&lt;br /&gt;
(picture credits intel)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Support Operating system ==&lt;br /&gt;
* Windows Vista only (via Vista ReadyBoost and Vista ReadyDrive)&lt;br /&gt;
&lt;br /&gt;
== Supported Laptops ==&lt;br /&gt;
{{T61}}, {{T61p}}, {{X61_Tablet}}, {{X200} (only Turbo Memory module or WWAN module can exists at the same time)&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.intel.com/design/flash/nand/turbomemory/index.htm Official website]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Ethernet_Controllers&amp;diff=38702</id>
		<title>Ethernet Controllers</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Ethernet_Controllers&amp;diff=38702"/>
		<updated>2008-08-27T23:29:09Z</updated>

		<summary type="html">&lt;p&gt;Ryanc: /* Intel Gigabit (10/100/1000) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Internal Ethernet controller ==&lt;br /&gt;
&lt;br /&gt;
A variety of [[Ethernet]] controllers is integrated into almost all models starting with the introduction of the A, T and X series.&lt;br /&gt;
&lt;br /&gt;
The Ethernet controller is located on either a MiniPCI card, Communications Daughter Card (CDC), or integrated on the systemboard.&lt;br /&gt;
&lt;br /&gt;
=== 3COM Fast Ethernet (10/100) ===&lt;br /&gt;
MiniPCI cards featuring this chip:&lt;br /&gt;
*[[3Com 10/100 Ethernet Mini-PCI Adapter with 56K Modem]]&lt;br /&gt;
&lt;br /&gt;
=== Intel Fast Ethernet (10/100) ===&lt;br /&gt;
CDC and MiniPCI cards featuring this chip:&lt;br /&gt;
*[[Ethernet Daughter Card (EDC)]]&lt;br /&gt;
*[[Intel 10/100 Ethernet Mini-PCI Adapter with 56K Modem]]&lt;br /&gt;
*[[Intel PRO/100 SP Mobile Combo Adapter]]&lt;br /&gt;
*[[Mini-PCI Ethernet card]]&lt;br /&gt;
*[[Xircom 10/100 EtherJet Mini PCI Adapter with 56K Modem]]&lt;br /&gt;
&lt;br /&gt;
In addition, this chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Intel 82550GY'''&lt;br /&gt;
* {{R30}}&lt;br /&gt;
'''Intel 82558'''&lt;br /&gt;
* [[SelectaBase PC Card Enabler with Advanced EtherJet]]&lt;br /&gt;
* [[ThinkPad Port Replicator with Advanced EtherJet]]&lt;br /&gt;
'''Intel 82562ET'''&lt;br /&gt;
* {{R31}}, {{R32}}&lt;br /&gt;
* {{T30}}&lt;br /&gt;
* {{X30}}&lt;br /&gt;
'''Intel 82562EZ'''&lt;br /&gt;
* {{R40}}, {{R50e}}, {{R50}}, {{R51}}&lt;br /&gt;
* {{T40}}&lt;br /&gt;
* {{X31}}&lt;br /&gt;
&lt;br /&gt;
Driver: [[e100]] (The 'e100' driver is the suggested driver, but '[[eepro100]]' should also work.)&lt;br /&gt;
&lt;br /&gt;
=== Intel Gigabit (10/100/1000) ===&lt;br /&gt;
Chipset: Intel PRO/1000 MT Mobile Ethernet&amp;lt;br /&amp;gt;&lt;br /&gt;
Driver: [[e1000]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Intel 82540EP'''&lt;br /&gt;
* {{R50}}, {{R50p}}, {{R51}}&lt;br /&gt;
* {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}&lt;br /&gt;
* {{X31}}, {{X32}}&lt;br /&gt;
'''Intel 82541GI'''&lt;br /&gt;
* {{R51}}&lt;br /&gt;
* {{X40}}&lt;br /&gt;
'''Intel 82573L''' (PCI-Express)&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}&lt;br /&gt;
** 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/&lt;br /&gt;
'''Intel 82566MM''' (PCI-Express) (w/ [[Intel Active Management Technology (AMT)]])&lt;br /&gt;
* {{T61}}, {{T61p}}, {{X61}}, {{X61s}}, {{X61_Tablet}}&lt;br /&gt;
'''Intel 82567LM''' (PCI-Express) (w/ [[Intel Active management Technology (AMT)]])&lt;br /&gt;
* {{X300}}&lt;br /&gt;
* Driver: [[e1000e]]&lt;br /&gt;
Note: DO NOT(!!!) use the &amp;quot;irqpoll&amp;quot;  boot parameter. This causes the network card to lose it's irq, and makes any stability of the network connection impossible.&lt;br /&gt;
Note: There is a [[Problem with e1000: Open issue with latency|known issue]] with the e1000, t60/t60p and the 2.6.17 kernel. It is unconfirmed if this issue effects other configurations.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This chip supports Auto-MDIX, meaning you will never need a crossover ethernet cable.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: The first signs of explicit support for this chip in 2.6 kernels is with 2.6.12-rc2.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Red Hat Enterprise Linux 3.0 (2.4 kernel based) begins 82573L support with Update 7.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Some users report issues: [[Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid]]. This issue stands behind the symptom, that the intel controller 82573L will only work, if a network cable is attached at boot time (seen at X60 running with ubuntu).&amp;lt;br&amp;gt;&lt;br /&gt;
Note: Some users have reported [http://forum.thinkpads.com/viewtopic.php?p=201279&amp;amp;sid=787564d7cf9de5d7d76b0cb312a98c61 latency problems] with e1000 driver. It seems, that [http://agenda.clustermonkey.net/index.php/Tuning_Intel_e1000_NICs switching off Interupt Throttle Rate (ITR)] helps. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: [http://support.intel.com/support/network/sb/CS-009209.htm Additional configuration options from Intel]&amp;lt;br/&amp;gt;&lt;br /&gt;
Note: Another possibility is to use &amp;quot;RxIntDelay=5&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For Gentoo users - compile e1000 as a kernel module and add 'options e1000 InterruptThrottleRate=0,0' to /etc/modules.d/e1000&lt;br /&gt;
&lt;br /&gt;
I had serious performance problems on Ubuntu Edgy (ca. 400 kb/s File transfer rate).&lt;br /&gt;
I compiled version e1000-7.3.20 from http://sourceforge.net/projects/e1000/ and this solved my problem.&lt;br /&gt;
All other hints above did not improve the file transfer performance (they did improve the ping latency) for me.&lt;br /&gt;
&lt;br /&gt;
=== Broadcom Fast Ethernet (10/100) ===&lt;br /&gt;
Driver: [[tg3]] or [[bcm5700]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&amp;lt;br&amp;gt;&lt;br /&gt;
'''Broadcom BCM5901'''&lt;br /&gt;
* {{G40}}, {{G41}}&lt;br /&gt;
* {{R40e}}&lt;br /&gt;
'''Broadcom BCM5751F'''&lt;br /&gt;
* {{R51e}}&lt;br /&gt;
&lt;br /&gt;
=== Broadcom Gigabit (10/100/1000) ===&lt;br /&gt;
Driver: [[tg3]] or [[bcm5700]]&lt;br /&gt;
&lt;br /&gt;
This chip is integrated into select systemboards of the following machines:&lt;br /&gt;
&lt;br /&gt;
'''Broadcom BCM5752M'''&lt;br /&gt;
* {{Z61e}}&lt;br /&gt;
&lt;br /&gt;
'''Broadcom BCM5751M'''&lt;br /&gt;
* {{R52}}, {{R60}}&lt;br /&gt;
* {{G41}}&lt;br /&gt;
* {{T43}}, {{T43p}}&lt;br /&gt;
* {{X41}}, {{X41T}}&lt;br /&gt;
* {{Z60m}}, {{Z60t}}&lt;br /&gt;
* {{Z61m}}, {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
Note: There are some problems with the driver since kernel 2.6.17 (at least on a Z61p, Z61m). After an ifdown &amp;amp;&amp;amp; ifup it doesn't work anymore. A possible workaround is to build the tg3-driver as a module and reload it when this problem occours. (Adding ''pre-up modprobe tg3'' and ''post-down rmmod tg3'' to the corresponding section in /etc/network/interfaces works fine.) Rebooting the machine would also be possible.&lt;br /&gt;
This is fixed in kernel 2.6.19-rc5.&lt;br /&gt;
&lt;br /&gt;
The T43 with a stock Linux 2.6.18.1 kernel does not have any problems. &lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Ryanc</name></author>
		
	</entry>
</feed>