https://www.thinkwiki.org/w/api.php?action=feedcontributions&user=MarcH&feedformat=atomThinkWiki - User contributions [en]2024-03-29T14:43:20ZUser contributionsMediaWiki 1.31.12https://www.thinkwiki.org/w/index.php?title=How_to_configure_the_TrackPoint&diff=50177How to configure the TrackPoint2010-12-18T21:11:32Z<p>MarcH: /* xorg.conf.d */ Fedora: /etc/X11/xorg.conf.d</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |Below are several ways of configuring the kernel psmouse driver for controlling extended TrackPoint features.<br />
|}<br />
On a '''Modern''' distribution (like Fedora, Ubuntu or OpenSUSE) you will want to use xinput or one of the graphical front ends. For distributions that are lagging a bit (e.g. Debian Lenny and PCLOS '09) you may still want to use the old xorg config method.<br />
<br />
=Configuration using xinput=<br />
If you want to modify changes on the fly, you can do so with {{cmd|xinput|}} (part of the optional xorg-x11-apps rpm on Fedora).<br />
Note that these changes are not saved when the xserver is restarted. However, you can add the lines e.g. in your {{cmd|.xsessionrc|}} (depends on your distribution) so they are executed every time X starts.<br />
<br />
To query the available options<br />
xinput list-props "TPPS/2 IBM TrackPoint"<br />
<br />
More information can be found in the man-pages for evdev<br />
man evdev<br />
<br />
To enable vertical scrolling<br />
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 8 1<br />
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 8 2<br />
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Timeout" 8 200<br />
<br />
To enable horizontal scrolling in addition to vertical scrolling<br />
<br />
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 8 6 7 4 5<br />
<br />
To enable middle button emulation (using left- and right-click simultaneously)<br />
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Middle Button Emulation" 8 1<br />
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Middle Button Timeout" 8 50<br />
<br />
==Example: openSUSE 11.2 and ThinkPad USB Keyboard with TrackPoint ==<br />
<br />
xinput list <br />
will show two "Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint." with two different ids. Use the id with Axis 0 and Axis 1 items.<br />
<br />
Suppose the id was 12. The following will enable the trackpoint scrolling:<br />
<br />
xinput set-int-prop 12 "Evdev Wheel Emulation" 8 1<br />
xinput set-int-prop 12 "Evdev Wheel Emulation Button" 8 2<br />
xinput set-int-prop 12 "Evdev Wheel Emulation Timeout" 8 200<br />
<br />
The following will enable the horizontal scrolling<br />
xinput set-int-prop 12 "Evdev Wheel Emulation Axes" 8 6 7 4 5<br />
<br />
To disable middle button click paste functionality, remap the middle button to something else:<br />
xmodmap -e "pointer = 1 9 3 4 5 6 7 8 2"<br />
<br />
To do these automatically without worrying about id number, generate a bash script file:<br />
#!/bin/sh<br />
xinput list | sed -ne 's/^[^ ][^V].*id=\([0-9]*\).*/\1/p' | while read id<br />
do<br />
case `xinput list-props $id` in<br />
*"Middle Button Emulation"*)<br />
xinput set-int-prop $id "Evdev Wheel Emulation" 8 1<br />
xinput set-int-prop $id "Evdev Wheel Emulation Button" 8 2<br />
xinput set-int-prop $id "Evdev Wheel Emulation Timeout" 8 200<br />
xinput set-int-prop $id "Evdev Wheel Emulation Axes" 8 6 7 4 5<br />
xinput set-int-prop $id "Evdev Middle Button Emulation" 8 0<br />
;;<br />
esac<br />
done<br />
<br />
# disable middle button <br />
xmodmap -e "pointer = 1 9 3 4 5 6 7 8 2"<br />
<br />
and save it with any name such as trackPointScrolling.sh, and make it executable:<br />
chmod +x trackPointScrolling.sh<br />
<br />
Next time you run it with $ ./trackPointScrolling.sh, it will enable the trackpoint scrolling and disable middle button paste.<br />
{{Todo|some other examples}}<br />
<br />
= Graphical Frontends =<br />
If you are using GNOME, you might want to use [http://live.gnome.org/GPointingDeviceSettings GPointing Device Settings] or [http://tpctl.sourceforge.net/configure-trackpoint.html configure-trackpoint] as a graphical frontends.<br />
=== GPointing Device Settings ===<br />
It is available for Fedora 12, Ubuntu 9.10 and Debian Squeeze in the standard package repositories<br />
<br />
[[image:Screenshot-GPointing Device Settings-TrackPoint.png]]<br />
<br />
=== configure-trackpoint ===<br />
To install it in Ubuntu run ...<br />
sudo apt-get install sysfsutils<br />
...and then download and install the deb [http://sourceforge.net/projects/tpctl/ here]. Note that saved settings are not restored after reboot in Lucid Lynx. See methods below to make settings permanent.<br />
<br />
= Configuration using DevKit =<br />
Most recent distributions like Ubuntu 9.10 switch from HAL (being deprecated) to DevKit. Hence, the HAL configurations explained underneath, fail to work. <br />
<br />
The easiest way to configure your touchpad and trackpoint with DevKit is by using the [http://live.gnome.org/GPointingDeviceSettings GPointingDeviceSettings] panel that fully supports the hardware. You can easily download the panel by installing {{cmd| gpointing-device-settings|}}. On Ubuntu open a terminal and execute the command {{cmduser| sudo apt-get install gpointing-device-settings}}<br />
<br />
Launch the UI through the {{cmduser| gpointing-device-settings}} command, but you can also add a menu entry to your System / Preferences menu for easier access to the UI panel.<br />
<br />
= Configuration using udev and HAL =<br />
Modern distributions like Ubuntu 8.10 and Fedora 10 use udev and HAL to configure the input devices. You should no longer make changes to xorg.conf as by default Xorg (through the evdev driver) will let the kernel now handle input devices.<br />
<br />
But before you get started on this you should make sure you have all the updates applied from your distro vendor as both Ubuntu 8.10 and Fedora 10 require some additional fixes that you will need.<br />
<br />
=== Scrolling ===<br />
By default the middle mouse button is that, a middle mouse button, which in Linux is used for the Paste operation.<br />
<br />
But you can configure it to act in the same way as in Windows, such that you can use it for vertical scrolling (keep the button pressed and move the TrackPoint up and down to scroll). <br />
<br />
==== xorg.conf.d ====<br />
<br />
Some distributions now support the new Xorg hotplug configuration method via xorg.conf.d directories (in Ubuntu 10.04 Lucid Lynx) instead of hal. In contrast to the udev method below, it should be around for some time, so it might be the best way to “statically” configure scrolling.<br />
<br />
Create the file {{path|/usr/lib/X11/xorg.conf.d/20-thinkpad.conf}} as root with the following content:<br />
<br />
<pre><br />
Section "InputClass"<br />
Identifier "Trackpoint Wheel Emulation"<br />
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "Emulate3Buttons" "false"<br />
Option "XAxisMapping" "6 7"<br />
Option "YAxisMapping" "4 5"<br />
EndSection<br />
</pre><br />
<br />
Save and restart Xorg (or it'll be enabled at next reboot).<br />
<br />
{{NOTE|For Ubuntu 10.10 Maverick Meerkat, the correct path is {{path|/usr/share/X11/xorg.conf.d}}}}<br />
{{NOTE|For Arch Linux or Fedora, the correct path is {{path|/etc/X11/xorg.conf.d}}}}<br />
<br />
{{NOTE|If the above does not work for you, you may need to add a different MatchProduct string. Use <pre>find /dev/input/event* -exec udevadm info --attribute-walk --name={} \; | grep -e product -e name | sort -u</pre> to get a list of possibilities.}}<br />
<br />
{{NOTE|If the above directory doesn't exist by default in your distribution, it probably doesn't support this method. In this case, please refer to the udev or xinput method below.}}<br />
<br />
==== udev ====<br />
<br />
Now that Xorg doesn't use the configuration from hal (in Debian unstable starting january 2010), the only way to “statically” configure scrolling in trackpoint is udev. (for other people, xinput method, works fine). This method will be gone (_again_) in not too long so it might be a better idea to use xinput way. YMMV.<br />
<br />
Create the file {{path|/etc/udev/rules.d/99_trackpoint.rules}} as root with the following content:<br />
<br />
<pre><br />
ACTION!="add|change", GOTO="xorg_trackpoint_end"<br />
KERNEL!="event*", GOTO="xorg_trackpoint_end"<br />
<br />
ENV{ID_PATH}!="platform-i8042-serio-1", GOTO="xorg_trackpoint_end"<br />
<br />
ENV{x11_options.EmulateWheel}="1"<br />
ENV{x11_options.EmulateWheelButton}="2"<br />
ENV{x11_options.XAxisMapping}="6 7"<br />
ENV{x11_options.Emulate3Buttons}="0"<br />
<br />
LABEL="xorg_trackpoint_end"<br />
</pre><br />
<br />
Save and restart udev then Xorg (or it'll be enabled at next reboot).<br />
<br />
{{NOTE|The ID_PATH used in the example above is a typical value. To determine the ID_PATH appropriate to the TrackPoint on a specific model see [[#Determining TrackPoint Path ID|Determining TrackPoint Path ID]]}}<br />
<br />
==== Hal (soon to be deprecated) ====<br />
<br />
To accomplish this create the file {{path|/etc/hal/fdi/policy/mouse-wheel.fdi}} as root with the following content:<br />
<br />
<pre><br />
<match key="info.product" string="TPPS/2 IBM TrackPoint"><br />
<merge key="input.x11_options.EmulateWheel" type="string">true</merge><br />
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge><br />
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge><br />
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge><br />
<merge key="input.x11_options.EmulateWheelTimeout" type="string">200</merge><br />
</match><br />
</pre><br />
<br />
If you also want to have horizontal scrolling, simply add the following XAxisMapping option to the above<br />
<pre><br />
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge><br />
</pre><br />
After this reboot, or restart the hal service and Xorg. You can validate the settings with {{cmd|lshal|}}.<br />
<br />
In some models (eg: X301 and X200 since Jan 10 2010 on debian sid) you may have to use "PS/2 Generic Mouse" instead of "TPPS/2 IBM TrackPoint". Have a look to your input devices typing <code>lshal|grep input.product</code>.<br />
<br />
Alternatively it is also possible to use the "old" Xorg configuration by adding the following lines to the {{path|/etc/X11/xorg.conf}}:<br />
<br />
<pre><br />
Section "ServerFlags"<br />
Option "AutoAddDevices" "false"<br />
EndSection<br />
</pre><br />
<br />
Using this entry HAL will not be used for the input devices.<br />
<br />
====Reactivate Scrolling after suspend/resume====<br />
Scrolling may be disabled after a resume from suspend. <br />
<br />
You can manually reactivate the trackpoint by reloading the {{path|psmouse}} module as root:<br />
:{{cmdroot|rmmod psmouse && modprobe psmouse}}<br />
<br />
You can automatically force the pm-utils to reload this module.<br />
Create a file {{path|/etc/pm/config.d/01reload_mouse}} as root with the following content:<br />
<pre><br />
# reload psmouse to reactivate trackpoint scrolling<br />
SUSPEND_MODULES="${SUSPEND_MODULES:+$SUSPEND_MODULES }psmouse"<br />
</pre><br />
<br />
===Configuring other options (e.g. Press to select, Sensitivity and Speed)===<br />
<!--HAL wasn't made to configure sysfs settings, so we'll use udev instead --><br />
Create a file {{path|/etc/udev/rules.d/10-trackpoint.rules}} and add a line to suit your needs<br />
<br />
<pre><br />
SUBSYSTEM=="serio", DRIVERS=="psmouse", ATTR{press_to_select}="1", ATTR{sensitivity}="122"<br />
</pre><br />
<br />
Testing udev with {{cmdroot|udevadm test /sys/devices/platform/i8042/serio1}} should apply the new changes. All of the settings listed [[How to configure the TrackPoint#Sysfs_Options_Reference|below]] can be specified here as part of a comma separated list.<br />
The customized values should be loaded automatically when booting. However, due to a [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=549379 kernel bug] (affecting Lucid Lynx), the attributes may not yet exist when the udev rule fires. As a work around, add a WAIT_FOR condition on the attribute<br />
<br />
<pre><br />
SUBSYSTEM=="serio", DRIVERS=="psmouse", WAIT_FOR="/sys/devices/platform/i8042/serio1/serio2/sensitivity", ATTR{sensitivity}="122"<br />
</pre><br />
<br />
=Configuration using sysfs=<br />
Another way to modify changes on the fly, is echoing values directly into special files in sysfs.<br />
<br />
{{NOTE|<br />
The examples shown below are valid for ThinkPads with both TrackPoint and Touchpad, in which case the sysfs path is {{path|/sys/devices/platform/i8042/serio1/serio2}}.<br />
<br />
If however you have a ThinkPad without Touchpad, or with the Touchpad disabled in the BIOS, the sysfs path needs to be changed to {{path|/sys/devices/platform/i8042/serio1}} instead (notice the missing serio2 at the end).}}<br />
<br />
If you want to set the sysfs parameters at boot, you can use the [http://linux-diag.sourceforge.net/Sysfsutils.html sysfsutils] and put the preferred value in /etc/sysfs.conf.<br />
<br />
===Press to Select===<br />
Press to Select allows you to tap the control stick which will simulate a left click. You can enable this feature by typing the following in to a terminal (you may need to be root):<br />
<br />
:{{cmdroot|echo -n 1 > /sys/devices/platform/i8042/serio1/serio2/press_to_select}}<br />
<br />
Press to Select should now be enabled. You can disable it in a similar manner:<br />
<br />
:{{cmdroot|echo -n 0 > /sys/devices/platform/i8042/serio1/serio2/press_to_select}}<br />
<br />
You can use this script to automate the operation<br />
<br />
#!/bin/bash<br />
if [ "$1" = "1" ]; then<br />
echo "Turning on tap on TrackPoint"<br />
echo -n 1 > /sys/devices/platform/i8042/serio1/serio2/press_to_select<br />
exit 0<br />
fi<br />
if [ "$1" = "0" ]; then<br />
echo "Turning off tap on TrackPoint"<br />
echo -n 0 > /sys/devices/platform/i8042/serio1/serio2/press_to_select<br />
exit 0<br />
fi<br />
echo -n "Tap status: "<br />
cat /sys/devices/platform/i8042/serio1/serio2/press_to_select<br />
<br />
In Ubuntu 8.10 to make Press to Select a permanent change:<br />
<br />
echo -n 1 | tee /sys/devices/platform/i8042/serio1/serio2/press_to_select<br />
<br />
As root, append the above command above "exit 0" in /etc/gdm/Init/Default<br />
<br />
===Sensitivity & Speed===<br />
Adjusting the speed and sensitivity of the TrackPoint requires echoing a value between 0 and 255 into the appropriate file. For example, for a speed of 120 and a sensitivity of 250, type the following into a terminal:<br />
<br />
:{{cmdroot|echo -n 120 > /sys/devices/platform/i8042/serio1/serio2/speed}}<br />
:{{cmdroot|echo -n 250 > /sys/devices/platform/i8042/serio1/serio2/sensitivity}}<br />
<br />
Feel free to experiment with your settings until you find a combination that is comfortable.<br />
<br />
When you satisfy your setting, add the two lines into /etc/rc.d/rc.local in order to avoid restoring the default setting every time the system reboots. In Ubuntu 9.10, add the lines to /etc/rc.local to avoid this.<br />
<br />
===Vertical Scrolling===<br />
No sysfs entry exists for vertical scrolling in kernels after 2.6.11.<br />
<br />
The feature was removed as it was not a hardware feature, but rather emulating a scroll action in software and as such did not belong in the kernel.<br />
Instead the scroll feature of the Xserver should be used, which can be activated with HAL or xinput as described above.<br />
<br />
=Configuration using the X server (xorg.conf)=<br />
==Using the "evdev" driver (preferred, especially for recent Xorg versions)==<br />
Extract from /etc/X11/xorg.conf on an X31:<br />
<br />
Section "InputDevice"<br />
Identifier "TPPS/2 IBM TrackPoint"<br />
Driver "evdev"<br />
Option "Device" "/dev/input/by-path/platform-i8042-serio-1-event-mouse"<br />
Option "GrabDevice" "False"<br />
Option "EmulateWheel" "true" #Enable wheel emulation for the Trackpoint<br />
Option "EmulateWheelButton" "2" #Use the middle button for the emulation<br />
Option "XAxisMapping" "6 7" #Map trackpoint X axis to X axis of emulated wheel<br />
Option "YAxisMapping" "4 5" #Map trackpoint Y axis to Y axis of emulated wheel<br />
EndSection<br />
<br />
{{NOTE|The device path used in the example above is a typical value. To determine the device path appropriate to the TrackPoint on a specific model see [[#Determining TrackPoint Path ID|Determining TrackPoint Path ID]]}}<br />
<br />
==Using the "mouse" driver (deprecated, only for old Xorg versions)==<br />
{{NOTE|This only applies to old distributions with Xorg versions that did not yet use evdev. For modern distributions use one of the other methods}}<br />
The scroll setting has been removed from the trackpoint driver in kernel versions 2.6.11 and above. Scroll emulation should now be handled in the X server.<br />
<br />
A nice side effect of that is, that middle button scrolling applies to any mouse and not just the TrackPoint interface, which can be a quite handy feature for desktop computers or people who prefer to use an external mouse, especially when scrolling through long lists or needing to use horizontal scrolling with a mouse which has only a vertical scroll wheel.<br />
<br />
The necessary functionality, known as "EmulateWheelTimeout" allowing to use button 2 for a middle click, wasn't implemented in Xorg prior to 6.9/7.0. However, there was a patch included in most distributions packages of Xorg, which was announced [http://www.mail-archive.com/devel@xfree86.org/msg03333.html here]. You can find an updated version of the package in the experimental branch of {{Debian}} or try to build the mouse driver yourself with the information in the announcement. This has successfully been tried with FC3's 6.8.2 packages.<br />
<br />
Once this functionality is in the X.org, add these lines to your TrackPoint configuration section in {{path|/etc/X11/xorg.conf}}:<br />
<br />
Option "EmulateWheel" "on"<br />
Option "EmulateWheelButton" "2"<br />
<br />
It may also be necessary to add these lines:<br />
<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
<br />
which specify which buttons are mapped to motion in the vertical (Y) and horizontal (X) directions, respectively, in wheel emulation mode (see http://www.xfree86.org/current/mouse.4.html).<br />
<br />
{{HINT| Use the program "xev" to see, what mouse button identifiers are sent by your mouse/touchpad/trackpoint.<br />You might want to try: "xev &#124; grep button"}}<br />
{{HINT| If it does not work see if evdev is installed and remove it. On gentoo do the following:<br /><br />
eix xf86-input-evdev<br /><br />
emerge -C xf86-input-evdev<br /><br />
and then remove the evdev flag in make.conf INPUT_DEVICES}}<br />
<br />
So, a complete mouse section, that implements this nicely and works very well on my R51, even with a simultaneously connected USB mouse, looks like that (tried out today, 20th of September, 2006 on Dapper):<br />
<br />
Section "InputDevice"<br />
Identifier "Configured Mouse"<br />
Driver "mouse"<br />
Option "CorePointer"<br />
Option "Device" "/dev/input/mice"<br />
Option "Protocol" "ExplorerPS/2"<br />
Option "Emulate3Buttons" "on"<br />
Option "Emulate3TimeOut" "50"<br />
Option "EmulateWheel" "on"<br />
Option "EmulateWheelTimeOut" "200"<br />
Option "EmulateWheelButton" "2"<br />
Option "YAxisMapping" "4 5"<br />
Option "XAxisMapping" "6 7"<br />
Option "ZAxisMapping" "4 5"<br />
EndSection<br />
<br />
The mappings for Y and Z are the same, since the "Z-Axis" refers to actual hardware scrolling wheels which usually scroll the screen along the Y-Axis. If there is no hardware scrolling wheel present, horizontal and vertical scrolling using the TrackPoint work fine without the Z-Axis line.<br />
<br />
Now restart X and hold down button 2 and move the mouse to scroll, or just press and release button 2 for a middle click.<br />
<br />
To make this work with the synaptics driver for the touchpad, you can add<br />
Option "GuestMouseOff" "1"<br />
to the synaptics device section. This will make the synaptics driver ignore the Trackpoint, so it will be handled by the mouse driver. This allowed me to disable the touchpad while making the TrackPoint work like it should.<br />
<br />
{{NOTE| With the above mouse section in my xorg.conf all this works like a charm: <br />
*I can press the wheel on my external USB mouse and move the mouse up and down for scrolling<br />
*or I can just use the wheel on the external mouse for scrolling<br />
*or pressing the MMB button of the trackpoint and use the trackpoint for scrolling.<br />
*Even horizontal scrolling works automagically in Konqueror, for Firefox/Opera see below.<br />
<br />
Simultaneously I can use <br />
*a press on the external mouse's wheel <br />
*or the MMB of the trackpoint<br />
<br />
for pasting the buffer. Lovely! :) }}<br />
<br />
{{HINT| If you don't use the middle-mouse-button for pasting and sometimes pasting things by mistake while scrolling (witch is really odd) simply set the "EmulateWheelTimeOut" to "1" as a (bloody) workaround. Middle click will only possible with pressing left and right button simultaneously!}}<br />
<br />
=Application specific tweaks=<br />
===Configure Opera for using trackpoint horizontal scrolling===<br />
To fix horizontal scrolling in Opera, you need to edit the configfile <tt>standard_mouse.ini</tt> in e.g. /usr/share/opera/ui/ (Debian) or /opt/opera/share/opera/ini/ (Gentoo) and comment out the following lines<br />
<pre><br />
Button6 = Back<br />
Button7 = Forward<br />
</pre><br />
so they look like that<br />
<pre><br />
;Button6 = Back<br />
;Button7 = Forward<br />
</pre><br />
Remember, Button6 and Button7 do not so coincidental correspond with our X configuration we know from above:<br />
<pre><br />
Option "YAxisMapping" "6 7"<br />
</pre><br />
After this change you will be able to scroll vertically and horizontally with your middle button.<br />
<br />
===Firefox 3 tweaks===<br />
These settings make Firefox on Linux behave more like the Windows version. They were tested on an out of the box Fedora 10 system on a Thinkpad T61. Go into about:config, and set the following:<br />
<br />
middlemouse.paste = false<br />
middlemouse.contentLoadURL = false<br />
general.autoScroll = true<br />
<br />
=Sysfs Options Reference=<br />
{{NOTE|These options are current as of kernel version 2.6.29, 3 May 2009}}<br />
{| <br />
|-<br />
! Name<br />
! Type<br />
! Default<br />
! Notes<br />
|-<br />
| sensitivity<br />
| Integer<br />
| 128<br />
| Sensitivity<br />
|-<br />
| speed<br />
| Integer<br />
| 97<br />
| Cursor speed<br />
|-<br />
| inertia<br />
| Integer<br />
| 6<br />
| Described as "negative inertia." It acts more like friction. High values cause the cursor to snap backward when the Trackpoint is released<br />
|-<br />
| reach<br />
| Integer<br />
| 10<br />
| Backup for Z-axis press<br />
|-<br />
| draghys<br />
| Integer<br />
| 255<br />
| Drag hysteresis (how hard it is to drag with Z-axis pressed)<br />
|-<br />
| mindrag<br />
| Integer<br />
| 20<br />
| Minimum amount of force needed to trigger dragging<br />
|-<br />
| thresh<br />
| Integer<br />
| 8<br />
| Minimum value for a Z-axis press<br />
|-<br />
| upthresh<br />
| Integer<br />
| 255<br />
| Used to generate a 'click' on Z-axis<br />
|-<br />
| ztime<br />
| Integer<br />
| 38<br />
| How sharp of a press<br />
|-<br />
| jenks<br />
| Integer<br />
| 135<br />
| Minimum curvature for double click<br />
|-<br />
| press_to_select<br />
| Boolean<br />
| 0<br />
| Press to select<br />
|-<br />
| skipback<br />
| Boolean<br />
| 0<br />
| Supress movement after drag release <br />
|-<br />
| ext_dev<br />
| Boolean<br />
| 0<br />
| Disable external device<br />
|}<br />
Table info taken from [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/input/mouse/trackpoint.h;hb=HEAD here]. The given link will always point to the current version of the driver. If the notes seem sparse, that's because the code is sparse. On the other hand, the [http://wwwcssrv.almaden.ibm.com/trackpoint/files/ykt3eext.pdf Trackpoint Engineering Specification Version 4.0] <!--if this link breaks, I recommend a quick Google search for "trackpoint version 4 engineering specifications" --> contains more documentation information than anyone ever desired.<br />
<br />
=Determining TrackPoint Path ID=<br />
Both the [[#udev|udev]] and [[#Configuration using the X server (xorg.conf)|xorg.conf]] configuration methods require knowledge of the Path ID of the TrackPoint. In the [[#udev|udev]] configuration method, the Path ID is used to match the ID_PATH environmental variable, in the [[#Configuration using the X server (xorg.conf)|xorg.conf]] configuration method it is the prefix for the device file name inside the {{path|/dev/input/by-id}} directory. The path ID can vary between ThinkPad models, distributions (with varying kernel patches), and between kernel versions. One way to find the path ID for the TrackPoint is to use udev's path_id utility on the sysfs device path for the TrackPoint. This device path can be found using the {{path|name}} file which describes the TrackPoint. The process can be automated using the following shell command:<br />
/lib/udev/path_id $(find /sys/devices/platform/i8042 -name name | xargs grep -Fl TrackPoint | sed 's/\/sys\(.*\)\/name/\1/')</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&diff=50066How to reduce power consumption2010-11-20T20:27:59Z<p>MarcH: /* Kernel boot and module loading options */ added X40</p>
<hr />
<div>Reducing system power consumption will extend battery life, reduce system<br />
temperature and (on some models) reduce system fan noise.<br />
Power consumption can be greatly improved from a stock distribution configuration<br />
to a fine tuned system. The general rules are :<br />
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)<br />
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)<br />
* Reduce hard drive activity<br />
* Reduce LCD brightness to the minimum you can stand<br />
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states<br />
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)<br />
<br />
==Tools==<br />
Arjan van de Ven's [[PowerTOP]] utility<br />
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect<br />
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest <br />
fixes accordingly.<br />
PowerTOP users collected some [http://www.lesswatts.org/projects/powertop/known.php tips & tricks]<br />
and an informative [http://www.lesswatts.org/projects/powertop/faq.php faq].<br />
<br />
Alternatively (or complementary) to PowerTOP, running <code>strace -p $(pidof yourapp)</code> <br />
for all your favorite or background running applications while they are expected to be <br />
idle, will show the misbehaviors.<br />
<br />
Beside CPU wakeups, disks spins are also power hungry. To detect what make your disk spinning,<br />
<br />
<code><br />
sysctl vm.block_dump=1<br />
</code><br />
<br />
will list all applications causing disks wakeups on the kernel's dmesg.<br />
Other useful tools for this purpose are blktrace, iostat and lm-profiler<br />
(from laptop-mode-tools suite).<br />
<br />
See also [[#Misbehaving Userland]].<br />
<br />
==BIOS settings==<br />
===Enabling Power Management===<br />
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,<br />
with a very misleading online help (saying "Usually not needed"). That's<br />
<br />
<code><br />
CPU power management: (default disabled)<br />
PCI bus power management: (default disabled)<br />
</code><br />
<br />
You should indeed ''enable'' them, else the deepest C3 and C4 ACPI C-states<br />
are disabled.<br />
<br />
===Disabling I/O Ports===<br />
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.<br />
<br />
==CPU==<br />
Look at:<br />
* [[How to make use of Dynamic Frequency Scaling]]<br />
* [[Pentium M undervolting and underclocking]]<br />
<br />
A good thing to keep in mind is that every CPU wakeup, even if it's for<br />
a trivial light job, reduce the time the CPU stays on a deep power<br />
saving C-state (like C3 or C4). Therefore you should ensure your applications<br />
stay really idle when they meant to be idle (track shorts select timeouts<br />
in loop, etc. with [[PowerTOP]]).<br />
<br />
Also note that manually locking the CPU in the lowest P-state (frequency) <br />
available is '''not''' an efficient way to improve battery lifetime. This will<br />
cause the CPU to stay longer in C0 (power hungry C-state) doing hard work when <br />
there is something to do, while it could have done this work faster by augmenting<br />
the CPU freq, and returned back faster to a deeper, economic, C-state and to a<br />
lower frequency (P-state).<br />
The best is to let the kernel select the appropriates CPU frequencies by itself<br />
with the help of in kernel CPU governors.<br />
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]<br />
from Intel's kernel developer Arjan van de Ven.<br />
<br />
==Kernel settings and patches==<br />
<br />
===General settings===<br />
The 2.6.21 kernel brought some very effective changes (like [[dynticks]]). <br />
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. <br />
If it's not already on your distribution and you value power efficiency, <br />
you may think about compiling a recent kernel yourself. <br />
<br />
Here are a few options (beside the ACPI and APM related one) that matter to <br />
reduce power consumption or to help diagnosing consumers:<br />
<br />
<code><br />
# From PowerTOP's FAQ:<br />
CONFIG_NO_HZ<br />
CONFIG_HIGH_RES_TIMERS<br />
CONFIG_HPET<br />
CONFIG_HPET_TIMER<br />
CONFIG_CPU_FREQ_GOV_ONDEMAND<br />
CONFIG_USB_SUSPEND<br />
CONFIG_SND_AC97_POWER_SAVE<br />
CONFIG_SND_HDA_POWER_SAVE<br />
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3<br />
CONFIG_TIMER_STATS<br />
CONFIG_ACPI_BATTERY<br />
CONFIG_CPU_FREQ_STAT<br />
CONFIG_INOTIFY<br />
<br />
# Not from the PowerTOP FAQ:<br />
CONFIG_BLK_DEV_IO_TRACE<br />
CONFIG_X86_ACPI_CPUFREQ<br />
CONFIG_X86_SPEEDSTEP_CENTRINO depreciated as of kernel 2.6.24, use CONFIG_X86_ACPI_CPUFREQ<br />
CONFIG_X86_SPEEDSTEP_ICH<br />
CONFIG_X86_SPEEDSTEP_SMI<br />
CONFIG_CPU_IDLE<br />
CONFIG_CPU_IDLE_GOV_LADDER<br />
CONFIG_CPU_IDLE_GOV_MENU<br />
</code><br />
<br />
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.<br />
PowerTOP FAQ also suggest to '''disable'''<br />
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.<br />
<br />
Also, you need to properly set APM and ACPI. Look at:<br />
* [[Power Management]]<br />
* [[How to make use of Power Management features]]<br />
<br />
=== Kernel boot and module loading options ===<br />
If you have an Intel chipset ICH5 or later (cf. lspci output), as in most modern Thinkpads, you should<br />
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if<br />
hpet is enabled on your laptop:<br />
<br />
<code><br />
grep hpet /proc/timer_list<br />
</code><br />
<br />
If this does not display "Clock Event Device: hpet", then add <br />
<br />
<code><br />
hpet=force<br />
</code><br />
<br />
{{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}}<br />
<br />
to your kernel boot options (usualy in /boot/grub/menu.lst or lilo.conf). <br />
Note that "hpet=force" is only available by default in 2.6.24-rc2 and above <br />
(or as a separated patch for 2.6.22 and 2.6.23, see below).<br />
<br />
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:<br />
* {{T30}}, {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}<br />
* {{X22}}, {{X23}}, {{X24}}, {{X30}}, {{X31}}, {{X40}}<br />
* {{A31}}<br />
<br />
{{HELP|please add your ThinkPad to the above list, if <nowiki>hpet=force</nowiki> was required}}<br />
<br />
===Useful Patches===<br />
<br />
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,<br />
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi "force<br />
enable HPET" patches (non HPET timers causes about 20-40 CPU wakeups/second, but<br />
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are <br />
fully merged in 2.6.24-rc1 vanilla kernel.<br />
See http://www.tglx.de/projects/hrtimers/<br />
<br />
Kristen Carlson Accardi from Intel has a patchset to turn on "Aggressive<br />
Link Power Management" (ALPM) for the AHCI driver (for SATA bus). Also from<br />
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify<br />
media insertions (thus avoid hal polling the cdrom). Those patches were merged <br />
in 2.6.24-rc2 kernel (AN needs also support in hal to be used).<br />
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/<br />
<br />
As of now (2.6.24-rc8), the linux kernel doesn't support PCI Express power <br />
management (aka PCIe ASPM, aka PCIe LPM). Shaohua Li from Intel submited a <br />
patch on LKML (http://lkml.org/lkml/2008/1/17/544 ) though, and reported it <br />
to reduce power consumption by 1.3 watts for a system with three PCIe links.<br />
<br />
The [[HDAPS]] disk protection systems can reduce battery life. <br />
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]<br />
that prevents hdaps kernel module to generate interrupts when<br />
this feature isn't used.<br />
<br />
===Useful sysctls===<br />
The meaning of those settings is explained case by case on the relevant <br />
sections of this document. But for convenience sake, we group them here too.<br />
<br />
Note that the "ondemand" scaling governor is recommended by Intel developers<br />
for energy efficiency: it's expected to be more efficient than the "powersave"<br />
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).<br />
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],<br />
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or<br />
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a<br />
kernel developer explanation about "ondemand" being better on modern Intel CPUs.<br />
<br />
The "link_power_management_policy" tunable won't be available unless you<br />
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel <br />
AHCI compatible chipset, and use SATA drives.<br />
<br />
<code><br />
echo 5 > /proc/sys/vm/laptop_mode<br />
echo 0 > /proc/sys/kernel/nmi_watchdog<br />
echo Y > /sys/module/snd_ac97_codec/parameters/power_save<br />
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings<br />
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor<br />
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs<br />
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done<br />
# those sysctl's are only available if you have an AHCI compatible SATA <br />
# controler and use kernel > 2.6.24-rc2 (or use Kristen ALPM patchset) : <br />
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy<br />
echo min_power > /sys/class/scsi_host/host1/link_power_management_policy<br />
</code><br />
<br />
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:<br />
<br />
<code><br />
cd /sys/devices/system/cpu/cpu0/cpufreq<br />
cat ondemand/sampling_rate_max > ondemand/sampling_rate<br />
</code><br />
<br />
==ATA drives==<br />
Hard drives and CDRom drives spinning is very costly. To improve battery<br />
lifetime, you should reduce disks access (or devices polling) the more you<br />
can. <br />
<br />
===Hard Drives===<br />
<br />
The files access time update, while mandated by POSIX, is causing lots of<br />
disk write access; even accessing files on disk cache may wake the ATA or USB<br />
bus. If you don't use this feature, disable it by adding the <tt>relatime</tt><br />
option to all relevant lines in the /etc/fstab, for example:<br />
/dev/sda1 / ext3 relatime,errors=remount-ro 0 1<br />
<br />
(On older kernels you may need to use <tt>noatime</tt> instead of <tt>relatime</tt>.)<br />
<br />
Also consider merely using a larger value for the <tt>commit</tt> option. This defines how often changed data is written to the disk (it is cached until then). The default value is 5 seconds.<br />
<br />
See man mount(8) for details on how the <tt>rel/noatime</tt> and <tt>commit</tt> options work.<br />
<br />
Use laptop_mode to reduce disk usage by delaying and grouping writes. You should enable<br />
it, at least while on battery. See [[Laptop-mode]] for more details:<br />
<br />
<code><br />
echo 5 > /proc/sys/vm/laptop_mode<br />
</code><br />
<br />
The default kernel dirty page writeback frequency is very conservative. On<br />
a laptop running on battery, one might find more appropriate to reduce it:<br />
<br />
<code><br />
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs<br />
</code><br />
<br />
Some power saving hard drives features can be activated with hdparm (beware<br />
that "-B 1" may reduce your drive lifetime, if you have lot of intermittent<br />
disk activity causing lots of heads load/unloads: so reduce I/O activity first,<br />
as explained above, in order to get longer disks idling periods).<br />
For more details look at [[How to make use of Power Management features]] :<br />
<br />
<code> <br />
hdparm -B 1 -S 12 /dev/sda # and/or any other disk device<br />
</code><br />
<br />
====SATA Link Power Management====<br />
On kernels 2.6.24 and new this enables SATA Link Power Management:<br />
<code><br />
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy<br />
echo min_power > /sys/class/scsi_host/host1/link_power_management_policy<br />
</code><br />
<br />
Disable it by replacing <code>min_power</code> with <code>max_performance</code>.<br />
<br />
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])<br />
<br />
====Laptop Mode Tools====<br />
<br />
The [http://samwel.tk/laptop_mode/ Laptop Mode Tools] utility implements many of the above power-saving measures from disks, and some others.<br />
<br />
===Optical drive===<br />
The optical drive is reported to consume power even when not accessed. See <br />
<br />
* [[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).<br />
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].<br />
<br />
The hald daemon polling tends to maintain the ATA buses out of power saving<br />
modes, and to wakeup CDROM drive (except if you have a kernel >= 2.6.24, hal >= 0.5.10,<br />
and SATA AN compatible devices). If you have a recent hald version, you<br />
can stop this polling when on battery:<br />
<br />
<code><br />
hal-disable-polling --device /dev/scd0 # or whatever your CD drive is<br />
</code><br />
<br />
start polling again when on ac:<br />
<code><br />
hal-disable-polling --enable-polling --device /dev/scd0 # or whatever your CD drive is<br />
</code><br />
<br />
<br />
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.<br />
<br />
==LCD Backlight/Brightness==<br />
The LCD backlight is one of the very major power drain. <br />
Reducing brightness to the lowest readable<br />
level will save a lot of battery lifetime. Also, don't forget to configure<br />
your screen saver to shutdown the screen backlight (rather than displaying some<br />
eye candy), when no activity for a few minutes.<br />
<br />
You can also let the system [[automatically reduce brightness]] after a <br />
period of inactivity.<br />
<br />
If you're choosing your Thinkpad laptop model, keep in mind that the screen<br />
size affect the battery time greatly: more power needed for larger screens.<br />
<br />
The very recent, but xorg standard way to control backlight from CLI is<br />
using xbacklight. ie. to set backlight at half the brightness:<br />
<br />
<code><br />
xbacklight -set 50<br />
</code><br />
<br />
You should configure the DPMS to shutdown the screen when idle (rather than<br />
displaying a fancy but power consuming screensaver). ie. to turn off the<br />
display after 5 minutes of idling:<br />
<br />
<code><br />
xset +dpms<br />
xset dpms 0 0 300<br />
</code><br />
<br />
==Graphic controllers==<br />
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have<br />
the same bug causing very frequent CPU wakeups when DRI is activated, even<br />
when you don't use any 3D application.<br />
This problem is partly fixed on xorg git tree but not released as of xorg<br />
7.2. If you value more battery than 3D, you should disable DRI: put this on<br />
the /etc/X11/xorg.conf "Device" of you graphic controller:<br />
<br />
<code><br />
Option "NoDRI"<br />
</code><br />
<br />
Also be sure that DPMS is working: <code>grep DPMS /var/log/Xorg.0.log</code><br />
should output "DPMS enabled". If not, put <code>Option "DPMS"</code> in your config.<br />
See the section above about how to enable dpms driven display power saving.<br />
<br />
On recent xrandr/xorg versions, you can disable the TV output (or any other detected<br />
as connected but not used outputs) when you're not using it: it's known to consume power. <br />
<br />
<code> <br />
xrandr # see all displays listed here, but that you don't actually use and disable them. <br />
xrandr --output TV --off # for instance (if "xrandr" above listed a connected output named "TV" that you don't use)<br />
</code><br />
<br />
When you don't have an external monitor plugged, disable CRT and DVI output <br />
(for some, this can make a difference in power usage) : <br />
<code> <br />
echo crt_disable > /proc/acpi/ibm/video<br />
echo dvi_disable > /proc/acpi/ibm/video<br />
</code> <br />
<br />
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:<br />
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.<br />
* [[Problem with high power drain in ACPI sleep]]<br />
<br />
==USB Subsystem==<br />
The kernel support an efficient USB 2.0 power saving feature if you enabled<br />
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device<br />
plugged (and beside, USB devices tends to suck power on their own), so avoid<br />
using such devices when on battery. To enable it by default, you must add the line <br />
<code><br />
options usbcore autosuspend=1<br />
</code><br />
to your <tt>/etc/modprobe.conf</tt> or add it to (and create if necessary) the file <tt>/etc/modprobe.d/usbcore</tt> depending on how your distribution organises modprobe configuration. <br />
<br />
If on the other hand, you have <tt>usbcore</tt> built into your kernel, you can add this in the kernel boot options (ie. in grub's menu.lst):<br />
<br />
<code><br />
usbcore.autosuspend=1<br />
</code><br />
<br />
or at runtime, per device, with:<br />
<br />
<code><br />
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done <br />
for i in /sys/bus/usb/devices/*/power/level; do echo auto > $i; done<br />
</code><br />
<br />
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go<br />
in a low power mode when you enabled it, even if you don't have any device<br />
plugged. You'd better remove it when you don't use a 1.1 device:<br />
<br />
<code><br />
rmmod uhci_hcd<br />
</code><br />
<br />
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:<br />
<br />
<code><br />
echo "blacklist uhci_hcd" >> /etc/modprobe.d/blacklist<br />
</code><br />
<br />
==PCMCIA/CardBus==<br />
Same for PCMCIA/CardBus. Some users experiences interrupts clouds (sometime up to <br />
several thousands interrupts/second) causing CPU wakeups, thus totally preventing <br />
the CPU to reach lower C-states. <br />
If you don't use PCMCIA, you may disable it the same way (unloading seems insufficient<br />
to restore the system properly, you have to boot without it):<br />
<br />
<code><br />
echo "blacklist pcmcia" >> /etc/modprobe.d/blacklist<br />
echo "blacklist yenta_socket" >> /etc/modprobe.d/blacklist<br />
</code><br />
<br />
==Sound==<br />
<br />
ALSA has a power saving feature that should be enabled on your kernel<br />
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in<br />
unless you muted all sound inputs (micro, line in etc.). This feature has<br />
to be activated with:<br />
<br />
<code><br />
amixer set Line mute nocap<br />
amixer set Mic mute nocap<br />
echo Y > /sys/module/snd_ac97_codec/parameters/power_save<br />
</code><br />
<br />
<br />
===Intel HD Audio===<br />
<br />
If you have Intel HD audio as your onboard sound controller, substitute the following for the last line in the above sequence:<br />
<br />
<code><br />
echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller<br />
</code><br />
<br />
You also may wish to decrease the sound poweroff timeout to something shorter, like 1 second after last playback:<br />
<br />
<code><br />
echo 1 > /sys/module/snd_hda_intel/parameters/power_save<br />
</code><br />
<br />
===Additional Tweaks===<br />
<br />
You can unload all sound related modules when you are on <br />
battery, or mute the sound system (echo mute > /proc/acpi/ibm/volume).<br />
<br />
See also [[How to enable audio codec power saving]].<br />
<br />
==Wireless Interface==<br />
===intel wireless===<br />
Wireless network consume a lot of power.<br />
To save power, you can kill the Wi-Fi radio when it's not in use:<br />
<br />
<code><br />
echo 1 > /sys/bus/pci/devices/*/rf_kill<br />
</code><br />
<br />
If you need Wi-Fi, you can also reduce power consumption (at the price of<br />
performances) by activating the power saving modes:<br />
<br />
<code><br />
iwpriv eth1 set_power 5<br />
</code><br />
<br />
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), <br />
the canonical way to do this is now:<br />
<br />
<code><br />
for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; done<br />
</code><br />
<br />
Most drivers, like ipw2200, that don't use the new mac80211 framework place the<br />
interfaces in aggressive scanning mode when they are not associated with any <br />
Access Point, even when the interface is down (more info about this on Intel's<br />
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).<br />
This behavior consumes a lot of power, even more than when the interface<br />
is plain active and in use. But this can disabled at module's load time :<br />
<br />
<code><br />
rmmod ipw2200<br />
modprobe ipw2200 associate=0<br />
</code><br />
<br />
You can fix this setting by placing the following in /etc/modprobe.d/options <br />
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):<br />
<br />
<code><br />
options ipw2200 associate=0<br />
</code><br />
<br />
Reducing beacon intervals on your Access Point to 1 per second will also<br />
reduce network card interrupts, therefore power savings. This shouldn't have<br />
negatives side effects.<br />
<br />
See also, to activate power saving on the wireless network card:<br />
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.<br />
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]<br />
<br />
==Ethernet Controler==<br />
If you don't use Wake-on-LAN, you should disable it for your network card,<br />
because it sucks a lot of power:<br />
<br />
<code><br />
ethtool -s eth0 wol d<br />
</code><br />
<br />
If you can, try to reduce useless network activity on your ethernet<br />
segment, coming to your NIC (ie. uneeded broadcasts), those cause <br />
interrupts and CPU wakeups.<br />
<br />
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).<br />
<br />
<code><br />
ethtool -s eth0 autoneg off speed 100<br />
</code><br />
<br />
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.<br />
<br />
==Bluetooth==<br />
When you don't need bluetooth, disable it. Because of its radio, <br />
bluetooth is not power friendly.<br />
<br />
<code><br />
hciconfig hci0 down ; rmmod hci_usb<br />
echo disable > /proc/acpi/ibm/bluetooth<br />
</code><br />
<br />
==Modem==<br />
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.<br />
<br />
==System Fans==<br />
Fans consumes power when running, so you may look at the [[ACPI fan control script]].<br />
<br />
==Misbehaving Userland==<br />
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager<br />
and Evolution while on battery.<br />
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]<br />
list.<br />
<br />
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.<br />
<br />
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:<br />
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)<br />
* Access the disks at regular intervals<br />
* Access an hardware bus (USB, ATA, ...) at regular intervals<br />
To find those offenders run:<br />
* <code>strace -p $(pidof yourapp)</code> # for all your running applications<br />
* <code>powertop</code><br />
* <code>dstat -t -c --power --top-cpu --top-io --top-bio --top-latency --top-cputime</code><br />
* <code>sysctl vm.block_dump=1</code> # and look at dmesg<br />
* <code>ps aux | awk '{print$10,$11}' | sort -n</code> # will list all running softs sorted by used cpu time<br />
Please, don't forget to fill a bug when you find such a misbehaving software.<br />
{{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.}}<br />
<br />
==See Also==<br />
* [[How to measure power consumption]]<br />
* [[Script for monitoring power consumption]]<br />
* Battery [[maintenance]]<br />
<br />
==External resources==<br />
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005<br />
* [http://www.linuxpowertop.org PowerTOP] website<br />
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation<br />
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)<br />
* Intel's [http://www.lesswatts.org/ LessWatts] "''Saving power on Linux''" website<br />
* ''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<br />
<br />
<br />
[[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]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Ipw2200&diff=50060Ipw22002010-11-18T10:29:50Z<p>MarcH: regrouped new wpa_supplicant random SSID section with older power section</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
<br />
The '''Ipw2200''' is the Linux driver for the [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]] found in [[Centrino]] laptops. This driver only works on 2.6.x kernels (2.6.4 or newer).<br />
<br />
Starting with kernels 2.6.14 the driver is included in kernel.<br />
<br />
{{NOTE|Make sure you have installed the firmware! The ipw2200 documentation will tell you where to find these firmware files and where to install those.}}<br />
<br />
Included in mainline Linux kernels, tracking the SourceForge version with about 6 months delay.<br />
<br />
== Packages ==<br />
*{{Fedora}} Packages(1): Fedora Core includes the ipw2200-drivers in FC3 (with updates) and FC4. You still need to grab the firmware from http://rpm.livna.org/<br />
*{{Fedora}} Packages(2): http://www.atrpms.net/name/ipw2200/ <br />
*{{Mandriva}}: The ipw2200 driver modules are included in the stock kernel package; the firmware is included in the commercial distribution or available from http://plf.zarb.org/.<br />
*{{Gentoo}}: The driver is in the portage tree: emerge net-wireless/ipw2200 and net-wireless/ipw2200-firmware<br />
*{{Debian}} Sarge includes the source code for the modules in package ipw2200-source (http://packages.debian.org/ipw2200-source). You additionally need to download firmware manually.<br />
*{{Debian}} Etch includes a version of the modules in its kernel or for a later version install package ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64; or the source code for them in ipw2200-source (http://packages.debian.org/ipw2200-source) to compile one yourself. You additionally need to download firmware manually.<br />
<br />
== Status ==<br />
In development, usable, WEP 128bit encryption works, WPA and WPA2 work with drivers >= 1.0.2 using [[wpa_supplicant]], monitor/rfmon is supported as with version >= 1.0.6. Generally works well, but some users experience problems (especially with firmware restarts and with WPA functionality using [[wpa_supplicant]]). Passing the <tt>hwcrypto=0</tt> module parameter improves reliability for many users.<br />
<br />
The ipw2200 driver up to version 1.0.6 (in combination with some newer kernels) had a problem getting DHCP leases (it turned out to be a bug in the broadcasting code). Version 1.0.7 seems to have fixed this.<br />
<br />
Older ipw2200 driver versions shipped by many distributions have been reported to freeze a T43 after several minutes of intensive communication. Installing version 1.1.2 of the driver solved the problem.<br />
<br />
Latest stable versions:<br />
* ipw2200 driver: 1.2.0<br />
* firmware: 3.0<br />
* ieee80211 stack: 1.2.15<br />
<br />
Latest development versions:<br />
* ipw2200 driver: 1.2.2<br />
* firmware: 3.1<br />
* ieee80211 stack: 1.2.18<br />
<br />
Mainline kernels contain older (but mostly functional) versions of ipw2200 and ieee80211, and still require the addition of the [http://ipw2200.sourceforge.net/firmware.php firmware] files. To get the latest versions you need to separately install the [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack.<br />
<br />
==Installation==<br />
=== Source Code ===<br />
Download the latest [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack and install it:<br />
:{{cmdroot|tar xzvf ieee80211-1.2.15.tgz}}<br />
:{{cmdroot|cd ieee80211-1.2.15}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the latest [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and install it:<br />
:{{cmdroot|tar xzvf ipw2200-1.2.0.tgz}}<br />
:{{cmdroot|cd ipw2200-1.2.0}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
:{{cmdroot|tar xzvf ipw2200-fw-3.1.tgz -C /lib/firmware}}<br />
<br />
=== Debian Sarge ===<br />
{{cmdroot|apt-get install ipw2200-source}}<br />
<br />
{{cmdroot|module-assistant -t build ipw2200-source}}<br />
<br />
[is this how module-assistant works in Sarge?]<br />
<br />
=== Debian Etch ===<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching version 3.0 [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar -xvf ipw2200-fw-3.1.tgz -C /lib/firmware}}<br />
<br />
:{{cmdroot|mv /lib/firmware/ipw2200-fw-3.1/* /lib/firmware}}<br />
<br />
=== Debian Unstable ===<br />
Install ieee80211-source:<br />
:{{cmdroot|apt-get install ieee80211-source}}<br />
:{{cmdroot|module-assistant -t build ieee80211-source}}<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
There is a bug in the {{Debian}} package (last checked: Dec 30th 2005) that prevents from linking to <tt>ieee80211</tt> modules using module-assistant. In case it is not fixed in your version, fall back to the regular source installation procedure described above.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar xzvf ipw2200-fw-2.4.tgz -C /usr/lib/hotplug/firmware}}<br />
<br />
see /etc/hotplug/firmware.agent for details on configured firmware locations<br />
<br />
Make sure that your firmware files are not in a subdirectory (dmesg will give you warnings after any modprobe when firmware can't be loaded)<br />
<br />
=== Fedora Core ===<br />
Installation on Fedora Core 5 works out of the box provided you install the ipw2200-firmware package. However, certain parts of the install process may not set up the wireless networking in a friendly manner using GNOME system tray icons and other tools. Bill Moss has written some excellent HowTo articles, including using VPNC to connect to a remote Cisco IPSec network.<br />
<br />
* [http://www.ces.clemson.edu/linux/fc2-ipw2200.shtml Fedora Core 5 and the IPW2200 Wireless Driver]<br />
* [http://www.ces.clemson.edu/linux/nm.shtml Fedora Core 5 NetworkManager, NetworkManager-vpnc and Wireless Driver IPW2200]<br />
<br />
== Testing the driver ==<br />
:{{cmdroot|modprobe ipw2200}}<br />
:{{cmdroot|iwconfig}}<br />
<br />
{{cmdroot|dmesg}} output might look similar to this:<br />
ieee80211: 802.11 data/management/control stack, 1.1.6<br />
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com><br />
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.8<br />
ipw2200: Copyright(c) 2003-2005 Intel Corporation<br />
ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection<br />
<br />
NB: To make the wifi LED work on the thinkpad, pass the option {{bootparm|led|1}} to the kernel while loading the module. eg. {{cmdroot|1=modprobe ipw2200 led=1}}. This can also be accomplished by adding that option to the file where your distribution looks for modprobe options so that it becomes automatic.<br />
<br />
In debian this can be done by putting a file named after the module in /etc/modutils with the options in it<br />
<br />
here we might run a cmd like this<br />
<br />
:{{cmdroot|1=echo options ipw2200 led=1 > /etc/modutils/ipw2200 }}<br />
<br />
then we must run update-modules to remake /etc/module.conf<br />
<br />
:{{cmdroot|update-modules}}<br />
<br />
== WPA support ==<br />
<br />
Use [[wpa_supplicant]] with the <tt>-Dwext</tt> argument (not <tt>-Dipw</tt>), and pass the <tt>hwcrypto=0</tt> argument to the <tt>ipw2200</tt> module.<br />
<br />
There are some very detailed instructions with working sample configurations on the following link:<br />
[http://www.bughost.org/ipw/wpa_howto.txt ipw2200 WPA instruction]<br />
<br />
== Power Management ==<br />
The ipw2200 driver has power management capabilities, which comes in handy while operating on battery. <br />
<br />
To enable reduced power consumption mode, issue: <br />
:{{cmdroot|iwpriv wlan0 set_power 7}}<br />
where <tt>wlan0</tt> is the name of your interface. This will reduce idle power consumption by 1-2 Watts compared to no power management. To return to the "normal" operation mode, you can issue:<br />
:{{cmdroot|iwpriv wlan0 set_power 6}}.<br />
<br />
In order to check current settings, you can issue:<br />
:{{cmdroot|iwpriv wlan0 get_power}}.<br />
<br />
More information on these option is available in the {{path|README.ipw3945}} file in the <tt>ipw3945</tt> package ({{path|README.ipw2200}} seems to be rather sketchy about the details of power management). You may want to turn power management on/off on demand in an ACPI script that catches battery/AC events, so that this happens automatically.<br />
<br />
Note that there have been [http://www.bughost.org/bugzilla/show_bug.cgi?id=1074 reports] that some versions of ipw2200 react with a firmware error to power management commands. This [http://www.bughost.org/bugzilla/attachment.cgi?id=1024 patch] could alleviate the problem.<br />
<br />
*To disable the radio (and further reduce power consumption) when the card is not in use, issue:<br />
:{{cmdroot|echo 1 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To enable the radio, issue:<br />
:{{cmdroot|echo 0 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To make the radio off by default after boot, add <br />
options ipw2200 disable=1<br />
to your {{path|/etc/modprobe.conf}} or equivalent (on kubuntu 6.10 {{path|/etc/modprobe.d/options}}).<br />
<br />
See {{path|README.ipw2200}} in the <tt>ipw2200</tt> package for details and other options.<br />
<br />
== wpa_supplicant assigns a random SSID wasting power ==<br />
<br />
Many wpa_supplicant versions implement disconnection by configuring a random SSID. ipw2200 reacts in a very unfortunate way to this, intensively scanning for this random SSID and wasting power. This waste can be seen in powertop.<br />
<br />
Here are a number of ways to solve this problem:<br />
* Run <tt>iwconfig eth1 essid off</tt> after every wpa_supplicant disconnection.<br />
* Upgrade to wpa_supplicant version 0.7.1 or higher. Starting from git commit 3145e615 wpa_supplicant does not configure ipw2200 with a random SSID any more.<br />
* Backporting commit 3145e615 to wpa_supplicant version 0.6.8 also fixes the problem.<br />
<br />
== Changing the enabled channels ==<br />
Permitted WiFi channels vary with geography due to regulation. The EEPROM in this chip contains a country code (programmed by the hardware manufacturer), and the driver converts this to a channel list and enforces it.<br />
<br />
If you carry your laptop to a different regulatory region, you may need to change the list of permitted channels according to local regulations. There are two ways to accomplish this:<br />
<br />
===Patching the ipw2200 driver===<br />
You can alter the ipw2200 driver sourcecode to hard-code the country code instead of reading it from EEPROM. For example, this will allow all 14 channels (perfect for those special occasions in international water):<br />
<pre><br />
--- ipw2200.c.orig<br />
+++ ipw2200.c<br />
@@ -11344,7 +11344,7 @@ static int ipw_up(struct ipw_priv *priv)<br />
memcpy(priv->net_dev->dev_addr, priv->mac_addr, ETH_ALEN);<br />
<br />
for (j = 0; j < ARRAY_SIZE(ipw_geos); j++) {<br />
- if (!memcmp(&priv->eeprom[EEPROM_COUNTRY_CODE],<br />
+ if (!memcmp("ZZR",<br />
ipw_geos[j].name, 3))<br />
break;<br />
}<br />
</pre><br />
<br />
For the list of codes and their meaning, see the "<tt>ipw_geos</tt>" table in the [http://lxr.free-electrons.com/source/drivers/net/wireless/ipw2x00/ipw2200.c#10382 ipw2200.c sourcecode].<br />
<br />
===Patching the EEPROM===<br />
<br />
Alternatively, you can change the country code in the EEPROM once and for all, and then use the standard ipw2200 driver.<br />
<br />
See this guide:<br />
* [http://saftware.de/#ipw2200 Patching the EEPROM].<br />
<br />
Instead of the <tt>hd</tt> program mentioned there, you can use the more common <tt>od</tt> program:<br />
echo -n ZZD | od -t x1<br />
0000000 5a 5a 44<br />
0000003<br />
<br />
{{WARN|If this procedure goes wrong, you may ruin your wireless card.}}<br />
<br />
== Additional Comments ==<br />
Your kernel may include an old version of the ipw2200 driver. It is recommended to use the latest version.<br />
<br />
Make sure you also install the firmware version needed by the driver version you use. You can find the firmware [http://ipw2200.sourceforge.net/firmware.php here]. To install it, decompress the <tt>.tgz</tt> file into {{path|/usr/lib/hotplug/firmware}} or {{path|/lib/firmware}} depending on your disto.<br />
<br />
The driver doesn't appear to support the MII interface, so any tools like automatic network configuration managers (i.e. whereami) that rely on mii-tool do not work.<br />
<br />
See incompatibility with some Access Points described on [[Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter#Problems|this other page]]<br />
<br />
== External links ==<br />
* [http://ipw2200.sourceforge.net/ Official website]<br />
<br />
[[Category:Drivers]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Ipw2200&diff=50059Ipw22002010-11-18T01:05:45Z<p>MarcH: /* wpa_supplicant assigns a random SSID which wastes power */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
<br />
The '''Ipw2200''' is the Linux driver for the [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]] found in [[Centrino]] laptops. This driver only works on 2.6.x kernels (2.6.4 or newer).<br />
<br />
Starting with kernels 2.6.14 the driver is included in kernel.<br />
<br />
{{NOTE|Make sure you have installed the firmware! The ipw2200 documentation will tell you where to find these firmware files and where to install those.}}<br />
<br />
Included in mainline Linux kernels, tracking the SourceForge version with about 6 months delay.<br />
<br />
== Packages ==<br />
*{{Fedora}} Packages(1): Fedora Core includes the ipw2200-drivers in FC3 (with updates) and FC4. You still need to grab the firmware from http://rpm.livna.org/<br />
*{{Fedora}} Packages(2): http://www.atrpms.net/name/ipw2200/ <br />
*{{Mandriva}}: The ipw2200 driver modules are included in the stock kernel package; the firmware is included in the commercial distribution or available from http://plf.zarb.org/.<br />
*{{Gentoo}}: The driver is in the portage tree: emerge net-wireless/ipw2200 and net-wireless/ipw2200-firmware<br />
*{{Debian}} Sarge includes the source code for the modules in package ipw2200-source (http://packages.debian.org/ipw2200-source). You additionally need to download firmware manually.<br />
*{{Debian}} Etch includes a version of the modules in its kernel or for a later version install package ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64; or the source code for them in ipw2200-source (http://packages.debian.org/ipw2200-source) to compile one yourself. You additionally need to download firmware manually.<br />
<br />
== Status ==<br />
In development, usable, WEP 128bit encryption works, WPA and WPA2 work with drivers >= 1.0.2 using [[wpa_supplicant]], monitor/rfmon is supported as with version >= 1.0.6. Generally works well, but some users experience problems (especially with firmware restarts and with WPA functionality using [[wpa_supplicant]]). Passing the <tt>hwcrypto=0</tt> module parameter improves reliability for many users.<br />
<br />
The ipw2200 driver up to version 1.0.6 (in combination with some newer kernels) had a problem getting DHCP leases (it turned out to be a bug in the broadcasting code). Version 1.0.7 seems to have fixed this.<br />
<br />
Older ipw2200 driver versions shipped by many distributions have been reported to freeze a T43 after several minutes of intensive communication. Installing version 1.1.2 of the driver solved the problem.<br />
<br />
Latest stable versions:<br />
* ipw2200 driver: 1.2.0<br />
* firmware: 3.0<br />
* ieee80211 stack: 1.2.15<br />
<br />
Latest development versions:<br />
* ipw2200 driver: 1.2.2<br />
* firmware: 3.1<br />
* ieee80211 stack: 1.2.18<br />
<br />
Mainline kernels contain older (but mostly functional) versions of ipw2200 and ieee80211, and still require the addition of the [http://ipw2200.sourceforge.net/firmware.php firmware] files. To get the latest versions you need to separately install the [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack.<br />
<br />
==Installation==<br />
=== Source Code ===<br />
Download the latest [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack and install it:<br />
:{{cmdroot|tar xzvf ieee80211-1.2.15.tgz}}<br />
:{{cmdroot|cd ieee80211-1.2.15}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the latest [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and install it:<br />
:{{cmdroot|tar xzvf ipw2200-1.2.0.tgz}}<br />
:{{cmdroot|cd ipw2200-1.2.0}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
:{{cmdroot|tar xzvf ipw2200-fw-3.1.tgz -C /lib/firmware}}<br />
<br />
=== Debian Sarge ===<br />
{{cmdroot|apt-get install ipw2200-source}}<br />
<br />
{{cmdroot|module-assistant -t build ipw2200-source}}<br />
<br />
[is this how module-assistant works in Sarge?]<br />
<br />
=== Debian Etch ===<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching version 3.0 [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar -xvf ipw2200-fw-3.1.tgz -C /lib/firmware}}<br />
<br />
:{{cmdroot|mv /lib/firmware/ipw2200-fw-3.1/* /lib/firmware}}<br />
<br />
=== Debian Unstable ===<br />
Install ieee80211-source:<br />
:{{cmdroot|apt-get install ieee80211-source}}<br />
:{{cmdroot|module-assistant -t build ieee80211-source}}<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
There is a bug in the {{Debian}} package (last checked: Dec 30th 2005) that prevents from linking to <tt>ieee80211</tt> modules using module-assistant. In case it is not fixed in your version, fall back to the regular source installation procedure described above.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar xzvf ipw2200-fw-2.4.tgz -C /usr/lib/hotplug/firmware}}<br />
<br />
see /etc/hotplug/firmware.agent for details on configured firmware locations<br />
<br />
Make sure that your firmware files are not in a subdirectory (dmesg will give you warnings after any modprobe when firmware can't be loaded)<br />
<br />
=== Fedora Core ===<br />
Installation on Fedora Core 5 works out of the box provided you install the ipw2200-firmware package. However, certain parts of the install process may not set up the wireless networking in a friendly manner using GNOME system tray icons and other tools. Bill Moss has written some excellent HowTo articles, including using VPNC to connect to a remote Cisco IPSec network.<br />
<br />
* [http://www.ces.clemson.edu/linux/fc2-ipw2200.shtml Fedora Core 5 and the IPW2200 Wireless Driver]<br />
* [http://www.ces.clemson.edu/linux/nm.shtml Fedora Core 5 NetworkManager, NetworkManager-vpnc and Wireless Driver IPW2200]<br />
<br />
== Testing the driver ==<br />
:{{cmdroot|modprobe ipw2200}}<br />
:{{cmdroot|iwconfig}}<br />
<br />
{{cmdroot|dmesg}} output might look similar to this:<br />
ieee80211: 802.11 data/management/control stack, 1.1.6<br />
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com><br />
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.8<br />
ipw2200: Copyright(c) 2003-2005 Intel Corporation<br />
ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection<br />
<br />
NB: To make the wifi LED work on the thinkpad, pass the option {{bootparm|led|1}} to the kernel while loading the module. eg. {{cmdroot|1=modprobe ipw2200 led=1}}. This can also be accomplished by adding that option to the file where your distribution looks for modprobe options so that it becomes automatic.<br />
<br />
In debian this can be done by putting a file named after the module in /etc/modutils with the options in it<br />
<br />
here we might run a cmd like this<br />
<br />
:{{cmdroot|1=echo options ipw2200 led=1 > /etc/modutils/ipw2200 }}<br />
<br />
then we must run update-modules to remake /etc/module.conf<br />
<br />
:{{cmdroot|update-modules}}<br />
<br />
== WPA support ==<br />
<br />
Use [[wpa_supplicant]] with the <tt>-Dwext</tt> argument (not <tt>-Dipw</tt>), and pass the <tt>hwcrypto=0</tt> argument to the <tt>ipw2200</tt> module.<br />
<br />
There are some very detailed instructions with working sample configurations on the following link:<br />
[http://www.bughost.org/ipw/wpa_howto.txt ipw2200 WPA instruction]<br />
<br />
== Power Management ==<br />
The ipw2200 driver has power management capabilities, which comes in handy while operating on battery. <br />
<br />
To enable reduced power consumption mode, issue: <br />
:{{cmdroot|iwpriv wlan0 set_power 7}}<br />
where <tt>wlan0</tt> is the name of your interface. This will reduce idle power consumption by 1-2 Watts compared to no power management. To return to the "normal" operation mode, you can issue:<br />
:{{cmdroot|iwpriv wlan0 set_power 6}}.<br />
<br />
In order to check current settings, you can issue:<br />
:{{cmdroot|iwpriv wlan0 get_power}}.<br />
<br />
More information on these option is available in the {{path|README.ipw3945}} file in the <tt>ipw3945</tt> package ({{path|README.ipw2200}} seems to be rather sketchy about the details of power management). You may want to turn power management on/off on demand in an ACPI script that catches battery/AC events, so that this happens automatically.<br />
<br />
Note that there have been [http://www.bughost.org/bugzilla/show_bug.cgi?id=1074 reports] that some versions of ipw2200 react with a firmware error to power management commands. This [http://www.bughost.org/bugzilla/attachment.cgi?id=1024 patch] could alleviate the problem.<br />
<br />
*To disable the radio (and further reduce power consumption) when the card is not in use, issue:<br />
:{{cmdroot|echo 1 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To enable the radio, issue:<br />
:{{cmdroot|echo 0 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To make the radio off by default after boot, add <br />
options ipw2200 disable=1<br />
to your {{path|/etc/modprobe.conf}} or equivalent (on kubuntu 6.10 {{path|/etc/modprobe.d/options}}).<br />
<br />
See {{path|README.ipw2200}} in the <tt>ipw2200</tt> package for details and other options.<br />
<br />
== Changing the enabled channels ==<br />
Permitted WiFi channels vary with geography due to regulation. The EEPROM in this chip contains a country code (programmed by the hardware manufacturer), and the driver converts this to a channel list and enforces it.<br />
<br />
If you carry your laptop to a different regulatory region, you may need to change the list of permitted channels according to local regulations. There are two ways to accomplish this:<br />
<br />
===Patching the ipw2200 driver===<br />
You can alter the ipw2200 driver sourcecode to hard-code the country code instead of reading it from EEPROM. For example, this will allow all 14 channels (perfect for those special occasions in international water):<br />
<pre><br />
--- ipw2200.c.orig<br />
+++ ipw2200.c<br />
@@ -11344,7 +11344,7 @@ static int ipw_up(struct ipw_priv *priv)<br />
memcpy(priv->net_dev->dev_addr, priv->mac_addr, ETH_ALEN);<br />
<br />
for (j = 0; j < ARRAY_SIZE(ipw_geos); j++) {<br />
- if (!memcmp(&priv->eeprom[EEPROM_COUNTRY_CODE],<br />
+ if (!memcmp("ZZR",<br />
ipw_geos[j].name, 3))<br />
break;<br />
}<br />
</pre><br />
<br />
For the list of codes and their meaning, see the "<tt>ipw_geos</tt>" table in the [http://lxr.free-electrons.com/source/drivers/net/wireless/ipw2x00/ipw2200.c#10382 ipw2200.c sourcecode].<br />
<br />
===Patching the EEPROM===<br />
<br />
Alternatively, you can change the country code in the EEPROM once and for all, and then use the standard ipw2200 driver.<br />
<br />
See this guide:<br />
* [http://saftware.de/#ipw2200 Patching the EEPROM].<br />
<br />
Instead of the <tt>hd</tt> program mentioned there, you can use the more common <tt>od</tt> program:<br />
echo -n ZZD | od -t x1<br />
0000000 5a 5a 44<br />
0000003<br />
<br />
{{WARN|If this procedure goes wrong, you may ruin your wireless card.}}<br />
<br />
== wpa_supplicant assigns a random SSID which wastes power ==<br />
<br />
Many wpa_supplicant versions implement disconnection by configuring a random SSID. ipw2200 reacts in a very unfortunate way to this, intensively scanning for this random SSID and wasting power. This waste can be seen in powertop.<br />
<br />
Here are a number of ways to solve this problem:<br />
* Run <tt>iwconfig eth1 essid off</tt> after every wpa_supplicant disconnection.<br />
* Upgrade to wpa_supplicant version 0.7.1 or higher. Starting from git commit 3145e615 wpa_supplicant does not configure ipw2200 with a random SSID any more.<br />
* Backporting commit 3145e615 to wpa_supplicant version 0.6.8 also fixes the problem.<br />
<br />
== Additional Comments ==<br />
Your kernel may include an old version of the ipw2200 driver. It is recommended to use the latest version.<br />
<br />
Make sure you also install the firmware version needed by the driver version you use. You can find the firmware [http://ipw2200.sourceforge.net/firmware.php here]. To install it, decompress the <tt>.tgz</tt> file into {{path|/usr/lib/hotplug/firmware}} or {{path|/lib/firmware}} depending on your disto.<br />
<br />
The driver doesn't appear to support the MII interface, so any tools like automatic network configuration managers (i.e. whereami) that rely on mii-tool do not work.<br />
<br />
See incompatibility with some Access Points described on [[Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter#Problems|this other page]]<br />
<br />
== External links ==<br />
* [http://ipw2200.sourceforge.net/ Official website]<br />
<br />
[[Category:Drivers]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Ipw2200&diff=50058Ipw22002010-11-18T01:04:57Z<p>MarcH: Added Random SSID wasting power</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
<br />
The '''Ipw2200''' is the Linux driver for the [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]] found in [[Centrino]] laptops. This driver only works on 2.6.x kernels (2.6.4 or newer).<br />
<br />
Starting with kernels 2.6.14 the driver is included in kernel.<br />
<br />
{{NOTE|Make sure you have installed the firmware! The ipw2200 documentation will tell you where to find these firmware files and where to install those.}}<br />
<br />
Included in mainline Linux kernels, tracking the SourceForge version with about 6 months delay.<br />
<br />
== Packages ==<br />
*{{Fedora}} Packages(1): Fedora Core includes the ipw2200-drivers in FC3 (with updates) and FC4. You still need to grab the firmware from http://rpm.livna.org/<br />
*{{Fedora}} Packages(2): http://www.atrpms.net/name/ipw2200/ <br />
*{{Mandriva}}: The ipw2200 driver modules are included in the stock kernel package; the firmware is included in the commercial distribution or available from http://plf.zarb.org/.<br />
*{{Gentoo}}: The driver is in the portage tree: emerge net-wireless/ipw2200 and net-wireless/ipw2200-firmware<br />
*{{Debian}} Sarge includes the source code for the modules in package ipw2200-source (http://packages.debian.org/ipw2200-source). You additionally need to download firmware manually.<br />
*{{Debian}} Etch includes a version of the modules in its kernel or for a later version install package ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64; or the source code for them in ipw2200-source (http://packages.debian.org/ipw2200-source) to compile one yourself. You additionally need to download firmware manually.<br />
<br />
== Status ==<br />
In development, usable, WEP 128bit encryption works, WPA and WPA2 work with drivers >= 1.0.2 using [[wpa_supplicant]], monitor/rfmon is supported as with version >= 1.0.6. Generally works well, but some users experience problems (especially with firmware restarts and with WPA functionality using [[wpa_supplicant]]). Passing the <tt>hwcrypto=0</tt> module parameter improves reliability for many users.<br />
<br />
The ipw2200 driver up to version 1.0.6 (in combination with some newer kernels) had a problem getting DHCP leases (it turned out to be a bug in the broadcasting code). Version 1.0.7 seems to have fixed this.<br />
<br />
Older ipw2200 driver versions shipped by many distributions have been reported to freeze a T43 after several minutes of intensive communication. Installing version 1.1.2 of the driver solved the problem.<br />
<br />
Latest stable versions:<br />
* ipw2200 driver: 1.2.0<br />
* firmware: 3.0<br />
* ieee80211 stack: 1.2.15<br />
<br />
Latest development versions:<br />
* ipw2200 driver: 1.2.2<br />
* firmware: 3.1<br />
* ieee80211 stack: 1.2.18<br />
<br />
Mainline kernels contain older (but mostly functional) versions of ipw2200 and ieee80211, and still require the addition of the [http://ipw2200.sourceforge.net/firmware.php firmware] files. To get the latest versions you need to separately install the [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack.<br />
<br />
==Installation==<br />
=== Source Code ===<br />
Download the latest [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack and install it:<br />
:{{cmdroot|tar xzvf ieee80211-1.2.15.tgz}}<br />
:{{cmdroot|cd ieee80211-1.2.15}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the latest [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and install it:<br />
:{{cmdroot|tar xzvf ipw2200-1.2.0.tgz}}<br />
:{{cmdroot|cd ipw2200-1.2.0}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
:{{cmdroot|tar xzvf ipw2200-fw-3.1.tgz -C /lib/firmware}}<br />
<br />
=== Debian Sarge ===<br />
{{cmdroot|apt-get install ipw2200-source}}<br />
<br />
{{cmdroot|module-assistant -t build ipw2200-source}}<br />
<br />
[is this how module-assistant works in Sarge?]<br />
<br />
=== Debian Etch ===<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching version 3.0 [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar -xvf ipw2200-fw-3.1.tgz -C /lib/firmware}}<br />
<br />
:{{cmdroot|mv /lib/firmware/ipw2200-fw-3.1/* /lib/firmware}}<br />
<br />
=== Debian Unstable ===<br />
Install ieee80211-source:<br />
:{{cmdroot|apt-get install ieee80211-source}}<br />
:{{cmdroot|module-assistant -t build ieee80211-source}}<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
There is a bug in the {{Debian}} package (last checked: Dec 30th 2005) that prevents from linking to <tt>ieee80211</tt> modules using module-assistant. In case it is not fixed in your version, fall back to the regular source installation procedure described above.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar xzvf ipw2200-fw-2.4.tgz -C /usr/lib/hotplug/firmware}}<br />
<br />
see /etc/hotplug/firmware.agent for details on configured firmware locations<br />
<br />
Make sure that your firmware files are not in a subdirectory (dmesg will give you warnings after any modprobe when firmware can't be loaded)<br />
<br />
=== Fedora Core ===<br />
Installation on Fedora Core 5 works out of the box provided you install the ipw2200-firmware package. However, certain parts of the install process may not set up the wireless networking in a friendly manner using GNOME system tray icons and other tools. Bill Moss has written some excellent HowTo articles, including using VPNC to connect to a remote Cisco IPSec network.<br />
<br />
* [http://www.ces.clemson.edu/linux/fc2-ipw2200.shtml Fedora Core 5 and the IPW2200 Wireless Driver]<br />
* [http://www.ces.clemson.edu/linux/nm.shtml Fedora Core 5 NetworkManager, NetworkManager-vpnc and Wireless Driver IPW2200]<br />
<br />
== Testing the driver ==<br />
:{{cmdroot|modprobe ipw2200}}<br />
:{{cmdroot|iwconfig}}<br />
<br />
{{cmdroot|dmesg}} output might look similar to this:<br />
ieee80211: 802.11 data/management/control stack, 1.1.6<br />
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com><br />
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.8<br />
ipw2200: Copyright(c) 2003-2005 Intel Corporation<br />
ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection<br />
<br />
NB: To make the wifi LED work on the thinkpad, pass the option {{bootparm|led|1}} to the kernel while loading the module. eg. {{cmdroot|1=modprobe ipw2200 led=1}}. This can also be accomplished by adding that option to the file where your distribution looks for modprobe options so that it becomes automatic.<br />
<br />
In debian this can be done by putting a file named after the module in /etc/modutils with the options in it<br />
<br />
here we might run a cmd like this<br />
<br />
:{{cmdroot|1=echo options ipw2200 led=1 > /etc/modutils/ipw2200 }}<br />
<br />
then we must run update-modules to remake /etc/module.conf<br />
<br />
:{{cmdroot|update-modules}}<br />
<br />
== WPA support ==<br />
<br />
Use [[wpa_supplicant]] with the <tt>-Dwext</tt> argument (not <tt>-Dipw</tt>), and pass the <tt>hwcrypto=0</tt> argument to the <tt>ipw2200</tt> module.<br />
<br />
There are some very detailed instructions with working sample configurations on the following link:<br />
[http://www.bughost.org/ipw/wpa_howto.txt ipw2200 WPA instruction]<br />
<br />
== Power Management ==<br />
The ipw2200 driver has power management capabilities, which comes in handy while operating on battery. <br />
<br />
To enable reduced power consumption mode, issue: <br />
:{{cmdroot|iwpriv wlan0 set_power 7}}<br />
where <tt>wlan0</tt> is the name of your interface. This will reduce idle power consumption by 1-2 Watts compared to no power management. To return to the "normal" operation mode, you can issue:<br />
:{{cmdroot|iwpriv wlan0 set_power 6}}.<br />
<br />
In order to check current settings, you can issue:<br />
:{{cmdroot|iwpriv wlan0 get_power}}.<br />
<br />
More information on these option is available in the {{path|README.ipw3945}} file in the <tt>ipw3945</tt> package ({{path|README.ipw2200}} seems to be rather sketchy about the details of power management). You may want to turn power management on/off on demand in an ACPI script that catches battery/AC events, so that this happens automatically.<br />
<br />
Note that there have been [http://www.bughost.org/bugzilla/show_bug.cgi?id=1074 reports] that some versions of ipw2200 react with a firmware error to power management commands. This [http://www.bughost.org/bugzilla/attachment.cgi?id=1024 patch] could alleviate the problem.<br />
<br />
*To disable the radio (and further reduce power consumption) when the card is not in use, issue:<br />
:{{cmdroot|echo 1 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To enable the radio, issue:<br />
:{{cmdroot|echo 0 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To make the radio off by default after boot, add <br />
options ipw2200 disable=1<br />
to your {{path|/etc/modprobe.conf}} or equivalent (on kubuntu 6.10 {{path|/etc/modprobe.d/options}}).<br />
<br />
See {{path|README.ipw2200}} in the <tt>ipw2200</tt> package for details and other options.<br />
<br />
== Changing the enabled channels ==<br />
Permitted WiFi channels vary with geography due to regulation. The EEPROM in this chip contains a country code (programmed by the hardware manufacturer), and the driver converts this to a channel list and enforces it.<br />
<br />
If you carry your laptop to a different regulatory region, you may need to change the list of permitted channels according to local regulations. There are two ways to accomplish this:<br />
<br />
===Patching the ipw2200 driver===<br />
You can alter the ipw2200 driver sourcecode to hard-code the country code instead of reading it from EEPROM. For example, this will allow all 14 channels (perfect for those special occasions in international water):<br />
<pre><br />
--- ipw2200.c.orig<br />
+++ ipw2200.c<br />
@@ -11344,7 +11344,7 @@ static int ipw_up(struct ipw_priv *priv)<br />
memcpy(priv->net_dev->dev_addr, priv->mac_addr, ETH_ALEN);<br />
<br />
for (j = 0; j < ARRAY_SIZE(ipw_geos); j++) {<br />
- if (!memcmp(&priv->eeprom[EEPROM_COUNTRY_CODE],<br />
+ if (!memcmp("ZZR",<br />
ipw_geos[j].name, 3))<br />
break;<br />
}<br />
</pre><br />
<br />
For the list of codes and their meaning, see the "<tt>ipw_geos</tt>" table in the [http://lxr.free-electrons.com/source/drivers/net/wireless/ipw2x00/ipw2200.c#10382 ipw2200.c sourcecode].<br />
<br />
===Patching the EEPROM===<br />
<br />
Alternatively, you can change the country code in the EEPROM once and for all, and then use the standard ipw2200 driver.<br />
<br />
See this guide:<br />
* [http://saftware.de/#ipw2200 Patching the EEPROM].<br />
<br />
Instead of the <tt>hd</tt> program mentioned there, you can use the more common <tt>od</tt> program:<br />
echo -n ZZD | od -t x1<br />
0000000 5a 5a 44<br />
0000003<br />
<br />
{{WARN|If this procedure goes wrong, you may ruin your wireless card.}}<br />
<br />
== wpa_supplicant assigns a random SSID which wastes power ==<br />
<br />
Many wpa_supplicant versions implement disconnection by configuring a random SSID. The ipw2200 reacts in a very unfortunate way to this, intensively scanning for this random SSID and wasting power. This waste can be seen in powertop.<br />
<br />
Here are a number of ways to solve this problem:<br />
* Run <tt>iwconfig eth1 essid off</tt> after every wpa_supplicant disconnection.<br />
* Upgrade to wpa_supplicant version 0.7.1 or higher. Starting from git commit 3145e615 wpa_supplicant does not configure ipw2200 with a random SSID any more.<br />
* Backporting commit 3145e615 to wpa_supplicant version 0.6.8 also fixes the problem.<br />
<br />
<br />
== Additional Comments ==<br />
Your kernel may include an old version of the ipw2200 driver. It is recommended to use the latest version.<br />
<br />
Make sure you also install the firmware version needed by the driver version you use. You can find the firmware [http://ipw2200.sourceforge.net/firmware.php here]. To install it, decompress the <tt>.tgz</tt> file into {{path|/usr/lib/hotplug/firmware}} or {{path|/lib/firmware}} depending on your disto.<br />
<br />
The driver doesn't appear to support the MII interface, so any tools like automatic network configuration managers (i.e. whereami) that rely on mii-tool do not work.<br />
<br />
See incompatibility with some Access Points described on [[Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter#Problems|this other page]]<br />
<br />
== External links ==<br />
* [http://ipw2200.sourceforge.net/ Official website]<br />
<br />
[[Category:Drivers]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Problem_with_display_remaining_black_after_resume&diff=49987Problem with display remaining black after resume2010-11-13T09:21:33Z<p>MarcH: /* Affected Models */ my X40 is affected</p>
<hr />
<div>There has been a problem encountered where the display stays black on resuming from suspend.<br />
<br />
The symptom might have you think first that your system hang up, but you will realize that your ThinkPad works and you can even reset it via {{key|Ctrl}}{{key|Alt}}{{key|Del}}.<br />
<br />
==Affected Models==<br />
*ThinkPad {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}, {{T60p}}, {{T61}}, {{T61p}} {{T410s}}<br />
*Thinkpad {{T23}}<br />
*ThinkPad {{X21}}, {{X30}}, {{X31}}, {{X40}}, {{X41}}<br />
*ThinkPad {{R31}}, {{R50e}}{{footnote|1}}, {{R50p}}, {{R51}} (with BIOS 1.11), {{R52}}, {{R60}}, {{R61}}<br />
*ThinkPad {{A30p}}<br />
*ThinkPad {{390X}} (doesn't wake up; LCD backlight on, harddrive light remains on)<br />
*ThinkPad {{Z60t}}, {{Z60m}}, {{Z61m}}, {{Z61e}}<br />
*ThinkPad {{X40}}, {{X60s}}, {{X60}}, {{X61}}, {{X61s}}, {{X200}}, {{X200s}}, {{X201s}}<br />
<br />
==Affected Operating Systems==<br />
*Linux (it's a kernel issue)<br />
*FreeBSD (6.x at least)<br />
<br />
==Solutions==<br />
===Quick workaround for R61i, T23, maybe others===<br />
Try pressing CTRL+ALT+F1 to switch to text console. The backlight should come on normally. Press CTRL+ALT+F7 to return to X.<br />
<br />
This solution is not working on R61i using Debian Squeeze.<br />
<br />
On a T23 using Ubuntu Feisty, pressing Fn+F7 (external/internal display change) once or twice brought the display back. After upgrading to Ubuntu Gutsy it doesn't work anymore, but pressing Fn+F3 (blank screen) and Fn (restore display) works.<br />
<br />
===Quick Workaround for R61 (at least 8918-5QG) using NVidia===<br />
<br />
Use Vesa driver instead of the proprietary NVidia driver.<br />
<br />
===Quick Workaround for T61 (at least 7662-CTO) using NVidia Quadro NVS 140===<br />
<br />
Try pressing Fn+F4 to get the OS suspend to RAM. Nothing on the screen will indicate that the OS is being suspended except for the Sleep LED. Wake up the OS by pressing the Fn key. This induces an additional 5-10 seconds of work. But this has consistently worked with no issues.<br />
<br />
===Pseudo-solution for R61===<br />
On an R61 running Fedora Core 9, the nv driver fails to turn the backlight on after resuming from a suspend to RAM. I fixed this by using the proprietary NVIDIA Linux drivers (v177.82).<br />
<br />
=== Solution for ThinkPad Z60t ===<br />
<br />
* '''Display controller:''' Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)<br />
* '''Distro:''' Fedora release 7 (Moonshine)<br />
* '''Kernel:''' Linux 2.6.22.5-76.fc7<br />
<br />
The solution is straight forward - just to add configuration parameter for the default '''pm-utils''' package. Create file <code>/etc/pm/config.d/config</code> and put there one line <code>DISPLAY_QUIRK_S3_BIOS="true"</code>, or execute following command:<br />
<br />
echo DISPLAY_QUIRK_S3_BIOS=\"true\" >> /etc/pm/config.d/config<br />
<br />
===Semi-Solution for ThinkPad X60 with damaged system after s2ram usage===<br />
It happend when restarting a s2ram-session.<br />
<br />
'''Symptom:''' Black screen with blinking "_" sign remaind. (without the ")<br />
<br />
'''System status:''' HDD idle, fan running, everything else looks to wait for something to happen.<br />
<br />
'''Semi-Solution:''' Booting with DVD-ROM and going through the installations menu,<br />
where you choose "other" and "boot a installed system" (something like that). Gladly it works,<br />
and OpenSuSE 10.1 comes up with 50% "failed" messages! I than shutdown properly, rebooted again<br />
and had 100% "done" again, with no other things affected.<br />
<br />
'''Further:''' Repairing with the DVD-ROM crashed massivly(!), so I selected "boot a installed system" as final<br />
solution and it worked!<br />
<br />
'''Unknown:''' Maybe the Solution for ThinkPads with 1400x1050 internal LCD and Intel 915GM will help,<br />
because X60s and X60 are very familiar. (Not tested so far.)<br />
<br />
(If this Problem is not right here, please edit and move.)<br />
<br />
===Solution for ThinkPads with 1400x1050 internal LCD and Intel 915GM ===<br />
see [[1400x1050 on Intel 915GM]].<br />
===Solution for ThinkPads with ATI graphic chips and Intel 915/945GM ===<br />
<br />
Affected models include {{X41}}, {{X60s}}, {{X200s}}, {{R60}} and {{T60}}.<br />
<br />
This soluton also applies to T42 with Intel 855 and ATI 9600 M10.<br />
<br />
One solution may be to provide the {{bootparm|acpi_sleep|s3_bios}} kernel parameter in your kernel parameter line.<br />
<br />
For grub this would look like this:<br />
<br />
title Linux, kernel 2.6.11-1-686<br />
root (hd0,0)<br />
kernel /boot/vmlinuz-2.6.11-1-686 root=/dev/hda1 ro acpi_sleep=s3_bios<br />
initrd /boot/initrd.img-2.6.11-1-686<br />
savedefault<br />
boot<br />
<br />
For lilo it would look like this:<br />
<br />
image=/boot/vmlinuz<br />
append="acpi_sleep=s3_bios"<br />
<br />
The actual process of going to sleep is then managed through a sleep script; as a start, see the {{path|sleep.sh}} script in the Extreme Graphics 2 section below, but note the following comments:<br />
<br />
In [[:Category:OpenSUSE|OpenSUSE]] 10.1 (at least on a T43p), it's necessary to override the default options for s2ram if you're using the newer ATI driver. This can be done putting {{bootparm|SUSPEND2RAM_FORCE|"yes"}} and {{bootparm|SUSPEND2RAM_ACPI_SLEEP|"3"}} in {{path|/etc/powersave/sleep}}.<br />
<br />
In {{Ubuntu}} or {{Kubuntu}}, it may be necessary to modify {{path|/etc/default/acpi-support}}. In that file, make sure that {{path|ACPI_SLEEP}} is uncommented and set to true. With ATI chips, also make sure that {{path|SAVE_VBE_STATE}} is uncommented and set to true; with Intel chips, on the other hand, ensure that nothing is done with respect to VBE--no reposts, no state saves. Also commenting POST_VIDEO may help. <br />
<br />
In {{Fedora}}, it may be necessary with the Intel chips to edit the {{path|resume_video()}} function in {{path|/etc/pm/functions-intel}} to comment out the VBE post and restore. (As of FC6 these seem to be pre-commented out.) Also, the laptop, after waking up, may go back to sleep immediately or whenever the AC adapter is disconnected. When this happens, it's caused by a bug in the HAL daemon that incorrectly reports certain ACPI events. This is a known problem and a simple workaround is described [http://live.gnome.org/GnomePowerManager/Faq#head-b8b1280115b0a51c2cc27b13a57121130ebf36cb here].<br />
<br />
{{NOTE|It is possible this method will not work if the laptop is docked. It is also possible that the cited workaround for the HAL daemon bug will not work on some machines. A kludgier workaround in this event is to kill the HAL daemon on suspend. This necessitates the resuscitation of GPM upon resume.}}<br />
<br />
Another solution is to use vbetool. If you are using {{Debian}} with the hibernate package, uncomment "EnableVbetool yes" in {{path|/etc/hibernate/hibernate.conf}} (or {{path|/etc/hibernate/ram.conf}}).<br />
<br />
<br />
----<br />
<br />
On '''T60 2007-CTO''' (Core2Duo 2Ghz, 2GB Ram, ATI X1400) the screen stayed blank after suspend-to-ram until I set '''vga=0''' in lilo.conf.<br />
<br />
Working config:<br />
Linux 2.6.21.5<br />
fglrx 8.37.6<br />
debian etch:<br />
powersaved 0.14.0-5:<br />
UNLOAD_MODULES_BEFORE_SUSPEND2DISK="usb_storage ohci_hcd uhci_hcd ehci_hcd ipw3945 pcmcia yenta_socket rsrc_nonstatic pcmcia_core"<br />
UNLOAD_MODULES_BEFORE_SUSPEND2RAM="usb_storage ohci_hcd uhci_hcd ehci_hcd ipw3945 pcmcia yenta_socket rsrc_nonstatic pcmcia_core" <br />
hibernate:<br />
SwitchToTextMode yes<br />
lilo.conf:<br />
vga=0<br />
<br />
"EnableVbetool yes" and other suggestions didn't work for me.<br />
<br />
For suspend-to-disk, don't load fglrx in initrd.<br />
<br />
----<br />
<br />
On '''T60-20076RG''' (Core2Duo 2GHz, ATI X1400) with {{OpenSUSE}} 11.1 and fglrx 8-12 the following had to be done to get suspend to RAM always resume:<br />
* Add {{bootparm|S2RAM_QUIRKS_SOURCE|"s2ram"}} to file {{path|/etc/pm/config.d/config}}<br />
* Create an executable script {{path|/etc/pm/sleep.d/00text}} containing:<br />
#!/bin/bash<br />
<br />
case "$1" in<br />
hibernate|suspend)<br />
/bin/chvt 1<br />
;;<br />
thaw|resume)<br />
/bin/chvt 7<br />
;;<br />
esac<br />
<br />
There seems to be a bug ([https://bugzilla.novell.com/show_bug.cgi?id=463434 Novell bugzilla]) which makes it impossible for s2ram to switch to text console while suspending through pm-suspend. The script above forces console change. Along with setting s2ram as quirks source (which makes it correctly set acpi_bios before suspend - to s3_bios,s3_mode<br />
for T60 2007*) this can make resume work flawlessly despite using vesafb.<br />
<br />
===Solution for ThinkPads with Intel Extreme Graphics 2===<br />
{{NOTE|<br />
On [[:Category:X40|X40]]s/[[:Category:X41|X41]]s - even with Intel Extreme Graphics - and for [[:Category:R52|R52]]s with Intel Graphics Media Accelerator 900 the [[Problem with display remaining black after resume#Solution for ThinkPads with ATI graphic chips|solution for ATI graphics chips]] above is reported to work. In this case, make sure no changes to VBE are made, especially no state saves and no reposts.}}<br />
<br />
The following solution should work on 865G, 865GV, 855GM, 855GME, 852GME chipsets.<br />
*First of all, '''do not''' use the {{bootparm|acpi_sleep|s3_bios}} kernel parameter.<br />
*Second, completely remove framebuffer support from your kernel. If it's built as modules, it is important that they do not get loaded at all.<br />
*Before suspending, change to a console and safe the video state with {{cmdroot|cat /proc/bus/pci/00/02.0 > /tmp/video_state}}.<br />
*On resume, restore the video state with {{cmdroot|cat /tmp/video_state > /proc/bus/pci/00/02.0}} and change back to X.<br />
*For Debian Etch 4.0 on R50e just make following changes to /etc/default/acpi-support:<br />
#SAVE_VBE_STATE=true<br />
#VBESTATE=/var/lib/acpi-support/vbestate<br />
#POST_VIDEO=true<br />
SAVE_VIDEO_PCI_STATE=true<br />
<br />
*For a R50e the only thing needed to make suspend to ram work in Ubuntu 6.06 is adding<br />
Option "VBERestore" "yes"<br />
to the <tt>Device</tt> section in your {{path|/etc/X11/xorg.conf}}, and the example script below.<br />
<br />
The following example {{path|/etc/acpi/actions/sleep.sh}} script shows how to integrate the according lines.<br />
<br />
#!/bin/bash<br />
<br />
# change to console 1<br />
FGCONSOLE=`fgconsole`<br />
chvt 6<br />
<br />
# safe video state<br />
cat /proc/bus/pci/00/02.0 > /tmp/video_state<br />
<br />
# sync filesystem<br />
sync<br />
<br />
# sync hardware clock with system time<br />
hwclock --systohc<br />
<br />
# go to sleep<br />
echo -n 3 > /proc/acpi/sleep<br />
<br />
# waking up<br />
# restore system clock<br />
hwclock --hctosys<br />
<br />
# restore video state<br />
cat /tmp/video_state > /proc/bus/pci/00/02.0<br />
<br />
# change back to X<br />
chvt $FGCONSOLE<br />
<br />
# clean up behind us<br />
rm /tmp/video_state<br />
<br />
With Ubuntu 6.10 on a [[:Category:R51|R51 (2887-32G)]] I ''just'' (as none of the other tricks above) had to add {{bootparm|fb|false}} to the kernel line in {{path|/etc/grub/menu.lst}} and edit {{path|/etc/defaults/acpi-support}} this way:<br />
<br />
SAVE_VBE_STATE=false<br />
POST_VIDEO=false<br />
SAVE_VIDEO_PCI_STATE=true<br />
USE_DPMS=false<br />
DOUBLE_CONSOLE_SWITCH=false<br />
<br />
===Solution for ThinkPads with Intel I830 Chipset===<br />
The following solution worked for me on an X30 with I830M chipset with kernel >= 2.6.16.<br />
<br />
it *almost* works on my T400S (intel mobile 4 integrated graphics) and kernel lenny-2.6.30-amd64, but see below for better solution. (sometimes, it doesn't wake up at all, probably because some kernel modules unrelated to video don't like this suspend method. once, i had to restart gdm. i am using a weird setup if two gdm sessions on two virtual terminals, don't know if that's required to reproduce the latter problem.)<br />
<br />
this works with vesafb and also with intelfb frambuffer support.<br />
<br />
The following example {{path|/etc/acpi/actions/sleep.sh}} script shows how to integrate the according lines.<br />
<br />
#!/bin/bash<br />
<br />
FGCONSOLE=`fgconsole`<br />
chvt 8<br />
sync<br />
hwclock --systohc<br />
<br />
echo -n "mem" > /sys/power/state<br />
<br />
hwclock --hctosys<br />
vbetool post<br />
<br />
if [ "$FGCONSOLE" -ge "7" ] ; then<br />
chvt $FGCONSOLE<br />
else<br />
chvt 7<br />
chvt $FGCONSOLE<br />
fi<br />
<br />
If it still doesn't work try to add<br />
Option "ForceEnablePipeA" "true"<br />
to the <tt>Device</tt> section in your {{path|/etc/X11/xorg.conf}}.<br />
<br />
===Solution for ThinkPads with ATI graphic (and possibly other) chips and FreeBSD===<br />
<br />
The FreeBSD acpi(4) manpage mentions a tunable parameter, "hw.acpi.reset_video":<br />
<br />
hw.acpi.reset_video<br />
Reset the video adapter from real mode during the resume path.<br />
Some systems need this help, others have display problems if it<br />
is enabled. Default is 0 (disabled).<br />
<br />
This tunable can be set by adding the following line to your FreeBSD machine's /boot/loader.conf file:<br />
<br />
hw.acpi.reset_video="1"<br />
<br />
And rebooting your machine. Hopefully, the next time you resume from a suspend, you'll see your video again. This solution doesn't appear to be specific to ATI hardware in any way, so I presume it would be helpful for video chipsets other than ATI, as well.<br />
<br />
If this entry doesn't help you, you might consider searching in the [http://lists.freebsd.org/pipermail/freebsd-mobile/ FreeBSD-Mobile email-list archive] for more insight.<br />
<br />
<br />
{{footnotes|<br />
#If you have this problem with R50e and the above solution doesn't work, try switching to console first. An example sleep script can be found [[How to configure acpid|here]].<br />
}}<br />
<br />
===Solution using s2ram for Intel 915/945GM===<br />
<br />
Just using the "s2ram -f -p" command from the uswsusp package will work from within X, at least on a {{Z61e}}. On {{X60s}} it is enough to issue the "s2ram" command and it works. On {{X61}} "s2ram -f -a 1" can work properly. Best idea seems to be to put this into the corresponding acpi script:<br />
<br />
% cat /etc/acpi/sleep.sh <br />
#!/bin/sh<br />
test -f /usr/share/acpi-support/power-funcs || exit 0<br />
test -f /usr/sbin/s2ram || exit 0<br />
rmmod usb_storage<br />
rmmod uhci_hcd<br />
rmmod ehci_hcd<br />
/usr/sbin/s2ram -f -a 1 -m<br />
modprobe uhci_hcd<br />
modprobe ehci_hcd<br />
modprobe usb_storage<br />
<br />
Source: [http://d.hatena.ne.jp/conceal-rs/20080309/1205083315 http://d.hatena.ne.jp/conceal-rs/20080309/1205083315]<br />
Works on my X61.<br />
<br />
T400S (intel mobile 4 integrated graphics) and kernel lenny-2.6.30-amd64: seems good so far (around 5 suspends without problems).<br />
<br />
===Solution using DOUBLE_CONSOLE_SWITCH===<br />
<br />
By setting the following in {{path|/etc/default/acpi-support}} the display comes back on {{X61s}} using Intel chipset:<br />
<br />
DOUBLE_CONSOLE_SWITCH=true<br />
<br />
Fedora 8 doesn't have DOUBLE_CONSOLE_SWITCH, but it works when one does: First, add option "VBERestore" "true" to /etc/X11/xorg.conf<br />
<br />
Section "Device"<br />
Identifier "Videocard0"<br />
Driver "intel"<br />
Option "VBERestore" "true" <br />
EndSection<br />
<br />
Then suspends with<br />
<br />
pm-suspend --quirk-vbemode-restore --quirk-s3-bios<br />
<br />
===Solution for nvidia-drivers-180* series===<br />
<br />
The proprietary NVidia drivers of the 180 series introduce several problems with suspend to ram:<br />
<br />
* Situation 1: Suspend from console, '''no''' X-Server running:<br/><br />
You might need to use vbetool to save and restore the vbestate.<br />
When using hibernate-script, this can be done by setting the following config variables:<br />
EnableVbetool yes<br />
RestoreVbeStateFrom /var/lib/vbetool/vbestate<br />
VbetoolPost yes<br />
<br />
You may need to run <code>mkdir -p /var/lib/vbetool && vbetool vbestate save > /var/lib/vbetool/vbestate</code> first.<br />
<br />
On newer distributions, you might need to '''not''' use vbetool. On a Ubuntu Hardy with Linux 2.6.24, and probably on other Debian-based distributions, edit '/etc/default/acpi-support' and set 'SAVE_VBE_STATE=false'. <br />
<br />
* Situation 2: Suspend from running X-Server:<br/><br />
You '''cannot''' use vbetool or any other quirks, since it seems to confuse the nvidia X driver. That means you should enter S3 simply by doing <code>echo mem > /sys/power/state</code>.<br />
<br />
If you have your hotkeys handled by acpid, you might differentiate those two cases by checking for a running X process in your hotkey handler (i.e. <code>/etc/acpid/default.sh</code>):<br />
pgrep -x X > /dev/null \ # checks for running process with name "X"<br />
&& echo mem > /sys/power/state # if found, do plain S3 suspend<br />
|| hibernate-ram # otherwise, run quirked script<br />
<br />
Furthermore, it seems to be a good idea to use the 180 series with a 2.6.28* kernel.<br />
<br />
It has been reported that acpi_sleep=S3_bios should be used instead of acpi_sleep=S3_mode<br />
as a boot option.<br />
<br />
See, http://www.nvnews.net/vbulletin/showthread.php?t=123303&highlight=suspend&page=6<br />
<br />
<br />
It might also help to put <code>blacklist intel_agp </code><br />
in <code>/etc/modprobe.d/blacklist<br />
<br />
Finally, it seems to depend on precise model nr.<br />
See<br />
https://bugs.launchpad.net/ubuntu/+bug/235284<br />
for a discussion and patch.<br />
<br />
=== Quirk workaround for T410s ===<br />
The vbe post quirk in pm-utils works on a T410s 29123KC.<br />
<br />
On Debian sid pm-utils script is hacked to apply '--quirk-vbe-post' when kms is in place.</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Problem_with_USB_2.0&diff=49331Problem with USB 2.02010-08-10T23:08:38Z<p>MarcH: /* See Also */ link to T42 USB ports not working</p>
<hr />
<div>==Problem description==<br />
On various (early?) T40 models, USB 2.0 may not function, or may function only at USB 1.1 speeds. Symptoms include inability to connect to USB 2.0 devices at USB 2.0 speeds, the "This device can perform faster" pop-up in Windows XP, device ID assignment error messages from the Linux kernel, and frequent reboots of the USB bus and connected devices.<br />
<br />
==Possible Causes==<br />
So far, two possible causes have been suggested. In both cases, replacing the system board is the only solution.<br />
<br />
===Fried Southbridge USB controller===<br />
The Southbridge chip (containing the USB controller) may have been damaged by static electricity:<br />
<br />
{{QUOTE|Matthias Himber|[http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-June/026884.html linux-thinkpad]|<br />
Short answer: your southbridge is about to die, get your system board replaced. Hopefully its still under warranty.<br />
<br />
Long answer: a number of Intel chipsets for Pentium IV and Pentium M processors have a design flaw that makes the southbridge (which contains the USB host controllers) especially sensitive to static electricity. As a result <br />
there is a (small) risk that when plugging in or removing a USB device causes damage to the chip. Usually, the first symptom is broken USB 2.0, behaving in exactly the way you described (ie, works under Windows, but only after some waiting and as if it was connected to a USB 1.1 controller, not a USB 2.0 one, and not at all under Linux unless you unload the USB 2.0 driver). This tends to lead to a completely dead chipset a short time later, so better get it serviced NOW.<br />
}}<br />
<br />
====Models affected====<br />
* {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}<br />
* {{X40}}<br />
<br />
===Mechanical Damage to Mainboard===<br />
Mechanical damage (from bending, dropping or vibrating the laptop) can lead to components becoming desoldered from the mainboard and no longer having reliable electrical contact:<br />
{{QUOTE|?|?|<br />
My T41 shows the same symptoms. USB 2.0 works if I (gently) push the USB plug, or if I slightly flex my thinkpad. For example, it works when I put a pencil under the harddrive on an otherwise flat desk, so that the thinkpad only makes contact with the desk at 3 points (I type on an external keyboard). If I flex the other way, USB 2.0 never works. USB 1.1 always works reliably, irregardless of flexing / pushing the plug.<br />
}}<br />
<br />
The same behavior has also been observed on a T42, where the EHCI controller stopped working after structural damage to the laptop. Plugging in a USB 2.0 capable device will yield the following error in '''dmesg''':<br />
{{QUOTE|?|?|<br />
usb 4-4: new high speed USB device using ehci_hcd and address XX<br /><br />
hub 4-0:1.0: unable to enumerate USB device on port 4<br /><br />
hub 4-0:1.0: unable to enumerate USB device on port 4<br /><br />
hub 4-0:1.0: unable to enumerate USB device on port 4<br /><br />
}}<br />
Flexing the right palmrest area up will temporarily make the USB 2.0 recognizable again. Tightening the screws on the bottom and front edge of the laptop may also fix the problem.<br />
<br />
<br />
Clearly, this is an electrical problem and not static electricity.<br />
<br />
==Solutions==<br />
This seems to be a hardware problem with the USB controller on Intel's chip or related electronics. Sending the laptop in for service may help.<br />
<br />
If the Linux kernel refuses to register the USB device, you can try removing or disabling the ehci_hcd part. Doing this means that USB devices will run at USB 1.1 speeds, which is supported by pretty much every USB device for backwards compatibility. This is not a problem for USB Keyboards and Mice as they are typically USB 1.1 anyway, but for USB storage devices it can slow things down dramatically.<br />
===removing ehci_hcd===<br />
If the {{path|ehci_hcd}} support in your distribution is built as a loadable module, you can simply unload it with {{cmdroot|modprobe -r ehci_hcd}}.<br />
To unload it automatically on bootup, you can add the above command to {{path|/etc/rc.local}}.<br />
<br />
Or alternatively to prevent the module from ever loading, add {{path|ehci_hcd}} to {{path|/etc/modprobe.d/blacklist.conf}} (or {{path|/etc/modprobe.d/blacklist}}). But note that adding it to the blacklist file might not be enough by itself as most distributions load the ehci_hcd module already during initrd, as such you might need to rebuild your initrd after adding it to the blacklist for it to have effect.<br />
<br />
To rebuilt your initrd on a Red Hat/Fedora system, run the following command<br />
mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r)<br />
<br />
===disabling ehci_hcd===<br />
If your distribution (like Fedora 11) instead compiled the ehci_hcd support directly into the kernel, you cannot unload or blacklist it.<br />
<br />
In such cases you can unbind it in sysfs, but first we need to find what the PCI device number of the EHCI controller is as follows;<br />
lspci|grep -i ehci<br />
<br />
On a ThinkPad {{T41}} this returns<br />
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)<br />
<br />
To unbind the ehci_hcd support from the PCI device, run the following command (adjust PCI location, based on lspci result)<br />
echo -n "0000:00:1d.7" > /sys/bus/pci/drivers/ehci_hcd/unbind<br />
<br />
To automatically unload it on bootup, simply add the last command to {{path|/etc/rc.local}}.<br />
<br />
== See Also ==<br />
[http://forums.cnet.com/5208-7586_102-0.html?forumID=68&threadID=151816 IBM X40 USB Problem] (fried USB on multiple {{X40}}s)<br />
<br />
[http://www.oneafrikan.com/2006/03/03/ibm-t42p-thinkpad-usb-ports-not-working/ T42 USB ports not working]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter&diff=45465Intel PRO/Wireless 2200BG Mini-PCI Adapter2010-01-27T09:59:20Z<p>MarcH: /* Problems */ fixed URL moved by Intel</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
<br />
This is a Mini-PCI WiFi Adapter that is installed in a Mini-PCI slot.<br />
<br />
== Features ==<br />
* Chipset: Intel 2200<br />
* IEEE Standards: 802.11b, 802.11g<br />
* PCI ID: 8086:4220<br><br />
* Operating temperature: 0 to 80 degrees Celsius<br />
* Maximum transmit power(as reported by ipw2200): 100mW<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:mini-pci-wifi-card.gif|Mini-PCI WiFi Adapter]]<br />
|}<br />
<br />
<br />
== IBM Partnumbers ==<br />
* IBM Option PN (NA): 73P2801<br />
* IBM Option PN (WW): 73P2802<br />
* IBM FRU PN (NA): 93P4168, 93P3483<br />
* IBM FRU PN (WW): 93P4170, 93P3485<br />
{{NOTE| Only the IBM Parts will work, any other parts will give an 1802 error on Post because the sub-vendor PCI ID is different, see [[Problem with unauthorized MiniPCI network card]] for more details and solutions.}}<br />
<br />
== Also known (in IBM literature) as.... ==<br />
* Intel PRO/Wireless 2200 BG Mini-PCI Adapter from IBM<br />
* 802.11b/g Intel wireless card<br />
<br />
== Support ==<br />
This adapter is supported by the Linux [[ipw2200]] driver.<br />
<br />
== Problems ==<br />
There are countless reports of stability issues in public forums. Intel recognises at least [http://www.intel.com/support/wireless/wlan/sb/CS-006205.htm one compatibility problem with some APs] and advises to disable the power saving feature.<br />
<br />
Some people seem to achieve stability using a random combination of these workarounds:<br />
* disable power savings as explained by Intel above<br />
* upgrade/downgrade driver<br />
* upgrade AP firmware / try a different AP<br />
* disable 802.11g and stick to 802.11b<br />
* tweaking other driver settings<br />
<br />
On linux, forcing a rate reduction was enough to fix the problem (adaptive rate does not seem to work)<br />
iwconfig eth1 rate 1M<br />
<br />
== ThinkPads this card may be found in ==<br />
* {{R50e}}, {{R51}}, {{R52}}<br />
* {{T42}}, {{T42p}}, {{T43}}, {{T43p}}<br />
* {{X31}}, {{X32}}<br />
* {{X40}}, {{X41}}, {{X41T}}<br />
* {{Z60m}}<br />
<br />
== Related Links ==<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54903 MIGR-54903 Specification]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54910 MIGR-54910 Users' Guide]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54904 MIGR-54904 Service Parts]<br />
* [http://support.intel.com/support/wireless/wlan/pro2200bg/ Official support page]<br />
* [ftp://download.intel.com/network/connectivity/resources/doc_library/tech_brief/2200bg_prodbrief.htm Product Overview]<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Ipw2200&diff=45464Ipw22002010-01-27T09:57:52Z<p>MarcH: /* Additional Comments */</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
<br />
The '''Ipw2200''' is the Linux driver for the [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]] found in [[Centrino]] laptops. This driver only works on 2.6.x kernels (2.6.4 or newer).<br />
<br />
Starting with kernels 2.6.14 the driver is included in kernel.<br />
<br />
{{NOTE|Make sure you have installed the firmware! The ipw2200 documentation will tell you where to find these firmware files and where to install those.}}<br />
<br />
Included in mainline Linux kernels, tracking the SourceForge version with about 6 months delay.<br />
<br />
== Packages ==<br />
*{{Fedora}} Packages(1): Fedora Core includes the ipw2200-drivers in FC3 (with updates) and FC4. You still need to grab the firmware from http://rpm.livna.org/<br />
*{{Fedora}} Packages(2): http://www.atrpms.net/name/ipw2200/ <br />
*{{Mandriva}}: The ipw2200 driver modules are included in the stock kernel package; the firmware is included in the commercial distribution or available from http://plf.zarb.org/.<br />
*{{Gentoo}}: The driver is in the portage tree: emerge net-wireless/ipw2200 and net-wireless/ipw2200-firmware<br />
*{{Debian Sarge}} includes the source code for the modules in package ipw2200-source (http://packages.debian.org/ipw2200-source). You additionally need to download firmware manually.<br />
*{{Debian Etch}} includes a version of the modules in its kernel or for a later version install package ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64; or the source code for them in ipw2200-source (http://packages.debian.org/ipw2200-source) to compile one yourself. You additionally need to download firmware manually.<br />
<br />
== Status ==<br />
In development, usable, WEP 128bit encryption works, WPA and WPA2 work with drivers >= 1.0.2 using [[wpa_supplicant]], monitor/rfmon is supported as with version >= 1.0.6. Generally works well, but some users experience problems (especially with firmware restarts and with WPA functionality using [[wpa_supplicant]]). Passing the <tt>hwcrypto=0</tt> module parameter improves reliability for many users.<br />
<br />
The ipw2200 driver up to version 1.0.6 (in combination with some newer kernels) had a problem getting DHCP leases (it turned out to be a bug in the broadcasting code). Version 1.0.7 seems to have fixed this.<br />
<br />
Older ipw2200 driver versions shipped by many distributions have been reported to freeze a T43 after several minutes of intensive communication. Installing version 1.1.2 of the driver solved the problem.<br />
<br />
Latest stable versions:<br />
* ipw2200 driver: 1.2.0<br />
* firmware: 3.0<br />
* ieee80211 stack: 1.2.15<br />
<br />
Latest development versions:<br />
* ipw2200 driver: 1.2.2<br />
* firmware: 3.1<br />
* ieee80211 stack: 1.2.18<br />
<br />
Mainline kernels contain older (but mostly functional) versions of ipw2200 and ieee80211, and still require the addition of the [http://ipw2200.sourceforge.net/firmware.php firmware] files. To get the latest versions you need to separately install the [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack.<br />
<br />
==Installation==<br />
=== Source Code ===<br />
Download the latest [http://ieee80211.sourceforge.net/downloads.php ieee80211] stack and install it:<br />
:{{cmdroot|tar xzvf ieee80211-1.2.15.tgz}}<br />
:{{cmdroot|cd ieee80211-1.2.15}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the latest [http://ipw2200.sourceforge.net/downloads.php ipw2200] module and install it:<br />
:{{cmdroot|tar xzvf ipw2200-1.2.0.tgz}}<br />
:{{cmdroot|cd ipw2200-1.2.0}}<br />
:{{cmdroot|make}}<br />
:{{cmdroot|make install}}<br />
<br />
Download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
:{{cmdroot|tar xzvf ipw2200-fw-3.1.tgz -C /lib/firmware}}<br />
<br />
=== Debian Sarge ===<br />
{{cmdroot|apt-get install ipw2200-source}}<br />
<br />
{{cmdroot|module-assistant -t build ipw2200-source}}<br />
<br />
[is this how module-assistant works in Sarge?]<br />
<br />
=== Debian Etch ===<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching version 3.0 [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar -xvf ipw2200-fw-3.1.tgz -C /lib/firmware}}<br />
<br />
:{{cmdroot|mv /lib/firmware/ipw2200-fw-3.1/* /lib/firmware}}<br />
<br />
=== Debian Unstable ===<br />
Install ieee80211-source:<br />
:{{cmdroot|apt-get install ieee80211-source}}<br />
:{{cmdroot|module-assistant -t build ieee80211-source}}<br />
<br />
The kernel includes a version but if you want a more recent version install the module ipw2200-modules-2.6-486 or ipw2200-modules-2.6-686 or ipw2200-modules-2.6-686-bigmem or ipw2200-modules-2.6-k7 or ipw2200-modules-2.6-amd64 depending on your architecture.<br />
<br />
There is a bug in the {{Debian}} package (last checked: Dec 30th 2005) that prevents from linking to <tt>ieee80211</tt> modules using module-assistant. In case it is not fixed in your version, fall back to the regular source installation procedure described above.<br />
<br />
The firmware is not distributed with Debian due to licensing reasons, download the matching [http://ipw2200.sourceforge.net/firmware.php firmware] and install it:<br />
<br />
:{{cmdroot|tar xzvf ipw2200-fw-2.4.tgz -C /usr/lib/hotplug/firmware}}<br />
<br />
see /etc/hotplug/firmware.agent for details on configured firmware locations<br />
<br />
Make sure that your firmware files are not in a subdirectory (dmesg will give you warnings after any modprobe when firmware can't be loaded)<br />
<br />
=== Fedora Core ===<br />
Installation on Fedora Core 5 works out of the box provided you install the ipw2200-firmware package. However, certain parts of the install process may not set up the wireless networking in a friendly manner using GNOME system tray icons and other tools. Bill Moss has written some excellent HowTo articles, including using VPNC to connect to a remote Cisco IPSec network.<br />
<br />
* [http://www.ces.clemson.edu/linux/fc2-ipw2200.shtml Fedora Core 5 and the IPW2200 Wireless Driver]<br />
* [http://www.ces.clemson.edu/linux/nm.shtml Fedora Core 5 NetworkManager, NetworkManager-vpnc and Wireless Driver IPW2200]<br />
<br />
== Testing the driver ==<br />
:{{cmdroot|modprobe ipw2200}}<br />
:{{cmdroot|iwconfig}}<br />
<br />
{{cmdroot|dmesg}} output might look similar to this:<br />
ieee80211: 802.11 data/management/control stack, 1.1.6<br />
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com><br />
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.8<br />
ipw2200: Copyright(c) 2003-2005 Intel Corporation<br />
ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection<br />
<br />
NB: To make the wifi LED work on the thinkpad, pass the option {{bootparm|led|1}} to the kernel while loading the module. eg. {{cmdroot|1=modprobe ipw2200 led=1}}. This can also be accomplished by adding that option to the file where your distribution looks for modprobe options so that it becomes automatic.<br />
<br />
In debian this can be done by putting a file named after the module in /etc/modutils with the options in it<br />
<br />
here we might run a cmd like this<br />
<br />
:{{cmdroot|1=echo options ipw2200 led=1 > /etc/modutils/ipw2200 }}<br />
<br />
then we must run update-modules to remake /etc/module.conf<br />
<br />
:{{cmdroot|update-modules}}<br />
<br />
== WPA support ==<br />
<br />
Use [[wpa_supplicant]] with the <tt>-Dwext</tt> argument (not <tt>-Dipw</tt>), and pass the <tt>hwcrypto=0</tt> argument to the <tt>ipw2200</tt> module.<br />
<br />
There are some very detailed instructions with working sample configurations on the following link:<br />
[http://www.bughost.org/ipw/wpa_howto.txt ipw2200 WPA instruction]<br />
<br />
== Power Management ==<br />
The ipw2200 driver has power management capabilities, which comes in handy while operating on battery. <br />
<br />
To enable reduced power consumption mode, issue: <br />
:{{cmdroot|iwpriv wlan0 set_power 7}}<br />
where <tt>wlan0</tt> is the name of your interface. This will reduce idle power consumption by 1-2 Watts compared to no power management. To return to the "normal" operation mode, you can issue:<br />
:{{cmdroot|iwpriv wlan0 set_power 6}}.<br />
<br />
In order to check current settings, you can issue:<br />
:{{cmdroot|iwpriv wlan0 get_power}}.<br />
<br />
More information on these option is available in the {{path|README.ipw3945}} file in the <tt>ipw3945</tt> package ({{path|README.ipw2200}} seems to be rather sketchy about the details of power management). You may want to turn power management on/off on demand in an ACPI script that catches battery/AC events, so that this happens automatically.<br />
<br />
Note that there have been [http://www.bughost.org/bugzilla/show_bug.cgi?id=1074 reports] that some versions of ipw2200 react with a firmware error to power management commands. This [http://www.bughost.org/bugzilla/attachment.cgi?id=1024 patch] could alleviate the problem.<br />
<br />
*To disable the radio (and further reduce power consumption) when the card is not in use, issue:<br />
:{{cmdroot|echo 1 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To enable the radio, issue:<br />
:{{cmdroot|echo 0 > /sys/bus/pci/drivers/ipw2200/*/rf_kill}}<br />
*To make the radio off by default after boot, add <br />
options ipw2200 disable=1<br />
to your {{path|/etc/modprobe.conf}} or equivalent (on kubuntu 6.10 {{path|/etc/modprobe.d/options}}).<br />
<br />
See {{path|README.ipw2200}} in the <tt>ipw2200</tt> package for details and other options.<br />
<br />
== Changing the enabled channels ==<br />
Permitted WiFi channels vary with geography due to regulation. The EEPROM in this chip contains a country code (programmed by the hardware manufacturer), and the driver converts this to a channel list and enforces it.<br />
<br />
If you carry your laptop to a different regulatory region, you may need to change the list of permitted channels according to local regulations. There are two ways to accomplish this:<br />
<br />
===Patching the ipw2200 driver===<br />
You can alter the ipw2200 driver sourcecode to hard-code the country code instead of reading it from EEPROM. For example, this will allow all 14 channels (perfect for those special occasions in international water):<br />
<pre><br />
--- ipw2200.c.orig<br />
+++ ipw2200.c<br />
@@ -11344,7 +11344,7 @@ static int ipw_up(struct ipw_priv *priv)<br />
memcpy(priv->net_dev->dev_addr, priv->mac_addr, ETH_ALEN);<br />
<br />
for (j = 0; j < ARRAY_SIZE(ipw_geos); j++) {<br />
- if (!memcmp(&priv->eeprom[EEPROM_COUNTRY_CODE],<br />
+ if (!memcmp("ZZR",<br />
ipw_geos[j].name, 3))<br />
break;<br />
}<br />
</pre><br />
<br />
For the list of codes and their meaning, see the "<tt>ipw_geos</tt>" table in the [http://lxr.free-electrons.com/source/drivers/net/wireless/ipw2x00/ipw2200.c#10382 ipw2200.c sourcecode].<br />
<br />
===Patching the EEPROM===<br />
<br />
Alternatively, you can change the country code in the EEPROM once and for all, and then use the standard ipw2200 driver.<br />
<br />
See this guide:<br />
* [http://saftware.de/#ipw2200 Patching the EEPROM].<br />
<br />
Instead of the <tt>hd</tt> program mentioned there, you can use the more common <tt>od</tt> program:<br />
echo -n ZZD | od -t x1<br />
0000000 5a 5a 44<br />
0000003<br />
<br />
{{WARN|If this procedure goes wrong, you may ruin your wireless card.}}<br />
<br />
== Additional Comments ==<br />
Your kernel may include an old version of the ipw2200 driver. It is recommended to use the latest version.<br />
<br />
Make sure you also install the firmware version needed by the driver version you use. You can find the firmware [http://ipw2200.sourceforge.net/firmware.php here]. To install it, decompress the <tt>.tgz</tt> file into {{path|/usr/lib/hotplug/firmware}} or {{path|/lib/firmware}} depending on your disto.<br />
<br />
The driver doesn't appear to support the MII interface, so any tools like automatic network configuration managers (i.e. whereami) that rely on mii-tool do not work.<br />
<br />
See incompatibility with some Access Points described on [[Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter#Problems|this other page]]<br />
<br />
== External links ==<br />
* [http://ipw2200.sourceforge.net/ Official website]<br />
<br />
[[Category:Drivers]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter&diff=38153Intel PRO/Wireless 2200BG Mini-PCI Adapter2008-07-09T21:07:35Z<p>MarcH: /* Problems */ 2M -> 1M</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
<br />
This is a Mini-PCI WiFi Adapter that is installed in a Mini-PCI slot.<br />
<br />
== Features ==<br />
* Chipset: Intel 2200<br />
* IEEE Standards: 802.11b, 802.11g<br />
* PCI ID: 8086:4220<br><br />
* Operating temperature: 0 to 80 degrees Celsius<br />
* Maximum transmit power(as reported by ipw2200): 100mW<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:mini-pci-wifi-card.gif|Mini-PCI WiFi Adapter]]<br />
|}<br />
<br />
<br />
== IBM Partnumbers ==<br />
* IBM Option PN (NA): 73P2801<br />
* IBM Option PN (WW): 73P2802<br />
* IBM FRU PN (NA): 93P4168, 93P3483<br />
* IBM FRU PN (WW): 93P4170, 93P3485<br />
{{NOTE| Only the IBM Parts will work, any other parts will give an 1802 error on Post because the sub-vendor PCI ID is different, see [[Problem with unauthorized MiniPCI network card]] for more details and solutions.}}<br />
<br />
== Also known (in IBM literature) as.... ==<br />
* Intel PRO/Wireless 2200 BG Mini-PCI Adapter from IBM<br />
* 802.11b/g Intel wireless card<br />
<br />
== Support ==<br />
This adapter is supported by the Linux [[ipw2200]] driver.<br />
<br />
== Problems ==<br />
There are countless reports of stability issues in public forums. Intel recognises at least [http://support.intel.com/support/wireless/wlan/sb/CS-006205.htm one compatibility problem with some APs] and advises to disable the power saving feature.<br />
<br />
Some people seem to achieve stability using a random combination of these workarounds:<br />
* disable power savings as explained by Intel above<br />
* upgrade/downgrade driver<br />
* upgrade AP firmware / try a different AP<br />
* disable 802.11g and stick to 802.11b<br />
* tweaking other driver settings<br />
<br />
On linux, forcing a rate reduction was enough to fix the problem (adaptive rate does not seem to work)<br />
iwconfig eth1 rate 1M<br />
<br />
== ThinkPads this card may be found in ==<br />
* {{R50e}}, {{R51}}, {{R52}}<br />
* {{T42}}, {{T42p}}, {{T43}}, {{T43p}}<br />
* {{X32}}<br />
* {{X40}}, {{X41}}, {{X41T}}<br />
* {{Z60m}}<br />
<br />
== Related Links ==<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54903 MIGR-54903 Specification]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54910 MIGR-54910 Users' Guide]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54904 MIGR-54904 Service Parts]<br />
* [http://support.intel.com/support/wireless/wlan/pro2200bg/ Official support page]<br />
* [ftp://download.intel.com/network/connectivity/resources/doc_library/tech_brief/2200bg_prodbrief.htm Product Overview]<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter&diff=38100Intel PRO/Wireless 2200BG Mini-PCI Adapter2008-06-29T14:59:29Z<p>MarcH: /* Problems */</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
<br />
This is a Mini-PCI WiFi Adapter that is installed in a Mini-PCI slot.<br />
<br />
== Features ==<br />
* Chipset: Intel 2200<br />
* IEEE Standards: 802.11b, 802.11g<br />
* PCI ID: 8086:4220<br><br />
* Operating temperature: 0 to 80 degrees Celsius<br />
* Maximum transmit power(as reported by ipw2200): 100mW<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:mini-pci-wifi-card.gif|Mini-PCI WiFi Adapter]]<br />
|}<br />
<br />
<br />
== IBM Partnumbers ==<br />
* IBM Option PN (NA): 73P2801<br />
* IBM Option PN (WW): 73P2802<br />
* IBM FRU PN (NA): 93P4168, 93P3483<br />
* IBM FRU PN (WW): 93P4170, 93P3485<br />
{{NOTE| Only the IBM Parts will work, any other parts will give an 1802 error on Post because the sub-vendor PCI ID is different, see [[Problem with unauthorized MiniPCI network card]] for more details and solutions.}}<br />
<br />
== Also known (in IBM literature) as.... ==<br />
* Intel PRO/Wireless 2200 BG Mini-PCI Adapter from IBM<br />
* 802.11b/g Intel wireless card<br />
<br />
== Support ==<br />
This adapter is supported by the Linux [[ipw2200]] driver.<br />
<br />
== Problems ==<br />
There are countless reports of stability issues in public forums. Intel recognises at least [http://support.intel.com/support/wireless/wlan/sb/CS-006205.htm one compatibility problem with some APs] and advises to disable the power saving feature.<br />
<br />
Some people seem to achieve stability using a random combination of these workarounds:<br />
* disable power savings as explained by Intel above<br />
* upgrade/downgrade driver<br />
* upgrade AP firmware / try a different AP<br />
* disable 802.11g and stick to 802.11b<br />
* tweaking other driver settings<br />
<br />
On linux, forcing a rate reduction was enough to fix the problem (adaptive rate does not seem to work)<br />
iwconfig eth1 rate 2M<br />
<br />
== ThinkPads this card may be found in ==<br />
* {{R50e}}, {{R51}}, {{R52}}<br />
* {{T42}}, {{T42p}}, {{T43}}, {{T43p}}<br />
* {{X32}}<br />
* {{X40}}, {{X41}}, {{X41T}}<br />
* {{Z60m}}<br />
<br />
== Related Links ==<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54903 MIGR-54903 Specification]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54910 MIGR-54910 Users' Guide]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54904 MIGR-54904 Service Parts]<br />
* [http://support.intel.com/support/wireless/wlan/pro2200bg/ Official support page]<br />
* [ftp://download.intel.com/network/connectivity/resources/doc_library/tech_brief/2200bg_prodbrief.htm Product Overview]<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter&diff=38099Intel PRO/Wireless 2200BG Mini-PCI Adapter2008-06-29T13:56:46Z<p>MarcH: /* Problems */ added common solutions</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
<br />
This is a Mini-PCI WiFi Adapter that is installed in a Mini-PCI slot.<br />
<br />
== Features ==<br />
* Chipset: Intel 2200<br />
* IEEE Standards: 802.11b, 802.11g<br />
* PCI ID: 8086:4220<br><br />
* Operating temperature: 0 to 80 degrees Celsius<br />
* Maximum transmit power(as reported by ipw2200): 100mW<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:mini-pci-wifi-card.gif|Mini-PCI WiFi Adapter]]<br />
|}<br />
<br />
<br />
== IBM Partnumbers ==<br />
* IBM Option PN (NA): 73P2801<br />
* IBM Option PN (WW): 73P2802<br />
* IBM FRU PN (NA): 93P4168, 93P3483<br />
* IBM FRU PN (WW): 93P4170, 93P3485<br />
{{NOTE| Only the IBM Parts will work, any other parts will give an 1802 error on Post because the sub-vendor PCI ID is different, see [[Problem with unauthorized MiniPCI network card]] for more details and solutions.}}<br />
<br />
== Also known (in IBM literature) as.... ==<br />
* Intel PRO/Wireless 2200 BG Mini-PCI Adapter from IBM<br />
* 802.11b/g Intel wireless card<br />
<br />
== Support ==<br />
This adapter is supported by the Linux [[ipw2200]] driver.<br />
<br />
== Problems ==<br />
There are countless reports of stability issues in public forums. Intel recognises at least [http://support.intel.com/support/wireless/wlan/sb/CS-006205.htm one compatibility problem with some APs] and advises to disable the power saving feature.<br />
<br />
Some people seem to achieve stability using a random combination of these workarounds:<br />
* disable power savings as explained by Intel above<br />
* upgrade driver<br />
* upgrade AP firmware / try a different AP<br />
* disable 802.11g and stick to 802.11b<br />
<br />
<br />
On linux, forcing a rate reduction was enough to fix the problem (adaptive rate does not seem to work)<br />
iwconfig eth1 rate 2M<br />
<br />
== ThinkPads this card may be found in ==<br />
* {{R50e}}, {{R51}}, {{R52}}<br />
* {{T42}}, {{T42p}}, {{T43}}, {{T43p}}<br />
* {{X32}}<br />
* {{X40}}, {{X41}}, {{X41T}}<br />
* {{Z60m}}<br />
<br />
== Related Links ==<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54903 MIGR-54903 Specification]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54910 MIGR-54910 Users' Guide]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54904 MIGR-54904 Service Parts]<br />
* [http://support.intel.com/support/wireless/wlan/pro2200bg/ Official support page]<br />
* [ftp://download.intel.com/network/connectivity/resources/doc_library/tech_brief/2200bg_prodbrief.htm Product Overview]<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Intel_PRO/Wireless_2200BG_Mini-PCI_Adapter&diff=38098Intel PRO/Wireless 2200BG Mini-PCI Adapter2008-06-29T13:47:15Z<p>MarcH: started Problems section</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
<br />
This is a Mini-PCI WiFi Adapter that is installed in a Mini-PCI slot.<br />
<br />
== Features ==<br />
* Chipset: Intel 2200<br />
* IEEE Standards: 802.11b, 802.11g<br />
* PCI ID: 8086:4220<br><br />
* Operating temperature: 0 to 80 degrees Celsius<br />
* Maximum transmit power(as reported by ipw2200): 100mW<br />
</div><br />
|style="vertical-align:top" |<br />
[[image:mini-pci-wifi-card.gif|Mini-PCI WiFi Adapter]]<br />
|}<br />
<br />
<br />
== IBM Partnumbers ==<br />
* IBM Option PN (NA): 73P2801<br />
* IBM Option PN (WW): 73P2802<br />
* IBM FRU PN (NA): 93P4168, 93P3483<br />
* IBM FRU PN (WW): 93P4170, 93P3485<br />
{{NOTE| Only the IBM Parts will work, any other parts will give an 1802 error on Post because the sub-vendor PCI ID is different, see [[Problem with unauthorized MiniPCI network card]] for more details and solutions.}}<br />
<br />
== Also known (in IBM literature) as.... ==<br />
* Intel PRO/Wireless 2200 BG Mini-PCI Adapter from IBM<br />
* 802.11b/g Intel wireless card<br />
<br />
== Support ==<br />
This adapter is supported by the Linux [[ipw2200]] driver.<br />
<br />
== Problems ==<br />
There are countless reports of stability issues in public forums. Intel recognises at least [http://support.intel.com/support/wireless/wlan/sb/CS-006205.htm one compatibility problem with some APs].<br />
<br />
== ThinkPads this card may be found in ==<br />
* {{R50e}}, {{R51}}, {{R52}}<br />
* {{T42}}, {{T42p}}, {{T43}}, {{T43p}}<br />
* {{X32}}<br />
* {{X40}}, {{X41}}, {{X41T}}<br />
* {{Z60m}}<br />
<br />
== Related Links ==<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54903 MIGR-54903 Specification]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54910 MIGR-54910 Users' Guide]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54904 MIGR-54904 Service Parts]<br />
* [http://support.intel.com/support/wireless/wlan/pro2200bg/ Official support page]<br />
* [ftp://download.intel.com/network/connectivity/resources/doc_library/tech_brief/2200bg_prodbrief.htm Product Overview]<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Known_Problems&diff=38065Known Problems2008-06-24T08:24:02Z<p>MarcH: /* Misc Problems */ added X40 in USB2.0</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
Information on known problems with certain ThinkPad models.<br />
|}<br />
==Display Problems==<br />
*[[Problem with unusable console | Console unusable]] <tt>(models with savage video chipset: T2x, A22e)</tt><br />
*[[Problem with Pixel Error | Dead pixels on TFT displays]] <tt>(all models)</tt><br />
*[[Problem with DVI throughput | DVI throughput on port replicators and docks]] <tt>(models from 2000-2004)</tt><br />
*[[Problems with fglrx | fglrx problems]] <tt>(ATI Radeon models)</tt><br />
*[[Problem with garbled screen | Garbled Screen]] <tt>(T40, T41, T42, R32, R40, R50p, R51, A30, A31, A31p)</tt><br />
*[[Problem with broken inverter | Inverter broken]] <tt>(all models)</tt><br />
*[[Problem with key and trackpoint markings on the display | Key and Trackpoint markings on display]]<br />
*[https://bugs.freedesktop.org/show_bug.cgi?id=2187 Radeon 7500 "DynamicClocks" randomly hangs] <tt>(TP T4x, Xorg-X11 bug report)</tt><br />
*[[Problem with red display shadow | Red shadow on display]] <tt>(TP T41p)</tt><br />
*[[Problem with red tinted display | Red tinted display]] <tt>(TP 23)</tt><br />
*[[Problem with black X | Unmovable square black X in X]] <tt>(TP T2x)</tt><br />
*[[Problem with video related system lockup | System Lockups related to video adapter]] <tt>(TP T2x)</tt><br />
*[[Problem with video related system lockup II | System Lockups related to video adapter T42]] <tt>(TP T42, T42p)</tt><br />
*[[Problem with ati driver in xorg 6.9.x | System lockup soon after starting xorg 6.9.x ]] <tt>(TP T4x)</tt><br />
*[[Problem with video output switching | Video output switching]]<br />
*[[Problem with LCD brightness buttons | Video brightness up keys don't work or cause crashes]]<br />
<br />
==Harddisk Drive related Problems==<br />
*[[Problem with APS harddisk parking|APS harddisk parking]] <tt>(models featuring APS)</tt><br />
*[[Problem with too large harddrive|BIOS hangs with harddrive sized over 8G]] <tt>(560)</tt><br />
*[[Problem with hard drive clicking | Clicking Hard Drive]] <tt>(models with Hitachi's 5k80 hard drive)</tt><br />
*[[Problem with non-ThinkPad hard disks|Non-ThinkPad hard disks]] <tt>(T43, X41, R52)</tt><br />
*[[Problems with SATA and Linux|SATA and Linux]] <tt>(T43, X41, R52, Z60)</tt><br />
<br />
==Network Problems==<br />
*[[Problem with 3Com 10/100 Ethernet card not being recognized|3Com 10/100 Ethernet card not recognized]] <tt>(models with that card)</tt><br />
*[[Problem with unauthorized MiniPCI network card|"Unauthorized" MiniPCI Wireless Network card error (Error 1802)]] <tt>(Recent TPs)</tt><br />
*[[Cisco Aironet Wireless 802.11b]] fails to work with certain firmware versions<br />
*[[Problem with error 01C9 - More than one Ethernet devices | Error 01C9: More than one Ethernet Devices are found (Atheros WLAN MiniPCI)]] <tt>(T23, T30, A31p, R40 and others)</tt><br />
*[[Problem with e1000: EEPROM Checksum Is Not Valid]] <tt>(T60, X60, may be others)</tt><br />
*[[Problem with e1000: 99.9% packet loss on 7.x drivers]] <tt>(Recent TPs)</tt><br />
*[[Problem with 3945ABG: Internal wifi cannot associate with AP]] <tt>(T60, probably others)</tt><br />
*[[Need to disable V90/V92/56K modem speed]] ([[IBM_Integrated_Bluetooth_III_with_56K_Modem_(BMDC-2)|BMDC-2]] on X40)<br />
<br />
==Power Management, AC-adapter or Battery Problems==<br />
*[[Problem with ThinkPad 600 batteries | 600 series Battery dying prematurely]] <tt>(TP 600/E/X)</tt><br />
*[[Damage in 56W AC-Adapter, plastic housing melted |AC-Adapter damaged, plastic housing melted]] <tt>(240, 390, i and s models)</tt><br />
*[[Problems with ACPI suspend-to-ram|ACPI suspend-to-ram]] <tt>(ACPI sleep troubles)</tt><br />
**[[Problem with display remaining black after resume|Blank display after resume]] <tt>(various models)</tt><br />
**[[Problem with high power drain in ACPI sleep | High power drain in ACPI sleep]] <tt>(various models)</tt><br />
**[[Problem with LCD backlight remaining on during ACPI sleep | LCD backlight remaining on during ACPI sleep]] <tt>(various models)</tt><br />
*[[Problem with fan noise | Fan noise]] <tt>(TP T4x/p, TP R5x/p)</tt><br />
*[[Problem with checking battery status | Checking battery status causes mouse to jerk around]] <tt>(R31)</tt><br />
*[[Battery drains despite seemingly being charged]] <tt>(A/C adapter issues)</tt><br />
*[[Problem with high pitch noises | High pitch noises]] <tt>(several models)</tt><br />
*[[Problem with CPU frequency scaling | CPU frequency scaling locks up when on AC power only]] <tt>(several models)</tt><br />
<br />
==Sound Problems==<br />
*[[Problem with broken sound on ThinkPad 600 | Broken sound on ThinkPad 600/E]] <tt>(TP 600/E/X, 770Z)</tt><br />
*[[Problem with audio jacks | Audio jacks not working properly]] <tt>(TP T43)</tt><br />
*[[Problem with ALSA audio output | No audio heard with kernel 2.6.11+/ALSA]] <tt>(TP T43, T40)</tt><br />
*[[Problem with audio clipping|Audio clipping]] <tt>(TP T43)</tt><br />
*[[Problem with no sound on ThinkPad R60e | No Sound on ThinkPad R60e and T60]] <tt>(R60e, T60)</tt><br />
<br />
==Misc Problems==<br />
*[[System randomly freezes and requires hard reset]] <tt>(X61s and all newer systems including X,T,R,Z series)</tt><br />
*[[Problem with Bending / Twisting|Casing malformed by bending/twising]] <tt>(X41)</tt><br />
*[[Problem with failing memory slot]] <tt>(T30, and some T2x models)</tt><br />
*[[Problem with Dock USB Ports | Dock USB Ports]] <tt>(T30/X21)</tt><br />
*[[High-pitch noise from AC-Adapter]] <tt>(T60/p)</tt><br />
*[[Problem with lm-sensors | lm_sensors kills ThinkPads]] <tt>(TP 570E, 770X/Z, 600E/X, 240, X20)</tt><br />
*[[Problem with USB 2.0 | USB 2.0 problems]] <tt>(T40/T41/X40)</tt><br />
*[[Embedded Controller Firmware#Firmware_issues|Firmware issues]]<br />
*[[Problem with hot surfaces|Problem with hot surfaces]] <tt>(T43)</tt><br />
*[[Problem with disabled VT]] <tt>(Z61t, X60, X60s)</tt><br />
*[[Unable to create recovery cds when another python is installed on the system]] <tt>(T43p)</tt></div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=36435Category:2352008-02-11T07:50:32Z<p>MarcH: /* ThinkPad 235 */ numerous new details</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 (type 2607) related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra2" or "Clavius". It was marketed under a number of different names including Ricoh Magio, Hitachi VisionBook Traveler, Hitachi Flora Prius Note 210, Epson Endeavor TK-300/TK-400, ...<br />
|}<br />
<br />
The 800x600 screen is only 9.2" inches big. It can drive a 1024x768 monitor. It features 1 Pentium MMX (166 to 266MHz), 32 to 64Mo EDO RAM and one free extension slot.<br />
<br />
It features the following ports: 1 PCMCIA / ZV and 2 PCMCIA / CardBus slots, 1 USB port 12Mb/s, 1 PS/2, 1 IrDA 1.1 4Mb/s, 1 Dsub-9 serial, 1 Dsub-25 parallel and 1 Dsub-15 VGA ports. The floppy drive is external (parallel port). This floppy drive seems to be the only way for an [[Installation_on_ThinkPads_without_CD-ROM_drive | install/rescue boot]] ? (BIOS is in japanese). It came with Windows 98 pre-installed.<br />
<br />
It is using two standard camcorder batteries (7.2V), allowing battery hotswap and external charge. Power consumption is 56W (35W on batteries), so 2h typical life. Size is 23.5 x 17.3 x 3.4 cm and weight 1.25 kg.<br />
<br />
Chips used are typically: CT65555, ESS1879, Ricoh RLSc475-476, NSC87338, OPTi 82C861,...<br />
<br />
For dismantling help click on the mainboard picture below.<br />
<br />
==External Sources==<br />
[http://www.ricoh.co.jp/chandra/clavius/claspecs.html Specifications of NP40J, NP50J, NP60J and NP70J by Ricoh]<br />
<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
<br />
[http://digital.hmx.net/02contents/pc/i386/tp235/tp235.shtml Review in Japanese but with many pictures and detailed specifications in latin characters]<br />
[[Category:Models]]<br />
<br />
[http://www.extremecomputing.com/ricmag16.html Ricoh Magio specs]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Intel_Extreme_Graphics_2&diff=35256Intel Extreme Graphics 22007-12-21T16:48:54Z<p>MarcH: typo</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== Intel Extreme Graphics 2 ===<br />
This is an Intel video adapter<br />
<br />
=== Features ===<br />
* Integrated in one of the following chipsets:<br />
** [[Intel 855GM]]<br />
** [[Intel 855GME]]<br />
** [[Intel 852GME]]<br />
* PCI ID: 8086:3582<br />
* Uses up to 64MB of main memory<br />
</div><br />
|style="vertical-align:top" |<br />
|}<br />
<br />
=== Linux X.Org driver ===<br />
This chip is supported by the 'i810' driver as part of the X.Org distribution. A new 'intel' driver is meant to replace it, but as of end 2007 it seems not as stable as i810 yet, notably it [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/138256 crashes at suspend time]<br />
<br />
Hardware 3-D acceleration is available using DRI and kernel i915 module (2.6 kernel)<br />
for 16-bit depth. <br />
<br />
You can configure 3-D acceleration by ensuring that the following is in your xorg.conf:<br />
<br />
Section "Device"<br />
Identifier "Intel Corporation 82852/855GM Integrated Graphics Device"<br />
Driver "i810"<br />
BusID "PCI:0:2:0"<br />
Option "DRI" "true"<br />
EndSection<br />
<br />
To check that it's working, run glxinfo | grep direct and check that direct draw reports as "Yes"<br />
<br />
There are binary drivers for SuSE and a modified X.Org distribution available from Intel.<br />
<br />
==== ThinkPad LCD ====<br />
Display on the internal LCD works as long as you set the monitor settings correct.<br />
<br />
==== External VGA port ====<br />
<br />
===== X.org =====<br />
<br />
======Clone======<br />
At least using X.org 6.9.0, the following will always enable the VGA port:<br />
<br />
Section "Device"<br />
Identifier "VideoCard0"<br />
Driver "i810"<br />
Option "VBERestore" "yes" <br />
Option "Clone" "true"<br />
Option "MonitorLayout" "CRT,LFP" <br />
Option "DevicePresence" "yes" <br />
EndSection<br />
<br />
To change to which pipe the overlay is directed (e.g. when playing a movie in xine), use:<br />
<br />
xvattr -a XV_PIPE -v ''DISPLAY''<br />
<br />
Where ''DISPLAY'' is either 0 (with the above setup, the CRT) or 1 (with the above setup, the Local Flat Panal).<br />
<br />
======MergedFB======<br />
<br />
With MergedFB you can use an external Display with another resolution.<br />
To enable MergedFB, you need to edit your Screen-Section and your Device-Section.<br />
<br />
In the Screen-Section, you need to add a Resolution for all resolutions. Your Laptop-Display and your External Display.<br />
<br />
And you have to add a "virtual" Resolution which is the biggest resolution of both. Like this:<br />
<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "Intel Corporation Mobile Integrated Graphics Controller"<br />
Monitor "Generic Monitor"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1024x768 1280x768"<br />
Virtual 1280 1024<br />
EndSubSection<br />
EndSection<br />
<br />
In your Device-Section of the Card, you need to add some Tags. MetaModes consits of every Resolution you need to use.<br />
This looks like this.<br />
Section "Device"<br />
Identifier "Intel Corporation Mobile Integrated Graphics Controller"<br />
Driver "i810"<br />
BusID "PCI:0:2:0"<br />
Option "DevicePresence" "true"<br />
Option "DRI" "true"<br />
Option "MergedFB" "true"<br />
Option "MergedXinerama" "false"<br />
Option "MonitorLayout" "CRT,LFP"<br />
Option "MetaModes" "1280x1024-1024x768 1024x768-1024x768"<br />
EndSection<br />
<br />
I had to set the MergedXinerama to false because it reported a Screensize of 0,0,-1,-1 which makes the Windowmanager behave funny.<br />
But with this setup it is possible to use RandR to switch from the Resolution of your Laptop-Display to the Resolution<br />
of your bigger external Display without quitting your X-Session. Your Laptop-Display will then scroll to show the part of your <br />
Desktop where your mouse is.<br />
<br />
===== i855crt =====<br />
<br />
There seems to be many issues trying to do this from within {{path|/etc/X11/xorg.conf}} or {{path|/etc/X11/XFree86.conf}}. The solution for basic projector or cloned output is to use the [http://i855crt.sourceforge.net/ i855-crt] program. Remember that this program is very raw and could damage your display equipment.<br />
<br />
Once this is installed an example command would be (with root permissions): <br />
:{{cmdroot|i855crt swcursor on "1024x786@85"}}<br />
to stop it enter<br />
:{{cmdroot|i855crt off}}<br />
<br />
The video mode in quotes is defined in {{path|/etc/i855crt.conf}} or {{path|~/.i855crt.conf}}.<br />
{{Fixme|This is specific usage information for that tool. Introducing an own tool page for it should be considered or joining this with other information in a display cloning howto page.}}<br />
<br />
Using MonitorLayout and Clone options it is possible to setup cloned display with X.Org (tested with 6.9.0). Dualhead supported by Xorg driver.<br />
<br />
==== SVideo port ====<br />
SVideo works with for example:<br />
Option "MonitorLayout" "NONE,TV"<br />
in your Device section. However, no settings for clone mode has been found to work yet.<br />
<br />
==== DVI port ====<br />
DVI Pass-through to a Dock or Port Replicator is not supported on any ThinkPad with this chipset.<br />
<br />
=== Linux kernel Framebuffer driver ===<br />
This chip will work with either the 'vesafb' or 'intelfb' driver as part of any recent 2.4 or 2.6 kernel.<br />
<br />
=== External Sources ===<br />
*[http://www.intel.com/products/chipsets/eg2/ Intel Extreme Graphics 2 overview]<br />
<br />
=== ThinkPads this chip may be found in ===<br />
* {{G41}}<br />
* {{R50e}}, {{R51}}<br />
* {{X40}}<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Intel_Extreme_Graphics_2&diff=35255Intel Extreme Graphics 22007-12-21T16:48:12Z<p>MarcH: the new intel Xorg driver</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== Intel Extreme Graphics 2 ===<br />
This is an Intel video adapter<br />
<br />
=== Features ===<br />
* Integrated in one of the following chipsets:<br />
** [[Intel 855GM]]<br />
** [[Intel 855GME]]<br />
** [[Intel 852GME]]<br />
* PCI ID: 8086:3582<br />
* Uses up to 64MB of main memory<br />
</div><br />
|style="vertical-align:top" |<br />
|}<br />
<br />
=== Linux X.Org driver ===<br />
This chip is supported by the 'i810' driver as part of the X.Org distribution. A new 'intel' driver is meant to replace it, but as of end 2007 it seems, not as stable as i810 yet, notably it [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/138256 crashes at suspend time]<br />
<br />
Hardware 3-D acceleration is available using DRI and kernel i915 module (2.6 kernel)<br />
for 16-bit depth. <br />
<br />
You can configure 3-D acceleration by ensuring that the following is in your xorg.conf:<br />
<br />
Section "Device"<br />
Identifier "Intel Corporation 82852/855GM Integrated Graphics Device"<br />
Driver "i810"<br />
BusID "PCI:0:2:0"<br />
Option "DRI" "true"<br />
EndSection<br />
<br />
To check that it's working, run glxinfo | grep direct and check that direct draw reports as "Yes"<br />
<br />
There are binary drivers for SuSE and a modified X.Org distribution available from Intel.<br />
<br />
==== ThinkPad LCD ====<br />
Display on the internal LCD works as long as you set the monitor settings correct.<br />
<br />
==== External VGA port ====<br />
<br />
===== X.org =====<br />
<br />
======Clone======<br />
At least using X.org 6.9.0, the following will always enable the VGA port:<br />
<br />
Section "Device"<br />
Identifier "VideoCard0"<br />
Driver "i810"<br />
Option "VBERestore" "yes" <br />
Option "Clone" "true"<br />
Option "MonitorLayout" "CRT,LFP" <br />
Option "DevicePresence" "yes" <br />
EndSection<br />
<br />
To change to which pipe the overlay is directed (e.g. when playing a movie in xine), use:<br />
<br />
xvattr -a XV_PIPE -v ''DISPLAY''<br />
<br />
Where ''DISPLAY'' is either 0 (with the above setup, the CRT) or 1 (with the above setup, the Local Flat Panal).<br />
<br />
======MergedFB======<br />
<br />
With MergedFB you can use an external Display with another resolution.<br />
To enable MergedFB, you need to edit your Screen-Section and your Device-Section.<br />
<br />
In the Screen-Section, you need to add a Resolution for all resolutions. Your Laptop-Display and your External Display.<br />
<br />
And you have to add a "virtual" Resolution which is the biggest resolution of both. Like this:<br />
<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "Intel Corporation Mobile Integrated Graphics Controller"<br />
Monitor "Generic Monitor"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1024x768 1280x768"<br />
Virtual 1280 1024<br />
EndSubSection<br />
EndSection<br />
<br />
In your Device-Section of the Card, you need to add some Tags. MetaModes consits of every Resolution you need to use.<br />
This looks like this.<br />
Section "Device"<br />
Identifier "Intel Corporation Mobile Integrated Graphics Controller"<br />
Driver "i810"<br />
BusID "PCI:0:2:0"<br />
Option "DevicePresence" "true"<br />
Option "DRI" "true"<br />
Option "MergedFB" "true"<br />
Option "MergedXinerama" "false"<br />
Option "MonitorLayout" "CRT,LFP"<br />
Option "MetaModes" "1280x1024-1024x768 1024x768-1024x768"<br />
EndSection<br />
<br />
I had to set the MergedXinerama to false because it reported a Screensize of 0,0,-1,-1 which makes the Windowmanager behave funny.<br />
But with this setup it is possible to use RandR to switch from the Resolution of your Laptop-Display to the Resolution<br />
of your bigger external Display without quitting your X-Session. Your Laptop-Display will then scroll to show the part of your <br />
Desktop where your mouse is.<br />
<br />
===== i855crt =====<br />
<br />
There seems to be many issues trying to do this from within {{path|/etc/X11/xorg.conf}} or {{path|/etc/X11/XFree86.conf}}. The solution for basic projector or cloned output is to use the [http://i855crt.sourceforge.net/ i855-crt] program. Remember that this program is very raw and could damage your display equipment.<br />
<br />
Once this is installed an example command would be (with root permissions): <br />
:{{cmdroot|i855crt swcursor on "1024x786@85"}}<br />
to stop it enter<br />
:{{cmdroot|i855crt off}}<br />
<br />
The video mode in quotes is defined in {{path|/etc/i855crt.conf}} or {{path|~/.i855crt.conf}}.<br />
{{Fixme|This is specific usage information for that tool. Introducing an own tool page for it should be considered or joining this with other information in a display cloning howto page.}}<br />
<br />
Using MonitorLayout and Clone options it is possible to setup cloned display with X.Org (tested with 6.9.0). Dualhead supported by Xorg driver.<br />
<br />
==== SVideo port ====<br />
SVideo works with for example:<br />
Option "MonitorLayout" "NONE,TV"<br />
in your Device section. However, no settings for clone mode has been found to work yet.<br />
<br />
==== DVI port ====<br />
DVI Pass-through to a Dock or Port Replicator is not supported on any ThinkPad with this chipset.<br />
<br />
=== Linux kernel Framebuffer driver ===<br />
This chip will work with either the 'vesafb' or 'intelfb' driver as part of any recent 2.4 or 2.6 kernel.<br />
<br />
=== External Sources ===<br />
*[http://www.intel.com/products/chipsets/eg2/ Intel Extreme Graphics 2 overview]<br />
<br />
=== ThinkPads this chip may be found in ===<br />
* {{G41}}<br />
* {{R50e}}, {{R51}}<br />
* {{X40}}<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Intel_Extreme_Graphics_2&diff=35254Intel Extreme Graphics 22007-12-21T14:25:38Z<p>MarcH: vesa -> vesafb</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== Intel Extreme Graphics 2 ===<br />
This is an Intel video adapter<br />
<br />
=== Features ===<br />
* Integrated in one of the following chipsets:<br />
** [[Intel 855GM]]<br />
** [[Intel 855GME]]<br />
** [[Intel 852GME]]<br />
* PCI ID: 8086:3582<br />
* Uses up to 64MB of main memory<br />
</div><br />
|style="vertical-align:top" |<br />
|}<br />
<br />
=== Linux X.Org driver ===<br />
This chip is supported by the 'i810' driver as part of the X.Org distribution.<br />
<br />
Hardware 3-D acceleration is available using DRI and kernel i915 module (2.6 kernel)<br />
for 16-bit depth. <br />
<br />
You can configure 3-D acceleration by ensuring that the following is in your xorg.conf:<br />
<br />
Section "Device"<br />
Identifier "Intel Corporation 82852/855GM Integrated Graphics Device"<br />
Driver "i810"<br />
BusID "PCI:0:2:0"<br />
Option "DRI" "true"<br />
EndSection<br />
<br />
To check that it's working, run glxinfo | grep direct and check that direct draw reports as "Yes"<br />
<br />
There are binary drivers for SuSE and a modified X.Org distribution available from Intel.<br />
<br />
==== ThinkPad LCD ====<br />
Display on the internal LCD works as long as you set the monitor settings correct.<br />
<br />
==== External VGA port ====<br />
<br />
===== X.org =====<br />
<br />
======Clone======<br />
At least using X.org 6.9.0, the following will always enable the VGA port:<br />
<br />
Section "Device"<br />
Identifier "VideoCard0"<br />
Driver "i810"<br />
Option "VBERestore" "yes" <br />
Option "Clone" "true"<br />
Option "MonitorLayout" "CRT,LFP" <br />
Option "DevicePresence" "yes" <br />
EndSection<br />
<br />
To change to which pipe the overlay is directed (e.g. when playing a movie in xine), use:<br />
<br />
xvattr -a XV_PIPE -v ''DISPLAY''<br />
<br />
Where ''DISPLAY'' is either 0 (with the above setup, the CRT) or 1 (with the above setup, the Local Flat Panal).<br />
<br />
======MergedFB======<br />
<br />
With MergedFB you can use an external Display with another resolution.<br />
To enable MergedFB, you need to edit your Screen-Section and your Device-Section.<br />
<br />
In the Screen-Section, you need to add a Resolution for all resolutions. Your Laptop-Display and your External Display.<br />
<br />
And you have to add a "virtual" Resolution which is the biggest resolution of both. Like this:<br />
<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "Intel Corporation Mobile Integrated Graphics Controller"<br />
Monitor "Generic Monitor"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1024x768 1280x768"<br />
Virtual 1280 1024<br />
EndSubSection<br />
EndSection<br />
<br />
In your Device-Section of the Card, you need to add some Tags. MetaModes consits of every Resolution you need to use.<br />
This looks like this.<br />
Section "Device"<br />
Identifier "Intel Corporation Mobile Integrated Graphics Controller"<br />
Driver "i810"<br />
BusID "PCI:0:2:0"<br />
Option "DevicePresence" "true"<br />
Option "DRI" "true"<br />
Option "MergedFB" "true"<br />
Option "MergedXinerama" "false"<br />
Option "MonitorLayout" "CRT,LFP"<br />
Option "MetaModes" "1280x1024-1024x768 1024x768-1024x768"<br />
EndSection<br />
<br />
I had to set the MergedXinerama to false because it reported a Screensize of 0,0,-1,-1 which makes the Windowmanager behave funny.<br />
But with this setup it is possible to use RandR to switch from the Resolution of your Laptop-Display to the Resolution<br />
of your bigger external Display without quitting your X-Session. Your Laptop-Display will then scroll to show the part of your <br />
Desktop where your mouse is.<br />
<br />
===== i855crt =====<br />
<br />
There seems to be many issues trying to do this from within {{path|/etc/X11/xorg.conf}} or {{path|/etc/X11/XFree86.conf}}. The solution for basic projector or cloned output is to use the [http://i855crt.sourceforge.net/ i855-crt] program. Remember that this program is very raw and could damage your display equipment.<br />
<br />
Once this is installed an example command would be (with root permissions): <br />
:{{cmdroot|i855crt swcursor on "1024x786@85"}}<br />
to stop it enter<br />
:{{cmdroot|i855crt off}}<br />
<br />
The video mode in quotes is defined in {{path|/etc/i855crt.conf}} or {{path|~/.i855crt.conf}}.<br />
{{Fixme|This is specific usage information for that tool. Introducing an own tool page for it should be considered or joining this with other information in a display cloning howto page.}}<br />
<br />
Using MonitorLayout and Clone options it is possible to setup cloned display with X.Org (tested with 6.9.0). Dualhead supported by Xorg driver.<br />
<br />
==== SVideo port ====<br />
SVideo works with for example:<br />
Option "MonitorLayout" "NONE,TV"<br />
in your Device section. However, no settings for clone mode has been found to work yet.<br />
<br />
==== DVI port ====<br />
DVI Pass-through to a Dock or Port Replicator is not supported on any ThinkPad with this chipset.<br />
<br />
=== Linux kernel Framebuffer driver ===<br />
This chip will work with either the 'vesafb' or 'intelfb' driver as part of any recent 2.4 or 2.6 kernel.<br />
<br />
=== External Sources ===<br />
*[http://www.intel.com/products/chipsets/eg2/ Intel Extreme Graphics 2 overview]<br />
<br />
=== ThinkPads this chip may be found in ===<br />
* {{G41}}<br />
* {{R50e}}, {{R51}}<br />
* {{X40}}<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=File:Mainboard235.jpg&diff=33434File:Mainboard235.jpg2007-09-26T17:48:35Z<p>MarcH: Added link to more detailed http://boole.stanford.edu/travdisk.html</p>
<hr />
<div>Picture of the mainboard of the Thinkpad {{235}} with screws relevant to dismantling circled.<br />
<br />
Since there does not seem to be any manual in latin characters for the<br />
{{235}}, you may find this useful.<br />
<br />
As often the main problem is NOT to remove all screws blindly but only<br />
the ones needed, among other to avoid removing bolts and losing nuts<br />
inside the case. So read on for details. Also be extremely careful<br />
when removing cables, since the plugs on the mainboard are very<br />
fragile and easy to break (happened to me).<br />
<br />
Remove the keyboard: 2 screws, one on each side of the case.<br />
<br />
Remove the plastic part hiding the screen hinge: 2 screws on the back,<br />
then unfold the screen at most.<br />
<br />
Now see picture (with Cardbus slot covered for a better contrast).<br />
First remove the processor heatsink in the upper right corner: 3<br />
screws circled in blue. Finally remove the mainboard itself: 6 screws<br />
circled in red. 2 screws underneath the case (they go through the<br />
right end of the double CardBus slot), 2 in the right corners of the case (one in<br />
each), 1 in the center of the white plastic piece in the middle, and last 1<br />
in the bottom left just below the same CardBus slot. Now don't forget<br />
to remove the power switch.<br />
<br />
Once the mainboard is detached, removing further (sub-)parts becomes<br />
very easy since nothing is hidden anymore.<br />
<br />
==External Sources==<br />
[http://boole.stanford.edu/travdisk.html More detailed/better instructions]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=33433Category:2352007-09-26T17:09:00Z<p>MarcH: Added link to install without CD-ROM</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 (type 2607) related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra2" or "Clavius". It was marketed under a number of different names including Ricoh Magio, Hitachi VisionBook Traveler, Hitachi Flora Prius Note 210, Epson Endeavor TK-300/TK-400, ...<br />
|}<br />
<br />
It features 1 PCMCIA and 2 CardBus slots, 1 USB 12Mb/s, 1 PS/2, 1 infra/red 4Mb/s, 1 serial, 1 parallel and 1 VGA ports. The floppy drive is external (parallel port). This floppy drive seems to be the only way for an [[Installation_on_ThinkPads_without_CD-ROM_drive | install/rescue boot]] ? (BIOS is in japanese). It is using two standard camcorder batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
For dismantling help click on the mainboard picture below.<br />
<br />
==External Sources==<br />
[http://www.ricoh.co.jp/chandra/clavius/claspecs.html Specifications of NP40J, NP50J, NP60J and NP70J by Ricoh]<br />
<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
<br />
[http://digital.hmx.net/02contents/pc/i386/tp235/tp235.shtml Review in Japanese but with many pictures and detailed specifications in latin characters]<br />
[[Category:Models]]<br />
<br />
[http://www.extremecomputing.com/ricmag16.html Ricoh Magio specs]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=33404Category:2352007-09-26T11:46:06Z<p>MarcH: Fixed the parallel stuff. Added Ricoh Magio ref.</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 (type 2607) related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra2" or "Clavius". It was marketed under a number of different names including Ricoh Magio, Hitachi VisionBook Traveler, Hitachi Flora Prius Note 210, Epson Endeavor TK-300/TK-400, ...<br />
|}<br />
<br />
It features 1 PCMCIA and 2 CardBus slots, 1 USB 1, 1 PS/2, 1 infra/red, 1 serial, 1 parallel and 1 VGA ports. The floppy drive is external (parallel port). This seems to be the only way for an install/rescue boot? (BIOS is in japanese). It is using two standard camcorder batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
For dismantling help click on the mainboard picture below.<br />
<br />
==External Sources==<br />
[http://www.ricoh.co.jp/chandra/clavius/claspecs.html Specifications of NP40J, NP50J, NP60J and NP70J by Ricoh]<br />
<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
<br />
[http://digital.hmx.net/02contents/pc/i386/tp235/tp235.shtml Japanese page but with many pictures and detailed specifications in latin characters]<br />
[[Category:Models]]<br />
<br />
[http://www.extremecomputing.com/ricmag16.html Ricoh Magio specs]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=33403Category:2352007-09-26T11:24:30Z<p>MarcH: flora prius note 210</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 (type 2607) related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra 2" or "Clavius". It was marketed under a number of different names including Hitachi VisionBook Traveler, Hitachi Flora Prius Note 210, Epson Endeavor TK-300/TK-400, ...<br />
|}<br />
<br />
It features 3 PCMCIA/CardBus slots (yes: three), 1 USB 1, 1 PS/2, 1 infra/red, 1 serial and 1 VGA ports. The floppy drive is external (DB25). It is using two standard camcorder batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
For dismantling help click on mainboard picture below.<br />
<br />
==External Sources==<br />
[http://www.ricoh.co.jp/chandra/clavius/claspecs.html Specifications of NP40J, NP50J, NP60J and NP70J by Ricoh]<br />
<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
<br />
[http://digital.hmx.net/02contents/pc/i386/tp235/tp235.shtml Japanese page but with many pictures and detailed specifications in latin characters]<br />
[[Category:Models]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=33402Category:2352007-09-26T11:21:19Z<p>MarcH: Fixed minor mistakes. Added link to Ricoh specs</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 (type 2607) related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra 2" or "Clavius". It was marketed under a number of different names including Hitachi VisionBook Traveler, Hitachi Prius 210, Epson Endeavor TK-300/TK-400, ...<br />
|}<br />
<br />
It features 3 PCMCIA/CardBus slots (yes: three), 1 USB 1, 1 PS/2, 1 infra/red, 1 serial and 1 VGA ports. The floppy drive is external (DB25). It is using two standard camcorder batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
For dismantling help click on mainboard picture below.<br />
<br />
==External Sources==<br />
[http://www.ricoh.co.jp/chandra/clavius/claspecs.html Specifications of NP40J, NP50J, NP60J and NP70J by Ricoh]<br />
<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
<br />
[http://digital.hmx.net/02contents/pc/i386/tp235/tp235.shtml Japanese page but with many pictures and detailed specifications in latin characters]<br />
[[Category:Models]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=33401Category:2352007-09-26T11:03:50Z<p>MarcH: Mentioned dismantling instructions.</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 (type 2607) related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra 2" or "Clavius". It was marketed under a number of different names including Hitachi VisionBook Traveler, Hitachi Prius 210, Epson Endeavor TK-300/TK-400, ...<br />
|}<br />
<br />
It features 3 PCMCIA slots (yes: three), 1 USB, 1 PS/2, 1 infra/red, 1 serial, 1 parallel and 1 VGA ports. It is using two standard camcorder batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
For dismantling help click on mainboard picture below.<br />
<br />
==External Sources==<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
[http://digital.hmx.net/02contents/pc/i386/tp235/tp235.shtml Japanese page but with many pictures and detailed specifications in latin characters]<br />
[[Category:Models]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=File:Mainboard235.jpg&diff=33400File:Mainboard235.jpg2007-09-26T11:00:21Z<p>MarcH: Detailed dismantling explanations</p>
<hr />
<div>Mainboard of Thinkpad {{235}} with screws relevant to dismantling circled.<br />
<br />
Since there does not seem to be any manual in latin characters for the<br />
{{235}}, you may find this useful.<br />
<br />
As often the main problem is NOT to remove all screws blindly but only<br />
the ones needed, among other to avoid removing bolts and losing nuts<br />
inside the case. So read on for details. Also be extremely careful<br />
when removing cables, since the plugs on the mainboard are very<br />
fragile and easy to break (happened to me).<br />
<br />
Remove the keyboard: 2 screws, one on each side of the case.<br />
<br />
Remove the plastic part hiding the screen hinge: 2 screws on the back,<br />
then unfold the screen at most.<br />
<br />
Now see picture (double PCMCIA slot is covered for a better contrast).<br />
First remove the processor radiator in the upper right corner: 3<br />
screws circled in blue. Finally remove the mainboard itself: 6 screws<br />
circled in red. 2 screws underneath the case (they go through the<br />
right end of the double PCMCIA slot), 2 in right corners (one in<br />
each), 1 in the center of the white plastic part in the middle, last 1<br />
in the bottom left just below the double PCMCIA slot. Now don't forget<br />
to remove the power switch.<br />
<br />
Once the mainboard is detached, removing further (sub-)parts becomes<br />
very easy since nothing is hidden anymore.</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Problem_with_USB_2.0&diff=33399Problem with USB 2.02007-09-26T10:56:26Z<p>MarcH: X40 -> {{X40}}</p>
<hr />
<div>==Problem description==<br />
On various (early?) T40 models, USB 2.0 may not function, or may function only at USB 1.1 speeds. Symptoms include inability to connect to USB 2.0 devices at USB 2.0 speeds, the "This device can perform faster" pop-up in Windows XP, device ID assignment error messages from the Linux kernel, and frequent reboots of the USB bus and connected devices.<br />
<br />
==Possible Causes==<br />
So far, two possible causes have been suggested. In both cases, replacing the system board is the only solution.<br />
<br />
===Fried Southbridge USB controller===<br />
The Southbridge chip (containing the USB controller) may have been damaged by static electricity:<br />
<br />
{{QUOTE|Matthias Himber|[http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-June/026884.html linux-thinkpad]|<br />
Short answer: your southbridge is about to die, get your system board replaced. Hopefully its still under warranty.<br />
<br />
Long answer: a number of Intel chipsets for Pentium IV and Pentium M processors have a design flaw that makes the southbridge (which contains the USB host controllers) especially sensitive to static electricity. As a result <br />
there is a (small) risk that when plugging in or removing a USB device causes damage to the chip. Usually, the first symptom is broken USB 2.0, behaving in exactly the way you described (ie, works under Windows, but only after some waiting and as if it was connected to a USB 1.1 controller, not a USB 2.0 one, and not at all under Linux unless you unload the USB 2.0 driver). This tends to lead to a completely dead chipset a short time later, so better get it serviced NOW.<br />
}}<br />
<br />
===Mechanical Damage to Mainboard===<br />
Mechanical damage (from bending, dropping or vibrating the laptop) can lead to components becoming desoldered from the mainboard and no longer having reliable electrical contact:<br />
{{QUOTE|?|?|<br />
My T41 shows the same symptoms. USB 2.0 works if I (gently) push the USB plug, or if I slightly flex my thinkpad. For example, it works when I put a pencil under the harddrive on an otherwise flat desk, so that the thinkpad only makes contact with the desk at 3 points (I type on an external keyboard). If I flex the other way, USB 2.0 never works. USB 1.1 always works reliably, irregardless of flexing / pushing the plug.<br />
}}<br />
<br />
Clearly, this is an electrical problem and not static electricity.<br />
<br />
==Solutions==<br />
This seems to be a hardware problem with the USB controller on Intel's chip or related electronics. Sending the laptop in for service may help.<br />
<br />
If the Linux kernel refuses to register the USB device, "modprobe -r ehci_hcd" may help. This disables USB 2.0 functionality for the session.<br />
<br />
Unloading ehci_hcd as per above confirmed to work on T41 running Ubuntu Edgy.<br />
<br />
<br />
== See Also ==<br />
[http://forums.cnet.com/5208-7586_102-0.html?forumID=68&threadID=151816 IBM X40 USB Problem] (fried USB on multiple {{X40}}s)</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=File:Mainboard235.jpg&diff=33398File:Mainboard235.jpg2007-09-26T10:54:31Z<p>MarcH: 235 -> {{235}}</p>
<hr />
<div>Mainboard of Thinkpad {{235}} with screws relevant to dismantling circled.</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=File:Mainboard235.jpg&diff=33397File:Mainboard235.jpg2007-09-26T10:40:14Z<p>MarcH: Mainboard of Thinkpad 235 with screws relevant to dismantling circled.</p>
<hr />
<div>Mainboard of Thinkpad 235 with screws relevant to dismantling circled.</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=32892Category:2352007-09-03T13:27:09Z<p>MarcH: added type 2607</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 (type 2607) related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra 2" or "Clavius". It was marketed under a number of different names including Hitachi VisionBook Traveler, Hitachi Prius 210, Epson Endeavor TK-300/TK-400, ...<br />
|}<br />
<br />
It features 3 PCMCIA slots (yes: three), 1 USB, 1 PS/2, 1 infra/red, 1 serial, 1 parallel and 1 VGA ports.<br />
<br />
It is using two standard camcorder batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
==External Sources==<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
[http://digital.hmx.net/02contents/pc/i386/tp235/tp235.shtml Many pictures and detailed specifications]<br />
[[Category:Models]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=32891Category:2352007-09-03T13:21:09Z<p>MarcH: typos + link to japanese page with tons of pictures and specs</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra 2" or "Clavius". It was marketed under a number of different names including Hitachi VisionBook Traveler, Hitachi Prius 210, Epson Endeavor TK-300/TK-400, ...<br />
|}<br />
<br />
It features 3 PCMCIA slots (yes: three), 1 USB, 1 PS/2, 1 infra/red, 1 serial, 1 parallel and 1 VGA ports.<br />
<br />
It is using two standard camcorder batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
==External Sources==<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
[http://digital.hmx.net/02contents/pc/i386/tp235/tp235.shtml Many pictures and detailed specifications]<br />
[[Category:Models]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=32890Category:2352007-09-03T13:11:14Z<p>MarcH: minor fix</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra". It was marketed under a number of different names including Hitachi VisionBook Traveler, Hitachi Prius 210, Epson Endeavor TK-300/TK-400,...<br />
|}<br />
<br />
It features 3 PCMCIA slots (yes: three), 1 USB, 1 PS/2, 1 infra/red, 1 serial and 1 VGA ports.<br />
<br />
It is using two standard camera batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
==External Sources==<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
<br />
[[Category:Models]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=32889Category:2352007-09-03T12:52:50Z<p>MarcH: added ports inventory</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra". It was marketed under a number of different names including Hitachi VisionBook Traveler, Hitachi Prius 210, Epson Endeavor TK-300/TK-400,...<br />
|}<br />
<br />
It features PCMCIA slots (yes: three), 1 USB, 1 PS/2, 1 infra/red, 1 serial and 1 VGA ports.<br />
<br />
It is using two standard camera batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
==External Sources==<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
<br />
[[Category:Models]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Category:235&diff=32888Category:2352007-09-03T12:47:53Z<p>MarcH: Added product codename and marketing names. Added battery info</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top" | [[Image:ThinkPad235.png|ThinkPad 235]]<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== ThinkPad 235 ===<br />
This page gives an overview of all ThinkPad 235 related topics.<br />
<br />
This machine is specific to Asia Pacific (mainly China, Hong Kong, Japan and Korea).<br />
It was designed by RIOS, a joint venture between IBM and Ricoh, under the codename "Chandra". It was marketed under a number of different names including Hitachi VisionBook Traveler, Hitachi Prius 210, Epson Endeavor TK-300/TK-400,...<br />
<br />
<br />
|}<br />
<br />
It is using two standard camera batteries (7.2V), allowing battery hotswap and external charge.<br />
<br />
==External Sources==<br />
[http://arizona.speedchoice.com/~lufthans/unix/schlepptop/Hitachi.Traveler.html Linux on a Hitachi VisionBook Traveler]<br />
<br />
[[Category:Models]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Problem_with_hard_drive_clicking&diff=31919Problem with hard drive clicking2007-08-12T13:54:55Z<p>MarcH: /* Possible Cause and Speculation */ pointer to noatime</p>
<hr />
<div>Many users have reported a '''problem with hard drive clicking''', sometimes described as a repeating '''tick tick tick''' type of ticking sound.<br />
The [[Hitachi Travelstar 5K80]] series which shipped with many T series Thinkpads in particular is reported to suffer from this problem. The clicks occur rapidly, and are quiet but noticeable. While in use in a quiet environment the clicks can be relatively loud and very irritating to some users. The clicks seem to happen when the drive is idle and the power has been on for a significant period of time. The clicking is also reported on other vendor's laptop hard drives too and is therefore almost certainly a hard drive related rather than a laptop chassis related.<br />
<br />
The clicking sound appears to only occur when the drive is idle. Forcing the drive to be busy silences the ticking while the drive is busy. Launching programs that access the hard drive such as searching or defragmenting the drive helps for a time. Cycling the power on the hard drive such as through a full power off reboot of the system stops the ticking for the moment and has been used as a temporary solution. Also see use of hdparm for another way to reset the drive without a power off reboot.<br />
<br />
Others recommend using Hitachi's drive feature tool to increase the acoustic management level, and/or set power management settings.<br />
<br />
===Possible Cause and Speculation===<br />
<br />
Laptop drives (especially Hitachi [[Hitachi Travelstar 5K80]], [[Hitachi Travelstar 5K100]] and SAMSUNG MP0804H) can unload heads very often, and they can produce a noticeable click when doing that. Some ThinkPad BIOSes can be very eager to program the HD Advanced Power Management feature (hdparm -B) even when told to always keep the HD in "Maximum Performance mode" and will do so every time AC state changes, and when coming out of suspend (be it S3 or S4). Unless you reset the HD's APM mode, it will unload its heads eventually thus producing the clicks.<br />
<br />
Another proposed possible cause is the drive firmware running a low level surface media check periodically during drive idle time.<br />
<br />
It is not known whether the problem is a sign of impending drive failure. The root cause of the problem is not yet known. It is quite likely to be a normal mode of drive operation. The problem is very prevalent.<br />
<br />
Do not confuse this with regular activity. Many daemons poll (config) files every few seconds. Despite files being cached, POSIX-compliant filesystems like ext2 or ext3 must update (=write) the last access time. More details and workaround in [[How to reduce power consumption#Hard_Drives]].<br />
<br />
===Tracking down the cause of the clicks===<br />
<br />
Using "'''smartctl -A'''", it is possible to check if any of the drive's attributes related to platter spin-up/down or head unload are increasing when a click is heard.<br />
That can help pinpointing the cause of the clicks.<br />
<br />
===Possible solution (Linux)===<br />
<br />
Temporary relief has been seen by using '''hdparm''' to reset the drive. But note the warning in the hdparm man page indicating that it is a dangerous operation. This is very likely due to the possibility of losing data in the write cache not yet stored to the hard drive. This would be dependent upon the particular hard drive. When used in the following to stop the clicking I have not seen any data loss. YMMV.<br />
<br />
# hdparm /dev/hda<br />
# sync<br />
# sleep 5<br />
# sync<br />
# hdparm -w /dev/hda<br />
<br />
The clicking noise apparently occurs when the drive is parking its heads (and ramping them off the drive surface in the process) after a timeout after the last disk access. Try turning off power management for the drive; that should stop the drive from parking the heads except when turning off:<br />
<br />
# hdparm -B 255 /dev/hda<br />
<br />
You can also try<br />
<br />
# hdparm -B 254 /dev/hda<br />
<br />
which doesn't turn power management off, but is the least agressive setting: it will still unload heads, but far less often. The drives '''are''' prepared to withstand a great number of head unloads (200k unloads are typical, Hitachi drives tolerate about 600k unloads).<br />
<br />
These commands have immediate effect, and need to be re-issued at every boot, after resuming from disk or RAM, and after hotswapping. '''You have to reissue the -B commands every time the ThinkPad BIOS might have tried to override them'''.<br />
<br />
===Specific models===<br />
<br />
====Hitachi C4K60 (HTC426060G9AT00)====<br />
<br />
On a Thinkpad X41 with a has a 60GB Hitachi C4K60 (HTC426060G9AT00) hard-disk that had the clicking problem (even in Windows), the hdparm solution above did not work. The problem was indeed caused by the hard-disk unloading the heads when idle, and the Load_Cycle_Count SMART statistic could be seen increasing when the clicks occurred.<br />
<br />
hdparm -B settings did not seem to help, and a check of the harddrives specs (available in [http://www.hitachigst.com/tech/techlib.nsf/products/Travelstar_C4K60 hitachigst.com]) verified that setting the APM mode off (hdparm -B 255) would set it actually to the lowest APM mode (the same as hdparm -B 254). In this drive, even the lowest APM mode unloads the heads very aggressively causing the clicking sounds. Another problem is that the drive is rated only for 600000 unload/load cycles, which means that the drive will break in at most a couple of years. <br />
<br />
{{NOTE|This observation is only about the specific model (Hitachi C4K60), and is not true for more recent Hitachi drives, which do disable APM with -B 255.}}<br />
<br />
====Samsung MP0804H 80GB====<br />
<br />
On this drive, the ''clicking noise'' can be immediately stopped just by enabling ''automatic offline tests'' using<br />
# smartctl -o on /dev/hda <br />
Even more strange is that SMART wasn't enabled by default, although the drive supports it.<br />
<br />
The drive had already performed 15.539 load cycles (out of 600.000) within only one week.<br />
<br />
Note that enabling SMART (-s on) without enabling ''offline tests'' -- which is what I did immediately after observing the ''clicks'' -- did not solve the problem, but made it quite clear that the drive was ''badly in need of some care''.<br />
<br />
<br />
<br />
===Firmware upgrades===<br />
<br />
There are two HD firmware upgrades on Lenovo's support website. One is specific to X41's, and will upgrade Hitachi's to Release A0L0 (document [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67238 MIGR-67238], 2007/01/24). The upgrade comes in three forms: diskette, windows executable or ISO CD-ROM image.<br />
IBM's latest posted firmware, A5DA, does not appear to solve the problem. <br />
<br />
A newer upgrade set ([http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-62282 MIGR-62282], 2007/05/02) updates HD firmwares of several brands, including Hitachi. The patch upgrades firmware for HTC4260xxG9AT00 to A0L2 (according to program output, from 00P3A0B5 to 00P3A0L2). The upgrade comes in a large (20 MB) ISO format, or as several diskettes. There is seemingly no windows executable; therefore upgrading a diskless machine can be problematic (it involves making a DOS-based USB bootable drive).<br />
<br />
The upgrade caused one X41 Tablet HTC426060G9AT00 drive to stop clicking.<br />
<br />
===Another Possible Solution===<br />
<br />
IBM, when notified about this occurance, may replace the drive with a Fujitsu 5k 80GB hard drive, as to them the sound is indicative of a potential hard drive failure.<br />
<br />
==External links==<br />
*[http://www.hitachigst.com/hdd/support/download.htm Hitachi Global Storage Technologies Downloads] - The drive feature tool may help with this problem.<br />
*[http://forum.thinkpads.com/viewtopic.php?t=7462 Thread on thinkpads.com]<br />
*[http://notebookforums.com/showthread.php?t=46058 Thread on notebookforums.com]<br />
*[http://forums.silentpcreview.com/viewtopic.php?p=143203 Thread on silentpcreview.com]<br />
*[http://forum.thinkpads.com/viewtopic.php?t=15769 Another Thread on thinkpads.com]<br />
*[http://www.tabletpcbuzz.com/forum/topic.asp?TOPIC_ID=28538&whichpage=1 Thread on tabletpcbuzz.com]<br />
*[http://thinkpad-forum.de/forum/viewtopic.php?t=2255 German Thread on thinkpad-forum.de (Containing an interesting remark about a possible problem with the Cache)]<br />
<br />
[[Category:T40]] [[Category:T41]] [[Category:T42]] [[Category:T43]] [[Category:X41]] [[Category:G41]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Rescue_and_Recovery&diff=31793Rescue and Recovery2007-08-07T03:02:37Z<p>MarcH: /* Using the Windows Bootloader to Boot Linux */ added hibernate warning</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;" | __NOTOC__<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
===Rescue and Recovery===<br />
Rescue and Recovery version 3.0 consists of a bootable partition containing various system recovery tools, including full recovery of the preinstalled Windows XP partition. It can be activated by pressing the {{ibmkey|ThinkPad|#494949}}, {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkVantage|#495988}} [[ThinkPad Button|Button]] during system boot. It contains a FAT filesystem (labeled "IBM_SERVICE"), and has partition type 0x12 ("Compaq diagnostics" in <tt>fdisk</tt>).<br />
<br />
As opposed to a [[Hidden Protected Area|Hidden Protected Area]] Recovery partitions are ordinary partitions, accessible through the partition table. As they are ordinary partitions they are accessible by ordinary partitioning tools. They should be dealt with carefully.<br />
<br />
Rescue and Recovery is a Windows specific feature. If you intend to recover into Windows when you have an issue, it is important to follow the warnings here carefully. If you intend to run another operating system exclusively and never return to Windows, removing this partition is safe. If you remove it, you can still reinstall windows at a later time, provided you have created a Recovery set of discs (1CD + 1DVD or 5CDs required). Booting from the Recovery CD will restore the system to the factory state including the recovery partition.<br />
</div><br />
|}<br />
<br />
==Proper MBR==<br />
{{WARN|Only tinker with the MBR and the Rescue and Recovery partition if you know what you're doing. Mistakes can leave the system unbootable and can make it very difficult to retrieve the data on the harddisk.}}<br />
<br />
Consideration 6 of the Readme states:<br />
<blockquote>"The Master Boot Record (MBR) must be configured properly for the Rescue and Recovery application to function properly. When possible, the Rescue and Recovery application attempts to ensure the proper configuration of the MBR. This can only occur if the Rescue and Recovery application is installed after other applications that requires the MBR."</blockquote><br />
<br />
Apparently, the MBR is not "configured properly" if LILO or GRUB have written it. The following is the case:<br />
*The default bootloader seems to ignore the active bit and always boots the first partition instead<br />
*The default bootloader contains code to catch a press of the appropriate button during bootup and launch the Rescue and Recovery application in that case<br />
*Before launching the Rescue and Recovery application at system boot, the default bootloader changes the partition type of the Rescue and Recovery partiton to 0x0b, otherwise it changes it to 0x12 (to hide it from Windows)<br />
*The Rescue and Recovery application assumes that the first partition contains Windows<br />
*When booting from the Rescue and Recovery partition, it needs to have its type set (either by Thinkvantage or by GRUB) to 0x0b (FAT32) for the default bootloader to launch the Rescue and Recovery application.<br />
<br />
Since neither LILO nor GRUB catch the press of the button (an undocumented mechanism anyway) it is not possible to launch the Rescue and Recovery application by pressing the appropriate button during system boot, once LILO or GRUB have altered the MBR for their boot procedure.<br />
<br />
IBM provides a program to manage the Rescue and Recovery bootloader. It is located in {{path|C:\Program Files\IBM ThinkVantage\Common\BMGR}} or {{path|C:\Program Files\Common Files\Lenovo\BMGR}}. It can select the partition to boot, and also allows for rewriting the MBR if it was written by another bootloader. More information is needed about this program.<br />
<br />
Some information here, but it may be slightly out of date:<br />
http://www.redbooks.ibm.com/abstracts/SG247107.html<br />
<br />
===MBR written by GRUB===<br />
If the MBR was written by GRUB you can still use GRUB to launch the Rescue and Recovery application. However if you leave the type of the Rescue and Recovery partition to 0x12 (Compaq diagnostics), this will result in an error message "c000021a, Fatal System Error" if you try to launch it. To avoid that and to make sure the recovery partition always is of the right type, add a line to change the partition type to 0x0b to the Rescue and Recovery partition's entry in your {{path|/boot/grub/menu.lst}}. Assuming your Rescue and Recovery partition is the second partition, it could look like this: Please note that there are people who report that this didn't work, for example it didn't work on a {{Z61m}} 9450-3HG.<br />
<br />
title IBM Rescue and Recovery<br />
root (hd0,1)<br />
'''parttype (hd0,1) 0x0b'''<br />
'''unhide (hd0,1)'''<br />
chainloader +1<br />
<br />
Also add an <tt>unhide</tt> line here because we are going to hide the Rescue and Recovery partition on every boot of Windows, so we need to unhide it, when the recovery partition is booted. This is because if we don't hide the partition when booting Windows, it would be visible and accessable there and that's not what we want. So, assuming that Windows is on the first partition, the Windows entry could now look like this:<br />
title Windows<br />
root (hd0,0)<br />
'''hide (hd0,1)'''<br />
chainloader +1<br />
<br />
===GRUB in a partition's boot sector===<br />
A way to have your Access IBM button still functional on bootup, is to create a separate {{path|/boot}} partition, install GRUB to that partition and make it active. This will leave the MBR untouched.<br />
{{NOTE|If the above finding is true that the MBR ignores the active bit, that partition has to be the first one. In most recent Linux distributions it is not easy to create /boot as first partition and shrink the Windows partition. In that case the Windows bootloader can be used to boot Windows and Linux, also preserving the Rescue and Recovery functionality. See below.}}<br />
*In the BIOS, set the IBM Predesktop Area to 'Secure'.<br />
*Boot your Linux distribution's installation CD.<br />
*Follow the instructions and go through the regular installation process.<br />
*Create a '''primary partition''' for /boot (the other stuff can go into the extended partitions) and when the time comes to install GRUB, make sure you install it into the boot sector of the boot partition.<br />
*Set this boot partition as active.<br />
<br />
===Using the Windows Bootloader to Boot Linux===<br />
The NTLDR Windows bootloader can be configured to boot Linux in addition to Windows. The master boot record (MBR) is unchanged, so the ThinkVantage Rescue and Recovery system boot functionality is preserved. This clever procedure was [http://gawrysiak.org/corvus/?p=4 originally applied] to Ubuntu Dapper Drake, and is generalized here.<br />
<br />
0. Added warning: with this method, you cannot hibernate windows and boot anything else. The windows boot loader jumps on resuming windows before asking anything (and you can already verify this right now, whatever your current configuration is).<br />
<br />
1. Boot Windows and make product recovery disks. You will see this step repeated throught this wiki for good reason. The recovery disks can refresh your hard disk to its original factory state, getting you out of the trouble you might make in the next step.<br />
<br />
2. Shrink the Windows NTFS partition to the size you like. You will need a bootable CD that is capable of resizing NTFS partitions. I have done this before with Knoppix, but this time I used Partition Magic (US$70).<br />
<br />
Leave the Rescue and Recovery partition (~5GB) at the end of the disk. Other authors claim that it ''must not'' be moved. I did move it, and it works fine. Still, in retrospect I agree that the end of the disk is the best place for your Rescue and Recovery partition.<br />
<br />
3. Reboot. Push the {{ibmkey|ThinkVantage|#495988}} button during system boot, and verify that Rescue and Recovery still runs. Reboot into Windows to verify that the partition resize was successful.<br />
<br />
4. Begin your Linux installation. Linux will see the Windows NTFS partition as /dev/sda1, and the Rescue and Recovery FAT32 partition as /dev/sda2. When the Linux installer asks you about GRUB, do not install GRUB in the MBR. Instead, install GRUB in the /boot partition (most likely /dev/sda3).<br />
<br />
5. After the Linux installation is finished, reboot with a bootable Linux live CD. The "rescue mode" of your Linux installation CD #1 should work fine for this. Usually you start the rescue mode with the command,<br />
<br />
linux rescue<br />
<br />
Start the network if you plan to use FTP in step 7.<br />
<br />
6. After you get a shell prompt, become root if necessary, and then write the first sector of the /boot partition (probably /dev/sda3) to a file using the dd command:<br />
<br />
sudo -i # If necessary<br />
cd /mnt/sysimage/boot # Or wherever your live CD mounts the /boot partition<br />
dd if=/dev/sda3 of=grub.img bs=512 count=1<br />
<br />
The resulting grub.img file should be 512 bytes long.<br />
<br />
7. Transfer the grub.img file somewhere where you can read it from Windows. You can use removable media like a USB flash drive, or even FTP.<br />
<br />
8. Reboot into Windows. Copy the grub.img file to c:\grub.img.<br />
<br />
9. Make a backup copy of the c:\boot.ini NTLDR control file. c:\boot.ini is read-only and hidden, so you will have to tell Windows to show hidden files, and turn off the read-only property on c:\boot.ini.<br />
<br />
10. Edit c:\boot.ini. Append the line,<br />
<br />
c:\grub.img="Linux GRUB Bootloader"<br />
<br />
So that Linux will boot by default, you may also want to change the default OS to c:\grub.img, and reduce the timeout to 5 seconds or so. For reference, here is my c:\boot.ini file for Windows XP:<br />
<br />
[boot loader]<br />
timeout=5<br />
default=c:\grub.img<br />
[operating systems]<br />
c:\grub.img="Linux GRUB Bootloader"<br />
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional" /noexecute=optin /fastdetec<br />
<br />
11. Reboot. Now the Windows boot menu should offer you a choice of "Linux GRUB Bootloader" or Windows XP. Choose "Linux GRUB Bootloader", and you will be taken to the GRUB boot menu, where you can select Linux, or even go back to the Windows boot menu.<br />
<br />
12. When you need Rescue and Recovery, push the {{ibmkey|ThinkVantage|#495988}} button upon system boot. Since you have touched neither the MBR nor the Rescue and Recovery partition, Rescue and Recovery will work exactly the same as it did before you installed Linux.<br />
<br />
==Newer versions of Rescue and Recovery==<br />
<br />
Rescue and Recovery version 4 is installed on T61/R61.<br />
<br />
The partition type is 0x27. By factory default, the R&R partition is the first partition on the disk. The filesystem used is NTFS. The preloaded Windows appear as the second partition, with the active bit set.<br />
<br />
R&R version 4 bootloader seems to honor the active bit in the partition table. To install Linux while maintaining the R&R functionality is therefore rather straightforward:<br />
<br />
* Shrink the second Windows partition &ndash; or remove it if not needed<br />
* Add partitions for Linux (or other operating systems), one of them has to be a '''primary partition''' since the R&R bootloader cannot boot from an extended one<br />
* Install GRUB on the boot sector of the newly added primary partition<br />
* Remove the active bit from the Windows partition and activate the boot partition with GRUB<br />
<br />
==Older versions of Rescue and Recovery==<br />
Some Thinkpads (e.g., T23 and T30) do not come with a Recovery CD, but also do not support the [[Hidden Protected Area]]. These ThinkPads have an older version of Rescue and Recovery preloaded on the hard disk to implement the factory recovery function. Most of the comments above also apply to the older versions, with the following differences:<br />
*The recovery partition type is 0x1c, hidden FAT32, LBA-mapped (or 0xc when unhidden).<br />
*The boot manager program is in {{path|C:\IBMTOOLS\RECOVERY}} and only runs in a 16-bit DOS environment<br />
{{Fixme|name of this boot manager needed}}<br />
*The IBM Predesktop area runs atop of Windows 98 (command-line) instead of WinPE<br />
<br />
==External Sources==<br />
* IBM page on [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4Q2QAK ThinkVantage Rescue and Recovery].<br />
* [ftp://ftp.software.ibm.com/pc/pccbbs/thinkvantage_en/tvtrnr3_1027en.txt Rescue and Recovery Readme]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-46088 IBM page about accessing the Recovery Partition if Linux has been installed and the F11 button no longer works]<br />
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-54483 IBM Rescue and Recovery repair diskette]<br />
<br />
==Models featuring this technology==<br />
* ThinkPad {{T23}}, {{T30}} (R&R 2.0)<br />
* ThinkPad {{T42}}<br />
* ThinkPad {{T43}}, {{T43p}}<br />
* ThinkPad {{T60}}, {{T60p}}<br />
* ThinkPad {{R52}}<br />
* ThinkPad {{Z60m}}<br />
* Thinkpad {{Z61m}}<br />
<br />
[[Category:Glossary]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Problem_with_USB_2.0&diff=31335Problem with USB 2.02007-07-16T19:32:03Z<p>MarcH: Added link to CNET forum with fried USB on multiple X40s</p>
<hr />
<div>==Problem description==<br />
On various (early?) T40 models, USB 2.0 may not function, or may function only at USB 1.1 speeds. Symptoms include inability to connect to USB 2.0 devices at USB 2.0 speeds, the "This device can perform faster" pop-up in Windows XP, device ID assignment error messages from the Linux kernel, and frequent reboots of the USB bus and connected devices.<br />
<br />
==Possible Causes==<br />
So far, two possible causes have been suggested. In both cases, replacing the system board is the only solution.<br />
<br />
===Fried Southbridge USB controller===<br />
The Southbridge chip (containing the USB controller) may have been damaged by static electricity:<br />
<br />
{{QUOTE|Matthias Himber|[http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-June/026884.html linux-thinkpad]|<br />
Short answer: your southbridge is about to die, get your system board replaced. Hopefully its still under warranty.<br />
<br />
Long answer: a number of Intel chipsets for Pentium IV and Pentium M processors have a design flaw that makes the southbridge (which contains the USB host controllers) especially sensitive to static electricity. As a result <br />
there is a (small) risk that when plugging in or removing a USB device causes damage to the chip. Usually, the first symptom is broken USB 2.0, behaving in exactly the way you described (ie, works under Windows, but only after some waiting and as if it was connected to a USB 1.1 controller, not a USB 2.0 one, and not at all under Linux unless you unload the USB 2.0 driver). This tends to lead to a completely dead chipset a short time later, so better get it serviced NOW.<br />
}}<br />
<br />
===Mechanical Damage to Mainboard===<br />
Mechanical damage (from bending, dropping or vibrating the laptop) can lead to components becoming desoldered from the mainboard and no longer having reliable electrical contact:<br />
{{QUOTE|?|?|<br />
My T41 shows the same symptoms. USB 2.0 works if I (gently) push the USB plug, or if I slightly flex my thinkpad. For example, it works when I put a pencil under the harddrive on an otherwise flat desk, so that the thinkpad only makes contact with the desk at 3 points (I type on an external keyboard). If I flex the other way, USB 2.0 never works. USB 1.1 always works reliably, irregardless of flexing / pushing the plug.<br />
}}<br />
<br />
Clearly, this is an electrical problem and not static electricity.<br />
<br />
==Solutions==<br />
This seems to be a hardware problem with the USB controller on Intel's chip or related electronics. Sending the laptop in for service may help.<br />
<br />
If the Linux kernel refuses to register the USB device, "modprobe -r ehci_hcd" may help. This disables USB 2.0 functionality for the session.<br />
<br />
Unloading ehci_hcd as per above confirmed to work on T41 running Ubuntu Edgy.<br />
<br />
<br />
== See Also ==<br />
[http://forums.cnet.com/5208-7586_102-0.html?forumID=68&threadID=151816 IBM X40 USB Problem] (fried USB on multiple X40s)</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Need_to_disable_V90/V92/56K_modem_speed&diff=31328Need to disable V90/V92/56K modem speed2007-07-16T13:42:04Z<p>MarcH: </p>
<hr />
<div>Connection failure with the [[IBM_Integrated_Bluetooth_III_with_56K_Modem_(BMDC-2)|BMDC-2]] (Conexant softK56 / HSF) and latest windows driver (7.34.00.00)<br />
<br />
For countless attempts, the modem stayed stuck at speed negociation time, making a high pitch noise. Another, different laptop connects faster than 33600 in the exact same conditions.<br />
<br />
Simple workaround: limit connection speed to 33600 by appending the following AT command: +MS=V34<br />
<br />
Considering the number of similar web pages, this kind of issue seems quite common to a wide range of modem models.</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=IBM_Integrated_Bluetooth_III_with_56K_Modem_(BMDC-2)&diff=31327IBM Integrated Bluetooth III with 56K Modem (BMDC-2)2007-07-16T13:41:14Z<p>MarcH: Added link to V92 problem</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |[[Image:Logo_bluetooth.jpg|Bluetooth Logo]]<br />
|style="vertical-align:top" |<br />
<div style="margin:0px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== IBM Integrated Bluetooth III with 56K Modem (BMDC-2) ===<br />
This is a combination USB Bluetooth and AC97 Modem Adapter that is installed in a [[CDC slot]].<br />
=== Bluetooth Features ===<br />
* Chipset: <br><br />
* USB ID: 1668:2441<br />
<br />
=== Modem Features ===<br />
* Chipset: Conexant<br />
* AC'97 Modem<br />
</div><br />
|}<br />
=== IBM Partnumbers ===<br />
IBM FRU PN: 91P7319<br><br />
IBM FRU PN: 27R1880 (Actiontec)<br />
<br />
=== Also known (in IBM literature) as.... ===<br />
* Integrated Bluetooth III with 56K Modem,<br />
* Integrated Bluetooth III with 56K Modem, Actiontec<br />
<br />
=== Linux Bluetooth driver ===<br />
This card will work with the standard Linux Bluetooth drivers as part of any recent 2.4 or 2.6 kernel; the HCI USB driver in particular is known to work. <br />
<br />
This device is implemented as a USB device, which can be enabled or disabled with the {{key|Fn}}{{key|F5}} key combination<br />
<br />
=== Linux modem driver ===<br />
<br />
See [[Conexant HSF modem drivers]].<br />
<br />
=== ThinkPads this card may be found in ===<br />
* {{R51}}<br />
* {{T42}}, {{T42p}}<br />
* {{X40}}<br />
<br />
=== Problems ===<br />
[[Need_to_disable_V90/V92/56K_modem_speed]]<br />
<br />
===External Sources===<br />
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51427 IBMs page about configuring Bluetooth under Linux]<br />
*[http://www.bluez.org/ BlueZ - Official Linux Bluetooth protocol stack]<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=IBM_Integrated_56K_Modem_(MDC-2)&diff=31325IBM Integrated 56K Modem (MDC-2)2007-07-16T13:39:17Z<p>MarcH: added link to V92 problem</p>
<hr />
<div>__NOTOC__<br />
{| width="100%"<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;"><br />
=== IBM Integrated 56K Modem (MDC-2) ===<br />
This is a AC97 Modem Adapter that is installed in a [[CDC slot]].<br />
=== Features ===<br />
* MiniPCI vendor: Conexant<br />
* Chipset: SmartLink<br />
</div><br />
|style="vertical-align:top" |<br />
|}<br />
<br />
=== IBM Partnumbers ===<br />
IBM FRU PN: 93P4166, 93P4212, 91P7321<br />
<br />
=== Also known (in IBM literature) as.... ===<br />
* Integrated 56K Modem<br />
* MDC II Modem card<br />
<br />
=== Linux driver ===<br />
<br />
See [[Conexant HSF modem drivers]].<br />
<br />
=== ThinkPads this card may be found in ===<br />
* {{R50e}}, {{R51}}, {{R51e}}, {{R52}}<br />
* {{T42}}, {{T42p}}, {{T43}}, {{T43p}}<br />
* {{X32}}<br />
* {{X40}}, {{X41}}, {{X41T}}<br />
* {{Z60m}}, {{Z60t}}<br />
<br />
=== Problems ===<br />
[[Need_to_disable_V90/V92/56K_modem_speed]]<br />
<br />
<br />
[[Category:Components]]</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Known_Problems&diff=31323Known Problems2007-07-16T13:30:50Z<p>MarcH: added need to disable V92 / 56K</p>
<hr />
<div>{| width="100%"<br />
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__<br />
|style="vertical-align:top" |<br />
Information on known problems with certain ThinkPad models.<br />
|}<br />
==Display Problems==<br />
*[[Problem with unusable console | Console unusable]] <tt>(models with savage video chipset: T2x, A22e)</tt><br />
*[[Problem with Pixel Error | Dead pixels on TFT displays]] <tt>(all models)</tt><br />
*[[Problem with DVI throughput | DVI throughput on port replicators and docks]] <tt>(models from 2000-2004)</tt><br />
*[[Problems with fglrx | fglrx problems]] <tt>(ATI Radeon models)</tt><br />
*[[Problem with garbled screen | Garbled Screen]] <tt>(T40, T41, T42, R40, R50p, A30, A31, A31p)</tt><br />
*[[Problem with broken inverter | Inverter broken]] <tt>(all models)</tt><br />
*[[Problem with key and trackpoint markings on the display | Key and Trackpoint markings on display]]<br />
*[https://bugs.freedesktop.org/show_bug.cgi?id=2187 Radeon 7500 "DynamicClocks" randomly hangs] <tt>(TP T4x, Xorg-X11 bug report)</tt><br />
*[[Problem with red display shadow | Red shadow on display]] <tt>(TP T41p)</tt><br />
*[[Problem with red tinted display | Red tinted display]] <tt>(TP 23)</tt><br />
*[[Problem with black X | Unmovable square black X in X]] <tt>(TP T2x)</tt><br />
*[[Problem with video related system lockup | System Lockups related to video adapter]] <tt>(TP T2x)</tt><br />
*[[Problem with video related system lockup II | System Lockups related to video adapter T42]] <tt>(TP T42, T42p)</tt><br />
*[[Problem with ati driver in xorg 6.9.x | System lockup soon after starting xorg 6.9.x ]] <tt>(TP T4x)</tt><br />
*[[Problem with video output switching | Video output switching]]<br />
*[[Problem with LCD brightness buttons | Video brightness up keys don't work or cause crashes]]<br />
<br />
==Harddisk Drive related Problems==<br />
*[[Problem with APS harddisk parking|APS harddisk parking]] <tt>(models featuring APS)</tt><br />
*[[Problem with too large harddrive|BIOS hangs with harddrive sized over 8G]] <tt>(560)</tt><br />
*[[Problem with hard drive clicking | Clicking Hard Drive]] <tt>(models with Hitachi's 5k80 hard drive)</tt><br />
*[[Problem with non-ThinkPad hard disks|Non-ThinkPad hard disks]] <tt>(T43, X41, R52)</tt><br />
*[[Problems with SATA and Linux|SATA and Linux]] <tt>(T43, X41, R52, Z60)</tt><br />
<br />
==Network Problems==<br />
*[[Problem with 3Com 10/100 Ethernet card not being recognized|3Com 10/100 Ethernet card not recognized]] <tt>(models with that card)</tt><br />
*[[Problem with unauthorized MiniPCI network card|"Unauthorized" MiniPCI Wireless Network card error (Error 1802)]] <tt>(Recent TPs)</tt><br />
*[[Cisco Aironet Wireless 802.11b]] fails to work with certain firmware versions<br />
*[[Problem with error 01C9 - More than one Ethernet devices | Error 01C9: More than one Ethernet Devices are found (Atheros WLAN MiniPCI)]] <tt>(T23, T30, A31p, R40 and others)</tt><br />
*[[Problem with e1000: EEPROM Checksum Is Not Valid]] <tt>(T60, X60, may be others)</tt><br />
*[[Problem with e1000: 99.9% packet loss on 7.x drivers]] <tt>(Recent TPs)</tt><br />
*[[Problem with 3945ABG: Internal wifi cannot associate with AP]] <tt>(T60, probably others)</tt><br />
*[[Need to disable V90/V92/56K modem speed]] ([[IBM_Integrated_Bluetooth_III_with_56K_Modem_(BMDC-2)|BMDC-2]] on X40)<br />
<br />
==Power Management, AC-adapter or Battery Problems==<br />
*[[Problem with ThinkPad 600 batteries | 600 series Battery dying prematurely]] <tt>(TP 600/E/X)</tt><br />
*[[Damage in 56W AC-Adapter, plastic housing melted |AC-Adapter damaged, plastic housing melted]] <tt>(240, 390, i and s models)</tt><br />
*[[Problems with ACPI suspend-to-ram|ACPI suspend-to-ram]] <tt>(ACPI sleep troubles)</tt><br />
**[[Problem with display remaining black after resume|Blank display after resume]] <tt>(various models)</tt><br />
**[[Problem with high power drain in ACPI sleep | High power drain in ACPI sleep]] <tt>(various models)</tt><br />
**[[Problem with LCD backlight remaining on during ACPI sleep | LCD backlight remaining on during ACPI sleep]] <tt>(various models)</tt><br />
*[[Problem with fan noise | Fan noise]] <tt>(TP T4x/p, TP R5x/p)</tt><br />
*[[Problem with checking battery status | Checking battery status causes mouse to jerk around]] <tt>(R31)</tt><br />
*[[Battery drains despite seemingly being charged]] <tt>(A/C adapter issues)</tt><br />
*[[Problem with high pitch noises | High pitch noises]] <tt>(several models)</tt><br />
<br />
==Sound Problems==<br />
*[[Problem with broken sound on ThinkPad 600 | Broken sound on ThinkPad 600/E]] <tt>(TP 600/E/X, 770Z)</tt><br />
*[[Problem with audio jacks | Audio jacks not working properly]] <tt>(TP T43)</tt><br />
*[[Problem with ALSA audio output | No audio heard with kernel 2.6.11+/ALSA]] <tt>(TP T43, T40)</tt><br />
*[[Problem with audio clipping|Audio clipping]] <tt>(TP T43)</tt><br />
*[[Problem with no sound on ThinkPad R60e | No Sound on ThinkPad R60e and T60]] <tt>(R60e, T60)</tt><br />
<br />
==Misc Problems==<br />
*[[Problem with Bending / Twisting|Casing malformed by bending/twising]] <tt>(X41)</tt><br />
*[[Problem with Dock USB Ports | Dock USB Ports]] <tt>(T30/X21)</tt><br />
*[[High-pitch noise from AC-Adapter]] <tt>(T60/p)</tt><br />
*[[Problem with lm-sensors | lm_sensors kills ThinkPads]] <tt>(TP 570E, 770X/Z, 600E/X, 240, X20)</tt><br />
*[[Problem with USB 2.0 | USB 2.0 problems]] <tt>(T40/T41)</tt><br />
*[[Embedded Controller Firmware#Firmware_issues|Firmware issues]]<br />
*[[Problem with hot surfaces|Problem with hot surfaces]] <tt>(T43)</tt><br />
*[[Problem with disabled VT]] <tt>(Z61t, X60, X60s)</tt><br />
*[[Unable to create recovery cds when another python is installed on the system]] <tt>(T43p)</tt></div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Need_to_disable_V90/V92/56K_modem_speed&diff=31322Need to disable V90/V92/56K modem speed2007-07-16T13:28:10Z<p>MarcH: â†Created page with 'Connection failure with the BMDC-2 (Conexant softK56 / HSF) and latest windows driver (7.34.00.00) For countless ...'</p>
<hr />
<div>Connection failure with the [[IBM_Integrated_Bluetooth_III_with_56K_Modem_(BMDC-2)|BMDC-2]] (Conexant softK56 / HSF) and latest windows driver (7.34.00.00)<br />
<br />
For countless attempts, the modem stayed stuck at speed negociation time, making a high pitch noise. Another, different laptop connected fine in the exact same conditions.<br />
<br />
Simple workaround: limit connection speed to 33600 by appending the following AT command: +MS=V34<br />
<br />
Considering the number of similar web pages, this kind of issue seems quite common to a wide range of modem models.</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Conexant_HSF_modem_drivers&diff=31320Conexant HSF modem drivers2007-07-16T11:24:36Z<p>MarcH: precisions about intel8x0m</p>
<hr />
<div>The following modems, available in some ThinkPad models, use the Conexant HSF softmodem chip, and require an appropriate driver:<br />
<br />
* [[ThinkPad 56K Modem (MDC-1.5)]]<br />
* [[IBM Integrated 56K Modem (MDC-2)]]<br />
* [[IBM Integrated Bluetooth III with 56K Modem (BMDC-2)]]<br />
* [[IBM Integrated Bluetooth IV with 56K Modem (BMDC-3)]]<br />
<br />
Two drivers are currently available.<br />
<br />
===The Smartlink smlink driver===<br />
The Linux driver for Agere modems from [http://www.smlink.com/ SmartLink] supports both 2.4 and 2.6 kernels. However, it does not work with the newer Intel ICH6 controllers (used, e.g., on the ThinkPad {{R52}} and {{T43}}; trouble on the {{G41}} has also been [[Installing Debian on a ThinkPad G41|reported]]). Some users report that AT commands work but dialing does not.<br />
<br />
The {{path|snd_intel8x0m}} kernel module also (incorrectly?) recognizes the [[IBM Integrated Bluetooth III with 56K Modem (BMDC-2)|BMDC-2]]. At least scanModem works with it. About {{path|snd_intel8x0m}} see [[Modem_Daughter_Card_(MDC)|MDC]].<br />
<br />
===The Linuxant hsf driver===<br />
The commercial [http://www.linuxant.com/drivers/hsf/index.php Conexant HSF] driver from [http://www.linuxant.com Linuxant] supports these modem and work also on ICH6 models (e.g., ThinkPad {{R52}}, {{R51}}, {{T43}}, and {{Z60m}}).<br />
<br />
It offers free limited evaluation at 14.4kbps, and the full version costs $19.99.<br />
<br />
Download: http://www.linuxant.com/drivers/hsf/full/downloads.php<br />
<br />
This driver works well with reliable connections. It does not support voice or telephony features.<br />
<br />
====Installation====<br />
* Fedora Core: use the provided RPMs. If using a custom kernel, choose the "Generic packages with source" in the [https://www.linuxant.com/drivers/hsf/full/downloads.php#generic HSF downloads page].<br />
* Debian: run {{cmdroot|dpkg -i hsfblablabla.deb}}. When asked you for the code, enter "FREE" for the 14.4kbps evaluation.<br />
* Gentoo: the hsfmodem package is in portage.<br />
<br />
If you are running a 2.6.15.* kernel, you might consider running:<br />
# hsfconfig --patch <br />
first, and apply the appropriate patch (there is an issue with hsfmodem and 2.6.15 tree that results in kernel oops. <br />
The patch provided by Conexant fixes that). It looks like this command has to be run in console (rather than e.g. xterm, <br />
as the menu issues some escape sequences that garble the output in xterm)<br />
<br />
====Suspend/resume====<br />
The hsfmodem driver may prevent your machine from going into suspend. If so, you may remove them prior to sleep by adding to your suspend script:<br />
modprobe -r hsfmc97ich hsfserial hsfengine hsfosspec hsfsoar<br />
The drivers should be automatically re-loaded upon resume by the hotplug system, if not, just manually restart hotplug or modprobe the individual drivers, adding this to your suspend script if needed.<br />
<br />
If you use the <tt>hibernate</tt> script on Fedora Core, simple add this to {{path|/etc/hibernate/hibernate.conf}}:<br />
OnSuspend 12 service hsf stop<br />
OnResume 12 service hsf start<br />
<br />
====Problem with Software Suspend 2====<br />
Version 7.47.00.01 works fine with [[Software Suspend 2]].<br />
<br />
The version 7.43.00.01 of the HSF driver conflicted with [[Software Suspend 2]]. The needed patch isn't available from Linuxant anymore.<br />
<br />
For {{Fedora}} systems, the procedure for generating and installing a patched RPM is as follows:<br />
*Download tarball and patches:<br />
:{{cmdroot|wget http://www.linuxant.com/dri[[Software Suspend 2]]vers/hsf/full/archive/hsfmodem-7.43.00.01full/hsfmodem-7.43.00.01full.tar.gz}}<br />
:{{cmdroot|wget http://www.linuxant.com/drivers/hsf/full/archive/patches/hsf-7.43.00.01-suspend2.patch}}<br />
:{{cmdroot|wget http://www.linuxant.com/drivers/hsf/full/archive/patches/hsf-7.43.00.01-try_to_freeze-2.patch}}<br />
*Build the RPM:<br />
:{{cmdroot|mkdir hsf-workdir}}<br />
:{{cmdroot|cd hsf-workdir}}<br />
:{{cmdroot|tar xzvf ../hsfmodem-7.43.00.01full.tar.gz}}<br />
:{{cmdroot|cd hsfmodem-7.43.00.01full}}<br />
:{{cmdroot|patch -i ../../hsf-7.43.00.01-suspend2.patch -p1}}<br />
:{{cmdroot|patch -i ../../hsf-7.43.00.01-try_to_freeze-2.patch -p1}}<br />
:{{cmdroot|cd ..}}<br />
:{{cmdroot|tar czvf hsfmodem-7.43.00.01full.tar.gz hsfmodem-7.43.00.01full}}<br />
:{{cmdroot|rpmbuild -ta hsfmodem-7.43.00.01full.tar.gz}}<br />
*Install the RPM:<br />
:{{cmdroot|rpm -e hsfmodem}}<br />
:{{cmdroot|rpm -Uvh /usr/src/redhat/RPMS/i386/hsfmodem-7.43.00.01full-1.i386.rpm}}</div>MarcHhttps://www.thinkwiki.org/w/index.php?title=Conexant_HSF_modem_drivers&diff=31319Conexant HSF modem drivers2007-07-16T10:59:01Z<p>MarcH: brief mention of snd_intel8x0m</p>
<hr />
<div>The following modems, available in some ThinkPad models, use the Conexant HSF softmodem chip, and require an appropriate driver:<br />
<br />
* [[ThinkPad 56K Modem (MDC-1.5)]]<br />
* [[IBM Integrated 56K Modem (MDC-2)]]<br />
* [[IBM Integrated Bluetooth III with 56K Modem (BMDC-2)]]<br />
* [[IBM Integrated Bluetooth IV with 56K Modem (BMDC-3)]]<br />
<br />
Two drivers are currently available.<br />
<br />
===The Smartlink smlink driver===<br />
The Linux driver for Agere modems from [http://www.smlink.com/ SmartLink] supports both 2.4 and 2.6 kernels. However, it does not work with the newer Intel ICH6 controllers (used, e.g., on the ThinkPad {{R52}} and {{T43}}; trouble on the {{G41}} has also been [[Installing Debian on a ThinkPad G41|reported]]). Some users report that AT commands work but dialing does not.<br />
<br />
Alternatively the {{path|snd_intel8x0m}} kernel module also drives the MDC-2 (at least AT commands work).<br />
<br />
===The Linuxant hsf driver===<br />
The commercial [http://www.linuxant.com/drivers/hsf/index.php Conexant HSF] driver from [http://www.linuxant.com Linuxant] supports these modem and work also on ICH6 models (e.g., ThinkPad {{R52}}, {{R51}}, {{T43}}, and {{Z60m}}).<br />
<br />
It offers free limited evaluation at 14.4kbps, and the full version costs $19.99.<br />
<br />
Download: http://www.linuxant.com/drivers/hsf/full/downloads.php<br />
<br />
This driver works well with reliable connections. It does not support voice or telephony features.<br />
<br />
====Installation====<br />
* Fedora Core: use the provided RPMs. If using a custom kernel, choose the "Generic packages with source" in the [https://www.linuxant.com/drivers/hsf/full/downloads.php#generic HSF downloads page].<br />
* Debian: run {{cmdroot|dpkg -i hsfblablabla.deb}}. When asked you for the code, enter "FREE" for the 14.4kbps evaluation.<br />
* Gentoo: the hsfmodem package is in portage.<br />
<br />
If you are running a 2.6.15.* kernel, you might consider running:<br />
# hsfconfig --patch <br />
first, and apply the appropriate patch (there is an issue with hsfmodem and 2.6.15 tree that results in kernel oops. <br />
The patch provided by Conexant fixes that). It looks like this command has to be run in console (rather than e.g. xterm, <br />
as the menu issues some escape sequences that garble the output in xterm)<br />
<br />
====Suspend/resume====<br />
The hsfmodem driver may prevent your machine from going into suspend. If so, you may remove them prior to sleep by adding to your suspend script:<br />
modprobe -r hsfmc97ich hsfserial hsfengine hsfosspec hsfsoar<br />
The drivers should be automatically re-loaded upon resume by the hotplug system, if not, just manually restart hotplug or modprobe the individual drivers, adding this to your suspend script if needed.<br />
<br />
If you use the <tt>hibernate</tt> script on Fedora Core, simple add this to {{path|/etc/hibernate/hibernate.conf}}:<br />
OnSuspend 12 service hsf stop<br />
OnResume 12 service hsf start<br />
<br />
====Problem with Software Suspend 2====<br />
Version 7.47.00.01 works fine with [[Software Suspend 2]].<br />
<br />
The version 7.43.00.01 of the HSF driver conflicted with [[Software Suspend 2]]. The needed patch isn't available from Linuxant anymore.<br />
<br />
For {{Fedora}} systems, the procedure for generating and installing a patched RPM is as follows:<br />
*Download tarball and patches:<br />
:{{cmdroot|wget http://www.linuxant.com/dri[[Software Suspend 2]]vers/hsf/full/archive/hsfmodem-7.43.00.01full/hsfmodem-7.43.00.01full.tar.gz}}<br />
:{{cmdroot|wget http://www.linuxant.com/drivers/hsf/full/archive/patches/hsf-7.43.00.01-suspend2.patch}}<br />
:{{cmdroot|wget http://www.linuxant.com/drivers/hsf/full/archive/patches/hsf-7.43.00.01-try_to_freeze-2.patch}}<br />
*Build the RPM:<br />
:{{cmdroot|mkdir hsf-workdir}}<br />
:{{cmdroot|cd hsf-workdir}}<br />
:{{cmdroot|tar xzvf ../hsfmodem-7.43.00.01full.tar.gz}}<br />
:{{cmdroot|cd hsfmodem-7.43.00.01full}}<br />
:{{cmdroot|patch -i ../../hsf-7.43.00.01-suspend2.patch -p1}}<br />
:{{cmdroot|patch -i ../../hsf-7.43.00.01-try_to_freeze-2.patch -p1}}<br />
:{{cmdroot|cd ..}}<br />
:{{cmdroot|tar czvf hsfmodem-7.43.00.01full.tar.gz hsfmodem-7.43.00.01full}}<br />
:{{cmdroot|rpmbuild -ta hsfmodem-7.43.00.01full.tar.gz}}<br />
*Install the RPM:<br />
:{{cmdroot|rpm -e hsfmodem}}<br />
:{{cmdroot|rpm -Uvh /usr/src/redhat/RPMS/i386/hsfmodem-7.43.00.01full-1.i386.rpm}}</div>MarcH