<?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=Monnier</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=Monnier"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Monnier"/>
	<updated>2026-04-17T11:24:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:X1_Carbon_(5th_Gen)&amp;diff=58305</id>
		<title>Category:X1 Carbon (5th Gen)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:X1_Carbon_(5th_Gen)&amp;diff=58305"/>
		<updated>2017-09-18T19:16:01Z</updated>

		<summary type="html">&lt;p&gt;Monnier: list one of the used SSD&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Thinkpad X1 Carbon 5th Generation is based on the Intel Kaby Lake microarchitecture and released in early 2017.&lt;br /&gt;
&lt;br /&gt;
Previous generations: [[:Category:X1 Carbon|2012]], [[:Category:X1 Carbon 2nd|2014]], [[:Category:X1 Carbon (3rd Gen)|2015]], [[:Category:X1 Carbon (4th Gen)|2016]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
{{Todo|Please note that the specs below are incomplete, help needed!}}&lt;br /&gt;
* '''Machine type:''' 20HQ*, 20HR*&lt;br /&gt;
* '''Processor:''' One of the following ULV seventh generation [[Intel Core]] processors (code name: &amp;quot;Kaby Lake&amp;quot;, 14nm)&lt;br /&gt;
** Intel® Core™ i5-7200U (2.5-3.1GHz, 3MB L3 cache)&lt;br /&gt;
** Intel® Core™ i5-7300U (2.6-3.5GHz, 3MB L3 cache)&lt;br /&gt;
** Intel® Core™ i7-7500U (2.7-3.5GHz, 4MB L3 cache)&lt;br /&gt;
** Intel® Core™ vPro™ i7-7600U (2.8-3.9GHz, 4MB L3 cache)&lt;br /&gt;
* '''Graphics:''' [[Intel HD Graphics|Intel® HD Graphics 620]]&lt;br /&gt;
* '''Display:''' Matte IPS screen with&lt;br /&gt;
** 14.0&amp;quot; FHD (1920x1080), 300 nits&lt;br /&gt;
** 14.0&amp;quot; WQHD (2560x1440), 300 nits (available from mid-2017)&lt;br /&gt;
* '''Memory:''' Soldered directly on the mainboard, with the following choices&lt;br /&gt;
** 8GB LPDDR3 PC3-14900&lt;br /&gt;
** 16GB LPDDR3 SDRAM PC3-14900&lt;br /&gt;
* '''Storage:''' One of the following connected to the M.2 port&lt;br /&gt;
** 128GB M.2 SATA SSD (SanDisk X400, maybe others)&lt;br /&gt;
** 256GB NVMe SSD with OPAL 2.0&lt;br /&gt;
** 512GB Samsung PM961 NVMe SSD with OPAL 2.0&lt;br /&gt;
** 1TB NVMe SSD with OPAL 2.0&lt;br /&gt;
* '''WLAN:''' Intel® Dual Band Wireless-AC 8265 2x2 with Bluetooth 4.2&lt;br /&gt;
* '''WWAN:''' Qualcomm® Snapdragon™ X7 LTE-A / Sierra Wireless EM7455 (WWAN is available but must be configured at purchase, otherwise there is no WWAN antenna provided)&lt;br /&gt;
* '''Bluetooth:''' Bluetooth 4.2 integrated within WLAN module&lt;br /&gt;
* '''Keyboard:''' 5-row with TrackPoint and ClickPad, illuminated keyboard keys&lt;br /&gt;
* '''I/O Ports:'''&lt;br /&gt;
** 2 x USB Type-C with Thunderbolt 3 and USB 3.1 support&lt;br /&gt;
** 2 x USB Type-A with USB 3.1 support&lt;br /&gt;
** HDMI 1.4&lt;br /&gt;
** Mini Ethernet jack&lt;br /&gt;
** 3.5mm Audio/Mic combo jack&lt;br /&gt;
** microSD card slot&lt;br /&gt;
** Micro SIM slot&lt;br /&gt;
* '''Battery:''' 3-cell Li-Poly battery (57Wh), up to 15.5 hours&lt;br /&gt;
* '''Webcam:''' 720p HD webcam with microphone&lt;br /&gt;
* '''Audio:''' Dolby® Audio™ Premium&lt;br /&gt;
* '''Security'''&lt;br /&gt;
** TPM module (dTPM 2.0)&lt;br /&gt;
** Fingerprint reader&lt;br /&gt;
* '''Physical Dimensions'''&lt;br /&gt;
** Size: 12.7in x 8.5in x 0.63in (324 x 217mm x 16.0mm)&lt;br /&gt;
** Weight: 2.52 lb (1.14 kg) / 3.30lb (1.50 kg) with power supply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X1_Carbon]][[Category:X Series]]&lt;/div&gt;</summary>
		<author><name>Monnier</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade_success_failure&amp;diff=58187</id>
		<title>BIOS Upgrade success failure</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade_success_failure&amp;diff=58187"/>
		<updated>2017-05-04T17:39:51Z</updated>

		<summary type="html">&lt;p&gt;Monnier: Add T60 success report via Grub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lot's of people reported success/failure with [[BIOS_Upgrade#Booting_from_a_CD]]. If you managed, please, tell us about success, if failed, please, document the problems you've encountered, so people could avoid your same troubles.&lt;br /&gt;
