<?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=Desrod</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=Desrod"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Desrod"/>
	<updated>2026-05-04T18:32:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Maintenance&amp;diff=28015</id>
		<title>Maintenance</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Maintenance&amp;diff=28015"/>
		<updated>2007-01-30T03:58:12Z</updated>

		<summary type="html">&lt;p&gt;Desrod: dsmith's CD image is no longer available, nor is his account on the linked server.&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;
Here you can find general hints about keeping your ThinkPad in good shape. Look at your [[:Category:Models|models category page]] for IBMs official maintenance guide for that model.&lt;br /&gt;
|}&lt;br /&gt;
==Battery treatment==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=2 style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|+Battery life expanding guide&lt;br /&gt;
|- style=&amp;quot;background:#efefef;white-space:nowrap;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Battery Type !! NiCd !! NiMH !! Lithium ion&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | General&lt;br /&gt;
|&lt;br /&gt;
*always do complete discharge/charge cycles&lt;br /&gt;
*avoid exposing the battery (or notebook) to excessive heat&lt;br /&gt;
|&lt;br /&gt;
*always do complete discharge/charge cycles&lt;br /&gt;
*avoid exposing the battery (or notebook) to excessive heat&lt;br /&gt;
|&lt;br /&gt;
*avoid deep discharges except when resetting fuel gague or reconditioning a battery;  partial dis-/recharges are better for the battery lifetime (note: fuel gauge will slowly get inaccurate over time)&lt;br /&gt;
*remove battery when on AC (due to heat)&lt;br /&gt;
*avoid exposing the battery (or notebook) to excessive heat&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Charging&lt;br /&gt;
|&lt;br /&gt;
*discharge before charging&lt;br /&gt;
|&lt;br /&gt;
*discharge before charging&lt;br /&gt;
|&lt;br /&gt;
*avoid charging if battery is nearly full, unless you will need its full capacity soon; keep it on the 30%-85% charged range&lt;br /&gt;
*keep notebook off while charging due to heat&lt;br /&gt;
*fully discharge, then fully charge battery when needed to recalibrate fuel gauge;  newer battery pack models require this less often, old ones might need it as often as every 30 cycles&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Storage&lt;br /&gt;
| &lt;br /&gt;
*almost discharged&lt;br /&gt;
*cool and dry&lt;br /&gt;
|&lt;br /&gt;
*almost discharged&lt;br /&gt;
*cool and dry&lt;br /&gt;
|&lt;br /&gt;
*never fully charged or discharged, ideally at about 40%&lt;br /&gt;
*cool and dry, but '''do not freeze''' them. 10-15C is recommended&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Battery health===&lt;br /&gt;
Batteries, especially of the modern Li-Ion type, wear out quicker when they hold a large charge or are subject to higher temperatures (see above).&lt;br /&gt;
&lt;br /&gt;
If you use your laptop at a desk, reduce battery wear by maintaining an appropriate charge level.  When  possible, remove Li-ion batteries while operating from AC as the notebook gets hot enough inside for that to damage the battery in the long run, even if charging is stopped.&lt;br /&gt;
&lt;br /&gt;
On recent ThinkPads, charging thresholds can be configured in the bundled software.  Under Linux, this is supported on recent models by the [[tp_smapi]] driver (and even without &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt;, if you have a dual-boot setup, you can set the thresholds under Windows and they will be remembered as long as you don't power off your machine with AC disconnected; suspend to RAM is OK). Have a look at [[How to use UltraBay batteries]].&lt;br /&gt;
&lt;br /&gt;
If you have spare Li-ion battery packs, store them at 40% charge in a cool place (15C being a recommended temperature, do not let the batteries freeze).  If storing inside a refrigerator, beware of humidity, and be careful with cold spots that can easily freeze the battery if anything goes wrong.&lt;br /&gt;
&lt;br /&gt;
===The problem with 600 series batteries===&lt;br /&gt;
ThinkPad 600 power management causes batteries to die before they should. Read more about this on the [[Problem with ThinkPad 600 batteries|associated problem page]].&lt;br /&gt;
&lt;br /&gt;
===Reviving batteries===&lt;br /&gt;
Some people experience sudden drops in their batteries capacity.&lt;br /&gt;
&lt;br /&gt;
A way to get these batteries back to full capacity is to run the &amp;quot;Battery Rundown&amp;quot; function of IBMs &amp;quot;PC Doctor for DOS&amp;quot;.&lt;br /&gt;
The program is downloadable from IBMs support site as three floppy disk images. For those who do not have a floppy, David Smith prepared a [http://www.mypchelp.com/~dsmith/ibmutil/ibm_t22_pcdiag.iso bootable CD image] (dead link, also unavailable from archive.org) from the T22 floppy images. For newer ThinkPads there is an official [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-56222 bootable CD image].&lt;br /&gt;
&lt;br /&gt;
===See also===&lt;br /&gt;
* [[Battery safety]]&lt;br /&gt;
&lt;br /&gt;
===External sources===&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=PFAN-3QNQJN IBM Support - Extending battery life]&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&amp;amp;lndocid=MIGR-51038 IBM Support - Battery troubleshooting]&lt;br /&gt;
* [http://www.pc.ibm.com/ww/thinkpad/batterylife/ IBM Benchmark]&lt;br /&gt;
* [http://batteryuniversity.com Battery University]&lt;br /&gt;
* [http://www.batteryuniversity.com/parttwo-34.htm BatteryUniversitys info about prolonging lithium ion batteries]&lt;br /&gt;
* [http://www.buchmann.ca/Chap10-page6.asp prolonging lithium ion batteries in Buchmanns Battery FAQ]&lt;br /&gt;
&lt;br /&gt;
==Cleaning the Display==&lt;br /&gt;
If you discover markings that look like they originate from the TrackPoint or keyboard, or for information on how to avoid these, look at [[Problem with key and trackpoint markings on the display|this page]].&lt;br /&gt;
&lt;br /&gt;
===External Sources===&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-4A2P54 Lenovo Support - LCD care and cleaning instructions]&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&amp;amp;lndocid=MIGR-52190 IBM Support - System cleaning instructions]&lt;br /&gt;
&lt;br /&gt;
==Cleaning the Interior==&lt;br /&gt;
{{WARN|The following instructions are not appropriate for all ThinkPad models. Please consult the hardware maintenance guide or on-line disassembly instructions for your model.}}&lt;br /&gt;
Most ThinkPad models (particularly the A-series and the T-series) tend to accumulate a lot of interior dust which they draw from their ventilation fan.  A good dusting every few months is advised. The procedure is as follows.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad T4x series===&lt;br /&gt;
See IBM's keyboard removal [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-46515 instructions] and [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-50227 movie].&lt;br /&gt;
&lt;br /&gt;
===ThinkPad T6x series===&lt;br /&gt;
See IBM's keyboard removal&lt;br /&gt;
[http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-62800 instructions] and&lt;br /&gt;
[http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-63912 movie].&lt;br /&gt;
&lt;br /&gt;
===Other models (which?)===&lt;br /&gt;
#Unplug the computer.&lt;br /&gt;
#Remove the battery.&lt;br /&gt;
#Turn the ThinkPad over and find two to three screws with upraised double-arrows pointing to them.&lt;br /&gt;
#Unscrew these screws and set them aside.&lt;br /&gt;
#Press the silver area underneath where the battery used to be.  The front of the keyboard will pop up.&lt;br /&gt;
#Turn the ThinkPad right side up and gently remove the keyboard, pulling it toward you.&lt;br /&gt;
#There is one connector between the ThinkPad and the keyboard.  Disconnect it, and set the keyboard aside.&lt;br /&gt;
#If there is a small black plastic separator under the keyboard, remove it and set it aside.&lt;br /&gt;
#The fan should be visible in the upper left.  That entire area will likely be dusty.  With a can of compressed air (and ''only'' with a can of compressed air), dust that area and the surrounding area.&lt;br /&gt;
#Replace the small black plastic separator, then reconnect the keyboard.&lt;br /&gt;
#Slide the keyboard back into place, then press down on the Fn and right-arrow keys until it pops into place.&lt;br /&gt;
#Replace the keyboard screws and battery.&lt;br /&gt;
&lt;br /&gt;
==Dealing with spilling accidents==&lt;br /&gt;
#Don't panic.&lt;br /&gt;
#Don't flip or tilt the computer to prevent the liquid from spreading all over the inside of the case.&lt;br /&gt;
#Shut down the OS and turn off the power:&lt;br /&gt;
##Unplug the computer.&lt;br /&gt;
##Remove the battery.&lt;br /&gt;
#Tilt the computer so that everything that leaked into the case can flow out the same way.&lt;br /&gt;
#Allow the computer to dry before switching it on again.&lt;br /&gt;
#For minor accidents this might already be sufficient. For major flooding you should either bring the computer to a dealer who knows how to open and clean it from inside. Or you can read the Hardware Maintenance Manual, open, clean, and dry the computer yourself. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.moneysense.ca/spending/technology/columnist.jsp?content=986628 Act quickly, carefully if you spill on laptops] on MoneySense.ca (link broken as of 2006-09-18, the article is still available via [http://web.archive.org/web/20050221034011/http://www.moneysense.ca/spending/technology/columnist.jsp?content=986628 web.archive.org]).&lt;br /&gt;
&lt;br /&gt;
==Harddisk Backup / Upgrade==&lt;br /&gt;
*[[How to copy a Linux installation]]&lt;br /&gt;
*[[Harddrive Upgrade|How to upgrade your Thinkpad hard drive]]&lt;br /&gt;
*[[How to copy a Windows installation]]&lt;br /&gt;
===External Sources===&lt;br /&gt;
*[http://gamma.nic.fi/~point/win2copy.htm Guide on copying Windows 2000/XP to another partition]&lt;br /&gt;
&lt;br /&gt;
==Recovering BIOS passwords==&lt;br /&gt;
Password recovery procedure for IBM ThinkPads&lt;br /&gt;
using R24RF08 and IBMpass&lt;br /&gt;
&lt;br /&gt;
'''1. Introduction.'''&lt;br /&gt;
&lt;br /&gt;
The IBM ThinkPad uses a small eeprom ([[AT24RF08|ATMEL 24RF08]]) to store different OEM&lt;br /&gt;
issues like serial number, UUID, etc. The supervisor password (SVP) is also stored in this eeprom.&lt;br /&gt;
The 24RF08 is not an ordinary eeprom: it features read protection, which the BIOS uses to lock down&lt;br /&gt;
access to the eeprom contents.  Also, the password is written in a special scan code, which needs to&lt;br /&gt;
be translated to ASCII to be of any use.&lt;br /&gt;
&lt;br /&gt;
To recover the password, one can use two different programs: R24RF08 (eeprom reader) and IBMpass&lt;br /&gt;
(password revealer) available at [http://www.allservice.ro http://www.allservice.ro]. Diagrams are included in the reader kit.&lt;br /&gt;
&lt;br /&gt;
Models for which R24RF08 and IBMpass are enough to recover the password: 240, 240X, 390E, 390X, 570, 570E,&lt;br /&gt;
600e, 600X, 770Z, A20m, A21e, A21m, a22m, A30, A30p, A31, A31p, G40, G41, R30, R31, R32, R40, R50, R51, &lt;br /&gt;
Transnote, T20, T21, T22, T23, T30, T40, T40p, T41, T41p, T42, T42p, X20, X21, X22, X23, X24, X30, X31, X40, X41.&lt;br /&gt;
&lt;br /&gt;
ThinkPads featuring TPCA technology (i.e. a [[Tpm|TPM trusted platform module chip]]), especially T4x, X3x, X4x need the W24RF08 eeprom writer program to complete the password recovery procedure, if the passphrase function is enabled in BIOS setup.&lt;br /&gt;
&lt;br /&gt;
Other models such as the 380XD or 600 use 24C01 or 93C46 eeproms, which can be read without special tools.&lt;br /&gt;
The method is the same like for the models based on 24RF08, only the software to dump the eeprom is different. &lt;br /&gt;
&lt;br /&gt;
Newer T43/T43p, R52, R60, T60/p, X60 and Z60 ThinkPads can be unlocked using PC8394 programming tools that consist in RPC8394 and WPC8394 (reader and writer for TPM chips). The software is available as well on [http://www.allservice.ro http://www.allservice.ro]. IBMpass 2.0 works for any TP model without exceptions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Locating the ATMEL 24RF08 eeprom. Soldering.'''&lt;br /&gt;
&lt;br /&gt;
No need to unsolder the 24RF08 eeprom, just solder 3 wires to SDA, SCL and GND pins of the&lt;br /&gt;
eeprom. There are two eeprom layouts (see interface schematics described bellow), corresponding to 8 pin or 14 pin eeproms. Locate the eeprom first according to your model (E.g. T20-23 and T30 have the eeprom underneath TP, and can be accessed by removing the RAM modules cover, no need to dismantle the laptop.) and solder the wires using a soldering iron with a fine tip. Also, you can use 0.15 -0.20 mm enamel coated wires or similar small diameter insulated wires. These wires will be connected later to the interface.&lt;br /&gt;
Tip: You can use clips to connect the wires or you can solder on the PCB traces leading to the&lt;br /&gt;
eeprom pins. Once again, be careful and double, triple check the soldering if necessary till you are positively sure you have done the right job. In case of applying too much solder, use flux-impregnated copper-braid &amp;quot;desoldering wick&amp;quot; - this works exceptionally well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. Choose and build the interface.'''&lt;br /&gt;
&lt;br /&gt;
Since version 2.0, R24RF08 and W24RF08 (eeprom writer) are compatible with a wide range of eeprom programmers. By default, both programs set the COM port signals to use direct logic level to access I2C bus. We provide here 2 schematics that are relevant for direct logic signals and for inverse logic signals (simple-i2cprog.pdf and driven-i2cprog.pdf). Also, depending of the interface you build, you can invert the logics for SDA-In, SDA-Out, and SCL COM port signals by some command line parameters described later in this document.&lt;br /&gt;
a) The file simple-i2cprog.pdf contains the schematic diagram of a simple interface (known as SIPROG)based on 2 zeners and 2 resistors. This is a classic, easy to build circuit and works with soldered or unsoldered eeproms. The purpose of the 2 zeners is to convert RS232 levels (+/- 5V) to TTL levels, needed by the eeprom. It uses direct logic signals to I2C eeprom and is powered by the COM port. However, this interface works with in-system eeproms but is dependant on COM port current and eeprom bus impedance. R24RF08 works natively with this circuit, no need to change the lines signals with command line parameters. This circuit works pretty well with almost all ThinkPads series.&lt;br /&gt;
b) The second interface is described in driven-i2cprog.pdf. The circuit uses MAX 232 as a RS232 to TTL driver and its main purpose is to work with soldered eeproms. The advantage of MAX232 is the TTL outputs that are more reliable and more powerful when work with soldered, in-system eeproms (dependency free from the COM port current). Due of the internal inverters of MAX232 the interface responds to an inverse signal logic level. R24RF08 needs /x, /d, /i switches to be specified in the command line.&lt;br /&gt;
&lt;br /&gt;
What these switches mean:&lt;br /&gt;
/x - invert serial clock, also known as SCL;&lt;br /&gt;
/d - invert serial data output, also known as SDA-Out;&lt;br /&gt;
/i - invert serial data input, also known as SDA-In.&lt;br /&gt;
All those can be used in any combination to meet any interface specification.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;standard&amp;quot; serial port programmer probably won't work with a USB-Serial adapter, but requires the full nominal voltage of a hardware serial port. [Example: the A22p's serial port works fine here.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. Dump the EEPROM:'''&lt;br /&gt;
&lt;br /&gt;
Prepare your technician PC by connecting the interface to the COM1 port (donâ€™t connect the wires to eeprom yet). Turn on the ThinkPad and press F1 to enter BIOS Setup. When you are prompted for the password and thereâ€™s no other activity like HDD access or so, connect the wires (GND first!, SDA, SCL) to the corresponding wires from the interface (attached before to COM1) and execute R24RF08:&lt;br /&gt;
&lt;br /&gt;
-for SI-PROG interface (as described in 3.a above):&lt;br /&gt;
r24rf08.exe &amp;lt;filename.ext&amp;gt;. where filename.ext is the file where eeprom content will be stored.&lt;br /&gt;
Example: r24rf08 mytp.bin&lt;br /&gt;
&lt;br /&gt;
-for MAX232 driven I2C interface (as described in 3.b above):&lt;br /&gt;
r24rf08.exe &amp;lt;filename.ext&amp;gt; /x /d /i. where /x /d /i are command line parameters (switches) for this kind of interface.&lt;br /&gt;
Example: r24rf08 mytp2.bin /x /d /i&lt;br /&gt;
&lt;br /&gt;
Use exactly the instructed switches to avoid possible damages to your eeprom data!&lt;br /&gt;
The file should be created in the same folder. Finally, disconnect the wires (GND last!) and turn off the ThinkPad by pressing on/off switch.&lt;br /&gt;
&lt;br /&gt;
Dump the EEPROM data at least twice, and do a bytewise compare with `cmp`. Both files should be identical, and 1024 bytes long. Otherwise, you probably have a serial port problem.&lt;br /&gt;
&lt;br /&gt;
Note: the r24rf08.exe program automatically sets the serial port parameters. It also works fine with Wine under Linux - provided that a symlink (com1) exists in the .wine/dos_devices directory, and points to the /dev/ttySX for the actual serial port.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''5. Reveal the password.'''&lt;br /&gt;
&lt;br /&gt;
Now, you have the .bin file but you need to dump in scan code to retrieve the password. IBMpass 2.0 Lite is a free tool that will do the job. Just open the eeprom dump youâ€™ve created before and search for 0x330, 0x340 lines. The password is located on 0x338 (and 0x340 depending on model) in scan code. For 24C01 eeproms the password is located at 0x38, 0x40. If the password won't work for the very first time then your eeprom may use newer IBM scancodes. In this case switch to alternate scan codes to find it. For those who want quick answers the recommended version is IBMpass 1.1. Usage for IBMpass 1.1 (command line only):&lt;br /&gt;
&lt;br /&gt;
ibmpass mytp.bin â€“ use â€œ/aâ€ switch to see in alternate scan code if needed:&lt;br /&gt;
ibmpass mytp.bin /a&lt;br /&gt;
&lt;br /&gt;
For some old models like 570 or 770Z you need to execute the eeprom patcher first. This will reset the read protection on the password offset. To do that just execute patcher.exe before the reading operation, without rebooting the laptop:&lt;br /&gt;
&lt;br /&gt;
-for SI-PROG:&lt;br /&gt;
patcher.exe , then immediately&lt;br /&gt;
r24rf08.exe &amp;lt;filename.ext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-for Driven-I2C (Max232) you must insert the switches:&lt;br /&gt;
patcher.exe /x /d /i, then immediately&lt;br /&gt;
r24rf08.exe &amp;lt;filename.ext&amp;gt; /x /d /i&lt;br /&gt;
&lt;br /&gt;
W24RF08, the writer version, has included the complete APP reset operation you donâ€™t need to use patcher.&lt;br /&gt;
&lt;br /&gt;
Moreover, there are a new encrypting algos used with some new security chips (AT97SC3201, AT97SC3203) that are very secured. The password is not in scancode and in some cases not even in the eeprom. To unlock the machine, the dump should suffer some changes and the eeprom must be reprogrammed using W24RF08. This operation works for all IBM TCG/TCPA secured laptops w/o exceptions. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remember, use 3 wires from the interface and 3 wires from eeprom! Connect them after your&lt;br /&gt;
ThinkPad is powered and disconnect them right after you read the content, before you switch off the laptop.&lt;br /&gt;
&lt;br /&gt;
'''6. Password format'''&lt;br /&gt;
&lt;br /&gt;
The thinkpad power-on/supervisor passwords are a maximum of 7 characters, and are NOT case-sensitive. The allowed characters are restricted to A-Z, 0-9, semicolon, _, - (and perhaps a few others).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===External Sources===&lt;br /&gt;
* [http://www.allservice.ro R24RF08/W24RF08, PC8394 programming tools &amp;amp; IBMpass author's webpage.]&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&amp;amp;lndocid=MIGR-59377 IBM Support - Lost or forgotten password]&lt;br /&gt;
* [http://www.allservice.ro/forum/viewforum.php?f=12 Full Service of all ThinkPad models including free password recovery]&lt;br /&gt;
* [http://sodoityourself.com/hacking-ibm-thinkpad-bios-password/ A tutorial on how to do this]&lt;/div&gt;</summary>
		<author><name>Desrod</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu/Breezy_on_a_ThinkPad_T42&amp;diff=20295</id>
		<title>Installing Ubuntu/Breezy on a ThinkPad T42</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu/Breezy_on_a_ThinkPad_T42&amp;diff=20295"/>
		<updated>2006-02-22T14:23:57Z</updated>

		<summary type="html">&lt;p&gt;Desrod: /* Using Fn-F5 to enable/disable Bluetooth */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General installation==&lt;br /&gt;
Here comes installation instructions for {{Ubuntu}} Breezy Badger on &lt;br /&gt;
{{T42}} 2374-ZEP.&lt;br /&gt;
&lt;br /&gt;
Get a copy of Ubuntu from [http://www.ubuntulinux.org UbuntuLinux.org].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should update your {{path|/etc/apt/sources.list}} here mine:&lt;br /&gt;
 #deb cdrom:[Ubuntu 5.10 _Breezy Badger_ - Release i386 (20051012)]/ breezy main restricted&lt;br /&gt;
 &lt;br /&gt;
 #deb http://dk.archive.ubuntu.com/ubuntu breezy main restricted&lt;br /&gt;
 &lt;br /&gt;
 ## Uncomment the following two lines to fetch updated software from the network&lt;br /&gt;
 deb http://mirrors.dotsrc.org/ubuntu breezy main restricted universe multiverse&lt;br /&gt;
 deb-src http://mirrors.dotsrc.org/ubuntu breezy main restricted universe multiverse&lt;br /&gt;
 &lt;br /&gt;
 ## Uncomment the following two lines to fetch major bug fix updates produced&lt;br /&gt;
 ## after the final release of the distribution.&lt;br /&gt;
 deb http://mirrors.dotsrc.org/ubuntu breezy-updates main restricted universe multiverse&lt;br /&gt;
 deb-src http://mirrors.dotsrc.org/ubuntu breezy-updates main restricted universe multiverse&lt;br /&gt;
 &lt;br /&gt;
 ## Uncomment the following two lines to add software from the 'backports'&lt;br /&gt;
 ## repository.&lt;br /&gt;
 ## N.B. software from this repository may not have been tested as&lt;br /&gt;
 ## extensively as that contained in the main release, although it includes&lt;br /&gt;
 ## newer versions of some applications which may provide useful features.&lt;br /&gt;
 ## Also, please note that software in backports WILL NOT receive any review&lt;br /&gt;
 ## or updates from the Ubuntu security team.&lt;br /&gt;
 #deb http://mirrors.dotsrc.org/ubuntu breezy-backports main restricted universe multiverse&lt;br /&gt;
 #deb-src http://mirrors.dotsrc.org/ubuntu breezy-backports main restricted universe multiverse&lt;br /&gt;
 &lt;br /&gt;
 deb http://mirrors.dotsrc.org/ubuntu breezy-security main restricted universe multiverse&lt;br /&gt;
 deb-src http://mirrors.dotsrc.org/ubuntu breezy-security main restricted universe multiverse&lt;br /&gt;
 &lt;br /&gt;
 #deb ftp://ftp.nerim.net/debian-marillat/ etch main&lt;br /&gt;
&lt;br /&gt;
{{cmduser|sudo apt-get update}}&lt;br /&gt;
&lt;br /&gt;
==Kernel support==&lt;br /&gt;
How to get the correct kernel:&lt;br /&gt;
{{cmduser|sudo apt-get install linux-686}}&lt;br /&gt;
&lt;br /&gt;
===Kernel modules===&lt;br /&gt;
{{Todo|Load the different kernel modules, and their configuration}}&lt;br /&gt;
&lt;br /&gt;
ibm_acpi module:&lt;br /&gt;
&lt;br /&gt;
Turning on experimental features:&lt;br /&gt;
&lt;br /&gt;
{{path|/etc/modprobe.d/ibm_acpi.modprobe}}:&lt;br /&gt;
 options ibm_acpi hotkey=enable,0xffff experimental=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Starting with wireless off:&lt;br /&gt;
{{path|/etc/modprobe.d/ipw2100.modprobe}}:&lt;br /&gt;
 options ipw2100 disable=1&lt;br /&gt;
&lt;br /&gt;
====ibm_acpi modules compilation====&lt;br /&gt;
Kernel 2.6.12-9 included in Breezy only included ibm_acpi version 0.8. However a version 0.11 is available, and included in 2.6.13.&lt;br /&gt;
&lt;br /&gt;
[http://bugme.osdl.org/show_bug.cgi?id=4947 http://bugme.osdl.org/show_bug.cgi?id=4947]&lt;br /&gt;
&lt;br /&gt;
===ACPI===&lt;br /&gt;
{{Todo|Hibernate, suspend, buttons, lid, speedstep}}&lt;br /&gt;
&lt;br /&gt;
Because of &amp;quot;options ipw2100 disable=1&amp;quot; the wireless lan is initially turned off by a software feature.&lt;br /&gt;
The default script in Breezy does not turn on the software part.&lt;br /&gt;
Modification to turn on wireless:&lt;br /&gt;
{{path|/etc/acpi/wireless.sh}}:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # Find and enable/disable wireless devices&lt;br /&gt;
 &lt;br /&gt;
 for DEVICE in /sys/class/net/*; do&lt;br /&gt;
     if [ -d $DEVICE/wireless ]; then&lt;br /&gt;
 # $DEVICE is a wireless device. Check if it's powered on:&lt;br /&gt;
 	if [ `cat $DEVICE/device/power/state` = 0 ]; then&lt;br /&gt;
 # It's powered on. Switch it off.&lt;br /&gt;
 	    echo -n 3 &amp;gt; $DEVICE/device/power/state;&lt;br /&gt;
 	    echo 0&lt;br /&gt;
 	else&lt;br /&gt;
 # It's powered off. Switch it on.&lt;br /&gt;
 	    echo -n 0 &amp;gt; $DEVICE/device/power/state;&lt;br /&gt;
 	    '''echo -n 0 &amp;gt; $DEVICE/device/rf_kill;'''&lt;br /&gt;
 	    echo 1&lt;br /&gt;
 	fi&lt;br /&gt;
     fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
==== Using Fn-F5 to enable/disable Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
First, to make sure Fn-F5 is available as a hotkey, either do&lt;br /&gt;
&lt;br /&gt;
  # If you want Fn-F5, use this, and verify the mask in:&lt;br /&gt;
  # /etc/modprobe.d/ibm_acpi.modprobe&lt;br /&gt;
  echo 0xff9f &amp;gt; /proc/acpi/ibm/hotkey&lt;br /&gt;
&lt;br /&gt;
  # For Fn-F6, use this one. You'll need to change the mask in&lt;br /&gt;
  # /etc/modprobe.d/ibm_acpi.modprobe&lt;br /&gt;
  echo 0xffff &amp;gt; /proc/acpi/ibm/hotkey&lt;br /&gt;
&lt;br /&gt;
Next, create a shell script called /etc/acpi/bluetooth.sh:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  # Enable/disable builtin Bluetooth on IBM Thinkpads&lt;br /&gt;
  BLUETOOTH=/proc/acpi/ibm/bluetooth&lt;br /&gt;
  STATE=dis&lt;br /&gt;
  if grep -q disabled $BLUETOOTH; then&lt;br /&gt;
          STATE=en&lt;br /&gt;
  fi;&lt;br /&gt;
  echo ${STATE}abled &amp;gt; $BLUETOOTH&lt;br /&gt;
&lt;br /&gt;
Next, create an ACPI event file /etc/acpi/events/ibm-bluetooth&lt;br /&gt;
  &lt;br /&gt;
  # This is called when the user presses Fn-F5 button and calls&lt;br /&gt;
  # /etc/acpi/bluetooth.sh for further processing.&lt;br /&gt;
  event=ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
  action=/etc/acpi/bluetooth.sh&lt;br /&gt;
&lt;br /&gt;
You might need to restart acpid for it to start working.&lt;br /&gt;
&lt;br /&gt;
==Xorg==&lt;br /&gt;
&lt;br /&gt;
Relevant part:&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 	Identifier	&amp;quot;Configured Mouse&amp;quot;&lt;br /&gt;
 	Driver		&amp;quot;mouse&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;CorePointer&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;Device&amp;quot;		&amp;quot;/dev/input/mice&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;Protocol&amp;quot;		&amp;quot;ImPS/2&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;EmulateWheel&amp;quot;		&amp;quot;true&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;EmulateWheelButton&amp;quot;	&amp;quot;2&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;ZAxisMapping&amp;quot;		&amp;quot;4 5&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 	Identifier	&amp;quot;Synaptics Touchpad&amp;quot;&lt;br /&gt;
 	Driver		&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;SendCoreEvents&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;Device&amp;quot;		&amp;quot;/dev/psaux&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;Protocol&amp;quot;		&amp;quot;auto-dev&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;HorizScrollDelta&amp;quot;	&amp;quot;0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
 	Identifier	&amp;quot;ATI Technologies, Inc. Radeon Mobility 7500 (M7 LW)&amp;quot;&lt;br /&gt;
 	Driver		&amp;quot;radeon&amp;quot;&lt;br /&gt;
 	BusID		&amp;quot;PCI:1:0:0&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;DynamicClocks&amp;quot;	&amp;quot;off&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;AGPMode&amp;quot;	&amp;quot;4&amp;quot;&lt;br /&gt;
 	Option		&amp;quot;AGPFastWrite&amp;quot;	&amp;quot;yes&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
{{WARN|Options DynamicClocks &amp;quot;on&amp;quot; may hang your machine}}&lt;br /&gt;
&lt;br /&gt;
==Initng==&lt;br /&gt;
Very great initiative for optimizing the boot process. [http://initng.thinktux.net/index.php/Main_Page Initng]&lt;br /&gt;
&lt;br /&gt;
Dep packages can be found:&lt;br /&gt;
[http://alioth.debian.org/projects/pkg-initng/ http://alioth.debian.org/projects/pkg-initng/]&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
{{cmduser|sudo dpkg -i initng_0.3.3-2_i386.deb}}&lt;br /&gt;
&lt;br /&gt;
To run nice a few things and scripts need modification as follows:&lt;br /&gt;
&lt;br /&gt;
====Load modules on startup====&lt;br /&gt;
Unfortunately it seems not all relevant modules are loaded automaticly when using InitNG.&lt;br /&gt;
&lt;br /&gt;
Please help finding the proper scripts to do this.&lt;br /&gt;
&lt;br /&gt;
Just add the proper modules to {{path|/etc/modules}}.&lt;br /&gt;
&lt;br /&gt;
This is my list:&lt;br /&gt;
 lp&lt;br /&gt;
 mousedev&lt;br /&gt;
 psmouse&lt;br /&gt;
 &lt;br /&gt;
 #Additional ACPI features&lt;br /&gt;
 ibm_acpi&lt;br /&gt;
 &lt;br /&gt;
 #Frequency scaling&lt;br /&gt;
 cpufreq_userspace&lt;br /&gt;
 cpufreq_powersave&lt;br /&gt;
 speedstep_centrino&lt;br /&gt;
&lt;br /&gt;
====Grub kernel options====&lt;br /&gt;
&lt;br /&gt;
To enable initng an option must be appended to the kernel load command in grub.&lt;br /&gt;
&lt;br /&gt;
{{path|/boot/grub/menu.lst}}:&lt;br /&gt;
 kernel          /vmlinuz-2.6.12-9-686 root=/dev/hda9 ro quiet splash video=radeonfb '''init=/sbin/initng'''&lt;br /&gt;
&lt;br /&gt;
====Runlevel====&lt;br /&gt;
Add bootitems to the default bootlevel:&lt;br /&gt;
&lt;br /&gt;
Ex: {{cmduser|sudo ng-update add daemon/powernowd default}}&lt;br /&gt;
&lt;br /&gt;
This is my {{path|/etc/initng/default.runlevel}}:&lt;br /&gt;
 system&lt;br /&gt;
 daemon/acpid&lt;br /&gt;
 daemon/dbus&lt;br /&gt;
 daemon/hald&lt;br /&gt;
 daemon/vixie-cron&lt;br /&gt;
 daemon/ifplugd&lt;br /&gt;
 system/alsasound&lt;br /&gt;
 system/speedstep&lt;br /&gt;
 system/laptop-mode&lt;br /&gt;
 daemon/syslogd&lt;br /&gt;
 daemon/klogd&lt;br /&gt;
 daemon/gdm&lt;br /&gt;
 daemon/cupsd&lt;br /&gt;
 daemon/powernowd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coldplug is not added to the system.runlevel. We need this to automatically load modules, like sound and wireless.&lt;br /&gt;
Add coldplug to the system runlevel {{path|/etc/initng/system.runlevel}}:&lt;br /&gt;
&lt;br /&gt;
{{cmduser|sudo ng-update add system/coldplug system}}&lt;br /&gt;
&lt;br /&gt;
===Scripts===&lt;br /&gt;
====dbus.i====&lt;br /&gt;
{{path|daemon/dbus.i}} has a few faults, on Ubuntu it is &amp;quot;dbus&amp;quot; not &amp;quot;dbus-1&amp;quot;!&lt;br /&gt;
 service daemon/dbus {&lt;br /&gt;
         need = system/initial system/mountfs system/bootmisc&lt;br /&gt;
 	&lt;br /&gt;
         pid_file = /var/run/dbus/pid&lt;br /&gt;
         daemon {&lt;br /&gt;
               '''DAEMON=/usr/bin/dbus-daemon'''&lt;br /&gt;
               '''NAME=dbus'''&lt;br /&gt;
               DAEMONUSER=messagebus&lt;br /&gt;
               PIDDIR=/var/run/dbus&lt;br /&gt;
               PIDFILE=$PIDDIR/pid&lt;br /&gt;
               DESC=&amp;quot;system message bus&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
               if [ -e '''/etc/default/dbus''' ]; then&lt;br /&gt;
                 . '''/etc/default/dbus'''&lt;br /&gt;
               fi&lt;br /&gt;
 &lt;br /&gt;
               if [ ! -d $PIDDIR ]; then&lt;br /&gt;
                 mkdir -p $PIDDIR&lt;br /&gt;
                 chown $DAEMONUSER $PIDDIR&lt;br /&gt;
                 chgrp $DAEMONUSER $PIDDIR&lt;br /&gt;
               fi&lt;br /&gt;
               if [ -e $PIDFILE ]; then&lt;br /&gt;
                 PIDDIR=/proc/$(cat $PIDFILE)&lt;br /&gt;
                 if [ -d ${PIDDIR} -a  &amp;quot;$(readlink -f ${PIDDIR}/exe)&amp;quot; = &amp;quot;${DAEMON}&amp;quot; ]; then&lt;br /&gt;
                   echo &amp;quot;$DESC already started; not starting.&amp;quot;&lt;br /&gt;
                 else&lt;br /&gt;
                   echo &amp;quot;Removing stale PID file $PIDFILE.&amp;quot;&lt;br /&gt;
                   rm -f $PIDFILE&lt;br /&gt;
                 fi&lt;br /&gt;
               fi&lt;br /&gt;
               echo -n &amp;quot;Starting $DESC: &amp;quot;&lt;br /&gt;
               $DAEMON --system $PARAMS&lt;br /&gt;
               echo &amp;quot;$NAME.&amp;quot;&lt;br /&gt;
               }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
====hald.i====&lt;br /&gt;
{{path|daemon/hald.i}}&lt;br /&gt;
 service daemon/hald {&lt;br /&gt;
     need = system/initial system/mountfs daemon/dbus&lt;br /&gt;
 #    use = daemon/acpid&lt;br /&gt;
 &lt;br /&gt;
     daemon {&lt;br /&gt;
         PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
         DAEMON=/usr/sbin/hald&lt;br /&gt;
         PIDDIR=/var/run/hal&lt;br /&gt;
         NAME=hal&lt;br /&gt;
         '''DAEMONUSER=hal'''&lt;br /&gt;
         DESC=&amp;quot;Hardware abstraction layer&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
         if [ -f /etc/default/hal ] ; then&lt;br /&gt;
           . /etc/default/hal&lt;br /&gt;
         fi&lt;br /&gt;
 &lt;br /&gt;
         if [ ! -d $PIDDIR ]; then&lt;br /&gt;
           mkdir -p $PIDDIR&lt;br /&gt;
           chown $DAEMONUSER:$DAEMONUSER $PIDDIR&lt;br /&gt;
         fi&lt;br /&gt;
 &lt;br /&gt;
         echo -n &amp;quot;Starting $DESC: &amp;quot;&lt;br /&gt;
         $DAEMON --daemon=no $DAEMON_OPTS&lt;br /&gt;
         echo &amp;quot;$NAME.&amp;quot;&lt;br /&gt;
         }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
====gdm.i====&lt;br /&gt;
&lt;br /&gt;
{{path|daemon/gdm.i}}, to add locale support to the GDM login screen:&lt;br /&gt;
 service daemon/gdm {&lt;br /&gt;
     need = system/initial system/mountfs system/hostname net/lo system/modules system/bootmisc&lt;br /&gt;
     use = daemon/xfs system/static-modules system/coldplug system/netmount    &lt;br /&gt;
 #    daemon = /usr/sbin/gdm&lt;br /&gt;
 #    daemon = /usr/bin/gdm&lt;br /&gt;
 #    daemon_args = -nodaemon&lt;br /&gt;
     daemon {&lt;br /&gt;
 	PATH=/bin:/sbin:/usr/bin:/usr/sbin&lt;br /&gt;
 	if [ -r /etc/default/gdm ]; then&lt;br /&gt;
 	    . /etc/default/gdm&lt;br /&gt;
 	    if [ -z &amp;quot;$LANG&amp;quot; ]; then&lt;br /&gt;
 		:&lt;br /&gt;
 	    else&lt;br /&gt;
 		export LANG&lt;br /&gt;
 	    fi&lt;br /&gt;
 	fi&lt;br /&gt;
 	&lt;br /&gt;
 	gdm -nodaemon&lt;br /&gt;
     }&lt;br /&gt;
     #pid_file = /var/run/gdm.pid&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
====cupsd.i====&lt;br /&gt;
Somethings wrong in the way the initNG scripts loads cups with hplip.&lt;br /&gt;
&lt;br /&gt;
I did an ugly hack: {{path|daemon/cupsd}}&lt;br /&gt;
 service daemon/cupsd {&lt;br /&gt;
 	need = system/initial system/mountroot net/lo&lt;br /&gt;
 #	use = daemon/printconf daemon/hpiod daemon/hpssd&lt;br /&gt;
 #	daemon = /usr/sbin/cupsd&lt;br /&gt;
 #	daemon_args = -f&lt;br /&gt;
 	daemon {&lt;br /&gt;
 	    /etc/init.d/hplip start&lt;br /&gt;
 	    /etc/init.d/cupsys start&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Helpfull tools==&lt;br /&gt;
===Rovclock===&lt;br /&gt;
Utility to overclock and underclock the ATI radeon chip.&lt;br /&gt;
Can be used to underclock to reduce power, especialy when on batteries.&lt;br /&gt;
&lt;br /&gt;
Get it from: [http://www.hasw.net/linux/ http://www.hasw.net/linux/]&lt;br /&gt;
&lt;br /&gt;
Stable clock speeds:&lt;br /&gt;
Core: 100MHz&lt;br /&gt;
Memory: 120Mhz for LCP only, 180Mhz when using DVI out on port replicator.&lt;br /&gt;
&lt;br /&gt;
Ex:&lt;br /&gt;
{{cmduser|sudo rovclock -c 100 -m 120}}&lt;br /&gt;
&lt;br /&gt;
===noflushd===&lt;br /&gt;
Noflushd is a daemon that spins down disks that have not been read from&lt;br /&gt;
after a certain amount of time, and then prevents disk writes from&lt;br /&gt;
spinning them back up. It's targeted for laptops but can be used on any&lt;br /&gt;
computer with IDE disks. The effect is that the hard disk actually spins&lt;br /&gt;
down, saving you battery power, and shutting off the loudest component of&lt;br /&gt;
most computers.&lt;br /&gt;
{{cmduser|sudo apt-get install noflushd}}&lt;br /&gt;
&lt;br /&gt;
===ifplugd===&lt;br /&gt;
ifplugd is a daemon which will automatically configure your&lt;br /&gt;
ethernet device when a cable is plugged in and automatically&lt;br /&gt;
unconfigure it if the cable is pulled. This is useful on laptops with&lt;br /&gt;
onboard network adapters, since it will only configure the interface&lt;br /&gt;
when a cable is really connected.&lt;br /&gt;
{{cmduser|sudo apt-get install ifplugd}}&lt;br /&gt;
&lt;br /&gt;
{{path|/etc/default/ifplugd}}:&lt;br /&gt;
 INTERFACES=&amp;quot;'''eth0'''&amp;quot;&lt;br /&gt;
 HOTPLUG_INTERFACES=&amp;quot;'''eth0'''&amp;quot;&lt;br /&gt;
 ARGS=&amp;quot;-q -f -u0 -d10 -w -I '''-b'''&amp;quot;&lt;br /&gt;
 SUSPEND_ACTION=&amp;quot;stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===gnubiff===&lt;br /&gt;
&lt;br /&gt;
gnubiff is a mail notification program that checks for mail and displays headers when new mail has arrived. Has a tray icon for gnome. Supports SSL which I needed.&lt;br /&gt;
[http://gnubiff.sourceforge.net/ http://gnubiff.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
{{cmduser|sudo apt-get install gnubiff}}&lt;br /&gt;
&lt;br /&gt;
==Known problems==&lt;br /&gt;
{{Todo|List of bugs from kernel, Xorg and Ubuntu}}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[http://www.columbia.edu/~em36/ubuntubreezythinkpadt42.html Ubuntu Breezy on a ThinkPad T42]&lt;/div&gt;</summary>
		<author><name>Desrod</name></author>
		
	</entry>
</feed>