&lt;br /&gt;
= Booting from CD =&lt;br /&gt;
&lt;br /&gt;
Here document your progress with [[BIOS_Upgrade#Booting_from_a_CD]] method.&lt;br /&gt;
&lt;br /&gt;
== Successful tests ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-size:80%; vertical-align:top;&amp;quot;&lt;br /&gt;
! Model&lt;br /&gt;
! Tested by, and comments&lt;br /&gt;
|-&lt;br /&gt;
| {{600E}} 2645-4AU ||&lt;br /&gt;
* George Tellalov &amp;lt;gtellalov_dontspamme@bigfoot.com&amp;gt;. BIOS 1.16 from spsdin36.exe worked perfectly with the method bootable cd from floppy image. I highly recommend this upgrade because it made my ibm-acpi module load (it wouldn't load before) and fixed some suspend to ram problems. Here's the [http://george.tellalov.info/bios_upgrade_600e_spsdin36.iso cd image] I used. Use at your own risk. You can send me a chocolate if it works for you ;)&lt;br /&gt;
|-&lt;br /&gt;
| {{600E}} 2645-5bU ||&lt;br /&gt;
* Mike Vincent&amp;lt;matchstc-putobvioushere.com&amp;gt;. Bios 1.16 from spsdin36.exe and then to the boot cd worked great for me. Thought I had bricked it three separate times using a &amp;quot;real&amp;quot; floppy! Each from different diskettes .The updater would start, give me the &amp;quot;going to take30 seconds&amp;quot; speech...and then access the HD for 10 minutes. Each time it would reboot fine. Did the cd as described above...worked great first time. Perhaps 10 year old seldom used floppy disc drives have some challenges?&lt;br /&gt;
|-&lt;br /&gt;
| {{600X}} 2645 ||&lt;br /&gt;
* Jonathan Byrne &amp;lt;jonathan@RemoveThisToMailMe.yamame.org&amp;gt;. BIOS 1.11 from spsuit55.exe worked perfectly using cabextract/CD method.&lt;br /&gt;
|-&lt;br /&gt;
| {{600X}} 2645 ||&lt;br /&gt;
* Andy Barnes &amp;lt;andy@RemoveThisToMailMe.itchypaws.co.uk&amp;gt;. As per Jonathan above, extracted BIOS 1.11 from spsuit55.exe using cabextract, created a CD boot image and burnt to CD.  Worked flawlessly - thanks to everyone who contributed to this article!&lt;br /&gt;
|-&lt;br /&gt;
| {{A20p}} 2629-6VU ||&lt;br /&gt;
* Chris Pickett http://www.sable.mcgill.ca/~cpicke/. BIOS 1.11 flashed fine with cabextract/CD method.&lt;br /&gt;
|-&lt;br /&gt;
| {{A21e}} 2628-JXU ||&lt;br /&gt;
* Amit Gurdasani &amp;lt;gurdasani at yahoo dot com&amp;gt;. BIOS 1.13 flashed fine with cabextract/CD method. Alarmingly, after the BIOS update, the laptop beeped but did not shut down as was indicated onscreen -- that was frozen on the &amp;quot;do not shut down the laptop&amp;quot; screen. On power down and up again, the BIOS setup showed the newer BIOS image running, and Linux booted up fine. Linux ACPI didn't complain about the BIOS being too old either.&lt;br /&gt;
|-&lt;br /&gt;
| {{A31p}} 2653 ||&lt;br /&gt;
* Matthias Meinke largeeddy@gmx.at, BIOS 1.09 1NET15WW flashed fine with cabextract/CD method.&lt;br /&gt;
|-&lt;br /&gt;
| {{A31}} 2652 ||&lt;br /&gt;
* [[User:Wnoise|Aaron Denney]], BIOS 1.13 flashed fine with cabextract/CD method.  The cabextract/CD method also worked for BIOS 1.10.&lt;br /&gt;
|-&lt;br /&gt;
| {{R30}} ||&lt;br /&gt;
* Jarrod, 30 August 2007, Thinkpad R30 Type 2656-E0M. BIOS updated to 1.40 (1CETF0WW) using floppy disk/mkisofs/cdrecord. Worked fine, no problems.&lt;br /&gt;
|-&lt;br /&gt;
| {{R31}} ||&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/1998-January/009743.html Mathias Dalheimer]&lt;br /&gt;
* Sebastian Sauer (with cabextract/CD method)&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} ||&lt;br /&gt;
* Matthew Lambie, http://lambie.org&lt;br /&gt;
* Antti S. Lankila, update to 1.27 via direct use of phlash16.exe against a BIOS image. Normal method did not work because the battery is dead.&lt;br /&gt;
|-&lt;br /&gt;
| {{R50}} 1836-3SU ||&lt;br /&gt;
* jlbartos &amp;lt;jlbartos at hotmail dot com&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{R50e}} 1834-PTG ||&lt;br /&gt;
* item &amp;lt;item at freemail dot hu&amp;gt; : successfully finished with cabextract/CD method for &amp;quot;1wuj25us.exe&amp;quot; (BIOS version 1WET90WW (2.10), Release Date: 2006/12/22)&lt;br /&gt;
* Christos Nouskas &amp;lt;nouskas at gmail dot com&amp;gt;: upgraded to BIOS version 1WET90WW (2.10) and EC version 1VHT28WW (1.04) using GRUB (BIOS first / EC second)&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1829 ||&lt;br /&gt;
* Robert Uhl &amp;lt;rob dot uhl at gmx dot de&amp;gt;, Jellby &amp;lt;jellby at yahoo dot com&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1830-RM7 ||&lt;br /&gt;
* Will Parker &amp;lt;stardotstar at sourcepoint dot com dot au&amp;gt; successfully flashed 3.20 using existing 3.04 ECP and retained custom boot splash.&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 2883-ELU  ||&lt;br /&gt;
* [[User:quaternion|quaternion]], BIOS upgrade from 1VET64WW (1.22 ) to 1VET71WW (1.29). ECP version was already up-to-date at the time (1VHT28WW-1.04). Cabextract didn't work with disk exe, so used nondisk 1vuj25us.exe and upgraded successfully with cabextract/genisoimage/k3b burn to CD-RW.&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 2887 ||&lt;br /&gt;
* Ingo van Lil &amp;lt;inguin at gmx dot de&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1858 ||&lt;br /&gt;
* Stuart McCord &amp;lt;stuart dot mccord at gmail dot com&amp;gt; flashed both BIOS and ECP using cabextract, BIOS flashed first as on IBM website&lt;br /&gt;
|-&lt;br /&gt;
| {{T20}} ||&lt;br /&gt;
* Franz Hassels &amp;lt;fhassel at suse dot com&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{T22}} ||&lt;br /&gt;
* Daniel Maier &amp;lt;nusse teamidiot de&amp;gt;&lt;br /&gt;
* Mathias Behrle (with cabextract/CD method, Version 1.07 =&amp;gt; 1.12) --[[User:Mathiasb|Mathiasb]] 11:58, 14 December 2006 (CET)&lt;br /&gt;
* Bob Skaroff (cabextract/CD), 1.06 =&amp;gt; 1.12&lt;br /&gt;
* Leo Butler (cabextract/CD), 1.11 =&amp;gt; 1.12&lt;br /&gt;
|-&lt;br /&gt;
| {{T23}} ||&lt;br /&gt;
* Bart Snapp &amp;lt;snapp at uiuc dot edu&amp;gt; Note: I followed IBM's instructions to flash the BIOS '''first''' and the Embedded Controller '''second'''.&lt;br /&gt;
* Moy Easwaran: BIOS 1.18 / EC 1.06a via cabextract and CD-boot.  The BIOS-update exe generated errors in Windows 2000.&lt;br /&gt;
* Joe Renes: BIOS 1.18 / EC 1.06a on 2006-03-20 via cabextract and CD-boot. Piece of cake.&lt;br /&gt;
* Raphael Errani: BIOS 1.20 / EC 1.06a on 2006-11-06 via cabextract and CD-boot (using mkisofs). Worked without errors. 1st Bios, 2nd EC&lt;br /&gt;
* Myron Getman: BIOS 1.20 / EC 1.06a on 9/10/08 via cabextract --&amp;gt; k3b --&amp;gt; CD-boot.  Worked like a charm.  First BIOS update with Linux!&lt;br /&gt;
* Leo Butler: BIOS 1.13 / EC 1.04 to 1.20/1.06a via cabextract and syslinux/memdisk boot through grub. Worked like a charm and no wasted CD.&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} ||&lt;br /&gt;
* Martin GÃ¼hring &amp;lt;guehring at gmail.com&amp;gt; BIOS 2.10 via cabextract the Non-Diskette BIOS -&amp;gt; mkisofs '''in the directory the exe was extracted''' to generate the iso -&amp;gt; burn the iso -&amp;gt; boot the CD&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} ||&lt;br /&gt;
* Sean Dague, http://dague.net&lt;br /&gt;
* Justin Mason, http://jmason.org&lt;br /&gt;
* Ivanhoe (Bios 3.19)&lt;br /&gt;
* Alessandro Raulino (roger_2) EC 3.04 &amp;amp; BIOS 3.23 flashed with cabextract/CD method&lt;br /&gt;
* Nick Jenkins, using BIOS 3.23 with the '''Non-diskette updater + cabextract method''', then [[#Creating_a_Bootable_CD_from_a_Floppy_Image|created a bootable CD from the cabextracted .IMG file]], then boot that ISO, and it worked great!&lt;br /&gt;
* xyz: BIOS 3.23 &amp;amp; EC 3.04 flashed with cabextract/CD method. No problem.&lt;br /&gt;
|-&lt;br /&gt;
| {{T40p}} ||&lt;br /&gt;
* Lukas KrÃ¤henbÃ¼hl, ismo at pop dot agri dot ch&lt;br /&gt;
* Thomas Achtemichuk, tom at tomchuk dot com. BIOS 3.15 flashed fine with cabextract/CD method&lt;br /&gt;
* paper, BIOS 3.23 (1RETDRWW) flashed fine with cabextract/genisoimage method.&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} ||&lt;br /&gt;
* Lev Givon (Bios 3.15 / EC 3.04) &amp;lt;lev at columbia dot edu&amp;gt;&lt;br /&gt;
* Ernesto HernÃ¡ndez-Novich (Bios 3.19 / CP 3.04) &amp;lt; emhn at usb dot ve &amp;gt;&lt;br /&gt;
* [http://maebmij.org James Ballantine] (Bios 3.21 / CP 3.04) using nondisk/cabextract/CDRW&lt;br /&gt;
* Vladimir Pycha (to Bios 3.23 / EC 3.04, from Bios 3.20 / EC 3.04) using nondisk/cabextract/CDRW. Booted with external USB optical drive (I have internal drive broken) - at the beginning of the boot sequence press PAUSE, then wait several seconds, then ENTER, then F12 and select the drive. Without pressing PAUSE I am not able to boot from USB optical/hard drive as the drive does not show in the F12 boot list menu.&lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} ||&lt;br /&gt;
* Nils Newman, work great. (Version: Bios 3.14 / Embedded Controller 3.04)&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2373-JXG ||&lt;br /&gt;
* magarzo &amp;lt;mdr.magarzo at gmail.com&amp;gt; (BIOS v.3.23 / Embedded Controller v.3.04 / both with cabextract to non-diskette v. plus Bootable CD)&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} ||&lt;br /&gt;
* Dan (BIOS 3.20 / EC 3.04, cabextract/CD method) &amp;lt;tronic171 at evilphb.org&amp;gt;&lt;br /&gt;
* Hirosh Dabui &amp;lt;hirosh@dabui.de&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} ||&lt;br /&gt;
* Robert Schiele &amp;lt;rschiele@uni-mannheim.de&amp;gt;, Joern Heissler &amp;lt;joern@heissler.de&amp;gt;, Hirosh Dabui &amp;lt;hirosh@dabui.de&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 1871-W34 ||&lt;br /&gt;
* Florian Boucault &amp;lt;florian at boucault dot ath dot cx&amp;gt; (Version: Bios 1.23 / Embedded Controller 1.03)&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 1871-4AG ||&lt;br /&gt;
* [http://blog.martinmcdowell.com/about/contact Martin McDowell] 28-Feb-2010&lt;br /&gt;
* BIOS 70ET62WW (1.22) to 70ET69WW (1.29), &lt;br /&gt;
* ECP 70HT26WW (1.03) to 70HT28WW (1.05)&lt;br /&gt;
Both successfully upgraded from CD Image made from the instructions on this website.&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2687-D4U ||&lt;br /&gt;
* Charles (BIOS 1.05 to 1.29, Embedded Controller 1.03 to 1.06)&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2886 ||&lt;br /&gt;
* Till Heikamp &amp;lt;t dot heikamp at geniusbytes dot com&amp;gt; (Bios 1.22 to 1.29, Embedded Controller 1.03 to 1.06)&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} ||&lt;br /&gt;
* Conrad Rentsch &amp;lt;Conrad dot Rentsch at t-online dot de&amp;gt; (Version: Bios 1.29 / Embedded Controller 1.06)&lt;br /&gt;
* Tom Heady &amp;lt;tom-thinkwiki.org@punch.net&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} ||&lt;br /&gt;
* 1951 Roman Komkov &amp;lt;roman  at komkov dot org dot ru&amp;gt; (Bios 1.07 to 2.13) Successfully upgraded from CD Image&lt;br /&gt;
* 8744-HCG Konstantin Khorenko &amp;lt;horenko at mail dot ru&amp;gt; (Bios 1.06 to 1.18) Successfully upgraded from CD Image&lt;br /&gt;
* 1951 Juan Miguel Jiménez &amp;lt;bodypheo (at) gmail dot com&amp;gt; (Bios 1.07 to 2.14) Copy CD content into Dos usb bootable and run lcreflsh.bat. After updating I got error of PXE corrupted: [http://stephenchow.es/2012/02/error-after-updating-bios-on-ibm-thinkpad-t60/|Fix here]&lt;br /&gt;
* Stefan Monnier successfully upgraded 14&amp;quot; 4/3 T60 via Grub using [https://www.thinkwiki.org/wiki/BIOS_Upgrade/X_Series#Approach_10A:_Booting_an_ISO_image_using_Grub_and_Syslinux_for_X61 method 10A]&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}}  ||&lt;br /&gt;
* Kai Weber &amp;lt;kai.weber  at glorybox dot org&amp;gt; (Bios 1.06 to 1.26) Successfully upgraded from CD Image&lt;br /&gt;
|-&lt;br /&gt;
| {{T410}}  ||&lt;br /&gt;
* Pablo Zometa (BIOS 1.35) &lt;br /&gt;
|-&lt;br /&gt;
| {{W530}} ||&lt;br /&gt;
* Frank Bicknell &amp;lt;fbicknel at nc dot rr dot com&amp;gt;&lt;br /&gt;
Used geteltorito (wget&lt;br /&gt;
http://www.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/geteltorito)&lt;br /&gt;
to extract the image from the .iso file downloaded from the Thinkpad&lt;br /&gt;
website:  geteltorito  -o bios.img Downloads/g5uj18us.iso  Next just&lt;br /&gt;
copy the image to the flash drive: sudo dd if=bios.img of=/dev/sdb&lt;br /&gt;
boot and enjoy.&lt;br /&gt;
|-&lt;br /&gt;
| {{X1 Carbon}} ||&lt;br /&gt;
* Daniil Satsura &amp;lt;dsatsura at tut dot by&amp;gt;, (BIOS 1.06-&amp;gt;1.16 / EC -&amp;gt;1.15) via use external USB CD-drive/burn Booable CD image gruj12us.iso &lt;br /&gt;
|-&lt;br /&gt;
| {{X20}} ||&lt;br /&gt;
* Neil Caunt &amp;lt;retardis at gmail dot com&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{X21}} ||&lt;br /&gt;
* Patrick Leickner &amp;lt;ranma at web dot de&amp;gt;, (BIOS 2.21-&amp;gt;2.25 / EC 1.31-&amp;gt;1.36) via non-disk/cabextract/mkisofs/cdrecord&lt;br /&gt;
|-&lt;br /&gt;
| {{X22}} ||&lt;br /&gt;
* David Emery &amp;lt;dave at skiddlydee dot com&amp;gt;,  (EC 1.30, BIOS 1.32 using non-disk/cabextract/CD method)&lt;br /&gt;
|-&lt;br /&gt;
| {{X23}} ||&lt;br /&gt;
* Nils Faerber &amp;lt;nils dot faerber at kernelconcepts dot de&amp;gt; (Embedded Controller 1.30, BIOS 1.32 with cabextract/CD method)&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}} ||&lt;br /&gt;
* Hella Breitkopf, [http://www.unixwitch.de/ www]  (Embedded Controller 1.04, BIOS 1.07 with cabextract/CD method)&lt;br /&gt;
* William Roe &amp;lt;willroe at gmail dot com&amp;gt; (Embedded Controller 1.06, BIOS 1.09 - cabextract/mkisofs/wodim)&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} ||&lt;br /&gt;
* Grzegorz KuÅ›nierz &amp;lt;koniu at sheket dot org&amp;gt;  (Embedded Controller 1.08, BIOS 3.01 with cabextract/CD method)&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} ||&lt;br /&gt;
* Paul Litwack &amp;lt;paullitwack at gmail dot com&amp;gt;  (Embedded Controller 1.08, BIOS 3.02 with cabextract/unetbootin method)&lt;br /&gt;
cabextract &amp;amp; unetbootin are staight foward(toggle floppy image instead of iso image in unetbootin dialog)&lt;br /&gt;
No problems with update software.&lt;br /&gt;
x31 has to be cajoled into booting from usb. Boot hangs when pendrive is present. Hit the key to bring up the boot menu. &lt;br /&gt;
Unplug the pendrive. Let the boot menu come up. Plug in the pendrive. Select the pendrive in the boot menu and it boots. &lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} ||&lt;br /&gt;
* Robbie Stone &amp;lt;robbie@serendipity.cx&amp;gt;&lt;br /&gt;
* Andy Shevchenko &amp;lt;andy.shevchenko@gmail.com&amp;gt;   (Fine by cabextract/CD method)&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}} ||&lt;br /&gt;
* [[User:Morle|Morle]] 01:09, 17 Nov 2007 (CEST),  (Embedded Controller 1.18 and Bios 1.24 with cabextract/CD method)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unsuccessful tests ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-size:80%; vertical-align:top;&amp;quot;&lt;br /&gt;
! Model&lt;br /&gt;
! Tested by, and comments&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;pre&amp;gt;      &amp;lt;/pre&amp;gt; &amp;lt;!-- Placeholder --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= GRUB2: Booting floppy Image =&lt;br /&gt;
&lt;br /&gt;
== Successful tests ==&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-size: 80%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! BIOS&lt;br /&gt;
! ECP&lt;br /&gt;
! Tested by&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| {{T510}} 4349-5KG|| 6muj27uc.iso: BIOS 6MET88WW (1.48 ) || EC 6MHT46WW-1.21 || [[User:kosique|Marc Burkhardt]] || Gentoo: sys-boot/grub-1.99-r2, sys-boot/syslinux-4.05&lt;br /&gt;
|-&lt;br /&gt;
| {{R30}} 2656-64G || v.1.40            ||                   || [[User:english.voodoo|Yuri Spirin]] ||&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2723     || 1OHJ11WW.IMG      || 1PUJ25US.IMG      || [[User:qunying|Qunying]] || memdisk from syslinux 3.70 (slackware 12.1)&lt;br /&gt;
|-&lt;br /&gt;
| {{R50e}} 1834NV1 || 1WUJ25US.IMG      ||                   || [[User:Jidanni|Jidanni]] || memdisk from syslinux-common 2:3.84+dfsg-1 (Debian), grub2 (1.96+20080724-16)&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 2888     ||                   ||                   ||                          || &lt;br /&gt;
|-&lt;br /&gt;
| {{T23}} 2647     || 1AUJ20US.IMG      || 1AHJ06US.IMG      || [[User:cthon|cthon]]      || memdisk from syslinux 4.02-1 (arch linux) &lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2373     || 1RUJ37US.IMG      || 1RHJ10U2.IMG      || [[User:Euphoria|Euphoria]] || memdisk from syslinux 1:3.31-4 (Debian package version)&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2373     || 1RHJ10U2.IMG&amp;lt;br /&amp;gt;(3.04, 2004-11-15) || 1RUJ37US.IMG&amp;lt;br /&amp;gt;(3.23, 2007-07-03) || [[User:Morphics|Morphics]] || cabextract and memdisk from syslinux 3:1.36-4ubuntu5&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373     || 1RUJ37US.IMG&amp;lt;br /&amp;gt;(3.23, 2007-07-03) || || [[User:Tonko|Tonko]] || Fedora 12&lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} 2373    || 1RUJ37US.IMG&amp;lt;br /&amp;gt;(3.23, 2007-07-03) ||  || [[User:Deggel|Deggel]] || cabextract and memdisk from syslinux 3.71 on gentoo &lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} 2373    ||  ||  || [[User:MrStaticVoid|James Lee]]   || &lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2373 || 1RUJ37US.IMG || || [[User:Secsaba|Simon Csaba Endre]] || Ubuntu 10.04 Pre-update versions: BIOS v3.21 / ECP v3.04 After-update versions: BIOS v3.23 / ECP v3.04&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2374 || 1RUJ37US.IMG || 1RHJ10U2.IMG || [[User:aderigs|Achim Derigs]] || Debian GNU/Linux sid, works with `linux16 ...' and `initrd16 ...' only&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2673-CBU ||  ||  || [[User:JanTopinski|Jan Topinski]] || &lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-CXU ||  ||  || [[User:TheAnarcat|TheAnarcat]]    || &lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-JBU || 3.02 1QUJ19US.IMG || 1.08 1QUJ08US.IMG ||  [[User:twbxf4|twbxf4]]   ||  worked flawlessly&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2673-58G ||  ||  || [[User:FaUl|FaUl]]                || &lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-PG9 ||  ||  || [[User:Starox|Starox]]            || a big moment between starting update and the updating window &lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-PG9 || v3.02 1QUJ19US.IMG || v1.08 1QHJ08US.IMG || [[User:TeeLittle|TeeLittle]]    || Apr 10, 2010: Using Debian 5.0 &amp;quot;Lenny&amp;quot; + package syslinux-common (Version: 2:3.71+dfsg-5). Pre-update versions: BIOS v2.11 / ECP v1.03 &lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371     || 2.07 1uuj21us.exe || 1.62 1uhj10us.exe || [[User:Antialize|Jakob Truelsen]] || Worked on two X40-2371 &lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2386     || 2.08 1uuj22us.exe || 1.62 1uhj10us.exe || [[User:Antialize|Galen Seitz]] || memdisk from syslinux 3.61&lt;br /&gt;
|}&lt;br /&gt;
(More successful grub tests are scattered in the previous table too.)&lt;br /&gt;
&lt;br /&gt;
== Unsuccessful tests ==&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-size: 80%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
!  style=&amp;quot;width:10em;&amp;quot; | BIOS&lt;br /&gt;
! ECP&lt;br /&gt;
! Tested by&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| {{R32}} 2658-NWU || 2.16 1MUD23US.IMG || n/a || [[User:Millman12345|Mike Millman]] || Boots into the BIOS flashing program just fine, but when it comes time to start the update process, the system hangs completely.  Luckily, it hangs before it actually modifies anything...  A hard reboot got me back into a working system.  I would not recommend this route!&lt;br /&gt;
|-&lt;br /&gt;
| {{R52e}} 1846-CGL || 1.29&amp;lt;br /&amp;gt;76UJ28UD.IMG || 1.01 || [[User:Lacyc3|Laszlo Takacs]] || Boots into BIOS flashing program but it hangs up before the upgrade process. I used memdisk from syslinux-4.01.&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2668-F7G || 1.29 1YUJ18US.IMG ||  || [[User:Maus3273|Maus3273]] || I got into the bios program, but the machine never restarts after initiating the upgrade.&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}} 2525-FAG || 2.09 74UJ15US     ||  || [[User:Ukleinek|Uwe Kleine-König]] || booted fine (Debian syslinux 2:3.71+dfsg-5), but didn't succeed to write, just hang at &amp;quot;Don't restart or remove diskette etc. pp&amp;quot; (not bricked).  Worked fine via CD method.&lt;br /&gt;
|- &lt;br /&gt;
| {{X41}} 2525-F8G || 2.06 74UJ12US.IMG&amp;lt;br /&amp;gt;2.07 74UJ13US.IMG&amp;lt;br /&amp;gt;2.09 74UJ15US.IMG ||  || [[User:ladoga|Lauri Koponen]] || hangs while initializing the actual BIOS flashing process&amp;lt;br /&amp;gt; ECP: 1.02 74HJ03US.IMG works&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GRUB2: Booting CD Image =&lt;br /&gt;
&lt;br /&gt;
Here document you progress with &lt;br /&gt;
&lt;br /&gt;
== Successful tests ==&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-size: 80%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! BIOS&lt;br /&gt;
! ECP&lt;br /&gt;
! Tested by&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 2876-55G || 6xuj05uc.iso ||  || [[User:nikel]] ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Edge}} || 1.17 6yuj04uc.iso ||  || [[User:theBro]] || Current memdisk from syslinux worked (5/2010), the one provided by Ubuntu 9.10 did not.&lt;br /&gt;
|-&lt;br /&gt;
| {{X200s}} || 1.13 6duj40uc.iso ||  || [[User:theBro]] || Current memdisk from syslinux worked (5/2010), the one provided by Ubuntu 9.10 did not.&lt;br /&gt;
|-&lt;br /&gt;
| {{X200s}} || 3.14 6duj41uc.iso || 1.06 || [[User:dag-|Dag Wieers]] || Using memdisk from syslinux 4.01&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} 3626-A14     || 1.15 6quj05uc.iso || 1.09 6quj05uc.iso || [[User:Alexander List|Alexander List]] || memdisk from syslinux 3.86&lt;br /&gt;
|-&lt;br /&gt;
| {{Edge 13&amp;quot;}} 0197-6GG || 1.18 6yuj05uc.iso ||  || [[User:fethio]] || Current memdisk from syslinux worked (5/2010), the one provided by Ubuntu 9.10 did not.&lt;br /&gt;
|-&lt;br /&gt;
| {{Edge 13&amp;quot;}} 0197-34Q || 1.21 6yuj08uc.iso ||  || [[User:Kapil]] || Current memdisk from syslinux debian version 2:4.02+dfsg-7&lt;br /&gt;
|-&lt;br /&gt;
| {{Edge 13&amp;quot;}} 0197-34Q || 1.18 6yuj05uc.iso ||  || [[User:Kapil]] || Current memdisk from syslinux debian version 2:4.01+dfsg-1&lt;br /&gt;
|-&lt;br /&gt;
| {{X200s}} || 3.15 6duj42uc.iso ||  || [[User:lawnjam]] || Memdisk 4.02 worked, the one provided by Ubuntu 10.04 did not.&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} || 1.22 6quj08uc.iso || 1.11 || [[User:dag-|Dag Wieers]] || Using memdisk from syslinux 4.03&lt;br /&gt;
|-&lt;br /&gt;
| {{T400}} || 3.24 7uuj49uc.iso || 1.06 || [[User:douardda|David Douard]] || Ubuntu Trusty + grub-imageboot (memdisk from syslinux 4.05)&lt;br /&gt;
|-&lt;br /&gt;
| {{T410s}} || 1.41 6uuj12uc.iso || 1.12 || regatus || Gentoo + memdisk (syslinux 4.0.3)&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} || 1.40 6quj19us.iso || 1.15 || [[User:TomGoBravo]] || Sep 14 2013; ubuntu 13.10 saucy daily release with included memdisk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unuccessful tests ==&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-size: 80%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! BIOS&lt;br /&gt;
! ECP&lt;br /&gt;
! Tested by&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 6466-55G || 2.27 7luj26uc.iso || 1.08 || [[User:mgedmin]] || Grub2 + memdisk (2:4.01+dfsg-3ubuntu1) booted the DOS image on the CD, which then tried to load a DOS CD-ROM driver, which then could not find the CD, and ended up with the infamous Abort, Retry, Fail.&lt;br /&gt;
|-&lt;br /&gt;
| {{X1 Carbon}} 20A7 || 1.16 gruj12us.iso || 1.15 || [[User:danix]] || Grub2 + memdisk (syslinux-4.07) could not boot DOS image on the CD. After start booting shows error message: &amp;lt;br /&amp;gt;''...start booting&amp;lt;br /&amp;gt;Lenovo Group Limited&amp;lt;br /&amp;gt;Invalid system disk.&amp;lt;br /&amp;gt; Replace the disk and press any key''&lt;br /&gt;
|-&lt;br /&gt;
| {{X220}} 4291-35G || 1.39 || 1.24 || [[User:helge]] || Boots successfully but freezes when I select ''Upgrade system program'' (Arch Linux, grub=1:2.02.beta2-4, syslinux=6.03pre12-3, grub-imageboot=0.6-2) - [[BIOS_Upgrade#Booting_from_a_USB_Flash_drive|Booting from a USB Flash drive]] using the [[BIOS_Upgrade#Manually_creating_a_USB_Flash_drive_in_Linux|manual Linux-method based on ''geteltorito.pl'']] worked for me.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Monnier</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade/X_Series&amp;diff=58186</id>
		<title>BIOS Upgrade/X Series</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade/X_Series&amp;diff=58186"/>
		<updated>2017-05-04T17:32:22Z</updated>

		<summary type="html">&lt;p&gt;Monnier: Add experience notes for Approach 10A on a T60&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
X Series Thinkpads do not have internal optical or floppy drives. If there is no Windows installed, the BIOS must be updated by booting from an USB drive or a drive that is integrated in the docking station. In recent times Lenovo provides BIOS updates in form of bootable CD images. Unfortunately, in most cases these images are intended to be used with the docking station's CD drive. If you do not own such a drive, things get complicated.&lt;br /&gt;
&lt;br /&gt;
The problem is that current BIOS updates are quite large, about 3 MB in size. Booting from CDs typically works like booting from a 1.44 MB or 2.88 MB floppy disk. The floppy image is stored on the CD and is referenced in the CD's boot record. Because the BIOS update files are that large, they do not fit on such a floppy image. To resolve it, you have to either use a large harddisk image for your bootimage (e.g. in [[:Category:X200|X200]], [[:Category:X200_Tablet|X200 Tablet]] and [[:Category:X301|X301]]), or store these update files on the CD outside the virtual floppy image. For the former case, see [[BIOS update without optical disk]]. This page concerns with the later case.&lt;br /&gt;
&lt;br /&gt;
To access the BIOS update files on the CD outside the bootimage, a driver for the CD drive has to be loaded. Since Lenovo's CD images are intended to be used with a docking station's CD drive, it is not possible to use them for BIOS updates by booting from an USB CD drive.&lt;br /&gt;
&lt;br /&gt;
Another problem is that older X Series (like the {{X32}}) don't have bootable iso images at all. They have only two options: 1. update from Windows, 2. update using a diskette updater, which requires you to have a real floppy disk drive.&lt;br /&gt;
&lt;br /&gt;
But there is hope. This page describes some approaches to solve the problems above.&lt;br /&gt;
&lt;br /&gt;
Here is a brief overview of each approach:&lt;br /&gt;
* [[#Approach 1: Use larger boot image and create virtual CD drive]]&amp;lt;br&amp;gt;Requires a USB CD drive.  Reported to work on {{X60s}}.&lt;br /&gt;
&lt;br /&gt;
* [[#Approach 2: Load an USB driver, create RAM disk and copy the files to the RAM disk]]&amp;lt;br&amp;gt;Requires a USB CD drive.  People have reported mixed results, with the flash update software freezing, depending on things like CD drive letter and type.  Reported to work on {{X60s}}.&lt;br /&gt;
&lt;br /&gt;
* [[#Approach 3: Alternative method using a USB stick]]&amp;lt;br&amp;gt;Requires a USB flash drive, Microsoft Windows, and some HP software tool.  Reported to work on {{X60s}}, {{X61}}.&lt;br /&gt;
&lt;br /&gt;
* [[#Approach 4: Alternative method to the above &amp;quot;alternative method&amp;quot;]]&amp;lt;br&amp;gt;Requires a USB flash drive, Microsoft Windows, and some HP software tool.  Seems functionally similar to Approach 3.&lt;br /&gt;
&lt;br /&gt;
* [[#Approach 5: Free Alternative method to the above &amp;quot;alternative method&amp;quot;]]&amp;lt;br&amp;gt;Requires a USB flash drive, does not require MS Windows or any proprietary software.&lt;br /&gt;
&lt;br /&gt;
* [[#Approach 6: Using a USB stick to upgrade BIOS on older X Series Thinkpads]]&amp;lt;br&amp;gt;Requires a USB flash drive.  Reported to work on {{X32}}.&lt;br /&gt;
&lt;br /&gt;
* [[#Approach 7: Use syslinux to boot floppy images which are part of the IBM/ Lenovo BIOS update CD ISO files.]]&amp;lt;br&amp;gt;Done with a {{X31}} to upgrade the EC to version 1.08 and the BIOS to 3.02.&lt;br /&gt;
&lt;br /&gt;
= Approach 1: Use larger boot image and create virtual CD drive =&lt;br /&gt;
&lt;br /&gt;
The CD images provided by Lenovo can be modified such that a BIOS update is possible -- without loading any drivers. I ([[User:Joachim_Selke|Joachim Selke]]) successfully updated my Thinkpad {{X60s}} using the following method.&lt;br /&gt;
&lt;br /&gt;
My first idea was to take Lenovo's ISO CD image and modify it such that a USB CD drive can be used instead the CD drive in the docking station. Unfortunately, simply replacing the drivers is not enough. While doing the BIOS update, the USB ports seem to get disabled or something like that. To circumvent this problem I tried to create a RAM disk, copy the needed files to this RAM disk, and then use this RAM disk as some kind of virtual CD drive. However, there were some problems with this approach as reported below. For a description of this old approach see the section &amp;quot;Approach 2: Load an USB driver, create RAM disk and copy the files to the RAM disk&amp;quot; below. I developed a new approach to solve this problem and will describe it here.&lt;br /&gt;
&lt;br /&gt;
The idea is to create a new bootable ISO image that is large enough to hold the original ISO file. This can be done by switching from the virtual floppy drive used by Lenovo's update disk to a virtual hard disk drive (for details, see the El Torito standard). Instead of loading the CD drive driver provided by Lenovo we load the [[http://www.oocities.com/jadoxa/shsucdx/index.html SHSUCD drivers]]. This driver enables us to create a virtual CD drive from Lenovo's original ISO file.&lt;br /&gt;
&lt;br /&gt;
I wrote a script to automate this steps and create a new ISO file from Lenovo's ISO file. This new ISO file can directly be used to update the BIOS. My script takes four arguments:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the filename of Lenovo's original ISO file (e.g. &amp;lt;tt&amp;gt;/home/selke/Desktop/7buj23uc.iso&amp;lt;/tt&amp;gt;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the filename of the new ISO file to be created (e.g. &amp;lt;tt&amp;gt;/home/selke/Desktop/out.iso&amp;lt;/tt&amp;gt;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the location of shsucdrd.exe (e.g. &amp;lt;tt&amp;gt;/home/selke/Desktop/shsucdrd.exe&amp;lt;/tt&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the location of shsucdx.com (e.g. &amp;lt;tt&amp;gt;/home/selke/Desktop/shsucdx.com&amp;lt;/tt&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both shsucdrd.exe and shsucdx.com can be downloaded from [http://www.oocities.com/jadoxa/shsucdx/index.html].&lt;br /&gt;
&lt;br /&gt;
To sum up, an example call of the script would be &amp;lt;tt&amp;gt;convertlenovo.sh /home/selke/Desktop/7buj23uc.iso /home/selke/Desktop/out.iso /home/selke/Desktop/shsucdrd.exe /home/selke/Desktop/shsucdx.com&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need recent versions of the following tools:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;mkdosfs (for Fedora users: contained in the package dosfstools)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;mkisofs&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The script runs perfectly on my Fedora 11 system (it should also run without problems on Fedora 7, 8, 9, 10 and other popular distributions). If there are problems, please tell me ([[User:Joachim_Selke|Joachim Selke]]).&lt;br /&gt;
&lt;br /&gt;
Further note that the script at some point requires you to enter the root password since it must mount a disk image. As far as I know, this cannot be done without root privileges.&lt;br /&gt;
&lt;br /&gt;
What does the script do? I will give a short overview:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Extract the boot floppy image from Lenovo's bootable ISO file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new boot hard disk image and copy both the boot sector and the files from Lenovo's boot floppy image to the new image.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy Lenovo's ISO image to the new hard disk image.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Also copy the SHSUCD drivers to the hard disk and change autoexec.bat and config.sys accordingly. When booting this hard disk image a new virtual CD drive will be created by SHSUCD. This virtual CD drive will have Lenovo's original ISO disc &amp;quot;inserted.&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new ISO file that only consists of the boot image given by the bootable hard disk image just created.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some additional notes:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Currently, the script is not able to handle spaces in file names properly. Thus, the file names and directory path names used when calling the script should not contain spaces.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The file name of the original ISO file (7buj23uc.iso in the example above) must follow the DOS 8.3 file name conventions; otherwise SHSUCD will not be able to load the ISO image.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the complete script (save it as &amp;lt;tt&amp;gt;convertlenovo.sh&amp;lt;/tt&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Written by Joachim Selke (mail@joachim-selke.de), 2007-12-28&lt;br /&gt;
&lt;br /&gt;
# Known bugs:&lt;br /&gt;
# - spaces in file names make trouble at the moment (so try to avoid spaces),&lt;br /&gt;
#   I will fix that later&lt;br /&gt;
# - some users seem to have problems with some of the sed statements,&lt;br /&gt;
#   I currently have no idea what is wrong there ... (please report those bugs)&lt;br /&gt;
&lt;br /&gt;
CDIMAGE=$1       # location of Lenovo's CD image&lt;br /&gt;
NEWCDIMAGE=$2    # filename of ISO file to create&lt;br /&gt;
SHSUCDRD_EXE=$3  # location of shsucdrd.exe&lt;br /&gt;
SHSUCDX_COM=$4   # location of shsucdx.com&lt;br /&gt;
&lt;br /&gt;
MB_HDD=50  # HDD image size in megabyte (base 1000)&lt;br /&gt;
&lt;br /&gt;
TMPDIR=`mktemp -d`&lt;br /&gt;
ISODIR=`mktemp -d`&lt;br /&gt;
&lt;br /&gt;
HDDIMG=$ISODIR/hdd.img  # filename of HDD image to create&lt;br /&gt;
FLOPPYIMG=$TMPDIR/floppy.img # filename of floppy image to create&lt;br /&gt;
&lt;br /&gt;
##############################################################################&lt;br /&gt;
&lt;br /&gt;
# This script extracts the floopy boot image from bootable ISO images&lt;br /&gt;
#&lt;br /&gt;
# Written by Joachim Selke (mail@joachim-selke.de), 2007-04-07&lt;br /&gt;
&lt;br /&gt;
ISOFILE=$CDIMAGE&lt;br /&gt;
IMAGEFILE=$FLOPPYIMG&lt;br /&gt;
&lt;br /&gt;
if [ ! -r $ISOFILE ]; then&lt;br /&gt;
        echo $ISOFILE: file does not exist or is not readable&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z $IMAGEFILE ]; then&lt;br /&gt;
        echo Error: no image file specified&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ISOFILESIZE=`stat -c %s $ISOFILE`&lt;br /&gt;
&lt;br /&gt;
# collect El Torito data&lt;br /&gt;
# see http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf for reference&lt;br /&gt;
&lt;br /&gt;
BOOTCATALOGPOINTERBYTE=$((17 * 0x800 + 0x47))&lt;br /&gt;
&lt;br /&gt;
if [ $ISOFILESIZE -lt $(($BOOTCATALOGPOINTERBYTE + 4)) ]; then&lt;br /&gt;
        echo ISO file is too short, possibly damaged&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# absolute pointer to first sector of boot catalog:&lt;br /&gt;
BOOTCATALOG=`od -A n -t x4 -N 4 -j $BOOTCATALOGPOINTERBYTE $ISOFILE | tr -d [:blank:]`&lt;br /&gt;
&lt;br /&gt;
BOOTCATALOGBYTE=$((0x$BOOTCATALOG * 0x800))&lt;br /&gt;
&lt;br /&gt;
echo Boot catalog starts at byte $BOOTCATALOGBYTE&lt;br /&gt;
&lt;br /&gt;
if [ $ISOFILESIZE -lt $(($BOOTCATALOGBYTE + 32 + 2)) ]; then&lt;br /&gt;
        echo ISO file is too short, possibly damaged&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# media type of boot image&lt;br /&gt;
# only floppy disk images are supported by this script&lt;br /&gt;
BOOTMEDIATYPE=`od -A n -t x1 -N 1 -j $(($BOOTCATALOGBYTE + 32 + 1)) $ISOFILE | tr -d [:blank:]`&lt;br /&gt;
&lt;br /&gt;
if [ $BOOTMEDIATYPE -eq 1 ]; then&lt;br /&gt;
        echo Boot media type is 1.2M floppy disk&lt;br /&gt;
        IMAGEBLOCKS=$((1200 / 2))&lt;br /&gt;
elif [ $BOOTMEDIATYPE -eq 2 ]; then&lt;br /&gt;
        echo Boot media type is 1.44M floppy disk&lt;br /&gt;
        IMAGEBLOCKS=$((1440 / 2))&lt;br /&gt;
elif [ $BOOTMEDIATYPE -eq 3 ]; then&lt;br /&gt;
        echo Boot media type is 2.88M floppy disk&lt;br /&gt;
        IMAGEBLOCKS=$((2880 / 2))&lt;br /&gt;
else&lt;br /&gt;
        echo Boot media type is $((0x$BOOTMEDIATYPE)). This type is not supported yet.&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# absolute pointer to start of boot image&lt;br /&gt;
BOOTIMAGE=`od -A n -t x4 -N 4 -j $(($BOOTCATALOGBYTE + 32 + 8)) $ISOFILE | tr -d [:blank:]`&lt;br /&gt;
&lt;br /&gt;
BOOTIMAGEBYTE=$((0x$BOOTIMAGE * 0x800))&lt;br /&gt;
&lt;br /&gt;
echo Boot image starts at byte $BOOTIMAGEBYTE&lt;br /&gt;
&lt;br /&gt;
if [ $ISOFILESIZE -lt $((0x$BOOTIMAGE * 0x800 + $IMAGEBLOCKS * 0x800)) ]; then&lt;br /&gt;
        echo ISO file is too short, possibly damaged&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo Extracting boot image ...&lt;br /&gt;
&lt;br /&gt;
dd if=$ISOFILE of=$IMAGEFILE bs=2K count=$IMAGEBLOCKS skip=$((0x$BOOTIMAGE))&lt;br /&gt;
&lt;br /&gt;
echo Finished&lt;br /&gt;
&lt;br /&gt;
##############################################################################&lt;br /&gt;
&lt;br /&gt;
NO_HEA=16    # heads&lt;br /&gt;
NO_SECT=63   # sectors per cylinder/track&lt;br /&gt;
B_SECT=512   # bytes per sector&lt;br /&gt;
&lt;br /&gt;
B_CYL=$(($NO_HEA * $NO_SECT * $B_SECT))  # bytes per cylinder/track&lt;br /&gt;
&lt;br /&gt;
NO_CYL=$(($MB_HDD * 1000 * 1000 / $B_CYL))  # cylinders/tracks per head&lt;br /&gt;
&lt;br /&gt;
echo -n -e &amp;quot;Cylinders: $NO_CYL\nHeads: $NO_HEA\nSectors per track: $NO_SECT\nBytes per sector: $B_SECT\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo Creating empty image ...&lt;br /&gt;
dd if=/dev/zero of=$HDDIMG bs=$B_CYL count=$NO_CYL &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
echo Creating partition structure ...&lt;br /&gt;
echo -n -e &amp;quot;o\n n\n p\n 1\n \n \n t\n 6\n a\n 1\n w\n&amp;quot; | /sbin/fdisk -b $B_SECT -C $NO_CYL -H $NO_HEA -S $NO_SECT $HDDIMG &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
echo Writing master boot record ...&lt;br /&gt;
echo -n -e &amp;quot;\&lt;br /&gt;
\xFA\xB8\x00\x10\x8E\xD0\xBC\x00\xB0\xB8\x00\x00\x8E\xD8\x8E\xC0\&lt;br /&gt;
\xFB\xBE\x00\x7C\xBF\x00\x06\xB9\x00\x02\xF3\xA4\xEA\x21\x06\x00\&lt;br /&gt;
\x00\xBE\xBE\x07\x38\x04\x75\x0B\x83\xC6\x10\x81\xFE\xFE\x07\x75\&lt;br /&gt;
\xF3\xEB\x16\xB4\x02\xB0\x01\xBB\x00\x7C\xB2\x80\x8A\x74\x01\x8B\&lt;br /&gt;
\x4C\x02\xCD\x13\xEA\x00\x7C\x00\x00\xEB\xFE\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\&lt;br /&gt;
\x00\x00\x00\x00\x00\x00\x00\x00\x52\xF9\x06\x00\x00\x00\&lt;br /&gt;
&amp;quot; | dd of=$HDDIMG bs=1 conv=notrunc &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
echo Creating primary partition ...&lt;br /&gt;
# extract partition, create FAT16 filesystem and copy back&lt;br /&gt;
PARTFILE=${HDDIMG}-PARTITION&lt;br /&gt;
SECT_PARTTABLE=$NO_SECT&lt;br /&gt;
B_PARTTABLE=$(($SECT_PARTTABLE * $B_SECT))&lt;br /&gt;
dd if=$HDDIMG of=$PARTFILE bs=$B_SECT skip=$SECT_PARTTABLE &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
/sbin/mkdosfs -F 16 -h $NO_SECT $PARTFILE&lt;br /&gt;
# Correct physical drive number (set to 0x00, should be 0x80)&lt;br /&gt;
echo -n -e &amp;quot;\x80&amp;quot; | dd of=$PARTFILE bs=1 seek=36 conv=notrunc &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
# Correct sectors per track (set to 0x0020, should be $NO_SECT)&lt;br /&gt;
NO_SECT_HEX1=$(echo &amp;quot;ibase=10; obase=16; $(($NO_SECT / 256))&amp;quot; | bc)&lt;br /&gt;
NO_SECT_HEX2=$(echo &amp;quot;ibase=10; obase=16; $(($NO_SECT % 256))&amp;quot; | bc)&lt;br /&gt;
NO_SECT_HEX=$(echo -n -e &amp;quot;\\x$NO_SECT_HEX2\\x$NO_SECT_HEX1&amp;quot;)&lt;br /&gt;
echo -n -e $NO_SECT_HEX | dd of=$PARTFILE bs=1 seek=24 conv=notrunc &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
dd if=$PARTFILE of=$HDDIMG bs=$B_SECT seek=$SECT_PARTTABLE &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
rm -f $PARTFILE&lt;br /&gt;
&lt;br /&gt;
# transfer floppy boot sector code&lt;br /&gt;
B_BOOTSECPARAM=62                            # length of parameter block in boot sector&lt;br /&gt;
B_BOOTSECCODE=$(($B_SECT - B_BOOTSECPARAM))  # length of code block in boot sector&lt;br /&gt;
echo Copying boot sector ...&lt;br /&gt;
dd if=$FLOPPYIMG of=$HDDIMG bs=1 count=$B_BOOTSECCODE skip=$B_BOOTSECPARAM seek=$(($B_PARTTABLE + $B_BOOTSECPARAM)) conv=notrunc &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
echo Copying DOS files ...&lt;br /&gt;
CDIMAGE_BASENAME=$(basename $CDIMAGE)&lt;br /&gt;
HDDDIR=$TMPDIR/hdd&lt;br /&gt;
FLOPPYDIR=$TMPDIR/floppy&lt;br /&gt;
su --command=&amp;quot;\&lt;br /&gt;
  mkdir $HDDDIR;\&lt;br /&gt;
  mkdir $FLOPPYDIR;\&lt;br /&gt;
  mount -oloop $FLOPPYIMG $FLOPPYDIR;\&lt;br /&gt;
  mount -t msdos -oloop,offset=$(($SECT_PARTTABLE * $B_SECT)) $HDDIMG $HDDDIR;\&lt;br /&gt;
  cp --preserve $FLOPPYDIR/ibmbio.com $HDDDIR;\&lt;br /&gt;
  cp --preserve $FLOPPYDIR/ibmdos.com $HDDDIR;\&lt;br /&gt;
  cp --preserve -u $FLOPPYDIR/* $HDDDIR;\&lt;br /&gt;
  cp --preserve=timestamps $CDIMAGE $HDDDIR;\&lt;br /&gt;
  cp --preserve=timestamps $SHSUCDRD_EXE $HDDDIR;\&lt;br /&gt;
  cp --preserve=timestamps $SHSUCDX_COM $HDDDIR;\&lt;br /&gt;
  cat $FLOPPYDIR/config.sys | \&lt;br /&gt;
    sed -e 's/A:\\\/C:\\\/' | \&lt;br /&gt;
    grep -v IBMTPCD.SYS &amp;gt;$HDDDIR/config.sys;\&lt;br /&gt;
  cat $FLOPPYDIR/autoexec.bat | \&lt;br /&gt;
    sed -e 's/LOADHIGH MSCDEX.EXE \/D:TPCD001/shsucdrd.exe \/f:$CDIMAGE_BASENAME\r\nshsucdx.com \/d:SHSU-CDR,R/' &amp;gt;$HDDDIR/autoexec.bat;\&lt;br /&gt;
  umount $FLOPPYDIR;\&lt;br /&gt;
  umount $HDDDIR;\&lt;br /&gt;
  rm -rf $FLOPPYDIR;\&lt;br /&gt;
  rm -rf $HDDDIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo Creating ISO image ...&lt;br /&gt;
mkisofs -input-charset default -hard-disk-boot -b $(basename $HDDIMG) -hide boot.cat -hide $(basename $HDDIMG) -o $NEWCDIMAGE $ISODIR&lt;br /&gt;
&lt;br /&gt;
rm -rf $TMPDIR&lt;br /&gt;
rm -rf $ISODIR&lt;br /&gt;
&lt;br /&gt;
echo Completed!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have any questions, feel free to ask. :-)&lt;br /&gt;
&lt;br /&gt;
BTW: It would be much simpler if I simply could put the new ISO images for download somewhere. But I guess for legal reasons this will not be possible.&lt;br /&gt;
&lt;br /&gt;
== Comments on Approach 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Reported to work on:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ThinkPad X60s (1702-55G) with Plextor PX-608CU USB DVD recorder&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ThinkPad X60 (1702-55G) with Plextor PX-608CU USB DVD recorder, upgraded BIOS from version 2.14 to 2.16&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ThinkPad X60 (1706-GMG) with Plextor PX-608CU USB DVD recorder, upgraded BIOS from version 2.03 to 2.14&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ThinkPad X61s (7666-36G) with Freecom FS-50 USB DVD recorder, upgraded BIOS from version 1.10 to 2.07&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ThinkPad X300 (6476-CTO) with Nu SBW-242US USB DVD recorder, upgraded BIOS from 1.05 to 1.08&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Thinkpad X60s (1704-44U) with Lite-On DX-20A3H, upgraded BIOS from 2.17 to 2.18&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ThinkPad X61s (7666-36G) with Samsung SE-S224 USB DVD recorder, upgraded BIOS from version 2.07 to 2.20&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Approach 2: Load an USB driver, create RAM disk and copy the files to the RAM disk =&lt;br /&gt;
&lt;br /&gt;
I ([[User:Joachim_Selke | Joachim Selke]]) successfully updated my Thinkpad {{X60s}} using the following method.&lt;br /&gt;
&lt;br /&gt;
My first idea was to take Lenovo's ISO CD image and modify it such that a USB CD drive can be used instead the CD drive in the docking station. Unfortunately, simply replacing the drivers is not enough. While doing the BIOS update, the USB ports seem to get disabled or something like that. To circumvent this problem I tried to create a RAM disk, copy the needed files to this RAM disk, and then use this RAM disk as some kind of virtual CD drive. However, there were some problems with this approach as reported below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Download the ISO image style BIOS update from Lenovo's website. This file will be refered to as &amp;lt;tt&amp;gt;/tmp/bios-lenovo.iso&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Extract the floppy image from this ISO image. You can use the following shell script for this task (or an alternative one from [http://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/]). Simply save this code into the file &amp;lt;tt&amp;gt;/tmp/extractbootimage.sh&amp;lt;/tt&amp;gt;, set the x-flag (&amp;lt;tt&amp;gt;chmod +x /tmp/extractbootimage.sh&amp;lt;/tt&amp;gt;) and call it using the command &amp;lt;tt&amp;gt;/tmp/extractbootimage.sh /tmp/bios-lenovo.iso /tmp/bios-lenovo.img&amp;lt;/tt&amp;gt;. The floppy image contained in the ISO image will then be saved to &amp;lt;tt&amp;gt;/tmp/bios-lenovo.img&amp;lt;/tt&amp;gt;. Here is the code of the shell script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# This script extracts the floopy boot image from bootable ISO images&lt;br /&gt;
#&lt;br /&gt;
# Written by Joachim Selke (mail@joachim-selke.de), 2007-04-07&lt;br /&gt;
&lt;br /&gt;
ISOFILE=$1&lt;br /&gt;
IMAGEFILE=$2&lt;br /&gt;
&lt;br /&gt;
if [ ! -r $ISOFILE ]; then&lt;br /&gt;
        echo $ISOFILE: file does not exist or is not readable&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z $IMAGEFILE ]; then&lt;br /&gt;
        echo Error: no image file specified&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ISOFILESIZE=`stat -c %s $ISOFILE`&lt;br /&gt;
&lt;br /&gt;
# collect El Torito data&lt;br /&gt;
# see http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf for reference&lt;br /&gt;
&lt;br /&gt;
BOOTCATALOGPOINTERBYTE=$((17 * 0x800 + 0x47))&lt;br /&gt;
&lt;br /&gt;
if [ $ISOFILESIZE -lt $(($BOOTCATALOGPOINTERBYTE + 4)) ]; then&lt;br /&gt;
        echo ISO file is too short, possibly damaged&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# absolute pointer to first sector of boot catalog:&lt;br /&gt;
BOOTCATALOG=`od -A n -t x4 -N 4 -j $BOOTCATALOGPOINTERBYTE $ISOFILE | tr -d [:blank:]`&lt;br /&gt;
&lt;br /&gt;
BOOTCATALOGBYTE=$((0x$BOOTCATALOG * 0x800))&lt;br /&gt;
&lt;br /&gt;
echo Boot catalog starts at byte $BOOTCATALOGBYTE&lt;br /&gt;
&lt;br /&gt;
if [ $ISOFILESIZE -lt $(($BOOTCATALOGBYTE + 32 + 2)) ]; then&lt;br /&gt;
        echo ISO file is too short, possibly damaged&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# media type of boot image&lt;br /&gt;
# only floppy disk images are supported by this script&lt;br /&gt;
BOOTMEDIATYPE=`od -A n -t x1 -N 1 -j $(($BOOTCATALOGBYTE + 32 + 1)) $ISOFILE | tr -d [:blank:]`&lt;br /&gt;
&lt;br /&gt;
if [ $BOOTMEDIATYPE -eq 1 ]; then&lt;br /&gt;
        echo Boot media type is 1.2M floppy disk&lt;br /&gt;
        IMAGEBLOCKS=$((1200 / 2))&lt;br /&gt;
elif [ $BOOTMEDIATYPE -eq 2 ]; then&lt;br /&gt;
        echo Boot media type is 1.44M floppy disk&lt;br /&gt;
        IMAGEBLOCKS=$((1440 / 2))&lt;br /&gt;
elif [ $BOOTMEDIATYPE -eq 3 ]; then&lt;br /&gt;
        echo Boot media type is 2.88M floppy disk&lt;br /&gt;
        IMAGEBLOCKS=$((2880 / 2))&lt;br /&gt;
else&lt;br /&gt;
        echo Boot media type is $((0x$BOOTMEDIATYPE)). This type is not supported yet.&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# absolute pointer to start of boot image&lt;br /&gt;
BOOTIMAGE=`od -A n -t x4 -N 4 -j $(($BOOTCATALOGBYTE + 32 + 8)) $ISOFILE | tr -d [:blank:]`&lt;br /&gt;
&lt;br /&gt;
BOOTIMAGEBYTE=$((0x$BOOTIMAGE * 0x800))&lt;br /&gt;
&lt;br /&gt;
echo Boot image starts at byte $BOOTIMAGEBYTE&lt;br /&gt;
&lt;br /&gt;
if [ $ISOFILESIZE -lt $((0x$BOOTIMAGE * 0x800 + $IMAGEBLOCKS * 0x800)) ]; then&lt;br /&gt;
        echo ISO file is too short, possibly damaged&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo Extracting boot image ...&lt;br /&gt;
&lt;br /&gt;
dd if=$ISOFILE of=$IMAGEFILE bs=2K count=$IMAGEBLOCKS skip=$((0x$BOOTIMAGE))&lt;br /&gt;
&lt;br /&gt;
echo Finished&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Mount the floppy image '''as root''' using the loop device:&lt;br /&gt;
:{{cmdroot|mkdir /tmp/bios-lenovo.img-mnt}}&lt;br /&gt;
:{{cmdroot|mount -o loop /tmp/bios-lenovo.img /tmp/bios-lenovo.img-mnt}}&lt;br /&gt;
The image is now mounted as &amp;lt;tt&amp;gt;/tmp/bios-lenovo.img-mnt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Download needed drivers. First download some [http://panasonic.co.jp/pcc/products/drive/other/driver/f2h_usb.exe USB drivers] from Panasonic Japan. Save the file to &amp;lt;tt&amp;gt;/tmp/f2h_usb.exe&amp;lt;/tt&amp;gt; This file is a self-extracting EXE file, that can be executed under Linux using [http://www.winehq.com/ Wine]:&lt;br /&gt;
:{{cmduser|wine /tmp/f2h_usb.exe}}&lt;br /&gt;
You will be asked where to save the extracted files. Choose &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt;. A new directory &amp;lt;tt&amp;gt;/tmp/F2h&amp;lt;/tt&amp;gt; containing the needed drivers will be created.&lt;br /&gt;
&lt;br /&gt;
Additionally, you will need drivers for the RAM disk mentioned. Download them from the [http://sourceforge.net/projects/srdisk ReSizeable RAMDisk project]. Unzip them to &amp;lt;tt&amp;gt;/tmp/srdisk&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Let's modify the floppy image:&lt;br /&gt;
:{{cmduser|cp /tmp/F2h/Usbaspi.sys /tmp/bios-lenovo.img-mnt/}}&lt;br /&gt;
:{{cmduser|cp /tmp/F2h/USBCD.SYS /tmp/bios-lenovo.img-mnt/}}&lt;br /&gt;
:{{cmduser|cp /tmp/F2h/RAMFD.SYS /tmp/bios-lenovo.img-mnt/}}&lt;br /&gt;
:{{cmduser|cp /tmp/srdisk/srdxms.sys /tmp/bios-lenovo.img-mnt/}}&lt;br /&gt;
:{{cmduser|cp /tmp/srdisk/srdisk.exe /tmp/bios-lenovo.img-mnt/}}&lt;br /&gt;
Now add the following lines to &amp;lt;tt&amp;gt;/tmp/bios-lenovo.img-mnt/config.sys&amp;lt;/tt&amp;gt; replacing the line &amp;lt;tt&amp;gt;DEVICE = A:\IBMTPCD.SYS /R /C&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEVICE = A:\SRDXMS.SYS&lt;br /&gt;
DEVICE = A:\RAMFD.SYS&lt;br /&gt;
DEVICE = A:\USBASPI.SYS /V&lt;br /&gt;
DEVICE = A:\USBCD.SYS /D:TPCD001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally, edit the file &amp;lt;tt&amp;gt;/tmp/bios-lenovo.img-mnt/autoexec.bat&amp;lt;/tt&amp;gt; replacing the last line (saying &amp;lt;tt&amp;gt;COMMAND.COM&amp;lt;/tt&amp;gt;) by the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A:\SRDISK 10000&lt;br /&gt;
COPY *.* D:&lt;br /&gt;
D:&lt;br /&gt;
COMMAND.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maybe the RAM disk gets a drive letter different from D: on your system. In this case, you have to change the above lines accordingly.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Unmount the floppy image (as root):&lt;br /&gt;
:{{cmdroot|umount /tmp/bios-lenovo.img-mnt}}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Copy the content of the original CD image to a new directory and create a new ISO file:&lt;br /&gt;
:{{cmdroot|mkdir /tmp/bios-lenovo.iso-mnt}}&lt;br /&gt;
:{{cmdroot|mount -o loop /tmp/bios-lenovo.iso /tmp/bios-lenovo.iso-mnt}}&lt;br /&gt;
:{{cmduser|mkdir /tmp/bios-new.iso-mnt}}&lt;br /&gt;
:{{cmduser|cp /tmp/bios-lenovo.iso-mnt/* /tmp/bios-new.iso-mnt}}&lt;br /&gt;
:{{cmduser|cp /tmp/bios-lenovo.img /tmp/bios-new.iso-mnt/boot.img}}&lt;br /&gt;
:{{cmdroot|umount /tmp/bios-lenovo.iso-mnt}}&lt;br /&gt;
:{{cmduser|mkisofs -relaxed-filenames -b boot.img -o /tmp/bios-new.iso /tmp/bios-new.iso-mnt/}}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The file &amp;lt;tt&amp;gt;/tmp/bios-new.iso&amp;lt;/tt&amp;gt; is the modified ISO file. Just burn it to CD and use this CD for updating your BIOS (boot from it using your USB drive). Please give some comments here if it worked for you.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comments on Approach 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
I have followed your excellent instructions. The CD booted, the update program ran but stopped working and responding while updating. Luckily the BIOS was not destroyed. Since destroying the BIOS is a very high risk, I am going to recover the original Windows on an old HD and will run the update exe update program from there.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
I followed these clear instructions, and like the comment above I ended up with a CD that booted but the update program stopped working and responding.  An ALT-CTRL-DELETE rebooted my x60s, and it works so the BIOS must not have been damaged.  I was trying to upgrade from version 2.08 to 2.11, I wonder if these instructions are somehow particular to certain versions?  &lt;br /&gt;
[[User:Latch|Latch]] 01:22, 14 June 2007 (UTC)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
After following the above instructions, the program also stopped working while updating the BIOS. But after changing the drive letter from D: to C: (see code below), it everything worked fine. However, I had some trouble figuring out, which letter to choose over D: at first, as the BIOS Upgrade program started right away.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A:\SRDISK 10000&lt;br /&gt;
COPY *.* C:&lt;br /&gt;
C:&lt;br /&gt;
COMMAND.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[User:Mtx|Mtx]], 1 August 2007, Thinkpad X61s&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Flashing the bios (2.12) works for me on a X60s (using drive c). Using the DVD-R on an USB-Hub did not work.&amp;lt;br&amp;gt; [[User:Ra|Ra]] 00:15, 21 August 2007 (UTC)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Flashing BIOS 2.14 works for me on a X60s (using drive c). 25-02-2008&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Approach 3: Alternative method using a USB stick =&lt;br /&gt;
&lt;br /&gt;
''Note: none of the above methods worked on my X60s.  This method worked for me, however.'' [[User:PhilipPaeps|PhilipPaeps]] 16:41, 24 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
This method was surprisingly painless once I convinced my ThinkPad X60s to boot DOS from a USB stick.  I used VMWare and some mystical tool to get DOS on the stick.  If you can find another way to get a bootable DOS stick, please update this section!&lt;br /&gt;
&lt;br /&gt;
* Tell VMWare to create a virtual floppy image for you and format it under Microsoft Windows and tell it to create a system disk.  You can do this by clicking into &amp;quot;My Computer&amp;quot;, then right-clicking on the &amp;quot;Floppy&amp;quot; icon and selecting &amp;quot;Format&amp;quot;.  In the box that pops up, you need to check the box that says &amp;quot;Create an MS-DOS startup disk&amp;quot; and then click &amp;quot;Start&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* When you've done that, get this tool: http://www.techpowerup.com/downloads/330/mirrors.php and install it.  The tool is apparantly something HP once wrote, but I have been unable to find a link to it anywhere on the HP website.&lt;br /&gt;
&lt;br /&gt;
* In a command prompt again: &amp;lt;code&amp;gt;C:\DriveKey\HPUSBF.EXE E: -Q -B:A:\&amp;lt;/code&amp;gt;, replacing the &amp;lt;code&amp;gt;E:&amp;lt;/code&amp;gt; with the &amp;quot;drive letter&amp;quot; associated with your USB stick (you can find this letter in &amp;quot;My Computer&amp;quot; under &amp;quot;Removable Storage&amp;quot;).  '''WARNING:''' this wipes anything on the USB stick.  You will end up with a USB stick which appears empty at this point, but there is DOS on it somewhere.&lt;br /&gt;
&lt;br /&gt;
* Now mount the BIOS update ISO image from Lenovo as a virtual CDROM using VMWare again and copy the files from it to the USB stick: &amp;lt;code&amp;gt;copy D:\*.* E:\&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
At this point, you may want to fiddle with the splash image, as described elsewhere on ThinkWiki.&lt;br /&gt;
&lt;br /&gt;
* Reboot and press F12, tell the BIOS to boot from your USB stick.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cd flash&amp;lt;/code&amp;gt; ; &amp;lt;code&amp;gt;updtflsh.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Think happy thoughts.  The ThinkPad will beep quite ominously (and loudly!) a couple of times.  Do not let this worry you too much.  After about three minutes, the program will ask you to press enter to restart and hopefully all will be well.&lt;br /&gt;
&lt;br /&gt;
= Approach 4: Alternative method to the above &amp;quot;alternative method&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
This is based on the above &amp;quot;Alternative Method&amp;quot; and works on my {{X60}}.&lt;br /&gt;
&lt;br /&gt;
1. Download the [[BIOS_Upgrade_Downloads|BIOS Update]] iso image and the [http://www.techpowerup.com/downloads/330/mirrors.php|HP USB Stick Formatter].&lt;br /&gt;
&lt;br /&gt;
2. Now get access to Windows -- be it in an emulator, or a colleague's PC. Steps 3, 4, 5 needs Windows to complete.&lt;br /&gt;
&lt;br /&gt;
3. Install the HP USB Stick Formatter.&lt;br /&gt;
&lt;br /&gt;
4. Go to the directory where you installed the tool: e.g. C:\DriveKey and extract HPUSBF.EXE to a new directory HPUSBF\ (using WinRAR, 7zip or similar).&lt;br /&gt;
&lt;br /&gt;
5. Run the HPUSBFW.EXE utility, selecting the location of system files as C:\DriveKey\HPUSBF, and let it format the USB stick.&lt;br /&gt;
&lt;br /&gt;
6. Extract the iso image to the USB stick, for example to K:\7buj22us (K: being the USB stick).&lt;br /&gt;
&lt;br /&gt;
7. On the target computer, boot with the USB stick and issue the commands &amp;quot;cd 7buj22us&amp;quot; then &amp;quot;command.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This brings up the BIOS flash interface and you can update your BIOS from here.&lt;br /&gt;
&lt;br /&gt;
== Comments on Approach 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
I (Martin Aulbach) followed these clear instructions and updated my X61t (from BIOS v1.08 to v1.10) without any problems and with a nice graphic splash screen. It is not necessary to let Windows format the USB stick as a MS-DOS startup disk, as outlined in Approach 3. The HP format tool will take care of this (in Step 5) and the USB stick will boot sucessfully at startup (correct boot order provided).&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; This update to BIOS 2.14 worked on a brand-new X61s, 2008-06-27. (adsmith)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; This update to BIOS 2.19 worked on a X61 (76754KU), 2009-01-21. (leonardokroeger)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Following the above method - Approach 4 (but after downloading the correct official [http://support.lenovo.com/en_US/downloads/detail.page?&amp;amp;LegacyDocID=MIGR-67983 Lenovo BIOS update .ISO file] from [[BIOS_Upgrade_Downloads|Lenovo]] and then changing the commands in steps 6. and 7. to correspond to the respective .ISO filename), I successfully updated a Lenovo ThinkPad X61s (7666WJ5) from BIOS 2.17 to BIOS 2.22 (original Lenovo BIOS, not the unofficial [[Middleton's BIOS]]). (sahwar)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Approach 5: Free Alternative method to the above &amp;quot;alternative method&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
This is functionally equivalent to the above two &amp;quot;alternative methods&amp;quot;, yet does not depend on MS Windows or any other proprietary software. It updates the BIOS through a bootable USB stick, and depends upon the FreeDOS, SYSLINUX, and AdvanceMAME projects. A detailed description is provided at [http://ubuntuforums.org/showthread.php?p=5459421#post5459421].&lt;br /&gt;
''This method currently isn't redommended by the author &amp;quot;due to troubles reported by users (August 9th, 2008)&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
= Approach 6: Using a USB stick to upgrade BIOS on older X Series Thinkpads =&lt;br /&gt;
&lt;br /&gt;
This method has been successfully applied for upgrading an {{X32}} Thinkpad. The previous BIOS version was 3.00d, and it was upgraded to 3.02 . Below are the steps:&lt;br /&gt;
&lt;br /&gt;
1. Download the new BIOS and EC Diskette-type upgrades.&lt;br /&gt;
&lt;br /&gt;
2. Make a DOS-bootable USB stick. See the section above for instructions on how to do this.&lt;br /&gt;
&lt;br /&gt;
3. Copy the upgrade programs to the USB stick.&lt;br /&gt;
&lt;br /&gt;
4. Make two zero-files (using dd), each with the size of a floppy disk.&lt;br /&gt;
&lt;br /&gt;
5. Boot up the USB stick using QEMU, with the USB stick as hda, and the two floppy disk images as A: and B: .&lt;br /&gt;
&lt;br /&gt;
6. Run the BIOS upgrade program, and select the first diskette as its destination. This will not actually upgrade the BIOS; it will only fill up the disk image.&lt;br /&gt;
&lt;br /&gt;
7. Run the EC upgrade program, with the second diskette as target. Again, this will only fill up the disk image, not upgrade the EC.&lt;br /&gt;
&lt;br /&gt;
8. Make two directories, C:\1 and C:\2 .&lt;br /&gt;
&lt;br /&gt;
9. Copy the contents of the first diskette to C:\1 and the second diskette to C:\2 .&lt;br /&gt;
&lt;br /&gt;
10. Exit QEMU, use the USB stick to boot the Thinkpad which BIOS we are going to upgrade.&lt;br /&gt;
&lt;br /&gt;
11. cd into C:\1 and run command.com inside it. This will bring up the BIOS update interface, so update the BIOS.&lt;br /&gt;
&lt;br /&gt;
12. After updating the BIOS, the machine will turn off by itself. Now boot again, with the same USB stick.&lt;br /&gt;
&lt;br /&gt;
13. cd into C:\2 and run command.com inside it. This will bring up the EC update interface. Update the EC and wait for the machine to shut down completely.&lt;br /&gt;
&lt;br /&gt;
14. Remove the USB stick. Now boot into the machine and go into BIOS setup. Right now you should see the new BIOS and EC version. If not, then something is wrong; make sure you have followed the above steps properly. Please also discuss this.&lt;br /&gt;
&lt;br /&gt;
= Approach 7: Use syslinux to boot floppy images which are part of the CD ISO files.  Done with a {{X31}} to upgrade the EC to version 1.08 and the BIOS to 3.02. =&lt;br /&gt;
&lt;br /&gt;
1. Download the CD ISO files of the embedded controller and the BIOS.&lt;br /&gt;
&lt;br /&gt;
2. loop mount these files, check for files like 1quj08us.img (EC) and 1quj19us.img (BIOS) and copy them to /boot/&lt;br /&gt;
&lt;br /&gt;
3. Install the syslinux package and boot the two images with the help of the memdisk feature ( grub: kernel /boot/memdisk initrd /boot/{ec|bios}.img)&lt;br /&gt;
&lt;br /&gt;
= Approach 8 : Use HP USB Format Utility and Win98Boot files to Create Bootable USB Stick =&lt;br /&gt;
(This process works for most X-series that has Windows XP, Windows Vista or Windows 7 OS)&lt;br /&gt;
&lt;br /&gt;
1. There is an HP utility tool floating around the net called HP USB Boot Utility. This [http://blogs.oreilly.com/digitalmedia/2004/10/utility-to-make-usb-flash-driv.html can create a bootable USB flash drive using the boot/system files you have].&lt;br /&gt;
&lt;br /&gt;
2. Get some [http://www.bay-wolf.com/utility/usbkey/win98boot.zip DOS (or similar) boot files] - I found something called &amp;quot;win98boot.zip&amp;quot; e.g.&lt;br /&gt;
&lt;br /&gt;
3. Extract the (*.ima) from the ISO BIOS image (e.g. [http://www.rarsoft.com WinRAR] will do this).&lt;br /&gt;
&lt;br /&gt;
4. Using a tool that can open .IMA files (such as [http://www.winimage.com/ WinImage]), extract all files to a temporary folder.&lt;br /&gt;
&lt;br /&gt;
4. Run the HP tool, select the USB device, I used FAT32,  create a DOS bootable disk and point at the win98boot folder - then &amp;quot;Start&amp;quot;. Warning: this '''formats''' the USB flash drive and all data will be erased!&lt;br /&gt;
&lt;br /&gt;
5. Once complete (you could test if it boots at this point), copy the extracted BIOS files from the temporary folder you created to the USB flash drive.&lt;br /&gt;
&lt;br /&gt;
6. Boot from USB flash drive by pressing F11 within the BIOS boot logo. At the DOS command prompt, type &amp;quot;updflsh&amp;quot; and then follow the prompts by pressing &amp;quot;Y&amp;quot; or Enter. Make sure that you have a fully charged battery pack and the AC Adapter is firmly plugged before proceeding with the BIOS update.&lt;br /&gt;
'''DO NOT Power off the laptop or unplug the USB flash drive while the update is in progress or else update will fail and your computer will be unable to boot and system board may need to be serviced.'''&lt;br /&gt;
&lt;br /&gt;
This process takes around 1-2 minutes. A long beep followed by a short beep will notify you that the update is complete and the system will automatically power off.&lt;br /&gt;
&lt;br /&gt;
7. Power on the laptop then enter the BIOS setup by pressing F1 and Load BIOS defaults.&lt;br /&gt;
&lt;br /&gt;
= Approach 8: Updating via &amp;quot;IBM Predesktop area&amp;quot;, suitable for model X (not have CDROM and floppy) =&lt;br /&gt;
It's so difficult to update BIOS and ECP without cdrom, floppy disk.&lt;br /&gt;
Don't know the reason why I couldn't update BIOS and ECP(1QHJ08US and 1QUJ19US) for my IBM Thinkpad X31.Hmm, may be cause of the dividing partition on my hard disk, that is: 	&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid black; padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Primary: ext3, ext3, ntfs&lt;br /&gt;
Extended: Ntsf, fat32&lt;br /&gt;
Bootloader: GRUB&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No problem, you can use this way to do it:&lt;br /&gt;
* First, config in BIOS&lt;br /&gt;
In Security part:&lt;br /&gt;
# Remove all password of Supervisor and Power on password&lt;br /&gt;
# Set Access IBM Predesktop Area to Normal&lt;br /&gt;
# Choose Enable &amp;quot;Flash BIOS updating by End User&amp;quot; in BIOS update Option.&lt;br /&gt;
&lt;br /&gt;
In Config part:&lt;br /&gt;
# Choose Enable for Network flash over Lan&lt;br /&gt;
&lt;br /&gt;
* Second, download the newest version of BIOS update and ECP update &lt;br /&gt;
Running: The program extract all files to the folder. There is a .img file (1QUJ19US.IMG, 1QUJ08US.IMG) in each folder.&lt;br /&gt;
Copy the imformation content in that img file and paste it to one FAT partition(using winimage or TotalCmd to extract) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
as seen All files in 1QUJ19US.IMG is extracted to D:\BIOS&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid black; padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
695,764  $018E000.FL1&lt;br /&gt;
163      0691.HSH&lt;br /&gt;
2,049    0691.PAT&lt;br /&gt;
163      0694.HSH&lt;br /&gt;
2,049    0694.PAT&lt;br /&gt;
163      0695.HSH&lt;br /&gt;
2,049    0695.PAT&lt;br /&gt;
2,049    06D0.PAT&lt;br /&gt;
163      06D1.HSH&lt;br /&gt;
2,049    06D1.PAT&lt;br /&gt;
163      06D2.HSH&lt;br /&gt;
2,049    06D2.PAT&lt;br /&gt;
163      06D6.HSH&lt;br /&gt;
2,049    06D6.PAT&lt;br /&gt;
2,049    06D8.PAT&lt;br /&gt;
697      CHKBMP.EXE&lt;br /&gt;
8,128    COMMAND.COM&lt;br /&gt;
26       CONFIG.SYS&lt;br /&gt;
24,860   FLASH2.EXE&lt;br /&gt;
26       LCREFLSH.BAT&lt;br /&gt;
170      LOGO.BAT&lt;br /&gt;
330      LOGO.SCR&lt;br /&gt;
111,925  PHLASH16.EXE&lt;br /&gt;
91,648   PREPARE.EXE&lt;br /&gt;
45       PROD.DAT&lt;br /&gt;
22,252   QKFLASH.EXE&lt;br /&gt;
9,923    README.TXT&lt;br /&gt;
4,260    TPCHKS.EXE&lt;br /&gt;
39,666   UPDTFLSH.EXE&lt;br /&gt;
6,958    UPDTMN.EXE&lt;br /&gt;
12,501   USERINT.EXE&lt;br /&gt;
15,254   UTILINFO.EXE&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And all files in 1QUJ08US.IMG are: D:\ECP&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid black; padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
315,404 $018E000.FL2&lt;br /&gt;
8,000   COMMAND.COM&lt;br /&gt;
36      CONFIG.SYS&lt;br /&gt;
16,910  ECFLASH2.EXE&lt;br /&gt;
45      PROD.DAT&lt;br /&gt;
17,812  QKFLASH.EXE&lt;br /&gt;
990     README.TXT&lt;br /&gt;
4,260   TPCHKS.EXE&lt;br /&gt;
89,738  UPDTEC.EXE&lt;br /&gt;
31,134  UPDTFLSH.EXE&lt;br /&gt;
12,501  USERINT.EXE&lt;br /&gt;
15,226  UTILINFO.EXE&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Okie, now plug AC Adapter, charge full battery to your laptop and continue third step:&lt;br /&gt;
&lt;br /&gt;
** '''Flash BIOS first,'''&lt;br /&gt;
1. Power On, press blue button on keyboard: '''Access IBM'''&lt;br /&gt;
&lt;br /&gt;
2. On &amp;quot;Utilities&amp;quot;, double click &amp;quot; Diagnostic disk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Your laptop will start PC-DOS, wait when this message appear:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid black; padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Please insert the first floppy diskette and&lt;br /&gt;
Press any key to continue&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Press Ctrl + Break, you will see :&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid black; padding: 1em;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Terminate batch job (Y/N) ?&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Okie, press Y, you will get DOS prompt like D:\&lt;br /&gt;
{{NOTE|D:\ is my RAMDISK, C:\ is my disk format as FAT.!}}&lt;br /&gt;
&lt;br /&gt;
6. Enter to c:\BIOS&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid black; padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
c:&lt;br /&gt;
cd c:\BIOS&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Run FLASH2.EXE /u $018E000.FL1&lt;br /&gt;
&lt;br /&gt;
8. Wait flash progress compelete and reboot.&lt;br /&gt;
** '''Flash ECP'''&lt;br /&gt;
Follow above instruction from step 1 to 5&lt;br /&gt;
&lt;br /&gt;
6. Enter to c:\ECP&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid black; padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
c:&lt;br /&gt;
cd c:\ECP&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. run UPDTFLSH.EXE $018E000.FL2&lt;br /&gt;
&lt;br /&gt;
8. Follow UPDTFLSH's instructions&lt;br /&gt;
&lt;br /&gt;
9. Wait flash complete and auto turn off computer.&lt;br /&gt;
&lt;br /&gt;
I done it on my IBM Thinkpad X31.&lt;br /&gt;
&lt;br /&gt;
Enjoy,&lt;br /&gt;
&lt;br /&gt;
Tested by nm.&lt;br /&gt;
&lt;br /&gt;
= Approach 10: Booting the Lenovo ISO image using Grub and SysLinux =&lt;br /&gt;
&lt;br /&gt;
I ran this on my [[:Category:X100e|X100e]] L625 (Dual-Core) 3508-5EG.&lt;br /&gt;
&lt;br /&gt;
Also worked on my [[:Category:X301|X301]] with the default ubuntu 10.10 memdisk (/usr/lib/syslinux/memdisk). My menu entry structure however looked like this (ext4 root/boot partition): --[[User:Blk|Blk]] 17:54, 25 November 2010 (UTC)&lt;br /&gt;
 menuentry 'BIOS Upgrade' {&lt;br /&gt;
        insmod ext2&lt;br /&gt;
        set root='(hd0,msdos1)'&lt;br /&gt;
        linux16 /boot/memdisk iso&lt;br /&gt;
        initrd16 /boot/bios.iso&lt;br /&gt;
 }&lt;br /&gt;
small note: the upgrade itself took about 2minutes (it beeped in the middle) and after rebooting i was probably in a reboot-loop. The system rebooted twice in a row after showing the &amp;quot;Press the ThinkVantage button...&amp;quot; blabla, so the third time i went into the bios, reset the default options (F9) and reconfigured it the way i had it before. Then it all worked.&lt;br /&gt;
Now to the original instructions (thanks mate!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have trouble using your wifi card like this one: [[Problem_with_unauthorized_MiniPCI_network_card]], you may want to put modified bios files onto cdrom fs, but you may be unable even see file list at least at some newest bootable .iso provided by Lenovo. &lt;br /&gt;
* If your modified bios file(which you may easily got from corresponding Windows EXE) have same size, there is no problem at all because you can find beginning of this file at raw cd image and replace it by dd. &lt;br /&gt;
* Things got more complex if you have no Windows in dualboot and final bios file size differs, so you need to extract filesystem tree from .iso, put modified files here and finally get this stuff to boot. &lt;br /&gt;
** You may use IsoBuster in VirtualBox for extracting the beginning of FAT16 filesystem and therefore dd it by offset or try to search signature of filesystem first block directly(for x200s and 3.20 it was 0x11800) then put your modified BIOS images here, prepare bootable disk from scratch using Windows XP 'boot' floppy option or syslinux and finally boot resulting image via Grub &amp;amp; memdisk. It is a long and weird way but seems there was no easy paths if you`re using third-party wireless card which cannot be modified physically for some reason.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, you download the iso of the cd for bios upgrade from Lenovo and let grub + syslinux emulate a cd-rom drive for you, running the software on the iso. &lt;br /&gt;
&lt;br /&gt;
It's nice and feels safe, since either the iso boots from grub or it doesn't, but if it does, you are running the full OS and update software stack as provided and tested by Lenovo. If it doesn't your bios will not be affected and you will not have bricked your laptop.&lt;br /&gt;
&lt;br /&gt;
* Download the latest bios upgrade from Lenovo website. I used version 1.25 ({{path|6xuj08uc.iso}})&lt;br /&gt;
* Get your hands on memdisk of syslinux. I had to compile a recent version, because my memdisk version that came with Ubuntu did not work correctly. &lt;br /&gt;
* To compile a recent version of syslinux (I used 3.86): &lt;br /&gt;
** Download the sources from http://syslinux.zytor.com/wiki/index.php/ISOLINUX (Download link in my case: http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.86.tar.bz2), &lt;br /&gt;
** Extract the sources and issue {{cmduser|make}} in the root directory of the source.&lt;br /&gt;
** Once compiled, the memdisk file you need will be in {{path|syslinux-3.86/memdisk/memdisk}}&lt;br /&gt;
* Copy the memdisk file of syslinux to {{path|/boot/memdisk}} &lt;br /&gt;
* Update the grub config file: add the code snippet below to the end of the file {{path|/boot/grub/grub.cfg}}. (on Ubuntu, add it to the file {{path|/etc/grub.d/40_custom}} instead, and do a {{cmduser|sudo update-grub}} afterwards).&lt;br /&gt;
 menuentry &amp;quot;Thinkpad x100e BIOS Upgrade to 1.25&amp;quot; {&lt;br /&gt;
        set root='(hd0,1)' # This line should match the other menuentries in your grub.cfg&lt;br /&gt;
        linux16 /boot/memdisk iso&lt;br /&gt;
        initrd16 /boot/6xuj08uc.iso # Make sure this is the correct filename (a different version will have a different filename)&lt;br /&gt;
 }&lt;br /&gt;
* Now reboot, press and hold shift right after the Thinkpad logo disappears and you should see an option in the grub boot menu to boot the bios upgrade cd.&lt;br /&gt;
* Select that option and press enter, the Lenovo bios update software should boot, and you'll get a text-menu interface. &lt;br /&gt;
** If you just see text on a black background and your Thinkpad no longer responds, your booting failed. At this point you are not updating the bios, so you can safely reboot using the power on/off button, recheck your config and find out what you did wrong.&lt;br /&gt;
* If it does boot, follow the directions carefully:&lt;br /&gt;
** Make absolutely sure you have power attached and a well loaded battery just in case&lt;br /&gt;
** The process takes around a minute&lt;br /&gt;
** When it asks to remove the cd and press enter to reboot, just press enter. &lt;br /&gt;
** You should then reboot having and updated bios.&lt;br /&gt;
&lt;br /&gt;
= Approach 10A: Booting an ISO image using Grub and Syslinux for X61 =&lt;br /&gt;
&lt;br /&gt;
The Lenovo ISO images for X61 (and T61) can be booted using Grub as described above, but they don't work as they are intended to be used from a cdrom drive.&lt;br /&gt;
&lt;br /&gt;
Fortunately you can adapt an ISO image from a more recent model, such as the X201.&lt;br /&gt;
The following instructions rely on the X201 BIOS Update Bootable CD for version 1.34, filename '''6quj11uc.iso'''. &lt;br /&gt;
Other versions may or may not work.&lt;br /&gt;
&lt;br /&gt;
Save this script as '''convert-iso.sh'''&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  X201=$1 # X201 iso to use&lt;br /&gt;
  X61=$2  # X61 update&lt;br /&gt;
  OUT=$3  # output filename&lt;br /&gt;
  &lt;br /&gt;
  ISO=`mktemp`&lt;br /&gt;
  SRC=`mktemp -d`&lt;br /&gt;
  DST=`mktemp -d`&lt;br /&gt;
  &lt;br /&gt;
  cp $X201 $ISO&lt;br /&gt;
  &lt;br /&gt;
  # discovered using geteltorito, to get the offset of the disk image&lt;br /&gt;
  # and fdisk, to get the offset of the partition inside the disk image&lt;br /&gt;
  OFFSET=71680&lt;br /&gt;
  &lt;br /&gt;
  mount $ISO $DST -o rw,loop,offset=$OFFSET&lt;br /&gt;
  &lt;br /&gt;
  # create a ramdisk big enough for the flash files&lt;br /&gt;
  cat &amp;lt;&amp;lt;EOF | sed 's/$/\r/' &amp;gt; $DST/CONFIG.SYS&lt;br /&gt;
  FILES=30&lt;br /&gt;
  BUFFERS=10&lt;br /&gt;
  DEVICE=C:\HIMEM.SYS /NUMHANDLES=120&lt;br /&gt;
  DEVICEHIGH=C:\ramdrive.sys /E 30720 &lt;br /&gt;
  DOS=HIGH,UMB&lt;br /&gt;
  STACKS=9,256&lt;br /&gt;
  EOF&lt;br /&gt;
  &lt;br /&gt;
  # copy the flash files to the ramdisk&lt;br /&gt;
  # if not, the update will simply hang because the files cannot be accessed&lt;br /&gt;
  #&lt;br /&gt;
  # remove the command.com line if you need a shell&lt;br /&gt;
  cat &amp;lt;&amp;lt;EOF | sed 's/$/\r/' &amp;gt; $DST/AUTOEXEC.BAT &lt;br /&gt;
  copy FLASH\*.* d:&lt;br /&gt;
  d:&lt;br /&gt;
  command.com&lt;br /&gt;
  EOF&lt;br /&gt;
  &lt;br /&gt;
  rm -r $DST/FLASH/*&lt;br /&gt;
  mount $X61 $SRC -r -o loop&lt;br /&gt;
  cp $SRC/* $DST/FLASH&lt;br /&gt;
  &lt;br /&gt;
  umount $SRC $DST&lt;br /&gt;
  rmdir $SRC $DST&lt;br /&gt;
  &lt;br /&gt;
  mv $ISO $OUT&lt;br /&gt;
  echo &amp;quot;Done: $OUT created.&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
Then run the script against the X201 bios ISO and the X61 one (in this example, version 2.22, filename '''7nuj22uc.iso''').&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|./convert-iso.sh 6quj11uc.iso 7nuj22uc.iso X61.iso}}.&lt;br /&gt;
&lt;br /&gt;
In theory this should create a file called '''X61.iso''' that can be booted using Grub and Syslinux, and which will successfully update the BIOS.&lt;br /&gt;
&lt;br /&gt;
== Experience report under T60 ==&lt;br /&gt;
&lt;br /&gt;
I've used this method successfully on a T60 (didn't want to burn a CD for that) starting from an X201s BIOS update iso image I had lying around.  I &amp;quot;ran&amp;quot; the script by hand (I saw that the CONFIG.SYS was already almost identical, the only change is the `30720` which I assume just makes the ramdisk larger).  One note, tho: the AUTOEXEC.BAT file successfully copied the files to the ramdisk but after that I was left at the DOS command line, so I ended up running the flash command by hand with something like `flash2.exe /u $00A3000.FL1`.  First time around this failed, complaining that network-flashing was disabled, so I rebooted and enabled network-flashing in the BIOS (under Config-&amp;gt;Network) after which I was finally able to update my BIOS to 2.27.&lt;br /&gt;
&lt;br /&gt;
= Approach 11: Extracting image and imaging it to USB stick =&lt;br /&gt;
&amp;lt;small&amp;gt;(Also described in [[BIOS_Upgrade#Manually_creating_a_USB_Flash_drive_in_Linux]] and a somewhat similar approach (tested for ThinkPad X200) is described in [[BIOS_update_without_optical_disk]].)&amp;lt;/small&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Reported to work on:''' These instructions were successfully tested under a ''Lenovo ThinkPad X220''; ''Please update this entry in case you successfully update a different ThinkPad model with this method (including before-update BIOS and updated BIOS information).''&lt;br /&gt;
&lt;br /&gt;
'''Instructions (YouTube video, English-language audio, a ThinkPad X220 as the 'test subject'):'''&amp;lt;br/&amp;gt; http://youtu.be/mEcASjftccE&amp;lt;br/&amp;gt; &amp;lt;small&amp;gt;(This is by following the method described in http://www.floccinaucinihilipilification.net/blog/2011/10/2/updating-the-bios-of-a-thinkpad-x220-using-linux.html (''[https://archive.is/CgDOf archive.is archived copy]'')&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;'''WARNING:''' The &amp;lt;code&amp;gt;8duj25us.iso&amp;lt;/code&amp;gt; file as shown below is for the ''ThinkPad X220''. If you try to test this method with a different ThinkPad model, '''make sure''' you get the '''CORRECT''' BIOS-updating &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; file for your specific ThinkPad model.&amp;lt;/small&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''WARNING 2:''' Replace the &amp;lt;code&amp;gt;/dev/usbthumdrive&amp;lt;/code&amp;gt; shown below with your PC's specific &amp;lt;code&amp;gt;/dev/&amp;lt;yourusbflashdevice&amp;gt;&amp;lt;/code&amp;gt; location (without the &amp;lt;tt&amp;gt;&amp;lt;&amp;gt;&amp;lt;/tt&amp;gt;).&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  $ geteltorito.pl -o bios.img ~/Downloads/8duj25us.iso&lt;br /&gt;
&lt;br /&gt;
  $ sudo dd if=bios.img of=/dev/usbthumdrive bs=512K&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;(Archive for the &amp;lt;code&amp;gt;geteltorito.pl&amp;lt;/code&amp;gt; tool ('''MAY be an OLDER version in comparison to the verbatim copy in the above blog post! So compare!'''): https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Monnier</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=54117</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=54117"/>
		<updated>2012-12-04T19:52:33Z</updated>

		<summary type="html">&lt;p&gt;Monnier: Mention use of host2 for sata link power management on T61&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.lesswatts.org/projects/powertop/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.lesswatts.org/projects/powertop/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power hungry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
===Enabling Power Management===&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed ''enable'' them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
===Disabling I/O Ports===&lt;br /&gt;
The BIOS (at least version 3.11 on {{X200}}) can also be used to disable I/O ports, like PCMCIA/CardBus.  Although this requires a reboot to change settings, using the BIOS rather than a configuration file will survive distribution changes and may make it easier to remember how to re-enable a port.  Disabling these devices can reduce power consumption by several watts.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power hungry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like [[dynticks]]). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO depreciated as of kernel 2.6.24, use CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset ICH5 or later (cf. lspci output), as in most modern Thinkpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hpet=force&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{WARN|The ICH4 does have an HPET, but it is disabled for a good reason: Intel didn't test/validade it!  Use of the ICH4 HPET is '''not''' recommended}}&lt;br /&gt;
&lt;br /&gt;
to your kernel boot options (usualy in /boot/grub/menu.lst or lilo.conf). &lt;br /&gt;
Note that &amp;quot;hpet=force&amp;quot; is only available by default in 2.6.24-rc2 and above &lt;br /&gt;
(or as a separated patch for 2.6.22 and 2.6.23, see below).&lt;br /&gt;
&lt;br /&gt;
On modern ThinkPads the HPET timer is automatically detected and enabled. On certain older machines hpet=force is required such as on the following machines:&lt;br /&gt;
* {{T30}}, {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}&lt;br /&gt;
* {{X22}}, {{X23}}, {{X24}}, {{X30}}, {{X31}}, {{X40}}&lt;br /&gt;
* {{A31}}&lt;br /&gt;
* {{SL500}}&lt;br /&gt;
&lt;br /&gt;
{{HELP|please add your ThinkPad to the above list, if &amp;lt;nowiki&amp;gt;hpet=force&amp;lt;/nowiki&amp;gt; was required}}&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel (AN needs also support in hal to be used).&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
As of now (2.6.24-rc8), the linux kernel doesn't support PCI Express power &lt;br /&gt;
management (aka PCIe ASPM, aka PCIe LPM). Shaohua Li from Intel submited a &lt;br /&gt;
patch on LKML (http://lkml.org/lkml/2008/1/17/544 ) though, and reported it &lt;br /&gt;
to reduce power consumption by 1.3 watts for a system with three PCIe links.&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host2/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disk write access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it by adding the &amp;lt;tt&amp;gt;relatime&amp;lt;/tt&amp;gt;&lt;br /&gt;
option to all relevant lines in the /etc/fstab, for example:&lt;br /&gt;
 /dev/sda1 / ext3 relatime,errors=remount-ro 0 1&lt;br /&gt;
&lt;br /&gt;
(On older kernels you may need to use &amp;lt;tt&amp;gt;noatime&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;relatime&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
Also consider merely using a larger value for the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; option. This defines how often changed data is written to the disk (it is cached until then). The default value is 5 seconds.&lt;br /&gt;
&lt;br /&gt;
See man mount(8) for details on how the &amp;lt;tt&amp;gt;rel/noatime&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; options work.&lt;br /&gt;
&lt;br /&gt;
Use laptop_mode to reduce disk usage by delaying and grouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SATA Link Power Management====&lt;br /&gt;
On kernels 2.6.24 and new this enables SATA Link Power Management:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host2/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disable it by replacing &amp;lt;code&amp;gt;min_power&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;max_performance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Which host-number to use depends on your laptop.  It is typically 0 for the main drive, but for example on the T61 the 0 and 1 are for the pata interface used for the optical drive, and the main hard-disk is on host2.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu Hardy Heron with a 2.6.24-16 kernel, a suspend/resume cycle is much quicker if you disable SATA Link Power Management before initiating the suspend. As of Intrepid Ibex and kernel 2.6.27, this should be fixed. ([https://bugs.launchpad.net/linux/+bug/234047 Launchpad bug 234047], [http://bugzilla.kernel.org/show_bug.cgi?id=10817 Kernel bug 10817])&lt;br /&gt;
&lt;br /&gt;
====Laptop Mode Tools====&lt;br /&gt;
&lt;br /&gt;
The [http://samwel.tk/laptop_mode/ Laptop Mode Tools] utility implements many of the above power-saving measures from disks, and some others.&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling --device /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
start polling again when on ac:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling --enable-polling --device /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5 minutes of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV --off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. To enable it by default, you must add the line &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options usbcore autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
to your &amp;lt;tt&amp;gt;/etc/modprobe.conf&amp;lt;/tt&amp;gt; or add it to (and create if necessary) the file &amp;lt;tt&amp;gt;/etc/modprobe.d/usbcore&amp;lt;/tt&amp;gt; depending on how your distribution organises modprobe configuration. &lt;br /&gt;
&lt;br /&gt;
If on the other hand, you have &amp;lt;tt&amp;gt;usbcore&amp;lt;/tt&amp;gt; built into your kernel, you can add this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done &lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/level; do echo auto &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totally avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PCMCIA/CardBus==&lt;br /&gt;
Same for PCMCIA/CardBus. Some users experiences interrupts clouds (sometime up to &lt;br /&gt;
several thousands interrupts/second) causing CPU wakeups, thus totally preventing &lt;br /&gt;
the CPU to reach lower C-states. &lt;br /&gt;
If you don't use PCMCIA, you may disable it the same way (unloading seems insufficient&lt;br /&gt;
to restore the system properly, you have to boot without it):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist pcmcia&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
 echo &amp;quot;blacklist yenta_socket&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Intel HD Audio===&lt;br /&gt;
&lt;br /&gt;
If you have Intel HD audio as your onboard sound controller, substitute the following for the last line in the above sequence:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo Y &amp;gt; /sys/module/snd_hda_intel/parameters/power_save_controller&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also may wish to decrease the sound poweroff timeout to something shorter, like 1 second after last playback:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo 1 &amp;gt; /sys/module/snd_hda_intel/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Additional Tweaks===&lt;br /&gt;
&lt;br /&gt;
You can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
See also [[How to enable audio codec power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
===intel wireless===&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
In recent kernels, the powersaving on the intel ipw3945 has been disabled, as&lt;br /&gt;
for some it is unstable. For others it worked just fine.&lt;br /&gt;
&lt;br /&gt;
See [http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.33.y.git;a=blobdiff;f=drivers/net/wireless/iwlwifi/iwl-3945.c;h=e413bd35bc411a1113177f1576538eb0ac26f00c;hp=4609323d8436dc9e22c74be2f1f3cf5e97785cb2;hb=bc45a67079c916a9bd0a95b0b879cc0f259bac6e;hpb=b7bb1756cb6a610cdbac8cfdad9e79bb5670b63b this patch]. You may wish to try changing '.broken_powersave=true' to false, in /usr/src/linux/drivers/net/wireless/iwlwifi/iwl-3945.c if you wish to enable powersave.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dstat -t -c --power --top-cpu --top-io --top-bio --top-latency --top-cputime&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:X61]] [[Category:X61s]]  [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Monnier</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Core_2_Duo_(Penryn)&amp;diff=54080</id>
		<title>Intel Core 2 Duo (Penryn)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Core_2_Duo_(Penryn)&amp;diff=54080"/>
		<updated>2012-11-07T02:56:45Z</updated>

		<summary type="html">&lt;p&gt;Monnier: The X9[10]00's TDP is not 35W&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;white-space:nowrap;&amp;quot; | __TOC__&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;
&lt;br /&gt;
The Intel 2 Core is the successor of the [[Intel Core 2 Duo (Merom)]] processor. Unlike the Merom, Penryn uses the new 45 nm process which makes it cooler and uses less power.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
*Dual Core&lt;br /&gt;
*EM64T&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Vanderpool#Intel_Virtualization_Technology_.28Intel_VT.29 Intel Virtualization Technology ]&lt;br /&gt;
*XD-Bit&lt;br /&gt;
*[[SIMD|MMX]], [[SIMD|SSE]], [[SIMD|SSE2]], [[SIMD|SSE3]], [[SIMD|SSSE3]], [[SIMD|SSE4.1]], XD Bit, iAMT2, Intel VT instruction sets&lt;br /&gt;
*800 or 1066 MHz FSB&lt;br /&gt;
*45 nm fabrication process&lt;br /&gt;
*3-6 MB L2-Cache&lt;br /&gt;
*[[SpeedStep|Enhanced Intel SpeedStep (EIST)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Available Types and ThinkPads featuring them=&lt;br /&gt;
==Standard Voltage==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=2&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;white-space:nowrap;&amp;quot;&lt;br /&gt;
! Nr. || colspan=2 | Frequency (MHz) || L2 Cache || FSB (MT/s)|| VT || colspan=2 | core Voltage (V) || colspan=2 | TDP (W) || ThinkPad Models&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;&amp;quot;&lt;br /&gt;
!       !! max. !! min. !!    !!     !!     !! high  !! low !! high freq !! low freq !! &lt;br /&gt;
|-&lt;br /&gt;
| T6570 || 2100 || 800 || 2MB || 800 || yes || 1.25 || 1.0 ||         35 ||        ? || {{SL400}}, {{SL410}}, {{SL500}}, {{SL510}}&lt;br /&gt;
|-&lt;br /&gt;
| T6670 || 2200 || 800 || 2MB || 800 || yes || 1.25 || 1.0 ||         35 ||        ? || {{SL410}}, {{SL510}}&lt;br /&gt;
|-&lt;br /&gt;
| T8100 || 2100 || 800 || 3MB || 800 || yes || 1.25 || 1.0 ||         35 ||        ? || {{R61i}}, {{X61}}, {{T61}}, {{T61p}}&lt;br /&gt;
|-&lt;br /&gt;
| T8300 || 2400 || 800 || 3MB || 800 || yes || 1.25 || 1.0 ||         35 ||        ? || {{X61}}, {{T61}}, {{T61p}}&lt;br /&gt;
|-&lt;br /&gt;
| T9300 || 2500 || ? || 6MB || 800 || yes || ? || ? ||         35 ||        ? || {{X61}}, {{T61}}, {{T61p}}&lt;br /&gt;
|-&lt;br /&gt;
| T9400 || 2433 || ? ||6MB || 1066 || yes || ? || ? ||         35 ||        ? || {{R400}}, {{R500}}, {{SL300}}, {{SL400}}, {{SL500}}, {{T400}}, {{T500}}, {{W700}}&lt;br /&gt;
|-&lt;br /&gt;
| T9500 || 2600 || ? ||6MB || 800 || yes || ? || ? ||         35 ||        ? || {{T61p}}&lt;br /&gt;
|-&lt;br /&gt;
| T9550 || 2667 || ? ||6MB || 1066 || yes || ? || ? ||         35 ||        ? || {{T500}}&lt;br /&gt;
|-&lt;br /&gt;
| T9600 || 2800 || ? ||6MB || 1066 || yes || ? || ? ||         35 ||        ? || {{R400}}, {{R500}}, {{T400}}, {{T500}}, {{W700}}&lt;br /&gt;
|-&lt;br /&gt;
| X9000 || 2800 || ? ||6MB || 800 || yes || ? || ? ||         44 ||        ? ||&lt;br /&gt;
|-&lt;br /&gt;
| X9100 || 3067 || ? ||6MB || 1066 || yes || ? || ? ||         44 ||        ? || {{W700}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Medium Voltage==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=2&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;white-space:nowrap;&amp;quot;&lt;br /&gt;
! Nr. || colspan=2 | Frequency (MHz) || L2 Cache || FSB (MT/s)|| VT || colspan=2 | core Voltage (V) || colspan=2 | TDP (W) || ThinkPad Models&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;&amp;quot;&lt;br /&gt;
!       !! max. !! min. !!    !!     !!     !! high  !! low !! high freq !! low freq !! &lt;br /&gt;
|-&lt;br /&gt;
| P7370 || 2000 || ? || 3MB || 1066 || yes || 1.25 || 1.0 ||         25 ||        ? || {{SL400}}, {{SL500}}&lt;br /&gt;
|-&lt;br /&gt;
| P7570 || 2266 || ? || 3MB || 1066 || yes || 1.25 || 1.0 ||         25 ||        ? || {{SL400}}, {{SL500}}&lt;br /&gt;
|-&lt;br /&gt;
| P8400 || 2267 || ? || 3MB || 1066 || yes || 1.25 || 1.0 ||         25 ||        ? || {{R400}}, {{R500}}, {{SL300}}, {{SL400}}, {{SL500}}, {{T400}}, {{T500}}, {{X200}}&lt;br /&gt;
|-&lt;br /&gt;
| P8600 || 2400 || ? || 3MB || 1066 || yes || 1.25 || 1.0 ||         25 ||        ? || {{R400}}, {{R500}}, {{SL300}}, {{SL400}}, {{SL500}}, {{T400}}, {{T500}}, {{X200}}&lt;br /&gt;
|-&lt;br /&gt;
| P8700 || 2533 || 800 || 3MB || 1066 || yes || 1.25 || 1.0 ||         25 ||        ? || {{R500}}, {{SL400c}}, {{SL500c}}, {{SL510}}, {{T400}}, {{T500}}, {{X200}}&lt;br /&gt;
|-&lt;br /&gt;
| P8800 || 2666 || ? || 3MB || 1066 || yes || 1.25 || 1.0 ||         25 ||        ? || {{X200}}&lt;br /&gt;
|-&lt;br /&gt;
| P9500 || 2533 || ? || 6MB || 1066 || yes || 1.126 || 1.05 ||         25 ||        ? || {{T400}}, {{T500}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Medium Voltage, small form factor==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=2&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;white-space:nowrap;&amp;quot;&lt;br /&gt;
! Nr. || colspan=2 | Frequency (MHz) || L2 Cache || FSB (MT/s)|| VT || colspan=2 | core Voltage (V) || colspan=2 | TDP (W) || ThinkPad Models&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;&amp;quot;&lt;br /&gt;
!       !! max. !! min. !!    !!     !!     !! high  !! low !! high freq !! low freq !! &lt;br /&gt;
|-&lt;br /&gt;
| SP9300 || 2267 || ? || 6MB || 1066 || yes || 1.15 || 1.05 ||         25 ||        ? ||&lt;br /&gt;
|-&lt;br /&gt;
| SP9400 || 2400 || ? || 6MB || 1066 || yes || 1.15 || 1.05 ||         25 ||        ? || {{T400s}}&lt;br /&gt;
|-&lt;br /&gt;
| SP9600 || 2533 || ? || 6MB || 1066 || yes || 1.15 || 1.05 ||         25 ||        ? || {{T400s}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Low Voltage, small form factor==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=2&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;white-space:nowrap;&amp;quot;&lt;br /&gt;
! Nr. || colspan=2 | Frequency (MHz) || L2 Cache || FSB (MT/s)|| VT || colspan=2 | core Voltage (V) || colspan=2 | TDP (W) || ThinkPad Models&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;&amp;quot;&lt;br /&gt;
!       !! max. !! min. !!    !!     !!     !! high  !! low !! high freq !! low freq !! &lt;br /&gt;
|-&lt;br /&gt;
| SL9300 || 1600 || ? || 6MB || 1066 || yes || 1.15 || 1.05 ||         17 ||        ? || {{X200s}}, {{X200 Tablet}}&lt;br /&gt;
|-&lt;br /&gt;
| SL9380 || 1800 || ? || 6MB || 800 || yes || 1.15 || 1.05 ||         17 ||        ? ||&lt;br /&gt;
|-&lt;br /&gt;
| SL9400 || 1866 || ? || 6MB || 1066 || yes || 1.15 || 1.05 ||         17 ||        ? || {{X200s}}, {{X200 Tablet}}&lt;br /&gt;
|-&lt;br /&gt;
| SL9600 || 2133 || ? || 6MB || 1066 || yes || 1.15 || 1.05 ||         17 ||        ? || {{X200s}}, {{X200 Tablet}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Ultra-Low Voltage, small form factor==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=2&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;white-space:nowrap;&amp;quot;&lt;br /&gt;
! Nr. || colspan=2 | Frequency (MHz) || L2 Cache || FSB (MT/s)|| VT || colspan=2 | core Voltage (V) || colspan=2 | TDP (W) || ThinkPad Models&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;&amp;quot;&lt;br /&gt;
!       !! max. !! min. !!    !!     !!     !! high  !! low !! high freq !! low freq !! &lt;br /&gt;
|-&lt;br /&gt;
| SU7300 || 1300 || ? || 3MB || 800 || yes || ? || ? ||         10 ||        ? || {{Edge 13&amp;quot;}}&lt;br /&gt;
|-&lt;br /&gt;
| SU7800 || 1400 || ? || 3MB || 800 || yes || ? || ? ||         10 ||        ? ||&lt;br /&gt;
|-&lt;br /&gt;
| SU9300 || 1200 || ? || 3MB || 800 || yes || 1.15 || 1.05 ||         10 ||        ? || {{X200s}}, {{X200 Tablet}}&lt;br /&gt;
|-&lt;br /&gt;
| SU9400 || 1400 || ? || 3MB || 800 || yes || 1.15 || 1.05 ||         10 ||        ? || {{X200s}}, {{X301}}&lt;br /&gt;
|-&lt;br /&gt;
| SU9600 || 1600 || ? || 3MB || 800 || yes || 1.15 || 1.05 ||         10 ||        ? || {{X301}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Intel Core Solo (Yonah)]]&lt;br /&gt;
*[[Intel Core Duo (Yonah)]]&lt;br /&gt;
*[[Intel Core 2 Duo (Merom)]]&lt;br /&gt;
*[[Intel Core i3]]&lt;br /&gt;
*[[Intel Core i5]]&lt;br /&gt;
*[[Intel Core i7]]&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[http://www.intel.com/products/processor_number/chart/core2duo.htm  Intel - Processor Numbers and Features]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/List_of_Intel_Core_2_microprocessors#Mobile_processors Wikipedia - Intel Core 2 mobile microprocessors]&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Monnier</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Supported_Boot_Devices&amp;diff=38428</id>
		<title>Supported Boot Devices</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Supported_Boot_Devices&amp;diff=38428"/>
		<updated>2008-08-02T21:22:46Z</updated>

		<summary type="html">&lt;p&gt;Monnier: My X30 had no trouble booting from a USB FDD&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;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
The following table headings shall designate the following meanings...&lt;br /&gt;
&lt;br /&gt;
* FDD = Internal/UltraBay Diskette (&amp;quot;Floppy&amp;quot;) drive (also called &amp;quot;Legacy FDD&amp;quot;)&lt;br /&gt;
* CD = Internal/UltraBay CD/DVD(-R/-RW/-RAM) drive&lt;br /&gt;
* Network = any type of network boot support (such as PXE)&lt;br /&gt;
* PCMCIA = any memory device connected via the PCMCIA/PC Card/CardBus port&lt;br /&gt;
* USB HD = any hard drive/flash drive/pen drive connected via the USB port&lt;br /&gt;
* USB FDD = Diskette (&amp;quot;Floppy&amp;quot;) drive connected via the USB port&lt;br /&gt;
* USB CD = CD/DVD(-R/-RW/-RAM) drive connected via the USB port&lt;br /&gt;
* FireWire = any memory device connected via the FireWire (i.Link/IEEE 1394) port&lt;br /&gt;
&lt;br /&gt;
The fields should be filled with one of the following:&lt;br /&gt;
* ? = unknown / untested&lt;br /&gt;
* yes = supported (may be selected from the BIOS)&lt;br /&gt;
* no = not supported (BIOS incapable of booting to this type of device)&lt;br /&gt;
* part = partially working (configuration not retained on reboot/requires firmware workaround/only on some devices/USB1 only).  Please add footnote/link documenting the specifics.&lt;br /&gt;
* v#.## = only with BIOS versions &amp;amp;ge; #.##&lt;br /&gt;
* N/A = not applicable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====Numbered Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:750 | 750]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|9}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:570E | 570E]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:600 | 600]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|5}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:600E | 600E]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes &amp;lt;!-- According to DMI data --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:600X | 600X]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:755CD | 755CD]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:755CDV | 755CDV]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:755CV | 755CV]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:755CX | 755CX]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:770 | 770]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no{{footnote|7}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:770E | 770E]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:770X | 770X]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:770Z | 770Z]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====A Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A20m | A20m]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 436936E5.30709@chartermi.net --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A20p | A20p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A21e | A21e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A21m | A21m]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A21p | A21p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A22e | A22e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A22m | A22m]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 436936E5.30709@chartermi.net --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A22p | A22p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A30 | A30]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 436936E5.30709@chartermi.net --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A30p | A30p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A31 | A31]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes  &amp;lt;!-- According to message on ML ID: 436936E5.30709@chartermi.net --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:A31p | A31p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====G Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:G40 | G40]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:G41 | G41]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====R Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R30 | R30]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R31 | R31]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 441D6183.6070009@rogers.com --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes &amp;lt;!-- According to message on ML ID: 441D6183.6070009@rogers.com --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no  &amp;lt;!-- According to message on ML ID: 441D6183.6070009@rogers.com --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R32 | R32]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R40 | R40]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R40e | R40e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R50 | R50]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R50e | R50e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R50p | R50p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R51 | R51]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R52 | R52]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:R60e | R60e]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | n/a&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | n/a&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====T Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T20 | T20]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T21 | T21]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T22 | T22]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T23 | T23]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|4}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes &amp;lt;!-- seen on IBM BIOS simulator, not tested --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes &amp;lt;!-- seen on IBM BIOS simulator, not tested --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T30 | T30]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T40 | T40]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T40p | T40p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T41 | T41]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T41p | T41p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes &amp;lt;!-- described in 200701301702.13362.tnikkila@cc.hut.fi --&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T42 | T42]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T42p | T42p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T43 | T43]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T43p | T43p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|3}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T60 | T60]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T60p | T60p]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:T61 | T61]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====X Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X20 | X20]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X21 | X21]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X22 | X22]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X23 | X23]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X24 | X24]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X30 | X30]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | part{{footnote|1}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X31 | X31]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X32 | X32]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X40 | X40]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X41 | X41]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X41 Tablet | X41 Tablet]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|2}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X60 | X60]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X60s | X60s]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X60t | X60t]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:X61 | X61]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====Z Series====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*{{Z60m}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes{{footnote|6}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*{{Z60t}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*{{Z61m}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====Others====&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#cfefcf;&amp;quot; | Model&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | Network&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | PCMCIA&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB HD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB FDD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | USB CD&lt;br /&gt;
! style=&amp;quot;vertical-align:top;background-color:#6699cc;&amp;quot; | FireWire HD&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;background-color:#e9f9e9;&amp;quot; |&lt;br /&gt;
*[[:Category:TransNote | TransNote]]&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[[:Category:S30 | S30]]&lt;br /&gt;
*[[:Category:S31 | S31]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Choosing USB Boot and booting with a USB flash drive plugged in makes boot procedure extremely long (1m30 just to pass the IBM splash screen). However, it ends up booting the OS in the USB drive (assuming one is indeed present).&lt;br /&gt;
#Internal CD/FD means the ones in the UltraBase for X series and 570 models.&lt;br /&gt;
#Requires an external Floppy drive attached to Port Replicator or Dock&lt;br /&gt;
#Requires that the user select the drive from the disk option shown after clicking F12 on the boot sequence.&lt;br /&gt;
#Boots from a flash memory drive, i.e. CompactFlash (with PCMCIA adapter).&lt;br /&gt;
#It is working with lilo boot loader, however it failed with syslinux.&lt;br /&gt;
#Supported by the BIOS configuration, but doesn't seem to work.&lt;br /&gt;
#An external FDD connected to the dedicated FDD port&lt;br /&gt;
#Network boot is in EZSetup, but may require specific IBM PXE-enabled NIC.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Monnier</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Idle_consumptions&amp;diff=30612</id>
		<title>Idle consumptions</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Idle_consumptions&amp;diff=30612"/>
		<updated>2007-06-22T16:02:34Z</updated>

		<summary type="html">&lt;p&gt;Monnier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page reports the minimal consumptions of Thinkpads when idle. This means, in principle: minimum brightness, CPU and GPU at lowest speed, no wifi, hard drive spun down, no pcmcia cards inserted (see details of each entry).&lt;br /&gt;
&lt;br /&gt;
This kind of information has several uses: comparing one's consumption with that of other people's setups, knowing which model to use as a gateway/file server, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! Model !! OS !! Remarks !! consumption &lt;br /&gt;
|----&lt;br /&gt;
|{{600E}} PIII/450 || Archlinux 0.8/xfce ||  || 9W&lt;br /&gt;
|----&lt;br /&gt;
|{{T41p}}||Ubuntu 7.04|| Undervolted, fglrx, no dri; fan-&amp;gt;+0.5W, powerstate=2-&amp;gt;+0.7W, HD-&amp;gt;+1.5W || 8.3W&lt;br /&gt;
|----&lt;br /&gt;
|{{T43}} (1871)||Debian (Linux 2.6.21, fluxbox)|| DRI, alsa (power_save=1), with usb, no networking || 10.1W (12.0W with HD)&lt;br /&gt;
|----&lt;br /&gt;
|{{T43}} (2669)||Gentoo (2.6.20-gentoo-r5)|| Undervolted, fglrx (powerstate=1), DRI, no alsa, no usb modules, no networking || 12.7W&lt;br /&gt;
|----&lt;br /&gt;
|{{T43}} (2686)||Fedora Core 6 (2.6.19.x patched)|| Undervolted, radeon, &amp;lt;tt&amp;gt;rovclock -c 125 -m 130&amp;lt;/tt&amp;gt;, no DRI, ALSA &amp;lt;tt&amp;gt;power_save=1&amp;lt;/tt&amp;gt;, no usb modules, no networking, min brightness, HDD spun down || 15W&lt;br /&gt;
|----&lt;br /&gt;
|{{R50e}}|| Gentoo (linux-2.6.22-rc4 force_HPET, fluxbox) ||With Networking, USB, firefox, thunderbird || 11.1W&lt;br /&gt;
|----&lt;br /&gt;
|{{R50e}}|| Gentoo (linux-2.6.22-rc4 force_HPET, fluxbox) ||Fluxbox + shell (+fan) || 10.5W&lt;br /&gt;
|----&lt;br /&gt;
|{{R50e}}|| Gentoo (linux-2.6.22-rc4 force_HPET, fluxbox) ||Blank Screen after 20min idle (+fan) || 7.1W&lt;br /&gt;
|----&lt;br /&gt;
|{{X60}}||Ubuntu 7.04||Wireless kill switch on, min brightness||10.2W&lt;br /&gt;
|----&lt;br /&gt;
|{{X60s}}||Debian Etch||2.6.21 tickless kernel, processes tweaked with powertop, usb/fw unloaded, hd spun down, min brightness, ipw3945 set to powersave mode 7||8.3W&lt;br /&gt;
|----&lt;br /&gt;
|{{X60s}}||Debian Etch||2.6.21 tickless kernel, processes tweaked with powertop, usb/fw unloaded, hd spun down, min brightness,ipw3945 unloaded||9W&lt;br /&gt;
|----&lt;br /&gt;
|{{T60}} (2007)||Fedora Core 6|| Wireless kill switch on, 1400x1050 panel @ min brightness, fglrx (powerstate=1), HDD spun up (~1W saving without) || 16W&lt;br /&gt;
|----&lt;br /&gt;
|{{T60}} (2007)||KUbuntu 7.04|| Wireless on, 1680x1050 panel @ medium brightness, fglrx (powerstate=1) || 16W&lt;br /&gt;
|----&lt;br /&gt;
|{{T60}} (2623D6U)||Debian testing (linux-2.6.21-1-686)||1400x1050 14&amp;quot; min-bright, iwpriv wlan0 set_power 7, VESA driver|| 12,7W&lt;br /&gt;
|----&lt;/div&gt;</summary>
		<author><name>Monnier</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=28867</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=28867"/>
		<updated>2007-03-21T05:37:50Z</updated>

		<summary type="html">&lt;p&gt;Monnier: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system temperature and (on some models) reduce system fan noise. This page summarizes the known techniques for reducing power consumption on ThinkPad laptops under Linux. The power numbers given (in Watt) are very rough and model-specific.&lt;br /&gt;
&lt;br /&gt;
===System power states===&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===CPU===&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
===Graphics===&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]]&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
* [[Rovclock]]&lt;br /&gt;
* Reduce LCD brightness (~1-4W difference)&lt;br /&gt;
** Do this [[Automatically_reduce_brightness|automatically]] after a period of inactivity&lt;br /&gt;
* Disable CRT output (~0.5W difference)&lt;br /&gt;
&lt;br /&gt;
===Hard disk===&lt;br /&gt;
Spinning down the disk saves about 1W.&lt;br /&gt;
* [[Laptop-mode]]&lt;br /&gt;
* [[How to make use of Harddisk Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive consumes about 1W even when not accessed.&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
===System fan===&lt;br /&gt;
Consumes about 0.5W when running.&lt;br /&gt;
* [[ACPI fan control script]]&lt;br /&gt;
&lt;br /&gt;
===Wireless network===&lt;br /&gt;
Consumes up to ~4W.&lt;br /&gt;
* Activate power saving on the wireless network card&lt;br /&gt;
** For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
** For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
===USB===&lt;br /&gt;
Causes significant power draw due to bus mastering (affects CPU C-state).  Disable by unloading modules,&lt;br /&gt;
or unbinding the devices in sysfs.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
Consumes about 0.3W.&lt;br /&gt;
* [[How to enable AC97 power saving]]&lt;br /&gt;
&lt;br /&gt;
==Related topics==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script_for_monitoring_power_consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;/div&gt;</summary>
		<author><name>Monnier</name></author>
		
	</entry>
</feed>