<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hypnotoad</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hypnotoad"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Hypnotoad"/>
	<updated>2026-04-18T20:52:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Sample_Fn-F7_script&amp;diff=35516</id>
		<title>Sample Fn-F7 script</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Sample_Fn-F7_script&amp;diff=35516"/>
		<updated>2008-01-06T18:14:27Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: Added reference to script using aticonfig&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide will help you configure Fn-F7 key combination to toggle between internal, mirror, external, or both screens.  This was tested on ThinkPad X60s running Fedora 8, please comment if it works or does not work for you.&lt;br /&gt;
&lt;br /&gt;
Works like a charm on X61s with Xubuntu 7.10.&lt;br /&gt;
Working with R60e with some modifications noted below.&lt;br /&gt;
&lt;br /&gt;
The script does not work when using [[fglrx]] or a version of XRandR &amp;lt; 1.2, because there is no dynamic display switching support then. When fglrx is used, aticonfig can be used for the switching in this [[Script for Dynamic Display Management with fglrx]].&lt;br /&gt;
&lt;br /&gt;
==configuring the virtual screen size==&lt;br /&gt;
Add a &amp;quot;Virtual&amp;quot; statement to your /etc/X11/xorg.conf, the total resolution should be large enough to fit all your screens in the configuration you want, for example if you have 1600x1200 monitor to the left of your internal 1024x768 monitor, your total max resolution is 2624x1200 (See [[Xorg RandR 1.2]] for more details):&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;Screen0&amp;quot;&lt;br /&gt;
        Device     &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
        DefaultDepth     24&lt;br /&gt;
         SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
                Viewport   0 0&lt;br /&gt;
                Depth     24&lt;br /&gt;
                &amp;lt;b&amp;gt;Virtual   2624 1200&amp;lt;/b&amp;gt;&lt;br /&gt;
        EndSubSection&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Restart X server at this point (i.e. logout and login).&lt;br /&gt;
&lt;br /&gt;
== configuring acpi ==&lt;br /&gt;
Create /etc/acpi/events/thinkpad.conf:&lt;br /&gt;
&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
 action=/usr/local/sbin/thinkpad-fn-f7&lt;br /&gt;
&lt;br /&gt;
or you may (eg Ubuntu 7.10) already have /etc/acpi/events/ibm-videobtn&lt;br /&gt;
    # /etc/acpi/events/ibm-videobtn&lt;br /&gt;
    # This is called when the user presses the video button. It is currently&lt;br /&gt;
    # a placeholder.&lt;br /&gt;
    event=ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
    action=/bin/true&lt;br /&gt;
&lt;br /&gt;
in which case modify the line 'action=/bin/true' to run the script as above.&lt;br /&gt;
&lt;br /&gt;
It may also be necessary to enable acpi events as per [[How to get special keys to work]] with (in root terminal)&lt;br /&gt;
{{cmdroot|echo enable,0x084e &amp;gt; /proc/acpi/ibm/hotkey}}&lt;br /&gt;
Note this command isn't persistent. so you will also need to add the line to /etc/rc.local to enable hotkeys at boot, and to re-enable the hotkeys after suspend to disk or RAM, create the file&lt;br /&gt;
/etc/acpi/resume.d/91-ibm-hotkey-enable.sh consisting of&lt;br /&gt;
&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    # enable ibm-hotkeys (specifically Fn2, Fn7)&lt;br /&gt;
    # 12 bit mask, little end is F1 default 0x080c = F12+F4+F3&lt;br /&gt;
    echo enable,0x084e &amp;gt; /proc/acpi/ibm/hotkey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ref: [[http://tilmanfrosch.de/wp/index.php/2007/05/05/howto-make-a-ubuntu-linux-on-an-ibm-t41-thinkpad-work-with-an-external-widescreen-wxga-display/  frosch.org.uk]] and [[http://ibm-acpi.sourceforge.net/README ibm-acpi.sourceforge]]&lt;br /&gt;
&lt;br /&gt;
==identify output devices==&lt;br /&gt;
Note the names of your output devices as you will have to change EXTERNAL_OUTPUT and INTERNAL_OUTPUT to what xrandr shows, for example VGA and LVDS in this case:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr -q&lt;br /&gt;
 '''VGA''' connected 1600x1200+0+0 (normal left inverted right x axis y axis) 432mm x 324mm&lt;br /&gt;
 ...&lt;br /&gt;
 '''LVDS''' connected (normal left inverted right x axis y axis)&lt;br /&gt;
&lt;br /&gt;
==The bash script==&lt;br /&gt;
Create /usr/local/sbin/thinkpad-fn-f7, you can set EXTERNAL_LOCATION to one of: left, right, above, or below.&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# External output may be &amp;quot;VGA&amp;quot; or &amp;quot;VGA-0&amp;quot; or &amp;quot;DVI-0&amp;quot;&lt;br /&gt;
EXTERNAL_OUTPUT=&amp;quot;'''VGA'''&amp;quot;&lt;br /&gt;
INTERNAL_OUTPUT=&amp;quot;'''LVDS'''&amp;quot;&lt;br /&gt;
EXTERNAL_LOCATION=&amp;quot;'''left'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Figure out which user and X11 display to work on&lt;br /&gt;
# TODO there has to be a better way to do this?&lt;br /&gt;
X_USER=$(w -h -s | grep &amp;quot;:[0-9]\W&amp;quot; | head -1 | awk '{print $1}')&lt;br /&gt;
export DISPLAY=$(w -h -s | grep &amp;quot;:[0-9]\W&amp;quot; | head -1 | awk '{print $3}')&lt;br /&gt;
&lt;br /&gt;
# Switch to X user if necessary&lt;br /&gt;
if [ &amp;quot;$X_USER&amp;quot; != &amp;quot;$USER&amp;quot; ]; then&lt;br /&gt;
       SU=&amp;quot;su $X_USER -c&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$EXTERNAL_LOCATION&amp;quot; in&lt;br /&gt;
       left|LEFT)&lt;br /&gt;
               EXTERNAL_LOCATION=&amp;quot;--left-of $INTERNAL_OUTPUT&amp;quot;&lt;br /&gt;
               ;;&lt;br /&gt;
       right|RIGHT)&lt;br /&gt;
               EXTERNAL_LOCATION=&amp;quot;--right-of $INTERNAL_OUTPUT&amp;quot;&lt;br /&gt;
               ;;&lt;br /&gt;
       top|TOP|above|ABOVE)&lt;br /&gt;
               EXTERNAL_LOCATION=&amp;quot;--above $INTERNAL_OUTPUT&amp;quot;&lt;br /&gt;
               ;;&lt;br /&gt;
       bottom|BOTTOM|below|BELOW)&lt;br /&gt;
               EXTERNAL_LOCATION=&amp;quot;--below $INTERNAL_OUTPUT&amp;quot;&lt;br /&gt;
               ;;&lt;br /&gt;
       *)&lt;br /&gt;
               EXTERNAL_LOCATION=&amp;quot;--left-of $INTERNAL_OUTPUT&amp;quot;&lt;br /&gt;
               ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
# Figure out current state&lt;br /&gt;
INTERNAL_STATE=$($SU xrandr | grep ^$INTERNAL_OUTPUT | grep con | sed &amp;quot;s/.*connected //&amp;quot; | sed &amp;quot;s/(.*//&amp;quot;)&lt;br /&gt;
EXTERNAL_STATE=$($SU xrandr | grep ^$EXTERNAL_OUTPUT | grep con | sed &amp;quot;s/.*connected //&amp;quot; | sed &amp;quot;s/(.*//&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$INTERNAL_STATE&amp;quot; ]; then&lt;br /&gt;
       STATE=&amp;quot;external&amp;quot;&lt;br /&gt;
elif [ -z &amp;quot;$EXTERNAL_STATE&amp;quot; ]; then&lt;br /&gt;
       STATE=&amp;quot;internal&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
       INTERNAL_STATE=$(echo $INTERNAL_STATE | sed &amp;quot;s/[0-9]*x[0-9]*//&amp;quot;)&lt;br /&gt;
       EXTERNAL_STATE=$(echo $EXTERNAL_STATE | sed &amp;quot;s/[0-9]*x[0-9]*//&amp;quot;)&lt;br /&gt;
       if [ &amp;quot;$INTERNAL_STATE&amp;quot; = &amp;quot;$EXTERNAL_STATE&amp;quot; ]; then&lt;br /&gt;
               STATE=&amp;quot;mirror&amp;quot;&lt;br /&gt;
       else&lt;br /&gt;
               STATE=&amp;quot;both&amp;quot;&lt;br /&gt;
       fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
function screen_external(){&lt;br /&gt;
       $SU &amp;quot;xrandr --output $INTERNAL_OUTPUT --off&amp;quot;&lt;br /&gt;
       $SU &amp;quot;xrandr --output $EXTERNAL_OUTPUT --auto&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function screen_internal(){&lt;br /&gt;
       $SU &amp;quot;xrandr --output $EXTERNAL_OUTPUT --off&amp;quot;&lt;br /&gt;
       $SU &amp;quot;xrandr --output $INTERNAL_OUTPUT --auto&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function screen_mirror(){&lt;br /&gt;
       $SU &amp;quot;xrandr --output $INTERNAL_OUTPUT --auto&amp;quot;&lt;br /&gt;
       $SU &amp;quot;xrandr --output $EXTERNAL_OUTPUT --auto --same-as $INTERNAL_OUTPUT&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function screen_both(){&lt;br /&gt;
       $SU &amp;quot;xrandr --output $INTERNAL_OUTPUT --auto&amp;quot;&lt;br /&gt;
       $SU &amp;quot;xrandr --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function screen_toggle(){&lt;br /&gt;
       case &amp;quot;$STATE&amp;quot; in&lt;br /&gt;
               internal)&lt;br /&gt;
                       screen_mirror&lt;br /&gt;
                       ;;&lt;br /&gt;
               mirror)&lt;br /&gt;
                       screen_external&lt;br /&gt;
                       ;;&lt;br /&gt;
               external)&lt;br /&gt;
                       screen_both&lt;br /&gt;
                       ;;&lt;br /&gt;
               both)&lt;br /&gt;
                       screen_internal&lt;br /&gt;
                       ;;&lt;br /&gt;
               *)&lt;br /&gt;
                       screen_internal&lt;br /&gt;
                       ;;&lt;br /&gt;
       esac&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# What should we do?&lt;br /&gt;
DO=&amp;quot;$1&amp;quot;&lt;br /&gt;
if [ -z &amp;quot;$DO&amp;quot; ]; then&lt;br /&gt;
       if [ $(basename $0) = &amp;quot;thinkpad-fn-f7&amp;quot; ]; then&lt;br /&gt;
               DO=&amp;quot;toggle&amp;quot;&lt;br /&gt;
       fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$DO&amp;quot; in&lt;br /&gt;
       toggle)&lt;br /&gt;
               screen_toggle&lt;br /&gt;
               ;;&lt;br /&gt;
       internal)&lt;br /&gt;
               screen_internal&lt;br /&gt;
               ;;&lt;br /&gt;
       external)&lt;br /&gt;
               screen_external&lt;br /&gt;
               ;;&lt;br /&gt;
       mirror)&lt;br /&gt;
               screen_mirror&lt;br /&gt;
               ;;&lt;br /&gt;
       both)&lt;br /&gt;
               screen_both&lt;br /&gt;
               ;;&lt;br /&gt;
       status)&lt;br /&gt;
               echo &amp;quot;Current Fn-F7 state is: $STATE&amp;quot;&lt;br /&gt;
               echo&lt;br /&gt;
               echo &amp;quot;Attached monitors:&amp;quot;&lt;br /&gt;
               $SU xrandr | grep &amp;quot;\Wconnected&amp;quot; | sed &amp;quot;s/^/ /&amp;quot;&lt;br /&gt;
               ;;&lt;br /&gt;
       *)&lt;br /&gt;
               echo &amp;quot;usage: $0 &amp;lt;command&amp;gt;&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;quot;  commands:&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;quot;          status&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;quot;          internal&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;quot;          external&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;quot;          mirror&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;quot;          both&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;quot;          toggle&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
               echo &amp;gt;&amp;amp;2&lt;br /&gt;
               ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== set permissions and restart acpi ==&lt;br /&gt;
As root, or using sudo run the following commands,&lt;br /&gt;
&lt;br /&gt;
 {{cmduser|sudo chmod 755 /usr/local/sbin/thinkpad-fn-f7}}&lt;br /&gt;
 {{cmduser|sudo service acpid restart}}&lt;br /&gt;
 OR&lt;br /&gt;
 {{cmduser|sudo /etc/init.d/acpid restart}}&lt;br /&gt;
&lt;br /&gt;
You should be ready to go, just press Fn-F7 to try.&lt;br /&gt;
&lt;br /&gt;
==Alternative script using .Xauthority rather than su ==&lt;br /&gt;
Use this script as an alternative &lt;br /&gt;
 action=/usr/local/sbin/toggle-display.sh&lt;br /&gt;
for /etc/acpi/events/ibm-videobtn&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # usr/local/sbin/toggle-display.sh &lt;br /&gt;
 # based on /etc/acpi/screenblank.sh (Ubuntu 7.10)&lt;br /&gt;
 #&lt;br /&gt;
 # . /usr/share/acpi-support/power-funcs         # for getXuser&lt;br /&gt;
 umask 022;&lt;br /&gt;
 PATH=&amp;quot;$PATH:/usr/bin/X11&amp;quot;&lt;br /&gt;
 getXuser() {&lt;br /&gt;
        user=`finger| grep -m1 &amp;quot;:$displaynum &amp;quot; | awk '{print $1}'`&lt;br /&gt;
        if [ x&amp;quot;$user&amp;quot; = x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
                user=`finger| grep -m1 &amp;quot;:$displaynum&amp;quot; | awk '{print $1}'`&lt;br /&gt;
        fi&lt;br /&gt;
        if [ x&amp;quot;$user&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
                userhome=`getent passwd $user | cut -d: -f6`&lt;br /&gt;
                export XAUTHORITY=$userhome/.Xauthority&lt;br /&gt;
        else&lt;br /&gt;
                export XAUTHORITY=&amp;quot;&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
 }&lt;br /&gt;
 # end of getXuser from /usr/share/acpi-support/power-funcs&lt;br /&gt;
 #&lt;br /&gt;
 for x in /tmp/.X11-unix/*; do&lt;br /&gt;
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
    getXuser;&lt;br /&gt;
    if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
        export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
 ##     . /usr/share/acpi-support/screenblank.sh&lt;br /&gt;
        /usr/local/bin/toggle.py&lt;br /&gt;
    fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Each user has an ~/.Xauthority file with one line for each X display containing a 'magic cookie' (Run {{cmduser| xauth list}} to see the contents).  The Xserver reads the record in  ~/.Xauthority matching its display. When an X client application starts it also looks for that record and passes the magic cookie to the server. If it matches, the connection to the Xserver is allowed. The above example  runs the python script below but could run a modified version of /usr/local/sbin/thinkpad-fn-f7 without the USER, and DISPLAY detection SU commands.&lt;br /&gt;
&lt;br /&gt;
== A Python Toggle script ==&lt;br /&gt;
This is a somewhat over-elaborate script which could be cut down when run by the /usr/local/sbin/toggle-display.sh script above. It was written to explore all the possibilities rather than economy of execution. The functions 'toggle_full', 'position', 'toggle_limited' and the OptionParser in 'main'  may be omitted with suitable changes to function7. The appropriate outputs can be specified on the command line and it is not necessary to call it via acpi.&lt;br /&gt;
eg you can run it as {{cmduser|/usr/local/bin/toggle.py --help}}&lt;br /&gt;
&lt;br /&gt;
 #! /usr/bin/python&lt;br /&gt;
 # -*- coding: utf-8 -*-&lt;br /&gt;
 #&lt;br /&gt;
 # stinkpad(a)blueyonder.co.uk	2007-11-26&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;Toggle internal and external displays (equivalent to ThinkPad Fn7)&lt;br /&gt;
 Simple; cloned: on+off, on+on, off+on. &lt;br /&gt;
 Full; as simple plus xinerama: right, below,  left, above. &lt;br /&gt;
 Limited; as full but display will overlap if virtual screen is too small. &lt;br /&gt;
 Use 'xrandr -q' to determine output names. &lt;br /&gt;
 Further information: http://www.thinkwiki.org/wiki/Xorg_RandR_1.2 &lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 __usage__ = &amp;quot;usage: %prog [--help]|[[-i internal][-e external][-d displays]]&amp;quot;&lt;br /&gt;
 __version__ = &amp;quot;toggle [djclark.eu 2007-11-26]&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # Output names; Intel: LVDS VGA TV TMDS-1 TMDS-2&lt;br /&gt;
 #               ATI:   LVDS VGA-0 S-video DVI-0&lt;br /&gt;
 LAPTOP = 'LVDS' &lt;br /&gt;
 MONITOR = 'VGA'&lt;br /&gt;
 SEQUENCE = 'simple'&lt;br /&gt;
 #&lt;br /&gt;
 import sys&lt;br /&gt;
 import os&lt;br /&gt;
 import re&lt;br /&gt;
&lt;br /&gt;
 # &amp;quot;LVDS connected 1024x768+0+0 (normal left inverted right) 304mm x 228mm&amp;quot;&lt;br /&gt;
 REGEX_OUTPUT = re.compile(r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 	(?x)					# ignore whitespace&lt;br /&gt;
 	^					# start of string&lt;br /&gt;
 	(?P&amp;lt;output&amp;gt;[A-Za-z0-9\-]*)[ ] 		# LVDS VGA etc&lt;br /&gt;
 	(?P&amp;lt;connect&amp;gt;(dis)?connected)[ ]		# dis/connected&lt;br /&gt;
 	((					# a group&lt;br /&gt;
  	(?P&amp;lt;width&amp;gt;\d+)x 			# either 1024x768+0+0&lt;br /&gt;
 	(?P&amp;lt;height&amp;gt;\d+)[+]  &lt;br /&gt;
  	(?P&amp;lt;horizontal&amp;gt;\d+)[+]&lt;br /&gt;
 	(?P&amp;lt;vertical&amp;gt;\d+)&lt;br /&gt;
 	)|[\D])					# or not a digit&lt;br /&gt;
 	.*					# ignore rest of line&lt;br /&gt;
 	&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 # &amp;quot;Screen 0: minimum 320 x 200, current 1024 x 768, maximum 2624 x 1968&amp;quot;&lt;br /&gt;
 REGEX_SCREEN = re.compile(r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 	(?x) 				# ignore whitespace&lt;br /&gt;
 	^				# start of string&lt;br /&gt;
 	Screen[ ]			&lt;br /&gt;
 	(?P&amp;lt;screen&amp;gt;\d)[: ]+&lt;br /&gt;
 	minimum[ ]&lt;br /&gt;
 	(?P&amp;lt;minWidth&amp;gt;\d+)[ x]+&lt;br /&gt;
 	(?P&amp;lt;minHeight&amp;gt;\d+)[, ]+&lt;br /&gt;
 	current[ ]+&lt;br /&gt;
 	(?P&amp;lt;curWidth&amp;gt;\d+)[ x]+&lt;br /&gt;
 	(?P&amp;lt;curHeight&amp;gt;\d+)[, ]+&lt;br /&gt;
 	maximum[ ]+&lt;br /&gt;
 	(?P&amp;lt;maxWidth&amp;gt;\d+)[ x]+&lt;br /&gt;
 	(?P&amp;lt;maxHeight&amp;gt;\d+)&lt;br /&gt;
 	&amp;quot;&amp;quot;&amp;quot;)	&lt;br /&gt;
&lt;br /&gt;
 def toggle_simple(d0, d1):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Toggle display states: on+off, on+on, off+on&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if d1['connect'] == 'disconnected': 	# external unplugged&lt;br /&gt;
        return ('auto','off',&amp;quot;&amp;quot;) 		#     switch off external&lt;br /&gt;
    if d1['width'] is 0: 			# external off&lt;br /&gt;
        return ('auto','auto',&amp;quot;&amp;quot;) 		#     both on&lt;br /&gt;
    if d0['width'] is 0: 			# laptop off&lt;br /&gt;
        return ('auto','off',&amp;quot;&amp;quot;) 		#    laptop on&lt;br /&gt;
    return ('off','auto',&amp;quot;&amp;quot;) 			# both on, laptop off&lt;br /&gt;
&lt;br /&gt;
 def toggle_full(d0, d1):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Toggle display states: 1+0, 1+1, 0+1, 1+E, 1+S, 1+W, 1+N&amp;quot;&amp;quot;&amp;quot; &lt;br /&gt;
    if d1['connect'] == 'disconnected': 	# external unplugged&lt;br /&gt;
        return ('auto','off',&amp;quot;&amp;quot;) 		#     switch off external&lt;br /&gt;
    place = '--%s ' + d0['output']&lt;br /&gt;
    if d1['width'] == 0: 			# external off&lt;br /&gt;
        return ('auto','auto',place%'same-as') 	#     external on&lt;br /&gt;
    if d0['width'] == 0: 			# laptop off&lt;br /&gt;
        return ('auto','off',&amp;quot;&amp;quot;) 		#    laptop on&lt;br /&gt;
    if d1['horizontal'] &amp;gt; 0: 			# external to right&lt;br /&gt;
        return ('auto','auto',place%'below') 	#     make below&lt;br /&gt;
    if d1['vertical'] &amp;gt; 0: 			# external below&lt;br /&gt;
        return ('auto','auto',place%'left-of') 	#     make left&lt;br /&gt;
    if d0['horizontal'] &amp;gt; 0: 			# external left&lt;br /&gt;
        return ('auto','auto',place%'above') 	#     make above&lt;br /&gt;
    if d0['vertical'] &amp;gt; 0: 			# external above&lt;br /&gt;
        return ('off','auto',&amp;quot;&amp;quot;)  		#     laptop off&lt;br /&gt;
    return ('auto','auto',place%'right-of') 	# is same, make right&lt;br /&gt;
&lt;br /&gt;
 def position(orientation, da, db, screen):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculate offset position of second display&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    p = 'auto --pos %sx%s'&lt;br /&gt;
    if orientation == 'V':&lt;br /&gt;
        if (da['height'] + db['height']) &amp;lt;= screen['maxHeight']:&lt;br /&gt;
            return p%(0, da['height'])&lt;br /&gt;
        return p%(0, screen['maxHeight'] - db['height'])&lt;br /&gt;
    else:&lt;br /&gt;
        if (da['width'] + db['width']) &amp;lt;= screen['maxWidth']:&lt;br /&gt;
            return p%(da['width'],0)&lt;br /&gt;
        return p%(screen['maxWidth'] - db['width'],0)&lt;br /&gt;
&lt;br /&gt;
 def toggle_limited(d0, d1, sz):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Toggle display states (overlapped): 1+0,1+1,0+1,1+E,1+S,1+W,1+N&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if d1['connect'] == 'disconnected': 	# external unplugged&lt;br /&gt;
        return ('auto','off') 			#     switch off external&lt;br /&gt;
    if d1['width'] == 0: 				# external off&lt;br /&gt;
        return ('auto --pos 0x0','auto --pos 0x0') 	#     both on&lt;br /&gt;
    if d0['width'] == 0: 				# laptop off&lt;br /&gt;
        return ('auto --pos 0x0','off') 		#     laptop on&lt;br /&gt;
    if d1['horizontal'] &amp;gt; 0: 				# external to right&lt;br /&gt;
        return ('auto --pos 0x0',position('V',d0,d1,sz)) #     put *below&lt;br /&gt;
    if d1['vertical'] &amp;gt; 0: 				# external below&lt;br /&gt;
        return (position('H',d1,d0,sz),'auto --pos 0x0') #     put *left&lt;br /&gt;
    if d0['horizontal'] &amp;gt; 0: 				# external left&lt;br /&gt;
        return (position('V',d1,d0,sz),'auto --pos 0x0') #     put *above&lt;br /&gt;
    if d0['vertical'] &amp;gt; 0: 				# external above&lt;br /&gt;
        return ('off','auto --pos 0x0')  		#     laptop off&lt;br /&gt;
    return ('auto --pos 0x0',position('H',d0,d1,sz)) 	# both, put*right&lt;br /&gt;
&lt;br /&gt;
 class DisplayNameError(UnboundLocalError):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Internal or External Display Name not found by xrandr -q &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 def function7(disp0=LAPTOP, disp1=MONITOR, seq=SEQUENCE):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Use xrandr to read current display state and change state&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for line in os.popen('xrandr -q').read().splitlines():&lt;br /&gt;
        if line.startswith(disp0,0) :&lt;br /&gt;
            d0_state = REGEX_OUTPUT.match(line).groupdict()&lt;br /&gt;
        elif line.startswith(disp1,0):&lt;br /&gt;
            d1_state = REGEX_OUTPUT.match(line).groupdict()&lt;br /&gt;
        elif line.startswith('Screen',0):&lt;br /&gt;
            screen_size = REGEX_SCREEN.match(line).groupdict()&lt;br /&gt;
        else:&lt;br /&gt;
            pass&lt;br /&gt;
    for i in ('width','height','horizontal','vertical'):&lt;br /&gt;
        try:&lt;br /&gt;
            d0_state[i] = int(d0_state[i])&lt;br /&gt;
        except TypeError:&lt;br /&gt;
            d0_state[i] = 0&lt;br /&gt;
        except UnboundLocalError:&lt;br /&gt;
            raise DisplayNameError, 'Internal Display: %s not found'% disp0&lt;br /&gt;
        try:&lt;br /&gt;
            d1_state[i] = int(d1_state[i])&lt;br /&gt;
        except TypeError:&lt;br /&gt;
            d1_state[i] = 0&lt;br /&gt;
        except UnboundLocalError:&lt;br /&gt;
            raise DisplayNameError, 'External Display: %s not found'% disp1&lt;br /&gt;
    for i in screen_size.keys():&lt;br /&gt;
        try:&lt;br /&gt;
            screen_size[i] = int(screen_size[i])&lt;br /&gt;
        except TypeError:&lt;br /&gt;
            screen_size[i] = 0&lt;br /&gt;
    #&lt;br /&gt;
    toggle = toggle_simple&lt;br /&gt;
    xrandr ='xrandr --output '+disp0+' --%s --output '+disp1+' --%s %s'&lt;br /&gt;
    if seq == 'full':&lt;br /&gt;
        toggle = toggle_full&lt;br /&gt;
    if seq == 'limited':&lt;br /&gt;
        toggle = toggle_limited&lt;br /&gt;
        xrandr ='xrandr --output '+disp0+' --%s --output '+disp1+' --%s'&lt;br /&gt;
        os.popen(xrandr % toggle(d0_state, d1_state, screen_size))&lt;br /&gt;
    else:&lt;br /&gt;
        os.popen(xrandr % toggle(d0_state, d1_state))&lt;br /&gt;
&lt;br /&gt;
 def main():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Command line options &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    global LAPTOP,MONITOR,SEQUENCE&lt;br /&gt;
    from optparse import OptionParser&lt;br /&gt;
    p = OptionParser(usage=__usage__, version=__version__, description=__doc__)  &lt;br /&gt;
    p.set_defaults(internal=LAPTOP, external=MONITOR, displays=SEQUENCE)&lt;br /&gt;
    p.add_option('-i','--internal', dest=&amp;quot;internal&amp;quot;, metavar=LAPTOP,&lt;br /&gt;
 	help=&amp;quot;internal display&amp;quot;)&lt;br /&gt;
    p.add_option('-e','--external', dest=&amp;quot;external&amp;quot;, metavar=MONITOR,&lt;br /&gt;
  	help=&amp;quot;external display&amp;quot;)&lt;br /&gt;
    p.add_option('-d','--displays', dest=&amp;quot;displays&amp;quot;, action=&amp;quot;store&amp;quot;,&lt;br /&gt;
 	choices=('simple', 'limited', 'full'), metavar=SEQUENCE,&lt;br /&gt;
 	help='simple/limited/full')&lt;br /&gt;
    (opt, args) = p.parse_args()&lt;br /&gt;
    try:&lt;br /&gt;
        function7(opt.internal, opt.external, opt.displays)&lt;br /&gt;
    except DisplayNameError, err:&lt;br /&gt;
        print '\n'+str(err)+'\n'&lt;br /&gt;
        print os.popen('xrandr -q').read()&lt;br /&gt;
 #&lt;br /&gt;
 if __name__ == '__main__': 	#only when run from cmd line&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
===Python XRandR===&lt;br /&gt;
[[http://www.glatzor.de/blog/blog-details/article/initial-release-of-python-xrandr Python XRandR]] is a set of python bindings to xrandr. The code is currently in development and the following code though much simpler than the python code above may not work reliably.&lt;br /&gt;
&lt;br /&gt;
  from xrandr import xrandr&lt;br /&gt;
  def toggle_simple():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Toggle display states: on+off, off+on, on+on off+off&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    screen = xrandr.get_current_screen()&lt;br /&gt;
    outputs = screen.get_outputs()&lt;br /&gt;
    for o in outputs:&lt;br /&gt;
        if o.is_connected():&lt;br /&gt;
            if o.is_active():&lt;br /&gt;
                o.disable()&lt;br /&gt;
                print 'disable %s'% o.name&lt;br /&gt;
            else:&lt;br /&gt;
                o.set_to_preferred_mode()&lt;br /&gt;
                print 'set to preferred mode %s'% o.name&lt;br /&gt;
                break&lt;br /&gt;
    screen.apply_output_config()&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[http://gitweb.freedesktop.org/?p=xorg/app/grandr.git grandr]] graphical interface to xrandr  using GTK+ libraries.&lt;br /&gt;
&lt;br /&gt;
[[https://edge.launchpad.net/python-xrandr python-xrandr]] Python bindings to xrandr which should enable a less clunky version of the python script above. Under development.&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Script_for_Dynamic_Display_Management_with_fglrx&amp;diff=35515</id>
		<title>Script for Dynamic Display Management with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Script_for_Dynamic_Display_Management_with_fglrx&amp;diff=35515"/>
		<updated>2008-01-06T18:08:51Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The proprietary [[fglrx]] driver from ATI allows dynamic display switching, e.g. to switch to an external display for a presentation. [[Xorg RandR 1.2]] allows the same, but sometimes the newer version is not available, or not compatible e.g. when the proprietary ATI driver needs to be used for some reasons. The current version of it does not support the dynamic switching capabilities of XRandR 1.2.&lt;br /&gt;
&lt;br /&gt;
In these cases, the following switching script provides the same functionality, which you can bind to a keypress such as Fn-F7. The script uses ATI's aticonfig tool for switching, XRandR for resolution adjustment, and Xosd for displaying OSD status messages. Thus, it should work on most Linux-running laptops whith ATI graphics cards (tested with [[:Category:Ubuntu 7.04|Ubuntu 7.04]] and [[:Category:Ubuntu 7.10|Ubuntu 7.10]] on a Thinkpad [[:Category:T43|T43]]). When an external display is connected, the script switches from internal to both internal and extarnal, then to external only, and finally back to internal display only. &lt;br /&gt;
&lt;br /&gt;
==The Script==&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Script to switch displays, e.g. by pressing Fn-F7 on Thinkpad Laptops.&lt;br /&gt;
# Uses aticonfig from the ATI fglrx driver for dynamic switching, and&lt;br /&gt;
# xrandr for resolution changing. OSD done with xosd.sh, which uses&lt;br /&gt;
# osd_cat from Xosd.&lt;br /&gt;
#&lt;br /&gt;
# Author: Armin Hornung  --  www.arminhornung.de&lt;br /&gt;
# Date: 2008-05-01&lt;br /&gt;
#&lt;br /&gt;
# Partly based on a display switching script from SuSE 10.1&lt;br /&gt;
# &lt;br /&gt;
&lt;br /&gt;
# path to xosd.sh, change to &amp;quot;echo&amp;quot; if not installed&lt;br /&gt;
xosd=&amp;quot;/usr/local/bin/xosd.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# path to xrandr&lt;br /&gt;
xrandr=&amp;quot;/usr/bin/xrandr&amp;quot;&lt;br /&gt;
&lt;br /&gt;
INTERNAL=&amp;quot;lvds&amp;quot; # internal LCD of Laptop&lt;br /&gt;
EXTERNAL=&amp;quot;crt1&amp;quot; # external monitor, CRT or TFT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Determine X user, script usually runs as root:&lt;br /&gt;
&lt;br /&gt;
getXuser() {&lt;br /&gt;
        user=`finger| grep -m1 &amp;quot;:$displaynum &amp;quot; | awk '{print $1}'`&lt;br /&gt;
&lt;br /&gt;
        if [ x&amp;quot;$user&amp;quot; = x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
                user=`finger| grep -m1 &amp;quot;:$displaynum&amp;quot; | awk '{print $1}'`&lt;br /&gt;
        fi&lt;br /&gt;
        if [ x&amp;quot;$user&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
                userhome=`getent passwd $user | cut -d: -f6`&lt;br /&gt;
                export XAUTHORITY=$userhome/.Xauthority&lt;br /&gt;
        else&lt;br /&gt;
                export XAUTHORITY=&amp;quot;&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for x in /tmp/.X11-unix/*; do&lt;br /&gt;
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
    getXuser&lt;br /&gt;
    if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
        # extract current state&lt;br /&gt;
	export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
	_enabled_monitors=`su $user -c &amp;quot;aticonfig --query-monitor | grep Enabled&amp;quot;`&lt;br /&gt;
	_connected_monitors=`su $user -c &amp;quot;aticonfig --query-monitor | grep Connected&amp;quot;`&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# determine if internal is active&lt;br /&gt;
echo &amp;quot;${_enabled_monitors}&amp;quot; | grep $INTERNAL &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &lt;br /&gt;
if [ $? -eq 0 ]; then&lt;br /&gt;
  _internal_enabled=yes&lt;br /&gt;
else&lt;br /&gt;
  _internal_enabled=no&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# determine if external is connected &lt;br /&gt;
# (LVDS always assumed to be connected)&lt;br /&gt;
echo &amp;quot;${_connected_monitors}&amp;quot; | grep $EXTERNAL &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &lt;br /&gt;
if [ $? -eq 0 ]; then&lt;br /&gt;
  _external_connected=yes&lt;br /&gt;
else&lt;br /&gt;
  _external_connected=no&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# determine if external is active&lt;br /&gt;
_external_enabled=no&lt;br /&gt;
echo &amp;quot;${_enabled_monitors}&amp;quot; | grep $EXTERNAL &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &lt;br /&gt;
if [ $? -eq 0 ]; then&lt;br /&gt;
  _external_enabled=yes&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#### display switching part ####&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;${_internal_enabled}&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  if [ &amp;quot;${_external_connected}&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
    if [ &amp;quot;${_external_enabled}&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
      # switch to external only, after both enabled:&lt;br /&gt;
      $xosd &amp;quot;Enabling $EXTERNAL&amp;quot; &amp;amp;&lt;br /&gt;
      su $user -c &amp;quot;aticonfig --enable-monitor $EXTERNAL&amp;quot;&lt;br /&gt;
      # adjust resolution back to standard:&lt;br /&gt;
      $xrandr -s 1280x1024 -r 60&lt;br /&gt;
    else&lt;br /&gt;
      # switch to both enabled, after external only&lt;br /&gt;
      $xosd &amp;quot;Enabling $INTERNAL &amp;amp; $EXTERNAL&amp;quot; &amp;amp;&lt;br /&gt;
      su $user -c &amp;quot;aticonfig --enable-monitor $INTERNAL,$EXTERNAL&amp;quot;&lt;br /&gt;
      # adjust resolution:&lt;br /&gt;
      $xrandr -s 1280x1024 -r 60&lt;br /&gt;
    fi&lt;br /&gt;
  else&lt;br /&gt;
    $xosd &amp;quot;No external display connected&amp;quot; &amp;amp;&lt;br /&gt;
    if [ &amp;quot;${_external_enabled}&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
      # switch back just if external display got disconnected&lt;br /&gt;
      su $user -c &amp;quot;aticonfig --enable-monitor $INTERNAL&amp;quot;&lt;br /&gt;
      $xrandr -s 1400x1050 -r 60&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  # switch back to internal only, after external enabled:&lt;br /&gt;
  $xosd &amp;quot;Enabling $INTERNAL&amp;quot; &amp;amp;&lt;br /&gt;
  su $user -c &amp;quot;aticonfig --enable-monitor $INTERNAL&amp;quot;&lt;br /&gt;
  # adjust resolution back to standard:&lt;br /&gt;
  $xrandr -s 1400x1050 -r 60&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OSD==&lt;br /&gt;
Using the helper script below, Xosd can be used for displaying status messages.&lt;br /&gt;
&lt;br /&gt;
/usr/local/bin/xosd.sh:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# 2006-03-09 &amp;lt;pille@struction.de&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# displays text in arguments on X screen using osd_cat (in some nicely preconfigured style)&lt;br /&gt;
&lt;br /&gt;
OSD_CAT=`which osd_cat`&lt;br /&gt;
XOSD=&amp;quot;${OSD_CAT} --delay=2 --age=0 --lines=2 --pos=bottom --align=center --font=-adobe-helvetica-bold-r-normal-*-*-180-*-*-p-*-*-* --colour=green --shadow=1 --offset=25 --indent=25&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# get user running X display (needed when run by script)&lt;br /&gt;
# XUSER=`ps -C Xsession -o user h`  &lt;br /&gt;
XUSER=&amp;quot;armin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;${USER}&amp;quot; == &amp;quot;${XUSER}&amp;quot; ]; then&lt;br /&gt;
    echo $@ | ${XOSD}&lt;br /&gt;
else&lt;br /&gt;
    echo $@ |su ${XUSER} -c &amp;quot;DISPLAY=${DISPLAY:-:0.0} ${XOSD}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Place the switching script at /etc/acpi/ati-toggle.sh and create /usr/local/bin/xosd.sh. Finally, the script needs to be bound to the key Fn-F7 by creating or editing /etc/acpi/events/ibm-videobtn to:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
# /etc/acpi/events/ibm-videobtn&lt;br /&gt;
# This is called when the user presses the video button. &lt;br /&gt;
&lt;br /&gt;
event=ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
action=/etc/acpi/ati-toggle.sh&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[http://www.arminhornung.de/index.php?section=Linux&amp;amp;file=ATI%20dynamic%20display%20switching&amp;amp;l=en http://www.arminhornung.de] - Source, has scripts available for download&lt;br /&gt;
&lt;br /&gt;
[[Sample Fn-F7 script]] - A similar script using XRandR 1.2 for switching&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Script_for_Dynamic_Display_Management_with_fglrx&amp;diff=35514</id>
		<title>Script for Dynamic Display Management with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Script_for_Dynamic_Display_Management_with_fglrx&amp;diff=35514"/>
		<updated>2008-01-06T18:08:15Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: Article creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The proprietary [[fglrx]] driver from ATI allows dynamic display switching, e.g. to switch to an external display for a presentation. [[Xorg RandR 1.2]] allows the same, but sometimes the newer version is not available, or not compatible e.g. when the proprietary ATI driver needs to be used for some reasons. The current version of it does not support the dynamic switching capabilities of XRandR 1.2.&lt;br /&gt;
&lt;br /&gt;
In these cases, the following switching script provides the same functionality, which you can bind to a keypress such as Fn-F7. The script uses ATI's aticonfig tool for switching, XRandR for resolution adjustment, and Xosd for displaying OSD status messages. Thus, it should work on most Linux-running laptops whith ATI graphics cards (tested with [[:Category:Ubuntu 7.04|Ubuntu 7.04]] and [[:Category:Ubuntu 7.10|Ubuntu 7.10]] on a Thinkpad [[:Category:T43|T43]]). When an external display is connected, the script switches from internal to both internal and extarnal, then to external only, and finally back to internal display only. &lt;br /&gt;
&lt;br /&gt;
==The Script==&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Script to switch displays, e.g. by pressing Fn-F7 on Thinkpad Laptops.&lt;br /&gt;
# Uses aticonfig from the ATI fglrx driver for dynamic switching, and&lt;br /&gt;
# xrandr for resolution changing. OSD done with xosd.sh, which uses&lt;br /&gt;
# osd_cat from Xosd.&lt;br /&gt;
#&lt;br /&gt;
# Author: Armin Hornung  --  www.arminhornung.de&lt;br /&gt;
# Date: 2008-05-01&lt;br /&gt;
#&lt;br /&gt;
# Partly based on a display switching script from SuSE 10.1&lt;br /&gt;
# &lt;br /&gt;
&lt;br /&gt;
# path to xosd.sh, change to &amp;quot;echo&amp;quot; if not installed&lt;br /&gt;
xosd=&amp;quot;/usr/local/bin/xosd.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# path to xrandr&lt;br /&gt;
xrandr=&amp;quot;/usr/bin/xrandr&amp;quot;&lt;br /&gt;
&lt;br /&gt;
INTERNAL=&amp;quot;lvds&amp;quot; # internal LCD of Laptop&lt;br /&gt;
EXTERNAL=&amp;quot;crt1&amp;quot; # external monitor, CRT or TFT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Determine X user, script usually runs as root:&lt;br /&gt;
&lt;br /&gt;
getXuser() {&lt;br /&gt;
        user=`finger| grep -m1 &amp;quot;:$displaynum &amp;quot; | awk '{print $1}'`&lt;br /&gt;
&lt;br /&gt;
        if [ x&amp;quot;$user&amp;quot; = x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
                user=`finger| grep -m1 &amp;quot;:$displaynum&amp;quot; | awk '{print $1}'`&lt;br /&gt;
        fi&lt;br /&gt;
        if [ x&amp;quot;$user&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
                userhome=`getent passwd $user | cut -d: -f6`&lt;br /&gt;
                export XAUTHORITY=$userhome/.Xauthority&lt;br /&gt;
        else&lt;br /&gt;
                export XAUTHORITY=&amp;quot;&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for x in /tmp/.X11-unix/*; do&lt;br /&gt;
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`&lt;br /&gt;
    getXuser&lt;br /&gt;
    if [ x&amp;quot;$XAUTHORITY&amp;quot; != x&amp;quot;&amp;quot; ]; then&lt;br /&gt;
        # extract current state&lt;br /&gt;
	export DISPLAY=&amp;quot;:$displaynum&amp;quot;&lt;br /&gt;
	_enabled_monitors=`su $user -c &amp;quot;aticonfig --query-monitor | grep Enabled&amp;quot;`&lt;br /&gt;
	_connected_monitors=`su $user -c &amp;quot;aticonfig --query-monitor | grep Connected&amp;quot;`&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# determine if internal is active&lt;br /&gt;
echo &amp;quot;${_enabled_monitors}&amp;quot; | grep $INTERNAL &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &lt;br /&gt;
if [ $? -eq 0 ]; then&lt;br /&gt;
  _internal_enabled=yes&lt;br /&gt;
else&lt;br /&gt;
  _internal_enabled=no&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# determine if external is connected &lt;br /&gt;
# (LVDS always assumed to be connected)&lt;br /&gt;
echo &amp;quot;${_connected_monitors}&amp;quot; | grep $EXTERNAL &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &lt;br /&gt;
if [ $? -eq 0 ]; then&lt;br /&gt;
  _external_connected=yes&lt;br /&gt;
else&lt;br /&gt;
  _external_connected=no&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# determine if external is active&lt;br /&gt;
_external_enabled=no&lt;br /&gt;
echo &amp;quot;${_enabled_monitors}&amp;quot; | grep $EXTERNAL &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &lt;br /&gt;
if [ $? -eq 0 ]; then&lt;br /&gt;
  _external_enabled=yes&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#### display switching part ####&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;${_internal_enabled}&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  if [ &amp;quot;${_external_connected}&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
    if [ &amp;quot;${_external_enabled}&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
      # switch to external only, after both enabled:&lt;br /&gt;
      $xosd &amp;quot;Enabling $EXTERNAL&amp;quot; &amp;amp;&lt;br /&gt;
      su $user -c &amp;quot;aticonfig --enable-monitor $EXTERNAL&amp;quot;&lt;br /&gt;
      # adjust resolution back to standard:&lt;br /&gt;
      $xrandr -s 1280x1024 -r 60&lt;br /&gt;
    else&lt;br /&gt;
      # switch to both enabled, after external only&lt;br /&gt;
      $xosd &amp;quot;Enabling $INTERNAL &amp;amp; $EXTERNAL&amp;quot; &amp;amp;&lt;br /&gt;
      su $user -c &amp;quot;aticonfig --enable-monitor $INTERNAL,$EXTERNAL&amp;quot;&lt;br /&gt;
      # adjust resolution:&lt;br /&gt;
      $xrandr -s 1280x1024 -r 60&lt;br /&gt;
    fi&lt;br /&gt;
  else&lt;br /&gt;
    $xosd &amp;quot;No external display connected&amp;quot; &amp;amp;&lt;br /&gt;
    if [ &amp;quot;${_external_enabled}&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
      # switch back just if external display got disconnected&lt;br /&gt;
      su $user -c &amp;quot;aticonfig --enable-monitor $INTERNAL&amp;quot;&lt;br /&gt;
      $xrandr -s 1400x1050 -r 60&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  # switch back to internal only, after external enabled:&lt;br /&gt;
  $xosd &amp;quot;Enabling $INTERNAL&amp;quot; &amp;amp;&lt;br /&gt;
  su $user -c &amp;quot;aticonfig --enable-monitor $INTERNAL&amp;quot;&lt;br /&gt;
  # adjust resolution back to standard:&lt;br /&gt;
  $xrandr -s 1400x1050 -r 60&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OSD==&lt;br /&gt;
Using the helper script below, Xosd can be used for displaying status messages.&lt;br /&gt;
&lt;br /&gt;
/usr/local/bin/xosd.sh:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# 2006-03-09 &amp;lt;pille@struction.de&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# displays text in arguments on X screen using osd_cat (in some nicely preconfigured style)&lt;br /&gt;
&lt;br /&gt;
OSD_CAT=`which osd_cat`&lt;br /&gt;
XOSD=&amp;quot;${OSD_CAT} --delay=2 --age=0 --lines=2 --pos=bottom --align=center --font=-adobe-helvetica-bold-r-normal-*-*-180-*-*-p-*-*-* --colour=green --shadow=1 --offset=25 --indent=25&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# get user running X display (needed when run by script)&lt;br /&gt;
# XUSER=`ps -C Xsession -o user h`  &lt;br /&gt;
XUSER=&amp;quot;armin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;${USER}&amp;quot; == &amp;quot;${XUSER}&amp;quot; ]; then&lt;br /&gt;
    echo $@ | ${XOSD}&lt;br /&gt;
else&lt;br /&gt;
    echo $@ |su ${XUSER} -c &amp;quot;DISPLAY=${DISPLAY:-:0.0} ${XOSD}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Place the switching script at /etc/acpi/ati-toggle.sh and create /usr/local/bin/xosd.sh. Finally, the script needs to be bound to the key Fn-F7 by creating or editing /etc/acpi/events/ibm-videobtn to:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
# /etc/acpi/events/ibm-videobtn&lt;br /&gt;
# This is called when the user presses the video button. &lt;br /&gt;
&lt;br /&gt;
event=ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
action=/etc/acpi/ati-toggle.sh&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[http://www.arminhornung.de/index.php?section=Linux&amp;amp;file=ATI%20dynamic%20display%20switching&amp;amp;l=en http://www.arminhornung.de] - Source, has scripts available for download&lt;br /&gt;
[[Sample Fn-F7 script]] - A similar script using XRandR 1.2 for switching&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Fglrx&amp;diff=35510</id>
		<title>Fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Fglrx&amp;diff=35510"/>
		<updated>2008-01-06T17:51:25Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Display Switching (Dynamic Display Management) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
== ATI fglrx driver ==&lt;br /&gt;
This is a proprietary Linux binary-only driver for ATI graphic chips with support for 3D acceleration.&lt;br /&gt;
&lt;br /&gt;
Also see [[R300|opensource driver]] with 3D support&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
Home page: http://ati.amd.com/support/drivers/linux/linux-radeon.html&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
The ATI drivers have explicit permission for repackaging and redistribution of the Linux drivers.  Many distributions are supported within the installer, and many more repackaged by external developers.  Please visit the  [http://wiki.cchtml.com/index.php/Category:Distributions Distribution Page at the Unofficial ATI driver Wiki]&lt;br /&gt;
&lt;br /&gt;
*{{Debian}}&lt;br /&gt;
** These packages have been added to Debian unstable as &amp;lt;tt&amp;gt;fglrx-driver&amp;lt;/tt&amp;gt;, so you can now apt-get them and use module-assistant to install.&lt;br /&gt;
** If you are on stable sarge with backport's kernel 2.6.15, download ATI's installer, let it build Debian packages and proceed as usual. There's a [http://jroller.com/page/erAck?entry=lot_day_6_2_fglrx detailed description] available.&lt;br /&gt;
** [http://wiki.cchtml.com/index.php/Debian_Installation_Guide Debian Howto]&lt;br /&gt;
*{{SUSE}} packages: http://www.suse.de/~sndirsch/ati-installer-HOWTO.html&lt;br /&gt;
*{{Gentoo}} {{cmdroot|emerge ati-drivers}}&lt;br /&gt;
*{{Fedora}} 4 packages: http://rpm.livna.org&lt;br /&gt;
** For stock Fedora kernels: {{cmdroot|yum install kernel-module-fglrx-$(uname -r) ati-fglrx }}&lt;br /&gt;
** For custom-compiled kernels: see [[How to build custom packages for fglrx]]&lt;br /&gt;
*{{Fedora}} 5 packages: http://rpm.livna.org&lt;br /&gt;
** For stock Fedora kernels: {{cmdroot|yum install xorg-x11-drv-fglrx}}&lt;br /&gt;
** For custom-compiled kernels: see [[How to build custom packages for fglrx]]&lt;br /&gt;
*{{Fedora}} 7 packages: http://rpm.livna.org&lt;br /&gt;
** The newest version of the driver (8.39.4) is supposed to work with Fedora 7, and is available from Livna.&lt;br /&gt;
*{{Arch Linux}}&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx}} (kernel module for 2.6.15-ARCH)&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx-archck}} (kernel module for 2.6.15-archck)&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx-utils}} (xorg7 stuff and tools)&lt;br /&gt;
*{{Ubuntu}}&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Dapper_Installation_Guide Dapper Drake Howto]&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Breezy_Installation_Guide Breezy Badger Howto]&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Edgy_Installation_Guide Edgy Eft Howto]&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Feisty_Installation_Guide Feisty Fawn Howto]&lt;br /&gt;
&lt;br /&gt;
== Building for Xorg 7.0==&lt;br /&gt;
To compile fglrx versions &amp;lt;= 8.24.8 for Xorg 7.0.0, fake Xorg 6.9.0 by &lt;br /&gt;
:{{cmdroot|1=export X_VERSION=x690; sh ati-driver-installer-8.24.8-x86.run}}&lt;br /&gt;
Next, move the various resulting libraries and modules from /usr/X11R6 to /usr/lib/xorg&lt;br /&gt;
&lt;br /&gt;
In {{path|/usr/src/ATI}} additional sources are installed for fireglcontrol and fgl_glxgears&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Current version: 7-12 (8.433) (20st December 2007).&lt;br /&gt;
Major changes:&lt;br /&gt;
* 7-12: FireGL support, fixed memory leak when running OpenGL applications, X -configure no longer results in a segmentation fault&lt;br /&gt;
* 7-11: new versioning scheme, kernel 2.6.23 support. Required for Xorg server 1.4, but does not support FireGL cards. So don't upgrade to Xorg 1.4 if you have one!&lt;br /&gt;
* 8.42.3: Composite support added enabling AIGLX and Beryl/Compiz on the desktop. Support for (most?) FireGl cards dropped (should be restored in upcoming versions)&lt;br /&gt;
* 8.41.7: increased OpenGL performance on some Radeon Cards, size/position TV-out adjustments work for Radeon X1900 or higher, X crash when connecting external DFP display fixed &lt;br /&gt;
* 8.40.4: some new TV out control options in CCC, another (non-exciting) maintenance release (see [http://www.phoronix.com/scan.php?page=article&amp;amp;item=804&amp;amp;num=1 Phoronix])&lt;br /&gt;
* 8.39.4: kernel 2.6.22 support, TexturedVideo fix, aticonfig segfault fix (see 8.38.7 hotfix), to get rid of the &amp;quot;AMD Testing use only&amp;quot; logo, use [http://www.phoronix.com/forums/showpost.php?p=10641&amp;amp;postcount=44 this] workaround.&lt;br /&gt;
* 8.38.7: hotfix release for &amp;quot;Using aticonfig --initial segfaults destroying xorg.conf file when run in X with Vesa driver.&amp;quot;, search for &amp;quot;737-28261&amp;quot; on the ATI website.&lt;br /&gt;
* 8.38.6: RedHat Enterprise Linux 5 support, Xserver crashes on moving video window between two monitors fixed, corruption when playing multiple vodeps with textured video fixed&lt;br /&gt;
* 8.37.6: Xorg Server 1.3 support, CCC 1.0, crash when logging off from X fixed, Xv cropping bug fixed&lt;br /&gt;
* 8.36.5: Kernel 2.6.20 support, CCC Beta 0.9 with localization&lt;br /&gt;
* 8.35.5: Beta AMD Catalyst Control Center, X-Server termination from console does not result in a blank screen. Kernel 2.6.20 requires some patching (see [[Problems_with_fglrx#fglrx_8.35.5|fglrx patches section]]).&lt;br /&gt;
* 8.34.8: Radeon Xpress 1250 support, X-Video on x86_64 fix, hibernation mode fix. Kernel 2.6.20 requires some patching (see [[Problems_with_fglrx#fglrx_8.34.8|fglrx patches section]]).&lt;br /&gt;
&lt;br /&gt;
== Known problems and solutions ==&lt;br /&gt;
See [[Problems with fglrx]].&lt;br /&gt;
== User experience ==&lt;br /&gt;
=== Speed ===&lt;br /&gt;
How much is the speed gain versus the opensource drivers?&lt;br /&gt;
&lt;br /&gt;
Compared to the old drivers, approximately 40% speed gain have been noticed with fglrx. However, there are issues with freezing/garbage after suspend, garbage when resizing desktop (via {{key|ctrl}}{{key|alt}}{{key|plus}}, {{key|ctrl}}{{key|alt}}{{key|minus}}), and garbage while using VMware. The current 8.14.13 has shown 400% improvement over using the open source radeon driver: 1200 FPS for glxgears{{footnote|1}}!&lt;br /&gt;
&lt;br /&gt;
However the situation seems to be changing significantly as time goes on. With recent x11-drm-20060608 driver (gentoo) and thinkpad t42 (ati 9600) the speed is confirmed as 1900fps and stable.  As of October 2007 there is dramatic improvement in the open source 3d drivers in speed and stability.&lt;br /&gt;
&lt;br /&gt;
=== 3D acceleration ===&lt;br /&gt;
&lt;br /&gt;
According to [http://xoomer.alice.it/flavio.stanchina/debian/fglrx-installer.html#configure Flavio's page] you need these options:&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Module&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
    Load &amp;quot;GLcore&amp;quot;&lt;br /&gt;
    Load &amp;quot;glx&amp;quot;&lt;br /&gt;
    Load &amp;quot;dri&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
  # Of course you need to activate the driver&lt;br /&gt;
  Section &amp;quot;Device&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
    Driver     &amp;quot;fglrx&amp;quot;&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
Don't forget to load the module &amp;lt;tt&amp;gt;fglrx&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;modprobe fglrx&amp;lt;/tt&amp;gt;).  Under Debian the module can be placed in &amp;lt;tt&amp;gt;/etc/modules&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
With fglrx drivers prior to 8.42.3 will need to disable composite to enable 3D DRI acceleration. To do this, add an extra Extensions section (if necessary) containing:&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Extensions&amp;quot;&lt;br /&gt;
     Option  &amp;quot;Composite&amp;quot; &amp;quot;Disable&amp;quot;  #make DRI work with fglrx.&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
If you are unsure whether you have DRI running, issue &amp;lt;tt&amp;gt;glxinfo | grep -i direct&amp;lt;/tt&amp;gt; after disabling composite.  Note, this &lt;br /&gt;
&lt;br /&gt;
{{NOTE|1=Video overlay acceleration may be disabled when 3D acceleration is enabled. The following comment from the xorg.conf file bundled with the fglrx driver indicates that:&lt;br /&gt;
   # === OpenGL Overlay ===&lt;br /&gt;
   # Note: When OpenGL Overlay is enabled, Video Overlay&lt;br /&gt;
   #       will be disabled automatically&lt;br /&gt;
       Option &amp;quot;OpenGLOverlay&amp;quot;              &amp;quot;1&amp;quot;&lt;br /&gt;
However, you can use either regular Xv video overlay or make the video an opengl texture and let the OpenGL engine scale your video.  This has nothing to do with the acceleration of 2D drawing primitives.  Further, your mileage on performance may vary depending on what card you have.  The open source drivers don't support newer cards, while the ATI drivers don't support older cards.&lt;br /&gt;
&lt;br /&gt;
You may be able to preserve VideoOverlay acceleration if you explicitly remove the OpenGLOverlay using:&lt;br /&gt;
&lt;br /&gt;
Option &amp;quot;VideoOverlay&amp;quot;  &amp;quot;True&amp;quot; and Option &amp;quot;OpenGLOverlay&amp;quot; &amp;quot;False&amp;quot;.  See [http://xoomer.alice.it/flavio.stanchina/debian/fglrx-installer.html#configure Flavio's page] for detail.}}&lt;br /&gt;
&lt;br /&gt;
=== Power saving ===&lt;br /&gt;
Power saving is much better than with the &amp;lt;tt&amp;gt;radeon&amp;lt;/tt&amp;gt; driver, but doesn't work in dual-screen configuration (see [[How to make use of Graphics Chips Power Management features]]).&lt;br /&gt;
&lt;br /&gt;
=== Suspending with fglrx ===&lt;br /&gt;
&lt;br /&gt;
On a ThinkPad T42 with Kernel 2.6.19 with Software Suspend 2 and R60 with Kernel 2.6.18-suspend2-r1 (Gentoo) , the following addition to &amp;lt;tt&amp;gt;/etc/hibernate/suspend2.conf&amp;lt;/tt&amp;gt; is required:&lt;br /&gt;
&lt;br /&gt;
  # For fglrx&lt;br /&gt;
  ProcSetting extra_pages_allowance 20000&lt;br /&gt;
&lt;br /&gt;
=== Display Switching (Dynamic Display Management) ===&lt;br /&gt;
&lt;br /&gt;
Version 8.25.18 introduces a new feature: Dynamic Display Management. It allows display switching on-the-fly.&lt;br /&gt;
&lt;br /&gt;
To list all connected and enabled monitors:&lt;br /&gt;
:{{cmdroot|1=aticonfig --query-monitor}}&lt;br /&gt;
&lt;br /&gt;
To switch displays:&lt;br /&gt;
:{{cmdroot|1=aticonfig --enable-monitor=STRING,STRING}}, where STRING can be: none, lvds, crt1, crt2, tv, tdms1, tdms2&lt;br /&gt;
&lt;br /&gt;
Only 2 displays can be enabled at the same time. Any displays that are not on the list will be disabled.&lt;br /&gt;
&lt;br /&gt;
Using an [[Script for Dynamic Display Management with fglrx|ACPI script]], aticonfig can be used to switch displays on a key press.&lt;br /&gt;
&lt;br /&gt;
The '''Catalyst Control Center''', which comes with the driver (at least from Livna in Fedora Core 6) can be used to do this switching.  It also does various other kinds of display managements.  However, the version that comes with 8.39.4 doesn't seem to handle switching into Big Desktop mode, does anyone know how to get this to work?  The control center also complains a lot about rebooting, but rebooting doesn't seem to be required.  Does anyone have decent documentation for the control center?&lt;br /&gt;
&lt;br /&gt;
== Useful links == &lt;br /&gt;
* [http://www.ati.com/products/catalyst/linux.html ATI Linux Driver FAQ]&lt;br /&gt;
* [http://www.rage3d.com/content/articles/atilinuxhowto/ ATI Radeon Linux How-To]&lt;br /&gt;
* [http://www.rage3d.com/board/forumdisplay.php?f=61&amp;amp;daysprune=30&amp;amp;order=asc&amp;amp;sort=title Rage3D Linux Discussion Forum]&lt;br /&gt;
* [http://www.driverheaven.net/forumdisplay.php?f=103 Radeon Driver Forum at Driverheaven]&lt;br /&gt;
* [http://odin.prohosting.com/wedge01/gentoo-radeon-faq.html Gentoo ATI Radeon FAQ]&lt;br /&gt;
* [http://forums.gentoo.org/viewtopic-t-374745-highlight-t42+ati+dri.html Gentoo T42 ATI. DRI + xorg driver]&lt;br /&gt;
* [http://ati.cchtml.com/ Unofficial community ATI bugzilla] - tracks bugs in the driver. Might be monitored by ATI ([http://www.rage3d.com/board/showpost.php?p=1333438751&amp;amp;postcount=386], [http://www.rage3d.com/board/showpost.php?p=1333439009&amp;amp;postcount=390]).&lt;br /&gt;
&lt;br /&gt;
== ThinkPads that may be supported ==&lt;br /&gt;
Supported chips, as found in select IBM ThinkPads:&lt;br /&gt;
{{NOTE|fglrx version 8.29.6 discontinued support for Radeon 9200 and earlier.}}&lt;br /&gt;
* [[ATI Mobility FireGL 9000]]&lt;br /&gt;
** {{T40p}}&lt;br /&gt;
* [[ATI Mobility FireGL T2]]&lt;br /&gt;
** {{R50p}}&lt;br /&gt;
** {{T41p}}, {{T42p}}&lt;br /&gt;
* [[ATI Mobility FireGL V3200]]&lt;br /&gt;
** {{T43p}}&lt;br /&gt;
* [[ATI Mobility Radeon 9000]]&lt;br /&gt;
** {{R50}}, {{R51}}&lt;br /&gt;
** {{T40}}, {{T41}}, {{T42}}&lt;br /&gt;
* [[ATI Mobility Radeon 9600]]&lt;br /&gt;
** {{T42}}&lt;br /&gt;
* [[ATI Mobility Radeon X300]]&lt;br /&gt;
** {{R52}}&lt;br /&gt;
** {{T43}}&lt;br /&gt;
** {{Z60m}}&lt;br /&gt;
* [[ATI Mobility Radeon Xpress 200M]]&lt;br /&gt;
** {{R51e}}&lt;br /&gt;
* [[ATI Mobility Radeon X600]]&lt;br /&gt;
** {{Z60m}}&lt;br /&gt;
* [[ATI Mobility Radeon X1400]]&lt;br /&gt;
** {{T60}}, {{R60}}, {{Z61m}}&lt;br /&gt;
* [[ATI Mobility FireGL V5200]]&lt;br /&gt;
** {{T60p}}, {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
== ThinkPads that are NOT supported by fglrx==&lt;br /&gt;
Unsupported chips, as found in select IBM ThinkPads:&lt;br /&gt;
* [[ATI Mobility Radeon 7500]]&lt;br /&gt;
** {{R40}}&lt;br /&gt;
** {{T30}}&lt;br /&gt;
** {{T41}}&lt;br /&gt;
** {{T42}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Note that glxgears isn't a benchmark tool, it's so simple that its FPS values is without any meaning... you can only compare glxgears using the same drivers/machine, if you change any of then you can have higher/lower values and in real life programs/games happen to have the opposite effects. Think in terms of a car engines rpms: higher rpms in the same car usually means a faster car, change anything and it's meaningless, ie: gears, truck, wheel size, etc. make it useless.&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Drivers]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Fglrx&amp;diff=35509</id>
		<title>Fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Fglrx&amp;diff=35509"/>
		<updated>2008-01-06T17:50:54Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Display Switching (Dynamic Display Management) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
== ATI fglrx driver ==&lt;br /&gt;
This is a proprietary Linux binary-only driver for ATI graphic chips with support for 3D acceleration.&lt;br /&gt;
&lt;br /&gt;
Also see [[R300|opensource driver]] with 3D support&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
Home page: http://ati.amd.com/support/drivers/linux/linux-radeon.html&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
The ATI drivers have explicit permission for repackaging and redistribution of the Linux drivers.  Many distributions are supported within the installer, and many more repackaged by external developers.  Please visit the  [http://wiki.cchtml.com/index.php/Category:Distributions Distribution Page at the Unofficial ATI driver Wiki]&lt;br /&gt;
&lt;br /&gt;
*{{Debian}}&lt;br /&gt;
** These packages have been added to Debian unstable as &amp;lt;tt&amp;gt;fglrx-driver&amp;lt;/tt&amp;gt;, so you can now apt-get them and use module-assistant to install.&lt;br /&gt;
** If you are on stable sarge with backport's kernel 2.6.15, download ATI's installer, let it build Debian packages and proceed as usual. There's a [http://jroller.com/page/erAck?entry=lot_day_6_2_fglrx detailed description] available.&lt;br /&gt;
** [http://wiki.cchtml.com/index.php/Debian_Installation_Guide Debian Howto]&lt;br /&gt;
*{{SUSE}} packages: http://www.suse.de/~sndirsch/ati-installer-HOWTO.html&lt;br /&gt;
*{{Gentoo}} {{cmdroot|emerge ati-drivers}}&lt;br /&gt;
*{{Fedora}} 4 packages: http://rpm.livna.org&lt;br /&gt;
** For stock Fedora kernels: {{cmdroot|yum install kernel-module-fglrx-$(uname -r) ati-fglrx }}&lt;br /&gt;
** For custom-compiled kernels: see [[How to build custom packages for fglrx]]&lt;br /&gt;
*{{Fedora}} 5 packages: http://rpm.livna.org&lt;br /&gt;
** For stock Fedora kernels: {{cmdroot|yum install xorg-x11-drv-fglrx}}&lt;br /&gt;
** For custom-compiled kernels: see [[How to build custom packages for fglrx]]&lt;br /&gt;
*{{Fedora}} 7 packages: http://rpm.livna.org&lt;br /&gt;
** The newest version of the driver (8.39.4) is supposed to work with Fedora 7, and is available from Livna.&lt;br /&gt;
*{{Arch Linux}}&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx}} (kernel module for 2.6.15-ARCH)&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx-archck}} (kernel module for 2.6.15-archck)&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx-utils}} (xorg7 stuff and tools)&lt;br /&gt;
*{{Ubuntu}}&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Dapper_Installation_Guide Dapper Drake Howto]&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Breezy_Installation_Guide Breezy Badger Howto]&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Edgy_Installation_Guide Edgy Eft Howto]&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Feisty_Installation_Guide Feisty Fawn Howto]&lt;br /&gt;
&lt;br /&gt;
== Building for Xorg 7.0==&lt;br /&gt;
To compile fglrx versions &amp;lt;= 8.24.8 for Xorg 7.0.0, fake Xorg 6.9.0 by &lt;br /&gt;
:{{cmdroot|1=export X_VERSION=x690; sh ati-driver-installer-8.24.8-x86.run}}&lt;br /&gt;
Next, move the various resulting libraries and modules from /usr/X11R6 to /usr/lib/xorg&lt;br /&gt;
&lt;br /&gt;
In {{path|/usr/src/ATI}} additional sources are installed for fireglcontrol and fgl_glxgears&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Current version: 7-12 (8.433) (20st December 2007).&lt;br /&gt;
Major changes:&lt;br /&gt;
* 7-12: FireGL support, fixed memory leak when running OpenGL applications, X -configure no longer results in a segmentation fault&lt;br /&gt;
* 7-11: new versioning scheme, kernel 2.6.23 support. Required for Xorg server 1.4, but does not support FireGL cards. So don't upgrade to Xorg 1.4 if you have one!&lt;br /&gt;
* 8.42.3: Composite support added enabling AIGLX and Beryl/Compiz on the desktop. Support for (most?) FireGl cards dropped (should be restored in upcoming versions)&lt;br /&gt;
* 8.41.7: increased OpenGL performance on some Radeon Cards, size/position TV-out adjustments work for Radeon X1900 or higher, X crash when connecting external DFP display fixed &lt;br /&gt;
* 8.40.4: some new TV out control options in CCC, another (non-exciting) maintenance release (see [http://www.phoronix.com/scan.php?page=article&amp;amp;item=804&amp;amp;num=1 Phoronix])&lt;br /&gt;
* 8.39.4: kernel 2.6.22 support, TexturedVideo fix, aticonfig segfault fix (see 8.38.7 hotfix), to get rid of the &amp;quot;AMD Testing use only&amp;quot; logo, use [http://www.phoronix.com/forums/showpost.php?p=10641&amp;amp;postcount=44 this] workaround.&lt;br /&gt;
* 8.38.7: hotfix release for &amp;quot;Using aticonfig --initial segfaults destroying xorg.conf file when run in X with Vesa driver.&amp;quot;, search for &amp;quot;737-28261&amp;quot; on the ATI website.&lt;br /&gt;
* 8.38.6: RedHat Enterprise Linux 5 support, Xserver crashes on moving video window between two monitors fixed, corruption when playing multiple vodeps with textured video fixed&lt;br /&gt;
* 8.37.6: Xorg Server 1.3 support, CCC 1.0, crash when logging off from X fixed, Xv cropping bug fixed&lt;br /&gt;
* 8.36.5: Kernel 2.6.20 support, CCC Beta 0.9 with localization&lt;br /&gt;
* 8.35.5: Beta AMD Catalyst Control Center, X-Server termination from console does not result in a blank screen. Kernel 2.6.20 requires some patching (see [[Problems_with_fglrx#fglrx_8.35.5|fglrx patches section]]).&lt;br /&gt;
* 8.34.8: Radeon Xpress 1250 support, X-Video on x86_64 fix, hibernation mode fix. Kernel 2.6.20 requires some patching (see [[Problems_with_fglrx#fglrx_8.34.8|fglrx patches section]]).&lt;br /&gt;
&lt;br /&gt;
== Known problems and solutions ==&lt;br /&gt;
See [[Problems with fglrx]].&lt;br /&gt;
== User experience ==&lt;br /&gt;
=== Speed ===&lt;br /&gt;
How much is the speed gain versus the opensource drivers?&lt;br /&gt;
&lt;br /&gt;
Compared to the old drivers, approximately 40% speed gain have been noticed with fglrx. However, there are issues with freezing/garbage after suspend, garbage when resizing desktop (via {{key|ctrl}}{{key|alt}}{{key|plus}}, {{key|ctrl}}{{key|alt}}{{key|minus}}), and garbage while using VMware. The current 8.14.13 has shown 400% improvement over using the open source radeon driver: 1200 FPS for glxgears{{footnote|1}}!&lt;br /&gt;
&lt;br /&gt;
However the situation seems to be changing significantly as time goes on. With recent x11-drm-20060608 driver (gentoo) and thinkpad t42 (ati 9600) the speed is confirmed as 1900fps and stable.  As of October 2007 there is dramatic improvement in the open source 3d drivers in speed and stability.&lt;br /&gt;
&lt;br /&gt;
=== 3D acceleration ===&lt;br /&gt;
&lt;br /&gt;
According to [http://xoomer.alice.it/flavio.stanchina/debian/fglrx-installer.html#configure Flavio's page] you need these options:&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Module&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
    Load &amp;quot;GLcore&amp;quot;&lt;br /&gt;
    Load &amp;quot;glx&amp;quot;&lt;br /&gt;
    Load &amp;quot;dri&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
  # Of course you need to activate the driver&lt;br /&gt;
  Section &amp;quot;Device&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
    Driver     &amp;quot;fglrx&amp;quot;&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
Don't forget to load the module &amp;lt;tt&amp;gt;fglrx&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;modprobe fglrx&amp;lt;/tt&amp;gt;).  Under Debian the module can be placed in &amp;lt;tt&amp;gt;/etc/modules&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
With fglrx drivers prior to 8.42.3 will need to disable composite to enable 3D DRI acceleration. To do this, add an extra Extensions section (if necessary) containing:&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Extensions&amp;quot;&lt;br /&gt;
     Option  &amp;quot;Composite&amp;quot; &amp;quot;Disable&amp;quot;  #make DRI work with fglrx.&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
If you are unsure whether you have DRI running, issue &amp;lt;tt&amp;gt;glxinfo | grep -i direct&amp;lt;/tt&amp;gt; after disabling composite.  Note, this &lt;br /&gt;
&lt;br /&gt;
{{NOTE|1=Video overlay acceleration may be disabled when 3D acceleration is enabled. The following comment from the xorg.conf file bundled with the fglrx driver indicates that:&lt;br /&gt;
   # === OpenGL Overlay ===&lt;br /&gt;
   # Note: When OpenGL Overlay is enabled, Video Overlay&lt;br /&gt;
   #       will be disabled automatically&lt;br /&gt;
       Option &amp;quot;OpenGLOverlay&amp;quot;              &amp;quot;1&amp;quot;&lt;br /&gt;
However, you can use either regular Xv video overlay or make the video an opengl texture and let the OpenGL engine scale your video.  This has nothing to do with the acceleration of 2D drawing primitives.  Further, your mileage on performance may vary depending on what card you have.  The open source drivers don't support newer cards, while the ATI drivers don't support older cards.&lt;br /&gt;
&lt;br /&gt;
You may be able to preserve VideoOverlay acceleration if you explicitly remove the OpenGLOverlay using:&lt;br /&gt;
&lt;br /&gt;
Option &amp;quot;VideoOverlay&amp;quot;  &amp;quot;True&amp;quot; and Option &amp;quot;OpenGLOverlay&amp;quot; &amp;quot;False&amp;quot;.  See [http://xoomer.alice.it/flavio.stanchina/debian/fglrx-installer.html#configure Flavio's page] for detail.}}&lt;br /&gt;
&lt;br /&gt;
=== Power saving ===&lt;br /&gt;
Power saving is much better than with the &amp;lt;tt&amp;gt;radeon&amp;lt;/tt&amp;gt; driver, but doesn't work in dual-screen configuration (see [[How to make use of Graphics Chips Power Management features]]).&lt;br /&gt;
&lt;br /&gt;
=== Suspending with fglrx ===&lt;br /&gt;
&lt;br /&gt;
On a ThinkPad T42 with Kernel 2.6.19 with Software Suspend 2 and R60 with Kernel 2.6.18-suspend2-r1 (Gentoo) , the following addition to &amp;lt;tt&amp;gt;/etc/hibernate/suspend2.conf&amp;lt;/tt&amp;gt; is required:&lt;br /&gt;
&lt;br /&gt;
  # For fglrx&lt;br /&gt;
  ProcSetting extra_pages_allowance 20000&lt;br /&gt;
&lt;br /&gt;
=== Display Switching (Dynamic Display Management) ===&lt;br /&gt;
&lt;br /&gt;
Version 8.25.18 introduces a new feature: Dynamic Display Management. It allows display switching on-the-fly.&lt;br /&gt;
&lt;br /&gt;
To list all connected and enabled monitors:&lt;br /&gt;
:{{cmdroot|1=aticonfig --query-monitor}}&lt;br /&gt;
&lt;br /&gt;
To switch displays:&lt;br /&gt;
:{{cmdroot|1=aticonfig --enable-monitor=STRING,STRING}}, where STRING can be: none, lvds, crt1, crt2, tv, tdms1, tdms2&lt;br /&gt;
&lt;br /&gt;
Only 2 displays can be enabled at the same time. Any displays that are not on the list will be disabled.&lt;br /&gt;
&lt;br /&gt;
Using an [Script for Dynamic Display Management with fglrx|ACPI script], aticonfig can be used to switch displays on a key press.&lt;br /&gt;
&lt;br /&gt;
The '''Catalyst Control Center''', which comes with the driver (at least from Livna in Fedora Core 6) can be used to do this switching.  It also does various other kinds of display managements.  However, the version that comes with 8.39.4 doesn't seem to handle switching into Big Desktop mode, does anyone know how to get this to work?  The control center also complains a lot about rebooting, but rebooting doesn't seem to be required.  Does anyone have decent documentation for the control center?&lt;br /&gt;
&lt;br /&gt;
== Useful links == &lt;br /&gt;
* [http://www.ati.com/products/catalyst/linux.html ATI Linux Driver FAQ]&lt;br /&gt;
* [http://www.rage3d.com/content/articles/atilinuxhowto/ ATI Radeon Linux How-To]&lt;br /&gt;
* [http://www.rage3d.com/board/forumdisplay.php?f=61&amp;amp;daysprune=30&amp;amp;order=asc&amp;amp;sort=title Rage3D Linux Discussion Forum]&lt;br /&gt;
* [http://www.driverheaven.net/forumdisplay.php?f=103 Radeon Driver Forum at Driverheaven]&lt;br /&gt;
* [http://odin.prohosting.com/wedge01/gentoo-radeon-faq.html Gentoo ATI Radeon FAQ]&lt;br /&gt;
* [http://forums.gentoo.org/viewtopic-t-374745-highlight-t42+ati+dri.html Gentoo T42 ATI. DRI + xorg driver]&lt;br /&gt;
* [http://ati.cchtml.com/ Unofficial community ATI bugzilla] - tracks bugs in the driver. Might be monitored by ATI ([http://www.rage3d.com/board/showpost.php?p=1333438751&amp;amp;postcount=386], [http://www.rage3d.com/board/showpost.php?p=1333439009&amp;amp;postcount=390]).&lt;br /&gt;
&lt;br /&gt;
== ThinkPads that may be supported ==&lt;br /&gt;
Supported chips, as found in select IBM ThinkPads:&lt;br /&gt;
{{NOTE|fglrx version 8.29.6 discontinued support for Radeon 9200 and earlier.}}&lt;br /&gt;
* [[ATI Mobility FireGL 9000]]&lt;br /&gt;
** {{T40p}}&lt;br /&gt;
* [[ATI Mobility FireGL T2]]&lt;br /&gt;
** {{R50p}}&lt;br /&gt;
** {{T41p}}, {{T42p}}&lt;br /&gt;
* [[ATI Mobility FireGL V3200]]&lt;br /&gt;
** {{T43p}}&lt;br /&gt;
* [[ATI Mobility Radeon 9000]]&lt;br /&gt;
** {{R50}}, {{R51}}&lt;br /&gt;
** {{T40}}, {{T41}}, {{T42}}&lt;br /&gt;
* [[ATI Mobility Radeon 9600]]&lt;br /&gt;
** {{T42}}&lt;br /&gt;
* [[ATI Mobility Radeon X300]]&lt;br /&gt;
** {{R52}}&lt;br /&gt;
** {{T43}}&lt;br /&gt;
** {{Z60m}}&lt;br /&gt;
* [[ATI Mobility Radeon Xpress 200M]]&lt;br /&gt;
** {{R51e}}&lt;br /&gt;
* [[ATI Mobility Radeon X600]]&lt;br /&gt;
** {{Z60m}}&lt;br /&gt;
* [[ATI Mobility Radeon X1400]]&lt;br /&gt;
** {{T60}}, {{R60}}, {{Z61m}}&lt;br /&gt;
* [[ATI Mobility FireGL V5200]]&lt;br /&gt;
** {{T60p}}, {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
== ThinkPads that are NOT supported by fglrx==&lt;br /&gt;
Unsupported chips, as found in select IBM ThinkPads:&lt;br /&gt;
* [[ATI Mobility Radeon 7500]]&lt;br /&gt;
** {{R40}}&lt;br /&gt;
** {{T30}}&lt;br /&gt;
** {{T41}}&lt;br /&gt;
** {{T42}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Note that glxgears isn't a benchmark tool, it's so simple that its FPS values is without any meaning... you can only compare glxgears using the same drivers/machine, if you change any of then you can have higher/lower values and in real life programs/games happen to have the opposite effects. Think in terms of a car engines rpms: higher rpms in the same car usually means a faster car, change anything and it's meaningless, ie: gears, truck, wheel size, etc. make it useless.&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Drivers]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Laptop-mode&amp;diff=23203</id>
		<title>Laptop-mode</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Laptop-mode&amp;diff=23203"/>
		<updated>2006-07-15T18:33:11Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: Note regarding suse / powersaved&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An often overlooked feature in 2.4.23+ and 2.6.6+ Linux kernels is the laptop-mode. It may be activated by writing a &amp;quot;5&amp;quot; into {{path|/proc/sys/vm/laptop_mode}}. Laptop-mode, when configured correctly, can make the kernel buffer disk activities for quite a long time and keep the harddisk spun down for most of the time to save power.&lt;br /&gt;
&lt;br /&gt;
There is also a set of userland tools made to automatically manage all aspects of laptop-mode configuration according to the actual mode of operation (ac/battery-status). It is called [[laptop-mode-tools]] and you can install it in debian via apt-get or download it from [http://www.xs4all.nl/~bsamwel/laptop_mode/tools here].&lt;br /&gt;
&lt;br /&gt;
Almost anything you need to know about laptop-mode can be read in your Linux kernel documentation at /usr/src/linux/Documentation/laptop-mode.txt&amp;lt;br&amp;gt;&lt;br /&gt;
If you can not find this file on your laptop, then go and get yourself the latest kernel sources.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|The use of Laptop-mode and laptop-mode-tools is not recommended in SuSE Linux. The supplied &amp;lt;tt&amp;gt;powersaved&amp;lt;/tt&amp;gt; already takes care of everything regarding power saving}}&lt;br /&gt;
&lt;br /&gt;
=== Keeping the disk in the stand-by state ===&lt;br /&gt;
&lt;br /&gt;
Laptop-mode is only effective if one avoids spinning up the disk for frivoulous reasons.  What will spin a disk up is dependent on the HD firmware, but unfortunately most will spin up on just about every command.  To add insult to injury, ATA/SATA pass-through commands are not logged through the {{path|/proc/sys/vm/block_dump}} facility, and thus invisible to tools like '''lm-profiler'''.&lt;br /&gt;
&lt;br /&gt;
{{HINT|The '''lm-profiler''' tool from laptop-mode-tools can be used to list all processes doing normal disk access.}}&lt;br /&gt;
&lt;br /&gt;
In systems where the HD spins up too easily, the &amp;quot;'''hddtemp'''&amp;quot; daemon will wake up the disk every minute, and must thus be disabled for power management to be effective.  The &amp;quot;'''smartd'''&amp;quot; daemon is also an offender, but fortunately its default configuration issues commands to the HDs only every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
{{HINT|smartd can be configured to never issue commands to the disk if it is in the sleep or standby states, through the use of option &amp;quot;'''-n standby,q'''&amp;quot;.  The &amp;quot;''',q'''&amp;quot; is needed to supress syslog messages.}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Graphics_Chips_Power_Management_features&amp;diff=23168</id>
		<title>How to make use of Graphics Chips Power Management features</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Graphics_Chips_Power_Management_features&amp;diff=23168"/>
		<updated>2006-07-14T17:26:38Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Using the ATI proprietary driver */ atieventsd dynamic throttling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ATI Radeon Mobility chips=&lt;br /&gt;
&lt;br /&gt;
==Power saving with a framebuffer console==&lt;br /&gt;
In order to use the dynamic GPU clock-scaling similar to what X.org has, you need to use the radeonfb kernel module. You'll need to enable the '''CONFIG_FB_RADEON''' in your kernel configuration. If setup correctly you should see something like the following in your kernel log:&lt;br /&gt;
 radeonfb: Dynamic Clock Power Management enabled&lt;br /&gt;
&lt;br /&gt;
==Using the X.org Radeon driver==&lt;br /&gt;
===Activation===&lt;br /&gt;
The xorg X server has support for a power saving feature from ATI called PowerPlay. Xorg calls this feature DynamicClocks. It can be enabled in the server by adding '''Option  &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;''' in the '''Device''' section in {{path|/etc/X11/xorg.conf}}&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier  &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
        Driver      &amp;quot;radeon&amp;quot;&lt;br /&gt;
        VendorName  &amp;quot;IBM ThinkPad&amp;quot;&lt;br /&gt;
        BoardName   &amp;quot;ATI Radeon Mobility M9&amp;quot;&lt;br /&gt;
        '''Option      &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;'''&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
With this option enabled, the X11 server should print ({{path|/var/log/Xorg.0.log}}):&lt;br /&gt;
&lt;br /&gt;
 (**) RADEON(0): Option &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
 (II) RADEON(0): Dynamic Clock Scaling Enabled&lt;br /&gt;
&lt;br /&gt;
You do not need to do anything else, it dynamically manages the power consumption itself.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Enabling DynamicClocks crashes some models. If the CPU is entering one of the lower power states (C3 or lower) during Xorg startup the display may stay black. As a workaround disable DynamicClocks in Xorg and use [[Rovclock]] instead. But it does not scale the clocks to match the workload. Update 5/2/2006: Seems fixed in Xorg6.9}}&lt;br /&gt;
&lt;br /&gt;
===Problem with &amp;lt;tt&amp;gt;vbetool&amp;lt;/tt&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;tt&amp;gt;vbetool&amp;lt;/tt&amp;gt; is used to restore the display state (as done by some suspend/resume scripts), the setting of &amp;lt;tt&amp;gt;DynamicClocks&amp;lt;/tt&amp;gt; is forgotten and the GPU will consume more power until the next X server startup. You can manually enable DynamicTools again by starting a blank second X server (e.g., by running {{cmdroot|X :1}}) and then exiting it via {{key|Ctrl}}{{key|Alt}}{{key|Backspace}}.&lt;br /&gt;
&lt;br /&gt;
===Problem with suspend-to-disk===&lt;br /&gt;
&lt;br /&gt;
Upon resume from suspend-to-disk, the setting of &amp;lt;tt&amp;gt;DynamicClocks&amp;lt;/tt&amp;gt; is forgotten and the GPU will consume more power until the next X server startup. You can manually enable DynamicClocks again by starting a blank second X server (e.g., by running {{cmdroot|X :1}}) and then exiting it via {{key|Ctrl}}{{key|Alt}}{{key|Backspace}}.&lt;br /&gt;
&lt;br /&gt;
If you're using the hibernate script that's part of [[Software Suspend 2]], setting UseDummyXServer to yes in {{path|hibernate.conf}} automatically starts a second X server, hence enabling DynamicClocks again. (Remember to disable UseDummyXServer if you switch to the [[fglrx]] driver, otherwise your computer will hang upon resume.)&lt;br /&gt;
&lt;br /&gt;
Note: When using the [[Synaptics TouchPad driver for X]] with the SHMConfig-Option set to true in {{path|xorg.conf}}, starting a second X server breaks the Shared Memory and the touchpad can't be configured with {{cmd|synclient|}} any longer. Starting the dummy X server with a different xorg.conf file is a solution to this, a patch can be found in the [http://bugzilla.suspend2.net/show_bug.cgi?id=138 suspend2 bugzilla].&lt;br /&gt;
&lt;br /&gt;
===Debian Notes===&lt;br /&gt;
If your {{Debian}} doesn't have Xorg, yet, see [http://incubator.vislab.usyd.edu.au/roller/page/Steve/20040909 Installing a non-intrusive X.org server on Debian].&lt;br /&gt;
&lt;br /&gt;
Sarge backports are available from [http://www.backports.org/ here] or [http://people.debian.org/~nobse/xorg-x11/ here].&lt;br /&gt;
&lt;br /&gt;
You can also add the following line to your repository list:&lt;br /&gt;
 deb http://people.debian.org/~nobse/xorg-x11/ sarge main&lt;br /&gt;
&lt;br /&gt;
==Using the ATI proprietary driver==&lt;br /&gt;
&lt;br /&gt;
Versions 8.19.10 and higher of the ATI [[fglrx]] driver support &amp;quot;PowerPlay&amp;quot;, which &amp;quot;allows for the user to switch between power consumption modes&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To list available modes do:&lt;br /&gt;
:{{cmdroot|aticonfig  --list-powerstates}}&lt;br /&gt;
:{{cmdresult|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;core/mem&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[flags]}}&lt;br /&gt;
:{{cmdresult|---------------}}&lt;br /&gt;
:{{cmdresult|1: 105/122 MHz&amp;amp;nbsp;&amp;amp;nbsp;[low voltage]}}&lt;br /&gt;
:{{cmdresult|2: 209/182 MHz&amp;amp;nbsp;&amp;amp;nbsp;[low voltage]}}&lt;br /&gt;
:{{cmdresult|3: 297/230 MHz&amp;amp;nbsp;&amp;amp;nbsp;[default state]}}&lt;br /&gt;
&lt;br /&gt;
(Strangely, the same ThinkPad {{T43}} with [[ATI Mobility Radeon X300]] running [[fglrx]] 8.19.10 sometimes gives other, non-sensical results, perhaps due to interaction with [[rovclock]].)&lt;br /&gt;
&lt;br /&gt;
To changing the power mode on the fly:&lt;br /&gt;
:{{cmdroot|1=aticonfig --set-powerstate=2 --effective=now}}&lt;br /&gt;
&lt;br /&gt;
With newer driver versions (8.26 and later), &amp;lt;tt&amp;gt;atieventsd&amp;lt;/tt&amp;gt; should dynamically change the power state and clock, depending on thermal conditions and AC plug.&lt;br /&gt;
&lt;br /&gt;
Limitations (as of [[fglrx]] 8.19.10):&lt;br /&gt;
* You can't set the power state in {{path|/etc/X11/xorg.conf}} .&lt;br /&gt;
* You can't activate power saving when using dual-head mode (e.g., LCD+CRT).&lt;br /&gt;
&lt;br /&gt;
{{NOTE|[[fglrx]] power saving is not compatible with the [[Rovclock]] utility. Setting power saving mode using both [[fglrx]] and [[Rovclock]] results in an unusably slow desktop.}}&lt;br /&gt;
&lt;br /&gt;
==External sources==&lt;br /&gt;
*[http://www.ati.com/products/pdf/powerplaywp2.pdf Marketing information from ATI]&lt;br /&gt;
&lt;br /&gt;
=Other graphics chips=&lt;br /&gt;
No instructions are presently known for other chips.&lt;br /&gt;
&lt;br /&gt;
But see [[Problem with display remaining black after resume]].&lt;br /&gt;
&lt;br /&gt;
[[Category:G40]] [[Category:G41]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_video_output_switching&amp;diff=23141</id>
		<title>Problem with video output switching</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_video_output_switching&amp;diff=23141"/>
		<updated>2006-07-12T06:18:42Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Problems with ATI chipsets */ No problems with fglrx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Affected Models==&lt;br /&gt;
*ThinkPad {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}&lt;br /&gt;
*ThinkPad {{X23}}, {{X41}}&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
It is not possible, using the  FN-F7 key, to switch between the LCD and the external monitor in the following way&lt;br /&gt;
 LCD --&amp;gt; external Monitor--&amp;gt; both --&amp;gt;LCD&lt;br /&gt;
however ''cloning'' is possible for the Intel chipsets, see below.&lt;br /&gt;
&lt;br /&gt;
===Problems with Intel chipsets===&lt;br /&gt;
Disabling the internal LCD (e.g. when using an external Monitor) doesn't seem to work reliably.&lt;br /&gt;
&lt;br /&gt;
* For Xorg 7.022 one can clone the LCD display to an external monitor, adding the following lines to the Device section in the xorg.conf file:&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
  Identifier	&amp;quot;Generic Video Card&amp;quot;&lt;br /&gt;
  Driver		&amp;quot;i810&amp;quot;&lt;br /&gt;
  Option          &amp;quot;Clone&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
  Option          &amp;quot;MonitorLayout&amp;quot; &amp;quot;CRT,LFP&amp;quot;&lt;br /&gt;
however you can not switch between these screens as described above, once you use FN-F7 the cloned display is lost.&lt;br /&gt;
&lt;br /&gt;
* i810switch doesn't have any effect. After disabling the LCD it is still on (but the status display of i810switch claims that is is switched off).&lt;br /&gt;
&lt;br /&gt;
* i855crt works see: http://stefan.desire.ch/howto/x41debian/ for details.&lt;br /&gt;
&lt;br /&gt;
* With [[ibm-acpi]], {{cmdroot|echo lcd_disable &amp;gt;/proc/acpi/ibm/video}} works, but {{cmdroot|echo lcd_enable &amp;gt;/proc/acpi/ibm/video}} doesn't work - so one can't enable it anymore after disabling it. (the strange thing is that when switching to a console with {{key|ctrl}}{{key|alt}}{{key|F1}} the LCD display is used for it, so there must be some way to enable it but I can't find out how to control this in X). I've tried this with version 0.8 and version 0.11 of [[ibm-acpi]].&lt;br /&gt;
&lt;br /&gt;
===Problems with ATI chipsets===&lt;br /&gt;
*It is a [http://bugs.freedesktop.org/show_bug.cgi?id=2000 known issue] of xorgs radeon driver that {{key|Fn}}{{key|F7}} doesn't work.&lt;br /&gt;
&lt;br /&gt;
You can force the &amp;lt;tt&amp;gt;radeon&amp;lt;/tt&amp;gt; driver to enable both CRT and LCD using &amp;lt;tt&amp;gt;Option &amp;quot;MonitorLayout&amp;quot; &amp;quot;LVDS,CRT&amp;quot;&amp;lt;/tt&amp;gt; in the &amp;lt;tt&amp;gt;&amp;quot;Device&amp;quot;&amp;lt;/tt&amp;gt; section of {{path|/etc/X11/xorg.conf}}. The analogous option for [[fglrx]] is &amp;lt;tt&amp;gt;Option &amp;quot;ForceMonitors&amp;quot; &amp;quot;lvds,crt1&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The {{cmdroot|radeontool light off}} and {{cmdroot|radeontool dac off}} commands will disable the LCD and CRT if they're been enabled before in the X server, but the corresponding {{cmdroot|radeontool light on}} and {{cmdroot|radeontool dac on}} will not work if the displays have were not enabled when the X server started. Also note that turing off the CRT using this command will not reduce power consumption, nor allow [[fglrx]] to enable power saving modes.&lt;br /&gt;
&lt;br /&gt;
You might try the following: Hit Ctrl+Alt+F1 to switch to a console, hit Fn+F7 to switch video, hit Ctrl+Alt+F7 to switch back to X.&lt;br /&gt;
&lt;br /&gt;
====fglrx-Driver====&lt;br /&gt;
Output switching with the Closed-Source ati-driver works: Just use {{cmdroot|aticonfig --query-monitor}} and e.g. {{cmdroot |aticonfig  --enable-monitor...&amp;quot;}}. You can use those two commands in a script, and bind them to {{key|Fn}}{{key|F7}}&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
*https://bugs.freedesktop.org/show_bug.cgi?id=2000&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
None (yet).&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installation_instructions_for_the_ThinkPad_T43&amp;diff=23103</id>
		<title>Installation instructions for the ThinkPad T43</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installation_instructions_for_the_ThinkPad_T43&amp;diff=23103"/>
		<updated>2006-07-09T09:47:51Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Distribution-specific instructions */  Links fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Specific installation notes for the ThinkPad {{T43}}.&lt;br /&gt;
&lt;br /&gt;
==Distribution-specific instructions==&lt;br /&gt;
*{{Install|Debian|/Sarge|T43}}&lt;br /&gt;
*{{Install|Debian|/Sid|T43}}&lt;br /&gt;
*{{Install|Fedora| Core 4|T43}}&lt;br /&gt;
*{{Install|Fedora| Core 4|T43}} (2668)&lt;br /&gt;
*{{Install|Fedora| Core 5|T43}} (2686)&lt;br /&gt;
*{{Install|Gentoo||T43}} (2668)&lt;br /&gt;
*{{Install|Ubuntu| 5.04|T43}} (1875)&lt;br /&gt;
*{{Install|Ubuntu| 5.10|T43}} (1871)&lt;br /&gt;
*{{Install|OpenSUSE| 10.1|T43}} (2668)&lt;br /&gt;
&lt;br /&gt;
==External instructions==&lt;br /&gt;
* [http://linux.spiney.org/debian_gnu_linux_on_an_ibm_thinkpad_t43p Debian Linux on an IBM Thinkpad T43p]&lt;br /&gt;
* [http://wiki.foosel.net/linux/t43 Debian GNU/Linux Etch on an IBM ThinkPad T43]&lt;br /&gt;
* [http://sth.freeshell.org/t43-linux.html Gentoo on T43]&lt;br /&gt;
* [http://www.cs.ust.hk/~joseph/Favorites/Debian/UbuntuOnIBMThinkpadT43.html Ubuntu on IBM ThinkPad T43 (2668-HH5)]&lt;br /&gt;
* [http://ce.et.tudelft.nl/~zhijiangchang/index.html#useful How to make windows, linux and AcessIBM work all together]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=23101</id>
		<title>Installing OpenSUSE 10.1 on a ThinkPad T43</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=23101"/>
		<updated>2006-07-09T09:47:36Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: Installing SUSE 10.1 on a ThinkPad T43 (2668) moved to Installing OpenSUSE 10.1 on a ThinkPad T43&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most things run just fine after installation, the Rest I got working with the great articles here.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
{{WARN| The Pre-Desktop-Area has to be protected before installation, otherwise the Recovery-System will be lost. To do so, set Predesktop-Area to &amp;quot;Secure&amp;quot; in BIOS. Additionally, it's always useful to have the Recovery-CDs burned before an installation attempt}}&lt;br /&gt;
&lt;br /&gt;
The automatic shrinking of the NTFS-partition did not work during the Installation of {{SUSE}}, so I shrinked it with QtParted from a Knoppix-DVD.&lt;br /&gt;
To be able to boot Windows and Linux (via Grub) and the Recovery-System (with {{ibmkey|Access IBM|#495988}}), install the bootloader in the new, extended partition (usually &amp;lt;tt&amp;gt;/dev/sda&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Besides that, everything went fine, most Hardware was set up correctly: Graphics Card, Touchpad and Trackpoint, WLAN, Bluetooth, Modem (yet untested), Volume Control.&lt;br /&gt;
&lt;br /&gt;
==ACPI==&lt;br /&gt;
Everything set up correctly, [[ibm-acpi]] ist installed, Suspend-to-RAM and Suspend-to-Disk work with the keys already assigned to them. I still miss [[RediSafe]] though, maybe I'll use [[Software Suspend 2]] some day.&lt;br /&gt;
&lt;br /&gt;
==Hotkeys==&lt;br /&gt;
[[How to get special keys to work]] gives a general overview.&lt;br /&gt;
&lt;br /&gt;
Suspend keys worked by default installation, as did  {{key|Fn}}{{key|F5}} for switching Bluetooth on and off. For the remaining keys, the &amp;lt;tt&amp;gt;nvram&amp;lt;/tt&amp;gt;-module was missing. So when {{path|/dev/nvram/}} is missing, you have to create it first: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mknod /dev/nvram c 10 144}} &lt;br /&gt;
&lt;br /&gt;
and load it with&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe nvram}}&lt;br /&gt;
&lt;br /&gt;
Additionally, I had to specify the module to be loaded automatically at {{path|/etc/sysconfig/kernel}}:&lt;br /&gt;
 [...]&lt;br /&gt;
 MODULES_LOADED_ON_BOOT=&amp;quot;nvram&amp;quot;&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Last, the access rights had to be corrected. To do so, search for &amp;lt;tt&amp;gt;nvram&amp;lt;/tt&amp;gt; in {{path|/etc/udev/rules.d/50-udev-default.rules }} and change the entry to:&lt;br /&gt;
 KERNEL==&amp;quot;nvram&amp;quot;,                NAME=&amp;quot;%k&amp;quot;, GROUP=&amp;quot;nvram&amp;quot;, MODE=&amp;quot;660&amp;quot;&lt;br /&gt;
so the users of group nvram have access to it. Of course that group has to exist, and you need to be a member of it:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|groupadd nvram}}&lt;br /&gt;
{{cmdroot|usermod -G nvram username}}&lt;br /&gt;
&lt;br /&gt;
After a reboot, you can use either [[tpb]] or the [[KMilo]]-Plugin in KControl (System Administration -&amp;gt; IBM Thinkpad Laptop) to set up the keys. I liked the OSD of KMilo better. Additionally, I set the Mixer setting to &amp;quot;Software&amp;quot; (&amp;lt;tt&amp;gt;MIXER ON&amp;lt;/tt&amp;gt; in tpb), so the Mixer volume and mute status matches the one in KMix.&lt;br /&gt;
&lt;br /&gt;
==Fingerprint Reader==&lt;br /&gt;
[[How to enable the fingerprint reader]] neatly explains everything. I had to do the last steps manually, because the [[Script for enabling the fingerprint reader]] did not run till the end on Suse 10.1&lt;br /&gt;
&lt;br /&gt;
==3D Acceleration==&lt;br /&gt;
The Standard driver did work for 2D, but with no 3D acceleration. When I added&lt;br /&gt;
&amp;lt;pre&amp;gt;Section &amp;quot;Module&amp;quot;&lt;br /&gt;
       	[...]&lt;br /&gt;
        Load  &amp;quot;glx&amp;quot;&lt;br /&gt;
	[...]&lt;br /&gt;
EndSection&amp;lt;/pre&amp;gt;&lt;br /&gt;
to my {{path|/etc/X11/xorg.conf}}, the 3D acceleration worked with the OpenSource driver, but now there were problems with Suspend. So I decided for the proprietary [[fglrx]]-Driver directly from Ati. Installed fine, after I created a distribution-specific rpm with the Installer.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
[[How_to_configure_the_TrackPoint#Scrolling | Trackpoint Scrolling]] &lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
[http://omnibus.uni-freiburg.de/~s8arhorn/index.php?section=Linux&amp;amp;file=Suse%2010.1%20auf%20IBM%20Thinkpad%2043 My Installation article, in German]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_SUSE_10.1_on_a_ThinkPad_T43_(2668)&amp;diff=23102</id>
		<title>Installing SUSE 10.1 on a ThinkPad T43 (2668)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_SUSE_10.1_on_a_ThinkPad_T43_(2668)&amp;diff=23102"/>
		<updated>2006-07-09T09:47:36Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: Installing SUSE 10.1 on a ThinkPad T43 (2668) moved to Installing OpenSUSE 10.1 on a ThinkPad T43: Moved to general pagename, to fit the Installation Instructions links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Installing OpenSUSE 10.1 on a ThinkPad T43]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_APS_harddisk_parking&amp;diff=23095</id>
		<title>Talk:Problem with APS harddisk parking</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_APS_harddisk_parking&amp;diff=23095"/>
		<updated>2006-07-08T17:47:35Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: freezes with hdapsd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What is meant with &amp;quot;frequent drive spin downs&amp;quot;, or better: in which interval would the drive spin down? I also get the...&lt;br /&gt;
&lt;br /&gt;
:: kernel: idedisk_issue_protect_fn(): unload support NOT reported by drive!..&lt;br /&gt;
:: kernel: ide_protect_queue(): head park not requested, used standby!..&lt;br /&gt;
:: kernel: ide_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
&lt;br /&gt;
...error every time I tilt my Laptop (only if hdapsd is running of course)&lt;br /&gt;
but then I can hear how the head parks and the drive spins down and comes back again.&lt;br /&gt;
If I don't hear this frequently, there shouln't be any problems right?&lt;br /&gt;
&lt;br /&gt;
My Thinkpad:&lt;br /&gt;
&lt;br /&gt;
Model: R51&lt;br /&gt;
&lt;br /&gt;
HDD: Model=FUJITSU MHT2060AT, FwRev=8423&lt;br /&gt;
&lt;br /&gt;
the hdd is the original shipped one so is has this capabilities.&lt;br /&gt;
&lt;br /&gt;
So maybe anyone can confirm this and add the MHT2060AT drive to the &amp;quot;Drives which have this problem&amp;quot; list&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can check the drive's spec for the rated number of spin-ups to get concrete numbers, but what you describe means that if you work on an unstable surface (lap, train, etc.), you may kill your drive pretty quickly.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 00:36, 6 June 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
===Random freezes===&lt;br /&gt;
My system randomly freezes when slightly shaken, but only from time to time and when hdapsd is active. The last messages in /var/log/messages are:&lt;br /&gt;
 Jul  8 16:25:09 tp43 kernel: ata_scsi_issue_protect_fn(): unload support reported by drive..&lt;br /&gt;
 Jul  8 16:25:09 tp43 kernel: scsi_protect_queue(): head parked..&lt;br /&gt;
 Jul  8 16:25:10 tp43 kernel: scsi_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
after that I need a hard reboot.&lt;br /&gt;
&lt;br /&gt;
I use SuSE 10.1 with kernel 2.6.16.23 from kernel.org, patched with the hdaps-Patch for 2.6.16 (Thinkpad T43). Do I need an earlier kernel version? Anyone else with this problem?&lt;br /&gt;
HD-Firmware is MB41A60A, and there was no update available.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hypnotoad|Hypnotoad]] 19:47, 8 July 2006 (CEST)&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_APS_harddisk_parking&amp;diff=23094</id>
		<title>Problem with APS harddisk parking</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_APS_harddisk_parking&amp;diff=23094"/>
		<updated>2006-07-08T17:15:58Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* supported/unsupported harddrive firmwares */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
When trying to [[How to protect the harddisk through APS|enable APS functionality]] by installing &amp;lt;tt&amp;gt;hdaps_protect&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdapsd&amp;lt;/tt&amp;gt;, the following problems might occur.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem with unload capabilities check==&lt;br /&gt;
You may get the following kernel message when the disk is protected (e.g., via {{cmdroot|echo 1 &amp;gt; /sys/block/sda/queue/protect}}):&lt;br /&gt;
&lt;br /&gt;
 ata_scsi_issue_protect_fn(): unload support NOT reported..&lt;br /&gt;
 scsi_protect_queue(): head park not requested, used standby!..&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 idedisk_issue_protect_fn(): unload support NOT reported..&lt;br /&gt;
 ide_protect_queue(): head park not requested, used standby!..&lt;br /&gt;
&lt;br /&gt;
{{WARN|Using HDAPS in the above state may cause frequent drive spin downs, thereby wearing out your hard disk.}}&lt;br /&gt;
&lt;br /&gt;
If you see this, and you are sure that your drive actually does support unloading (all original drives sold with HDAPS-equipped ThinkPads do), one of the following solutions might help.&lt;br /&gt;
&lt;br /&gt;
=== Drives which have this problem ===&lt;br /&gt;
* Hitachi HTS726060M9AT00 (7K60) on ThinkPad {{T43}}&lt;br /&gt;
* Fujitsu MHT2040AH (846C) on ThinkPad {{T41}}&lt;br /&gt;
&lt;br /&gt;
=== Solution for kernel 2.6.16 or later ===&lt;br /&gt;
The &amp;lt;tt&amp;gt;hdaps_protect&amp;lt;/tt&amp;gt; patch for 2.6.16 now accepts the {{bootparm|protect_method|}} module parameter to override the &lt;br /&gt;
parking capability detection, which accepts the following numeric values:&lt;br /&gt;
*&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;: autodetect capability&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;: &amp;quot;unload the head even if the drive doesn't report it has this capability&amp;quot;&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt;: &amp;quot;standby even if unload is supported&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hence, depending on your machine type, and whether the module is built into the kernel or not, you can use one of the following options:&lt;br /&gt;
&lt;br /&gt;
If disk driver is built into kernel, add the following to your kernel boot parameters (e.g. {{path|/boot/grub/menu.lst}}):&lt;br /&gt;
    libata.protect_method=1&lt;br /&gt;
    ide-disk.protect_method=1&lt;br /&gt;
&lt;br /&gt;
If disk driver is built as module, add the following to your modprobe configuration (e.g., {{path|/etc/modprobe.conf}}):&lt;br /&gt;
    options libata protect_method=1&lt;br /&gt;
    options ide-disk protect_method=1&lt;br /&gt;
&lt;br /&gt;
In both cases, if you know whether you use &amp;lt;tt&amp;gt;ide-disk&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libata&amp;lt;/tt&amp;gt;, you can drop the other line.&lt;br /&gt;
&lt;br /&gt;
=== Solution for kernel 2.6.15 and older ===&lt;br /&gt;
The following patch overrides automatic protect capability detection.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff -u linux-2.6.15.hdaps/drivers/ide/ide-disk.c linux-2.6.15.hdaps/drivers/ide/ide-disk.c&lt;br /&gt;
--- linux-2.6.15.hdaps/drivers/ide/ide-disk.c	2006-01-18 07:11:54.000000000 +0000&lt;br /&gt;
+++ linux-2.6.15.hdaps/drivers/ide/ide-disk.c	2006-01-18 07:11:54.000000000 +0000&lt;br /&gt;
@@ -869,7 +869,7 @@&lt;br /&gt;
 	else&lt;br /&gt;
 		printk(KERN_DEBUG &amp;quot;idedisk_issue_protect_fn(): unload support NOT reported..\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
-	return ide_protect_queue(q, (drive-&amp;gt;id-&amp;gt;cfsse &amp;amp; (1 &amp;lt;&amp;lt; 13)) ? 1: 0);&lt;br /&gt;
+	return ide_protect_queue(q, 1);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int idedisk_issue_unprotect_fn(request_queue_t *q)&lt;br /&gt;
diff -u linux-2.6.15.hdaps/drivers/scsi/libata-scsi.c linux-2.6.15.hdaps/drivers/scsi/libata-scsi.c&lt;br /&gt;
--- linux-2.6.15.hdaps/drivers/scsi/libata-scsi.c	2006-01-18 07:15:31.000000000 +0000&lt;br /&gt;
+++ linux-2.6.15.hdaps/drivers/scsi/libata-scsi.c	2006-01-18 07:15:31.000000000 +0000&lt;br /&gt;
@@ -661,7 +661,7 @@&lt;br /&gt;
 		printk(KERN_DEBUG &amp;quot;ata_scsi_issue_protect_fn(): unload support NOT reported..\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 	/* call scsi_protect_queue, requesting either unload or standby */&lt;br /&gt;
-	return scsi_protect_queue(q, ata_id_has_unload(dev-&amp;gt;id) ? 1 : 0);&lt;br /&gt;
+	return scsi_protect_queue(q, 1);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static int ata_scsi_issue_unprotect_fn(request_queue_t *q)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem with Hard Drive Firmware==&lt;br /&gt;
In case you see a message like below in {{cmdroot|dmesg}} output after you have started the hdaps daemon, &lt;br /&gt;
a firmware upgrade of your harddisk might solve your problem.&lt;br /&gt;
 &lt;br /&gt;
 ide_protect_queue(): head NOT parked!.. &lt;br /&gt;
 ide_unprotect_queue(): No pending I/O, re-enabling power management..&lt;br /&gt;
&lt;br /&gt;
Go to the [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-62282 IBM harddrive firmware update utility page] and check if a firmware upgrade is available for your harddisk. IBM/Lenovo provides a bootdisk for easy firmware upgrade (~17MB download). &lt;br /&gt;
&lt;br /&gt;
===supported/unsupported harddrive firmwares===&lt;br /&gt;
Use {{cmdroot| hdparm -i /dev/hda}} to get your harddisk model name and firmware version (replace &amp;lt;tt&amp;gt;/dev/hda&amp;lt;/tt&amp;gt; with the actual device for your hard drive).&lt;br /&gt;
On newer models, you need {{cmdroot| sdparm -i /dev/sda}} because of the SATA controller.&lt;br /&gt;
&lt;br /&gt;
The following line is the important one in the output: &lt;br /&gt;
&lt;br /&gt;
 Model=HTS726060M9AT00, FwRev=MH4O'''A6GA''', SerialNo=MRHXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
The last four characters of the '''FwRev''' actually marks the firmware version.&lt;br /&gt;
 &lt;br /&gt;
The table lists known working / not working firmware versions with [[HDAPS]] &lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align:left;&amp;quot;&lt;br /&gt;
!Drive!!firmware!!park command output&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| IC25N040ATCS04-0 || CA40'''A71A''' || not parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| IC25N040ATMR04-0 || MO2O'''AD4A''' || not parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| IC25N040ATMR04-0 || MO2O'''ADEA''' || not parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| HTC426040G9AT00 || 00P4'''A0B4''' || parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| HTS548040M9AT00 || MG20'''A5BA''' || not parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| HTS548040M9AT00 || MG20'''A5HA''' || parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| HTS548080M9AT00 || (TBA) || parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| HTS541060G9AT00 || MB3I'''A60A''' || parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| HTS726060M9AT00 || MH4O'''A6GA''' || parked&lt;br /&gt;
|- style=&amp;quot;text-align:left;vertical-align:top;&amp;quot;&lt;br /&gt;
| Fujitsu MHT2040AH || 846C || parked&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Thermal_Sensors&amp;diff=23076</id>
		<title>Thermal Sensors</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Thermal_Sensors&amp;diff=23076"/>
		<updated>2006-07-05T19:18:22Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Utilities for viewing temperatures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
This page aims to summarize known information about the locations and properties of thermal sensors on ThinkPad laptops. &lt;br /&gt;
|}&lt;br /&gt;
==Accessing the sensors==&lt;br /&gt;
===ACPI system temperature sensors===&lt;br /&gt;
The primary means of accessing the thermal sensors is through the [[ibm-acpi]] module, which provides up to 11 thermal sensors (some of which may be inactive) when loaded with the &amp;lt;tt&amp;gt;experimental=1&amp;lt;/tt&amp;gt; option. Up to eight thermal sensors are exposed at {{path|/proc/acpi/ibm/thermal}}:&lt;br /&gt;
:{{cmdroot|cat /proc/acpi/ibm/thermal}}&lt;br /&gt;
:{{cmdresult|temperatures:   44 41 33 42 33 -128 30 -128}}&lt;br /&gt;
&lt;br /&gt;
On some models there are three extra sensors at Embedded Controller offsets 0xC0 to 0xC2, which can be read by parsing {{path|/proc/acpi/ibm/ecdump}}:&lt;br /&gt;
:{{cmdroot|perl -ne 'm/^EC 0xc0: .(..) .(..) .(..) / or next; print hex($1).&amp;quot; &amp;quot;.hex($2).&amp;quot; &amp;quot;.hex($3).&amp;quot;\n&amp;quot;' &amp;lt; /proc/acpi/ibm/ecdump}}&lt;br /&gt;
:{{cmdresult|40 48 43}}&lt;br /&gt;
&lt;br /&gt;
Future models might be additional extra sensors beyond those three. To see all candidates:&lt;br /&gt;
:{{cmdroot|perl -ne 'print join(&amp;quot; &amp;quot;,map(hex,m/\w+/g)).&amp;quot;\n&amp;quot; if s/^EC 0xc0://' &amp;lt; /proc/acpi/ibm/ecdump}}&lt;br /&gt;
:{{cmdresult|40 48 43 128 128 128 128 128 0 0 0 0 0 0 0 0}}&lt;br /&gt;
&lt;br /&gt;
===HDAPS temperature sensor===&lt;br /&gt;
The [[Active Protection System]] accelerometer also reports a temperature (but it is not certain that the sensor location is inside the HDAPS chip):&lt;br /&gt;
:{{cmdroot|cat /sys/bus/platform/drivers/hdaps/hdaps/temp1}}&lt;br /&gt;
:{{cmdresult|41}}&lt;br /&gt;
&lt;br /&gt;
===Harddisks temperature sensor===&lt;br /&gt;
Finally, the hard disk temperature can be read through the disk's SMART interface:&lt;br /&gt;
:{{cmdroot|smartctl -A /dev/hda | grep Temperature}}&lt;br /&gt;
:{{cmdresult|194 Temperature_Celsius     0x0022   145   097   000    Old_age   Always       -       31}}&lt;br /&gt;
&lt;br /&gt;
Or, for SATA-equipped models running a recent Linux kernel (see [[Problems with SATA and Linux]]):&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|smartctl -A -d ata /dev/sda | grep Temperature}}&lt;br /&gt;
:{{cmdresult|194 Temperature_Celsius     0x0022   145   097   000    Old_age   Always       -       31}}&lt;br /&gt;
&lt;br /&gt;
==Utilities for viewing temperatures==&lt;br /&gt;
&lt;br /&gt;
The following utilities display the ThinkPad-specific thermal sensor readouts:&lt;br /&gt;
* The above shell commands.&lt;br /&gt;
* [http://www.kde-look.org/content/show.php?content=33257 CPU Info] is a KDE applet that can display the 8 first ACPI sensors as well as the HDAPS sensor.&lt;br /&gt;
* [http://www.kraus.tk/projects/IBMDoK/ IBMDoK], another KDE applet, so far only tested at the T60&lt;br /&gt;
&lt;br /&gt;
==Sensor locations==&lt;br /&gt;
This information is model specific.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{R51}}===&lt;br /&gt;
The [[ibm-acpi]] documentation includes the report by Thomas Gruber:&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    Mini-PCI&lt;br /&gt;
 0x7A        3                    HDD&lt;br /&gt;
 0x7B        4                    GPU&lt;br /&gt;
 0x7C        5                    Battery (main)&lt;br /&gt;
 0x7D        6                    Battery (device bay)&lt;br /&gt;
 0x7E        7                    Battery (main)&lt;br /&gt;
 0x7F        8                    Battery (device bay)&lt;br /&gt;
 0xC0        none                 ?&lt;br /&gt;
 0xC1        none                 ?&lt;br /&gt;
 0xC2        none                 ?&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T40}}===&lt;br /&gt;
The location of one of the sensors is identified [http://forum.thinkpads.com/viewtopic.php?t=11574 here].&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    System board under rear left corner of Mini-PCI module&lt;br /&gt;
 0x7A        3                    ?&lt;br /&gt;
 0x7B        4                    GPU&lt;br /&gt;
 0x7C        5                    Battery&lt;br /&gt;
 0x7D        6                    n/a&lt;br /&gt;
 0x7E        7                    Battery&lt;br /&gt;
 0x7F        8                    n/a&lt;br /&gt;
 0xC0        none                 n/a&lt;br /&gt;
 0xC1        none                 n/a&lt;br /&gt;
 0xC2        none                 n/a&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T43}}, {{T43p}}===&lt;br /&gt;
Found by Shmidoax using cooling spray to cool down components and observe the effect on the sensors.&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    Between PCMCIA slot and CPU (same as HDAPS module)&lt;br /&gt;
 0x7A        3                    PCMCIA slot&lt;br /&gt;
 0x7B        4                    GPU&lt;br /&gt;
 0x7C        5                    Battery (front left)&lt;br /&gt;
 0x7D        6                    n/a&lt;br /&gt;
 0x7E        7                    Battery (rear right)&lt;br /&gt;
 0x7F        8                    n/a&lt;br /&gt;
 0xC0        none                 Bus between Northbridge and DRAM&lt;br /&gt;
 0xC1        none                 Southbridge (under Mini-PCI card, under touchpad)&lt;br /&gt;
 0xC2        none                 Power circuitry, on underside of system board under F2 key&lt;br /&gt;
{{gallery_start}}&lt;br /&gt;
{{thumb|T43-thermal-sensors.jpg|ThinkPad T43 sensor locations}}&lt;br /&gt;
{{thumb|T43-2668-thermal-sensors-zoom.jpg|ThinkPad T43 sensor locations detail}}&lt;br /&gt;
{{thumb|T43p-H8S2161.jpg|ThinkPad T43/p 26xx Embedded Controller Renesas H8S/2161BV}}&lt;br /&gt;
{{gallery_end}}&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T60}}===&lt;br /&gt;
Found by Marco Kraus for use in [http://www.kraus.tk/projects/IBMDoK/ IBMDok].&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU 0&lt;br /&gt;
 0x79        2                    HDD&lt;br /&gt;
 0x7A        3                    HDD&lt;br /&gt;
 0x7B        4                    GPU&lt;br /&gt;
 0x7C        5                    Battery&lt;br /&gt;
 0x7D        6                    n/a&lt;br /&gt;
 0x7E        7                    Battery&lt;br /&gt;
 0x7F        8                    n/a&lt;br /&gt;
 0xC0        none                 ?&lt;br /&gt;
 0xC1        none                 ?&lt;br /&gt;
 0xC2        none                 ?&lt;br /&gt;
&lt;br /&gt;
The CPU thermal sensors seem to be exposed in both {{path|/proc/acpi/thermal_zone/THM0/temperature}} and {{path|/proc/acpi/thermal_zone/THM1/temperature}}, though the latter curiously seems to exist only in this file and nowhere in {{path|/proc/acpi/ibm/ecdump}}.&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Problems_with_fglrx&amp;diff=23009</id>
		<title>Talk:Problems with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Problems_with_fglrx&amp;diff=23009"/>
		<updated>2006-06-29T19:25:00Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* atieventsd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== using kernel AGP vs fglrx AGP ==&lt;br /&gt;
&lt;br /&gt;
Anyone know whether this makes a performance and/or stability difference?&lt;br /&gt;
&lt;br /&gt;
== 8.20.8 and later works with current Debian sid packages ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spiney@t43p:~$ dpkg -l xserver-xorg&lt;br /&gt;
Desired=Unknown/Install/Remove/Purge/Hold&lt;br /&gt;
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed&lt;br /&gt;
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)&lt;br /&gt;
||/ Name                         Version                      Description&lt;br /&gt;
+++-============================-============================-==================&lt;br /&gt;
ii  xserver-xorg                 6.9.0.dfsg.1-2               the X.Org X server&lt;br /&gt;
spiney@t43p:~$ fglrxinfo &lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: MOBILITY FireGL V3200 Pentium 4 (SSE2) (FireGL) (GNU_ICD)&lt;br /&gt;
OpenGL version string: 1.3.5519 (X4.3.0-8.20.8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ahh - thanks for the info.  You perhaps compiled the modules for the drivers yourself and did not use the debian packaged fglrx-driver?  Thus, it must be an unneeded limitation on the debian packaged driver which limits its installation...  Full listing at http://packages.debian.org/unstable/x11/fglrx-driver which lists as required packages:&lt;br /&gt;
&lt;br /&gt;
 xserver-xorg (&amp;lt;&amp;lt; 6.8.99)&lt;br /&gt;
  the X.Org X server &lt;br /&gt;
 xserver-xorg (&amp;gt;= 6.8.0) &lt;br /&gt;
&lt;br /&gt;
The first limitation (&amp;lt;&amp;lt;6.8.99) is what prevents installation.  I'm sure I could force apt to install it, but I may go back to compiling the modules myself, as using fglrx 8.20.8 with kernel 2.6.15 needs a small patch to compile correctly anyway...  --[[User:gsmenden|gsmenden]]&lt;br /&gt;
&lt;br /&gt;
Spiney, where exactly do you have your package from? I re-build the 8.20.8-package from debian with the &amp;lt;&amp;lt;6.8.99 dependecy removed, but when I try to run X, I get &lt;br /&gt;
 [R200Setup] X version mismatch - detected X.org 7.0.0.0, required X.org 6.8.0.0&lt;br /&gt;
 (EE) Failed to load module &amp;quot;fglrx&amp;quot; (module requirement mismatch, 0)&lt;br /&gt;
Any hints? --[User:nomeata|nomeata]&lt;br /&gt;
&lt;br /&gt;
I used the ati-installer (the huge download), created a Debian sid package and installed it, but got the same error. The installer seems to fetch the wrong driver version from the archive, so I extracted it with&lt;br /&gt;
&lt;br /&gt;
{{cmd|./ati-driver-installer-8.20.8-i386.run --extract &amp;lt;sometempdir&amp;gt;|}}&lt;br /&gt;
&lt;br /&gt;
and put the necessary files from the created {{path|&amp;lt;sometempdir&amp;gt;/x690}} subdirectory into {{path|/usr}} by hand. All IIRC, it's been some time since. :)&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 07:29, 11 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Thanks for the pointer. This is how you get proper debian packages out of the ati-installer:&lt;br /&gt;
 ./ati-driver-installer-8.20.8-i386.run --extract fglrx-tmp&lt;br /&gt;
 cd fglrx-tmp&lt;br /&gt;
 $editor packages/Debian/ati-packager.sh #  in the line &amp;quot;sid|unstable) X_DIR=x680;;&amp;quot;, put a x690 for the x680&lt;br /&gt;
 ./fglrx-tmp/packages/Debian/ati-packager.sh --buildpkg sid&lt;br /&gt;
 cd ..&lt;br /&gt;
 sudo dpkg -i fglrx-kernel-src_8.20.8-1_i386.deb fglrx-driver_8.20.8-1_i386.deb&lt;br /&gt;
--[[User:Nomeata|Nomeata]] 00:35, 13 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I had to do following steps :&lt;br /&gt;
&lt;br /&gt;
 $ ./ati-driver-installer-8.20.8-i386.run --extract fglrx-tmp&lt;br /&gt;
 $ cd fglrx-tmp&lt;br /&gt;
 $ ''editor'' packages/Debian/ati-packager.sh #  in the line &amp;quot;sid|unstable) X_DIR=x680;;&amp;quot;, put a x690 for the x680&lt;br /&gt;
 $ ./packages/Debian/ati-packager.sh --buildpkg sid&lt;br /&gt;
 $ cd /tmp&lt;br /&gt;
 $ sudo dpkg -i fglrx-kernel-src_8.20.8-1_i386.deb fglrx-driver_8.20.8-1_i386.deb&lt;br /&gt;
--[[User:Fbianco|Fbianco]] 13:36, 26 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Nice - confirmed works on my T43p running sid.  From then on (or until 8.21.x comes out) you'll have to tell apt to hold back fglrx-driver package, or it will try to &amp;quot;update&amp;quot; fglrx-driver to 8.20.8-1.1 and therefore revert back to the problematic drivers.&lt;br /&gt;
--[[User:gsmenden|gsmenden]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Thanks for the info, Nomeata, that's a lot cleaner a solution than my manual way.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 08:32, 13 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To get this working under 2.6.15 with x.org 6.9, you will also need to apply a small patch - there is a link on the main article page.  After you install the fglrx-driver package with the 6.9 versioning hack above, go to&lt;br /&gt;
/usr/src/modules&lt;br /&gt;
and copy the patch here.  Modify the first two lines of the patch file to take out the &amp;quot;build_mod&amp;quot; directory, e.g. first line should begin with&lt;br /&gt;
 --- fglrx.orig/firegl_public.c &lt;br /&gt;
and call it with the -p0 strip option.  It should patch the firegl_public.c file cleanly.  You can then install as usual for your kernel (2.6.14.x or 2.6.15) using module-assistant.&lt;br /&gt;
&lt;br /&gt;
Update - although X will come up in kernel 2.6.15 with the fglrx drivers patched as above, there is some strange behavior exhibited in all of X apllications - frequent hanging of applications when closing windows.  Reverting back to the radeon driver in 2.6.15 solves these - so it is likely the ATI proprietary driver causing some problems.&lt;br /&gt;
&lt;br /&gt;
Yet another update - fglrx 8.21.7 is out as of 1/19/2006, now supporting OpenGL 2.0, so eventually we will have beautiful complex shading / fog effects on Linux, too.  It works well with X.Org 6.9 out of the box.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this version gives the same problems when used (unpatched) with kernel 2.6.15 with strange lockups occasionally requiring reset of X.  I have not tried this with the ~10 line patch listed on the main site, but that patch not work for me with 8.20.8.  Anybody else have experience with 2.6.15 and fglrx?&lt;br /&gt;
&lt;br /&gt;
Yay - new version out - 8.22.5 - works well with 2.6.15.x.  Finally, running a plain-vanilla kernel on a T43p!  (SATA+libata passthrough+SMART in mainline, 3d accel drivers up to date.  Linux life is good.)&lt;br /&gt;
&lt;br /&gt;
--[[User:gsmenden|gsmenden]] 12:39, 9 Feb 2006 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I don't know which patch you mean exactly (10 lines? the patch from lkml is just one line changed, no?), but I've been using 8.20.8 with 2.6.15 for quite some time (actually started with some -rc version IIRC), no lockups at all. No idea about 8.21.7 though, because I switched to 2.6.16-rc1 and can't compile the fglrx module at the moment, need to investigate the cause.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 07:24, 21 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ok - strange.  Yeah, the actual change is only one line, the rest is just commenting, etc.  The lockups that I get are quite rare, but flightgear occasionally gives a hard lock.  glxgears and fgl_glxgears work fine, netscape occasionally will hard-lock, and strangely enough issuing a shutdown command often makes the display blank and hard lock.  I can't reproduce them too consistently, but these _never_ occur with the radeon driver / mesa or under 2.6.14.x.&lt;br /&gt;
&lt;br /&gt;
Unfortunately vanilla 8.21.7 with kernel 2.6.15.1 (Xorg 6.9) gives the same X lockups.&lt;br /&gt;
&lt;br /&gt;
--[[User:gsmenden|gsmenden]] 11:36, 21 Jan 2006 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I can't compile the 8.21.7 driver modules with 2.6.15.1 at all. They compile with 2.6.14.4 cleanly and 8.20.8 compile with 2.6.15.1. &lt;br /&gt;
What I don't understand though is, that when I let the ATI installer build debian packages, it does so without hassle, but the packages don't work. &lt;br /&gt;
(this is about 8.21.7 - 2.6.15.1) Also patching doesn't seem to help. It shouldn't of course.&lt;br /&gt;
&lt;br /&gt;
--[[User:Rasto|Rasto]] 15:04, 23 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I looked at the compile problems last night. I have no idea, how it is possible that it works for other people with 2.6.15, perhaps when you install &lt;br /&gt;
precompiled modules? I don't really understand how that ati-installer thing works. Anyway. This may solve the problems with 8.21.7 and 2.6.15- &lt;br /&gt;
it is just two minor line changes (+ the one line patch with little extra), but now it compiles. pm_register and similar were moved to linux/pm_legacy.h &lt;br /&gt;
in 2.6.15, so that's one problem. It also reports unknown symbol verify_area, but this should not pose a problem, as it is already obsolete and redundant. &lt;br /&gt;
If you feel, that the one line should be left as the separate patch, copy it somewhere else and change it. It's here [http://people.ksp.sk/~rasto/fglrx_with_2.6.15.patch], but I'll put it on the main page as well.&lt;br /&gt;
&lt;br /&gt;
--[[User:Rasto|Rasto]] 18:29, 25 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== Disabling the external VGA port? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone know how disable the VGA port ''completely'' even when a cable is attached? Fiddling around with the DesktopSetup and ForceMonitor options didn't do the trick for me, and the MonitorLayout option found in some documentation is no longer valid in the current fglrx driver.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 19:42, 10 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Debian-specific script to switch fglrx&amp;lt;-&amp;gt;radeon ==&lt;br /&gt;
&lt;br /&gt;
Don't know where to put it exactly, but if someone's interested (and using Debian), I've put up a [http://linux.spiney.org/debian_gnu_linux_on_an_ibm_thinkpad_t43p_graphics_card_switching_fglrx_radeon script for easily switching graphics driver configurations]. Feedback appreciated (altho I haven't got any to the xscreensaver patch ;)), especially if someone could do something similar for other distributions (Gentoo being half-way there it seems) and incorporate it into the script.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 15:25, 17 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Compile ATI driver???==&lt;br /&gt;
How can you compile a binary only distributed driver? If I'm not getting something wrong, please change the formulation of the just added info.&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 20:10, 25 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
[http://xoomer.virgilio.it/flavio.stanchina/debian/fglrx-installer.html#overview1]&lt;br /&gt;
&amp;quot;The driver as a whole is made of three main components: the driver proper, a replacement libGL and a kernel module. The driver and libGL are in the fglrx-driver package, the kernel module's source code is in the fglrx-kernel-src package.&amp;quot;&lt;br /&gt;
--[[User:Dunno|Dunno]] 23:49, 13 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
Yepp, my fault, didn't think of the kernel part when i wrote that. [[User:Wyrfel|Wyrfel]] 02:50, 14 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== On Kernel 2.6.16(_rc4-mm1) fglrx doesnÂ´t load anymore ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
if i emerge ati-drivers 8.22.5 and try to modprobe it on Kernel 2.6.16_rc4-mm1 i get the following console output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FATAL: Error inserting fglrx (/lib/modules/2.6.16-rc4-mm1/video/fglrx.ko): Unknown symbol in module, or unknown parameter (see dmesg)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
my dmesg Output reads:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fglrx: Unknown symbol inter_module_unregister&lt;br /&gt;
fglrx: Unknown symbol inter_module_get_request&lt;br /&gt;
fglrx: Unknown symbol inter_module_put&lt;br /&gt;
fglrx: Unknown symbol inter_module_register&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
from the ati-driver wiki i know that the driver runs on 2.6.16 up to rc3. But on the mm Series it doesnt run since 2.6.15.4-mm4.&lt;br /&gt;
&lt;br /&gt;
Help would be appreciated...&lt;br /&gt;
&lt;br /&gt;
Thanks and Greets&lt;br /&gt;
&lt;br /&gt;
Oli&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Have a look at the (currently) last entry on http://www.rage3d.com/board/showthread.php?t=33847019, which explains how to revive the old inter_module routines. HTH&lt;br /&gt;
&lt;br /&gt;
--[[User:Nephilim|Nephilim]] 19:41, 22 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Link to the specific post: http://www.rage3d.com/board/showthread.php?p=1334242855#post1334242855&lt;br /&gt;
--[[User:Thinker|Thinker]] 20:00, 22 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I have a t43p / Debian Sid running 2.6.16 debian kernel compile the debian way. And the fglrx modules compiled.&lt;br /&gt;
There are two problems that I can not seem to fix... &lt;br /&gt;
  o If I log out of kde to kdm/ or the login, everything goes black, even Alt+Ctrl+F1 does not work.&amp;lt;br&amp;gt;   It is not locked up as Ctrl+Alt+Del does a proper restart. &lt;br /&gt;
  o The other problem is on the second monitor the screen boundary is not right. &amp;lt;br&amp;gt;   Putting the mouse to the bottom cause a vertical blur. &amp;lt;br&amp;gt;   As long as the mouse is not at the bottom of the second screen all is well.&lt;br /&gt;
&lt;br /&gt;
--[[User:Lters|Lters]] 14:35, 7 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Did you tell KDM to restart the X server when logging out?  It is described in a link on the main article page under &amp;quot;Hang when logging out.&amp;quot;  I don't have two monitors so I'm not sure about your other problem...&lt;br /&gt;
--[[User:gsmenden|gsmenden]] 20:55, 9 April 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
== Suspend2 and fglrx ==&lt;br /&gt;
&lt;br /&gt;
There seems to be a nice trick that allows the laptop to hibernate properly when set.&lt;br /&gt;
One should set this setting into the hibernate.conf file:&lt;br /&gt;
&lt;br /&gt;
ProcSetting extra_pages_allowance 5000&lt;br /&gt;
&lt;br /&gt;
Source: http://wiki.cchtml.com/index.php/Suspend2&lt;br /&gt;
&lt;br /&gt;
--[[User:Assen|Assen]] 22:04, 3 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Emacs with GUI affected==&lt;br /&gt;
I installed fglrx 8.20.8 on SuSE 10.0 with kernel 2.6.13 on T43 and fglrx 8.24.8 on Ubuntu 5.10 with kernel 2.6.12 on T40. On both systems, emacs works well with &amp;quot;-nw&amp;quot; option. However, in the first system, emacs doesn't respond to any key stroke when started with GUI interface, but it works well with &amp;quot;emacs -font fixed&amp;quot;. In the second system, Emacs displays all characters as empty rectangles and responds to all key strokes althouth they are illegible. If I use the xorg.conf before fglrx was installed, then emacs works perfectly. I doubt that the problem is caused by the font. But it stays there even if I use the same fontpaths under section &amp;quot;Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Does anyone else have this problem? I haven't found any other X applications affected by the use of the driver.&lt;br /&gt;
--[[User:Bitcalc|Bitcalc]] 04:02, 30 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==atieventsd==&lt;br /&gt;
With driver version 8.25.16, I noticed a blinking of the HDD-LED every second. When viewing {{path|/var/log/messages}}, it revealed that each second, there was a message &lt;br /&gt;
&lt;br /&gt;
 atieventsd[3331]: Unable to bind control socket to /var/run/atieventsd.socket: Address already in use. &lt;br /&gt;
&lt;br /&gt;
Anybody else with this problem? What is this atieventsd for anyways? When I kill it, the led stops blinking the there are no more messages...&lt;br /&gt;
&lt;br /&gt;
--[[User:Hypnotoad|Hypnotoad]] 19:07, 21 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Nevermind, problem solved with the newest driver version. It was obviously a quite common bug...&lt;br /&gt;
--[[User:Hypnotoad|Hypnotoad]] 21:25, 29 June 2006 (CEST)&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_Radeon_X300&amp;diff=22976</id>
		<title>ATI Mobility Radeon X300</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_Radeon_X300&amp;diff=22976"/>
		<updated>2006-06-28T07:36:52Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* With the fglrx driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ATI Mobility Radeon X300 ===&lt;br /&gt;
This is an ATI video adapter&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: ATI M22&lt;br /&gt;
* PCI ID: 1002:5460&lt;br /&gt;
* PCI Express x16&lt;br /&gt;
* 32 or 64MB GDDR1 on-chip video memory&lt;br /&gt;
* &amp;quot;HyperMemory&amp;quot;: can use system memory for graphics processing&lt;br /&gt;
* &amp;quot;PowerPlay 4.0&amp;quot; technology for dynamic engine clock, memory clock and core voltage, refresh rate reduction and thermal status reporting.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [http://www.ati.com/products/radeonx300/specs.html specifications] from ATI, as well as the [http://www.ati.com/products/embedded/mobilityradeonx300/M22-CSP64_Product_Snapshot.pdf &amp;quot;snapshot&amp;quot; data sheet] (referes to the 32MB on-chip, 128MB &amp;quot;HyperMemory&amp;quot; version).&lt;br /&gt;
&lt;br /&gt;
=== Linux driver ===&lt;br /&gt;
&lt;br /&gt;
The X.org [[radeon]] driver works well and support most (but not all) features. ATI provides [[fglrx]], a closed-source alternative adding some functionality such as TV out and 3D acceleration.&lt;br /&gt;
&lt;br /&gt;
==== 3D acceleration ====&lt;br /&gt;
&lt;br /&gt;
The X.org [[radeon]] driver, in conjuction with the [[R300]] DRM driver, provides 3D acceleration. This is experimental, does not support all feature and may be unstable.&lt;br /&gt;
&lt;br /&gt;
You may also use [[fglrx]], a closed-source ATI driver provided by ATI.&lt;br /&gt;
&lt;br /&gt;
==== ThinkPad LCD ====&lt;br /&gt;
Display on the internal LCD works as long as you set the monitor settings correct.&lt;br /&gt;
&lt;br /&gt;
==== External VGA port ====&lt;br /&gt;
There are known problems. Both the &amp;lt;tt&amp;gt;radeon&amp;lt;/tt&amp;gt; and [[fglrx]] drivers turn off the switching between internal and external port.&lt;br /&gt;
&lt;br /&gt;
=====With the &amp;lt;tt&amp;gt;vesa&amp;lt;/tt&amp;gt; driver=====&lt;br /&gt;
Using the &amp;quot;vesa&amp;quot; driver built into X.org, mode switching modes. However, this loses acceleration and some capabilities.&lt;br /&gt;
&lt;br /&gt;
=====With the &amp;lt;tt&amp;gt;radeon&amp;lt;/tt&amp;gt; driver=====&lt;br /&gt;
On-the-fly swiching doesn't work. To activate both ports in clone mode with a reasonable CRT refresh rate, use the following in {{path|/etc/X11/xorg.conf}}:&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier  &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
        VendorName  &amp;quot;Videocard vendor&amp;quot;&lt;br /&gt;
        BoardName   &amp;quot;ATI Radeon Mobility X300&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
        Driver      &amp;quot;radeon&amp;quot;&lt;br /&gt;
        Option      &amp;quot;DynamicClocks&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
        Option      &amp;quot;MergedFB&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
        Option      &amp;quot;MonitorLayout&amp;quot; &amp;quot;LVDS, CRT&amp;quot;&lt;br /&gt;
        Option      &amp;quot;CRT2Hsync&amp;quot; &amp;quot;50-75&amp;quot;&lt;br /&gt;
        Option      &amp;quot;CRT2VRefresh&amp;quot; &amp;quot;50-82&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Note that without the &amp;lt;tt&amp;gt;MonitorLayout&amp;lt;/tt&amp;gt; option, if the external monitor is connected when X starts then the LCD will be deactivated and you will need to restart X. &lt;br /&gt;
&lt;br /&gt;
(Tested wth Fedora Core 4 on ThinkPad {{T43}}).&lt;br /&gt;
&lt;br /&gt;
See also the related discussion about [[Additional options for the radeon driver]].&lt;br /&gt;
&lt;br /&gt;
=====With the [[fglrx]] driver=====&lt;br /&gt;
On-the-fly works with &amp;lt;tt&amp;gt;aticonfig&amp;lt;/tt&amp;gt; in the newest Drivers, see [[Fglrx#Display_Switching_.28Dynamic_Display_Management.29|Display Switching]]. Additionally, to use both ports there is the possibility to either have the monitor connected during X startup, or force activation of both ports by adding&lt;br /&gt;
 Option  &amp;quot;ForceMonitors&amp;quot; &amp;quot;lvds,crt1&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; section in your {{path|/etc/X11/xorg.conf}}. Powering the CRT port consumes 400-500mW, regardless of whether a CRT is attached.&lt;br /&gt;
&lt;br /&gt;
==== S-Video port (TV-out) ====&lt;br /&gt;
&lt;br /&gt;
Works with the proprietary [[fglrx]] driver (as of version 8.19.10). To activate, add&lt;br /&gt;
 Option  &amp;quot;ForceMonitors&amp;quot; &amp;quot;lvds,tv&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; section in your {{path|/etc/X11/xorg.conf}} and restart X.&lt;br /&gt;
&lt;br /&gt;
==== DVI port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== 3D acceleration ===&lt;br /&gt;
OpenGL 3D acceleration is provided by the proprietary [[fglrx]] driver (when DRI is enabled). Note that performance is affected by the power saving mode.&lt;br /&gt;
&lt;br /&gt;
The open source &amp;lt;tt&amp;gt;r300&amp;lt;/tt&amp;gt; [[DRM]] module also aims to provide 3D acceleration. This currently requires the CVS/GIT versions of [[X.org]], [[DRM]] and [[Mesa]], and has been observed to occasionally crash (e.g., when running Google Earth or &amp;lt;tt&amp;gt;ppracer&amp;lt;/tt&amp;gt;on a {{T43}}). You can [[How to compile an experimental X server|install it experimentally]] for testing.&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel Framebuffer driver ===&lt;br /&gt;
&lt;br /&gt;
radeonfb might cause problems with hardware acceleration under X on some systems, vesafb and vesafb-tng on the other hand has been reported to work just fine.&lt;br /&gt;
&lt;br /&gt;
=== Clock rates, voltage and power===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+ Clock rates, voltages and power {{footnote|1}}&lt;br /&gt;
! Mode !! core freq !! memory freq !! voltage !! idle !! 3DMarks (Windows, 1600x1200, LCD only)&lt;br /&gt;
|-&lt;br /&gt;
| Performance || 300 || 230 MHz || 1.15V || 2.98 W || 8.28 W&lt;br /&gt;
|-&lt;br /&gt;
| Balanced || 183 || 210 MHz || 1.00V || 1.71 W || 3.88 W&lt;br /&gt;
|-&lt;br /&gt;
| Battery || 120 || 105 MHz || 1.00V || 1.61 W || 2.74 W&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+ ATI drivers for Windows {{footnote|2}} and [[fglrx]]&lt;br /&gt;
! Mode !! core freq !! memory freq&lt;br /&gt;
|-&lt;br /&gt;
| Performance || 297.00 || 229.50&lt;br /&gt;
|-&lt;br /&gt;
| Balanced || 209.25 || 182.25&lt;br /&gt;
|-&lt;br /&gt;
| Battery || 104.63 || 121.50&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Experimentally, the difference between the Performance and Battery settings under Linux with the &amp;lt;tt&amp;gt;radeon&amp;lt;/tt&amp;gt; driver and &amp;lt;tt&amp;gt;DynamicClocks&amp;lt;/tt&amp;gt; enabled is roughly 0.3W and 3-4 degrees in GPU temperature on a ThinkPad {{T43}}. Further frequency reduction leads to display flickering or corruption.&lt;br /&gt;
&lt;br /&gt;
See [[How to make use of Graphics Chips Power Management features]] for details on how to control this using [[Rovclock]], [[How to make use of Graphics Chips Power Management features|&amp;lt;tt&amp;gt;DynamicClocks&amp;lt;/tt&amp;gt; option to the &amp;lt;tt&amp;gt;radeon&amp;lt;/tt&amp;gt; driver]] and or the [[fglrx]] driver.&lt;br /&gt;
&lt;br /&gt;
Presently the lowest idle-mode power consumption is achieved using the proprietary [[fglrx]] driver and &lt;br /&gt;
 # aticonfig  --set-powerstate=1 --effective=now&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{R52}}&lt;br /&gt;
* {{T43}}&lt;br /&gt;
* {{Z60m}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#according to the [http://www.ati.com/products/embedded/mobilityradeonx300/M22-CSP64_Product_Snapshot.pdf &amp;quot;Snapshot&amp;quot; data sheet] (which refers to the 32MB on-chip, 128MB &amp;quot;HyperMemory&amp;quot; version)&lt;br /&gt;
#inspected using [http://www.pbus-167.com/chc.htm Notebook Hardware Control]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22844</id>
		<title>Installing OpenSUSE 10.1 on a ThinkPad T43</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22844"/>
		<updated>2006-06-21T20:08:37Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most things run just fine after installation, the Rest I got working with the great articles here.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
{{WARN| The Pre-Desktop-Area has to be protected before installation, otherwise the Recovery-System will be lost. To do so, set Predesktop-Area to &amp;quot;Secure&amp;quot; in BIOS. Additionally, it's always useful to have the Recovery-CDs burned before an installation attempt}}&lt;br /&gt;
&lt;br /&gt;
The automatic shrinking of the NTFS-partition did not work during the Installation of {{SUSE}}, so I shrinked it with QtParted from a Knoppix-DVD.&lt;br /&gt;
To be able to boot Windows and Linux (via Grub) and the Recovery-System (with {{ibmkey|Access IBM|#495988}}), install the bootloader in the new, extended partition (usually &amp;lt;tt&amp;gt;/dev/sda&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Besides that, everything went fine, most Hardware was set up correctly: Graphics Card, Touchpad and Trackpoint, WLAN, Bluetooth, Modem (yet untested), Volume Control.&lt;br /&gt;
&lt;br /&gt;
==ACPI==&lt;br /&gt;
Everything set up correctly, [[ibm-acpi]] ist installed, Suspend-to-RAM and Suspend-to-Disk work with the keys already assigned to them. I still miss [[RediSafe]] though, maybe I'll use [[Software Suspend 2]] some day.&lt;br /&gt;
&lt;br /&gt;
==Hotkeys==&lt;br /&gt;
[[How to get special keys to work]] gives a general overview.&lt;br /&gt;
&lt;br /&gt;
Suspend keys worked by default installation, as did  {{key|Fn}}{{key|F5}} for switching Bluetooth on and off. For the remaining keys, the &amp;lt;tt&amp;gt;nvram&amp;lt;/tt&amp;gt;-module was missing. So when {{path|/dev/nvram/}} is missing, you have to create it first: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mknod /dev/nvram c 10 144}} &lt;br /&gt;
&lt;br /&gt;
and load it with&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe nvram}}&lt;br /&gt;
&lt;br /&gt;
Additionally, I had to specify the module to be loaded automatically at {{path|/etc/sysconfig/kernel}}:&lt;br /&gt;
 [...]&lt;br /&gt;
 MODULES_LOADED_ON_BOOT=&amp;quot;nvram&amp;quot;&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Last, the access rights had to be corrected. To do so, search for &amp;lt;tt&amp;gt;nvram&amp;lt;/tt&amp;gt; in {{path|/etc/udev/rules.d/50-udev-default.rules }} and change the entry to:&lt;br /&gt;
 KERNEL==&amp;quot;nvram&amp;quot;,                NAME=&amp;quot;%k&amp;quot;, GROUP=&amp;quot;nvram&amp;quot;, MODE=&amp;quot;660&amp;quot;&lt;br /&gt;
so the users of group nvram have access to it. Of course that group has to exist, and you need to be a member of it:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|groupadd nvram}}&lt;br /&gt;
{{cmdroot|usermod -G nvram username}}&lt;br /&gt;
&lt;br /&gt;
After a reboot, you can use either [[tpb]] or the [[KMilo]]-Plugin in KControl (System Administration -&amp;gt; IBM Thinkpad Laptop) to set up the keys. I liked the OSD of KMilo better. Additionally, I set the Mixer setting to &amp;quot;Software&amp;quot; (&amp;lt;tt&amp;gt;MIXER ON&amp;lt;/tt&amp;gt; in tpb), so the Mixer volume and mute status matches the one in KMix.&lt;br /&gt;
&lt;br /&gt;
==Fingerprint Reader==&lt;br /&gt;
[[How to enable the fingerprint reader]] neatly explains everything. I had to do the last steps manually, because the [[Script for enabling the fingerprint reader]] did not run till the end on Suse 10.1&lt;br /&gt;
&lt;br /&gt;
==3D Acceleration==&lt;br /&gt;
The Standard driver did work for 2D, but with no 3D acceleration. When I added&lt;br /&gt;
&amp;lt;pre&amp;gt;Section &amp;quot;Module&amp;quot;&lt;br /&gt;
       	[...]&lt;br /&gt;
        Load  &amp;quot;glx&amp;quot;&lt;br /&gt;
	[...]&lt;br /&gt;
EndSection&amp;lt;/pre&amp;gt;&lt;br /&gt;
to my {{path|/etc/X11/xorg.conf}}, the 3D acceleration worked with the OpenSource driver, but now there were problems with Suspend. So I decided for the proprietary [[fglrx]]-Driver directly from Ati. Installed fine, after I created a distribution-specific rpm with the Installer.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
[[How_to_configure_the_TrackPoint#Scrolling | Trackpoint Scrolling]] &lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
[http://omnibus.uni-freiburg.de/~s8arhorn/index.php?section=Linux&amp;amp;file=Suse%2010.1%20auf%20IBM%20Thinkpad%2043 My Installation article, in German]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Problems_with_fglrx&amp;diff=22842</id>
		<title>Talk:Problems with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Problems_with_fglrx&amp;diff=22842"/>
		<updated>2006-06-21T17:07:50Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: atieventsd problems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== using kernel AGP vs fglrx AGP ==&lt;br /&gt;
&lt;br /&gt;
Anyone know whether this makes a performance and/or stability difference?&lt;br /&gt;
&lt;br /&gt;
== 8.20.8 and later works with current Debian sid packages ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spiney@t43p:~$ dpkg -l xserver-xorg&lt;br /&gt;
Desired=Unknown/Install/Remove/Purge/Hold&lt;br /&gt;
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed&lt;br /&gt;
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)&lt;br /&gt;
||/ Name                         Version                      Description&lt;br /&gt;
+++-============================-============================-==================&lt;br /&gt;
ii  xserver-xorg                 6.9.0.dfsg.1-2               the X.Org X server&lt;br /&gt;
spiney@t43p:~$ fglrxinfo &lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: MOBILITY FireGL V3200 Pentium 4 (SSE2) (FireGL) (GNU_ICD)&lt;br /&gt;
OpenGL version string: 1.3.5519 (X4.3.0-8.20.8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ahh - thanks for the info.  You perhaps compiled the modules for the drivers yourself and did not use the debian packaged fglrx-driver?  Thus, it must be an unneeded limitation on the debian packaged driver which limits its installation...  Full listing at http://packages.debian.org/unstable/x11/fglrx-driver which lists as required packages:&lt;br /&gt;
&lt;br /&gt;
 xserver-xorg (&amp;lt;&amp;lt; 6.8.99)&lt;br /&gt;
  the X.Org X server &lt;br /&gt;
 xserver-xorg (&amp;gt;= 6.8.0) &lt;br /&gt;
&lt;br /&gt;
The first limitation (&amp;lt;&amp;lt;6.8.99) is what prevents installation.  I'm sure I could force apt to install it, but I may go back to compiling the modules myself, as using fglrx 8.20.8 with kernel 2.6.15 needs a small patch to compile correctly anyway...  --[[User:gsmenden|gsmenden]]&lt;br /&gt;
&lt;br /&gt;
Spiney, where exactly do you have your package from? I re-build the 8.20.8-package from debian with the &amp;lt;&amp;lt;6.8.99 dependecy removed, but when I try to run X, I get &lt;br /&gt;
 [R200Setup] X version mismatch - detected X.org 7.0.0.0, required X.org 6.8.0.0&lt;br /&gt;
 (EE) Failed to load module &amp;quot;fglrx&amp;quot; (module requirement mismatch, 0)&lt;br /&gt;
Any hints? --[User:nomeata|nomeata]&lt;br /&gt;
&lt;br /&gt;
I used the ati-installer (the huge download), created a Debian sid package and installed it, but got the same error. The installer seems to fetch the wrong driver version from the archive, so I extracted it with&lt;br /&gt;
&lt;br /&gt;
{{cmd|./ati-driver-installer-8.20.8-i386.run --extract &amp;lt;sometempdir&amp;gt;|}}&lt;br /&gt;
&lt;br /&gt;
and put the necessary files from the created {{path|&amp;lt;sometempdir&amp;gt;/x690}} subdirectory into {{path|/usr}} by hand. All IIRC, it's been some time since. :)&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 07:29, 11 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Thanks for the pointer. This is how you get proper debian packages out of the ati-installer:&lt;br /&gt;
 ./ati-driver-installer-8.20.8-i386.run --extract fglrx-tmp&lt;br /&gt;
 cd fglrx-tmp&lt;br /&gt;
 $editor packages/Debian/ati-packager.sh #  in the line &amp;quot;sid|unstable) X_DIR=x680;;&amp;quot;, put a x690 for the x680&lt;br /&gt;
 ./fglrx-tmp/packages/Debian/ati-packager.sh --buildpkg sid&lt;br /&gt;
 cd ..&lt;br /&gt;
 sudo dpkg -i fglrx-kernel-src_8.20.8-1_i386.deb fglrx-driver_8.20.8-1_i386.deb&lt;br /&gt;
--[[User:Nomeata|Nomeata]] 00:35, 13 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I had to do following steps :&lt;br /&gt;
&lt;br /&gt;
 $ ./ati-driver-installer-8.20.8-i386.run --extract fglrx-tmp&lt;br /&gt;
 $ cd fglrx-tmp&lt;br /&gt;
 $ ''editor'' packages/Debian/ati-packager.sh #  in the line &amp;quot;sid|unstable) X_DIR=x680;;&amp;quot;, put a x690 for the x680&lt;br /&gt;
 $ ./packages/Debian/ati-packager.sh --buildpkg sid&lt;br /&gt;
 $ cd /tmp&lt;br /&gt;
 $ sudo dpkg -i fglrx-kernel-src_8.20.8-1_i386.deb fglrx-driver_8.20.8-1_i386.deb&lt;br /&gt;
--[[User:Fbianco|Fbianco]] 13:36, 26 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Nice - confirmed works on my T43p running sid.  From then on (or until 8.21.x comes out) you'll have to tell apt to hold back fglrx-driver package, or it will try to &amp;quot;update&amp;quot; fglrx-driver to 8.20.8-1.1 and therefore revert back to the problematic drivers.&lt;br /&gt;
--[[User:gsmenden|gsmenden]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Thanks for the info, Nomeata, that's a lot cleaner a solution than my manual way.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 08:32, 13 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To get this working under 2.6.15 with x.org 6.9, you will also need to apply a small patch - there is a link on the main article page.  After you install the fglrx-driver package with the 6.9 versioning hack above, go to&lt;br /&gt;
/usr/src/modules&lt;br /&gt;
and copy the patch here.  Modify the first two lines of the patch file to take out the &amp;quot;build_mod&amp;quot; directory, e.g. first line should begin with&lt;br /&gt;
 --- fglrx.orig/firegl_public.c &lt;br /&gt;
and call it with the -p0 strip option.  It should patch the firegl_public.c file cleanly.  You can then install as usual for your kernel (2.6.14.x or 2.6.15) using module-assistant.&lt;br /&gt;
&lt;br /&gt;
Update - although X will come up in kernel 2.6.15 with the fglrx drivers patched as above, there is some strange behavior exhibited in all of X apllications - frequent hanging of applications when closing windows.  Reverting back to the radeon driver in 2.6.15 solves these - so it is likely the ATI proprietary driver causing some problems.&lt;br /&gt;
&lt;br /&gt;
Yet another update - fglrx 8.21.7 is out as of 1/19/2006, now supporting OpenGL 2.0, so eventually we will have beautiful complex shading / fog effects on Linux, too.  It works well with X.Org 6.9 out of the box.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this version gives the same problems when used (unpatched) with kernel 2.6.15 with strange lockups occasionally requiring reset of X.  I have not tried this with the ~10 line patch listed on the main site, but that patch not work for me with 8.20.8.  Anybody else have experience with 2.6.15 and fglrx?&lt;br /&gt;
&lt;br /&gt;
Yay - new version out - 8.22.5 - works well with 2.6.15.x.  Finally, running a plain-vanilla kernel on a T43p!  (SATA+libata passthrough+SMART in mainline, 3d accel drivers up to date.  Linux life is good.)&lt;br /&gt;
&lt;br /&gt;
--[[User:gsmenden|gsmenden]] 12:39, 9 Feb 2006 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I don't know which patch you mean exactly (10 lines? the patch from lkml is just one line changed, no?), but I've been using 8.20.8 with 2.6.15 for quite some time (actually started with some -rc version IIRC), no lockups at all. No idea about 8.21.7 though, because I switched to 2.6.16-rc1 and can't compile the fglrx module at the moment, need to investigate the cause.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 07:24, 21 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ok - strange.  Yeah, the actual change is only one line, the rest is just commenting, etc.  The lockups that I get are quite rare, but flightgear occasionally gives a hard lock.  glxgears and fgl_glxgears work fine, netscape occasionally will hard-lock, and strangely enough issuing a shutdown command often makes the display blank and hard lock.  I can't reproduce them too consistently, but these _never_ occur with the radeon driver / mesa or under 2.6.14.x.&lt;br /&gt;
&lt;br /&gt;
Unfortunately vanilla 8.21.7 with kernel 2.6.15.1 (Xorg 6.9) gives the same X lockups.&lt;br /&gt;
&lt;br /&gt;
--[[User:gsmenden|gsmenden]] 11:36, 21 Jan 2006 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I can't compile the 8.21.7 driver modules with 2.6.15.1 at all. They compile with 2.6.14.4 cleanly and 8.20.8 compile with 2.6.15.1. &lt;br /&gt;
What I don't understand though is, that when I let the ATI installer build debian packages, it does so without hassle, but the packages don't work. &lt;br /&gt;
(this is about 8.21.7 - 2.6.15.1) Also patching doesn't seem to help. It shouldn't of course.&lt;br /&gt;
&lt;br /&gt;
--[[User:Rasto|Rasto]] 15:04, 23 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I looked at the compile problems last night. I have no idea, how it is possible that it works for other people with 2.6.15, perhaps when you install &lt;br /&gt;
precompiled modules? I don't really understand how that ati-installer thing works. Anyway. This may solve the problems with 8.21.7 and 2.6.15- &lt;br /&gt;
it is just two minor line changes (+ the one line patch with little extra), but now it compiles. pm_register and similar were moved to linux/pm_legacy.h &lt;br /&gt;
in 2.6.15, so that's one problem. It also reports unknown symbol verify_area, but this should not pose a problem, as it is already obsolete and redundant. &lt;br /&gt;
If you feel, that the one line should be left as the separate patch, copy it somewhere else and change it. It's here [http://people.ksp.sk/~rasto/fglrx_with_2.6.15.patch], but I'll put it on the main page as well.&lt;br /&gt;
&lt;br /&gt;
--[[User:Rasto|Rasto]] 18:29, 25 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== Disabling the external VGA port? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone know how disable the VGA port ''completely'' even when a cable is attached? Fiddling around with the DesktopSetup and ForceMonitor options didn't do the trick for me, and the MonitorLayout option found in some documentation is no longer valid in the current fglrx driver.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 19:42, 10 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Debian-specific script to switch fglrx&amp;lt;-&amp;gt;radeon ==&lt;br /&gt;
&lt;br /&gt;
Don't know where to put it exactly, but if someone's interested (and using Debian), I've put up a [http://linux.spiney.org/debian_gnu_linux_on_an_ibm_thinkpad_t43p_graphics_card_switching_fglrx_radeon script for easily switching graphics driver configurations]. Feedback appreciated (altho I haven't got any to the xscreensaver patch ;)), especially if someone could do something similar for other distributions (Gentoo being half-way there it seems) and incorporate it into the script.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 15:25, 17 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Compile ATI driver???==&lt;br /&gt;
How can you compile a binary only distributed driver? If I'm not getting something wrong, please change the formulation of the just added info.&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 20:10, 25 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
[http://xoomer.virgilio.it/flavio.stanchina/debian/fglrx-installer.html#overview1]&lt;br /&gt;
&amp;quot;The driver as a whole is made of three main components: the driver proper, a replacement libGL and a kernel module. The driver and libGL are in the fglrx-driver package, the kernel module's source code is in the fglrx-kernel-src package.&amp;quot;&lt;br /&gt;
--[[User:Dunno|Dunno]] 23:49, 13 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
Yepp, my fault, didn't think of the kernel part when i wrote that. [[User:Wyrfel|Wyrfel]] 02:50, 14 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== On Kernel 2.6.16(_rc4-mm1) fglrx doesnÂ´t load anymore ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
if i emerge ati-drivers 8.22.5 and try to modprobe it on Kernel 2.6.16_rc4-mm1 i get the following console output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FATAL: Error inserting fglrx (/lib/modules/2.6.16-rc4-mm1/video/fglrx.ko): Unknown symbol in module, or unknown parameter (see dmesg)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
my dmesg Output reads:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fglrx: Unknown symbol inter_module_unregister&lt;br /&gt;
fglrx: Unknown symbol inter_module_get_request&lt;br /&gt;
fglrx: Unknown symbol inter_module_put&lt;br /&gt;
fglrx: Unknown symbol inter_module_register&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
from the ati-driver wiki i know that the driver runs on 2.6.16 up to rc3. But on the mm Series it doesnt run since 2.6.15.4-mm4.&lt;br /&gt;
&lt;br /&gt;
Help would be appreciated...&lt;br /&gt;
&lt;br /&gt;
Thanks and Greets&lt;br /&gt;
&lt;br /&gt;
Oli&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Have a look at the (currently) last entry on http://www.rage3d.com/board/showthread.php?t=33847019, which explains how to revive the old inter_module routines. HTH&lt;br /&gt;
&lt;br /&gt;
--[[User:Nephilim|Nephilim]] 19:41, 22 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Link to the specific post: http://www.rage3d.com/board/showthread.php?p=1334242855#post1334242855&lt;br /&gt;
--[[User:Thinker|Thinker]] 20:00, 22 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I have a t43p / Debian Sid running 2.6.16 debian kernel compile the debian way. And the fglrx modules compiled.&lt;br /&gt;
There are two problems that I can not seem to fix... &lt;br /&gt;
  o If I log out of kde to kdm/ or the login, everything goes black, even Alt+Ctrl+F1 does not work.&amp;lt;br&amp;gt;   It is not locked up as Ctrl+Alt+Del does a proper restart. &lt;br /&gt;
  o The other problem is on the second monitor the screen boundary is not right. &amp;lt;br&amp;gt;   Putting the mouse to the bottom cause a vertical blur. &amp;lt;br&amp;gt;   As long as the mouse is not at the bottom of the second screen all is well.&lt;br /&gt;
&lt;br /&gt;
--[[User:Lters|Lters]] 14:35, 7 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Did you tell KDM to restart the X server when logging out?  It is described in a link on the main article page under &amp;quot;Hang when logging out.&amp;quot;  I don't have two monitors so I'm not sure about your other problem...&lt;br /&gt;
--[[User:gsmenden|gsmenden]] 20:55, 9 April 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
== Suspend2 and fglrx ==&lt;br /&gt;
&lt;br /&gt;
There seems to be a nice trick that allows the laptop to hibernate properly when set.&lt;br /&gt;
One should set this setting into the hibernate.conf file:&lt;br /&gt;
&lt;br /&gt;
ProcSetting extra_pages_allowance 5000&lt;br /&gt;
&lt;br /&gt;
Source: http://wiki.cchtml.com/index.php/Suspend2&lt;br /&gt;
&lt;br /&gt;
--[[User:Assen|Assen]] 22:04, 3 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Emacs with GUI affected==&lt;br /&gt;
I installed fglrx 8.20.8 on SuSE 10.0 with kernel 2.6.13 on T43 and fglrx 8.24.8 on Ubuntu 5.10 with kernel 2.6.12 on T40. On both systems, emacs works well with &amp;quot;-nw&amp;quot; option. However, in the first system, emacs doesn't respond to any key stroke when started with GUI interface, but it works well with &amp;quot;emacs -font fixed&amp;quot;. In the second system, Emacs displays all characters as empty rectangles and responds to all key strokes althouth they are illegible. If I use the xorg.conf before fglrx was installed, then emacs works perfectly. I doubt that the problem is caused by the font. But it stays there even if I use the same fontpaths under section &amp;quot;Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Does anyone else have this problem? I haven't found any other X applications affected by the use of the driver.&lt;br /&gt;
--[[User:Bitcalc|Bitcalc]] 04:02, 30 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==atieventsd==&lt;br /&gt;
With driver version 8.25.16, I noticed a blinking of the HDD-LED every second. When viewing {{path|/var/log/messages}}, it revealed that each second, there was a message &lt;br /&gt;
&lt;br /&gt;
 atieventsd[3331]: Unable to bind control socket to /var/run/atieventsd.socket: Address already in use. &lt;br /&gt;
&lt;br /&gt;
Anybody else with this problem? What is this atieventsd for anyways? When I kill it, the led stops blinking the there are no more messages...&lt;br /&gt;
&lt;br /&gt;
--[[User:Hypnotoad|Hypnotoad]] 19:07, 21 June 2006 (CEST)&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22823</id>
		<title>Installing OpenSUSE 10.1 on a ThinkPad T43</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22823"/>
		<updated>2006-06-20T20:03:44Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: Hotkeys done&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most things run just fine after installation, the Rest I got working with the great articles here.&lt;br /&gt;
&lt;br /&gt;
{{Todo|Finish article - it's not done yet!}}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
{{WARN| The Pre-Desktop-Area has to be protected before installation, otherwise the Recovery-System will be lost. To do so, set Predesktop-Area to &amp;quot;Secure&amp;quot; in BIOS. Additionally, it's always useful to have the Recovery-CDs burned before an installation attempt}}&lt;br /&gt;
&lt;br /&gt;
The automatic shrinking of the NTFS-partition did not work during the Installation of {{SUSE}}, so I shrinked it with QtParted from a Knoppix-DVD.&lt;br /&gt;
To be able to boot Windows and Linux (via Grub) and the Recovery-System (with {{ibmkey|Access IBM|#495988}}), install the bootloader in the new, extended partition (usually &amp;lt;tt&amp;gt;/dev/sda&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Besides that, everything went fine, most Hardware was set up correctly: Graphics Card, Touchpad and Trackpoint, WLAN, Bluetooth, Modem (yet untested), Volume Control.&lt;br /&gt;
&lt;br /&gt;
==ACPI==&lt;br /&gt;
Everything set up correctly, [[ibm-acpi]] ist installed, Suspend-to-RAM and Suspend-to-Disk work with the keys already assigned to them. I still miss [[RediSafe]] though, maybe I'll use [[Software Suspend 2]] some day.&lt;br /&gt;
&lt;br /&gt;
==Hotkeys==&lt;br /&gt;
[[How to get special keys to work]] gives a general overview.&lt;br /&gt;
&lt;br /&gt;
Suspend keys worked by default installation, as did  {{key|Fn}}{{key|F5}} for switching Bluetooth on and off. For the remaining keys, the &amp;lt;tt&amp;gt;nvram&amp;lt;/tt&amp;gt;-module was missing. So when {{path|/dev/nvram/}} is missing, you have to create it first: &lt;br /&gt;
&lt;br /&gt;
{{cmdroot|mknod /dev/nvram c 10 144}} &lt;br /&gt;
&lt;br /&gt;
and load it with&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|modprobe nvram}}&lt;br /&gt;
&lt;br /&gt;
Additionally, I had to specify the module to be loaded automatically at {{path|/etc/sysconfig/kernel}}:&lt;br /&gt;
 [...]&lt;br /&gt;
 MODULES_LOADED_ON_BOOT=&amp;quot;nvram&amp;quot;&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Last, the access rights had to be corrected. To do so, search for &amp;lt;tt&amp;gt;nvram&amp;lt;/tt&amp;gt; in {{path|/etc/udev/rules.d/50-udev-default.rules }} and change the entry to:&lt;br /&gt;
 KERNEL==&amp;quot;nvram&amp;quot;,                NAME=&amp;quot;%k&amp;quot;, GROUP=&amp;quot;nvram&amp;quot;, MODE=&amp;quot;660&amp;quot;&lt;br /&gt;
so the users of group nvram have access to it. Of course that group has to exist, and you need to be a member of it:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|groupadd nvram}}&lt;br /&gt;
{{cmdroot|usermod -G nvram username}}&lt;br /&gt;
&lt;br /&gt;
After a reboot, you can use either [[tpb]] or the [[KMilo]]-Plugin in KControl (System Administration -&amp;gt; IBM Thinkpad Laptop) to set up the keys. I liked the OSD of KMilo better. Additionally, I set the Mixer setting to &amp;quot;Software&amp;quot; (&amp;lt;tt&amp;gt;MIXER ON&amp;lt;/tt&amp;gt; in tpb), so the Mixer volume and mute status matches the one in KMix.&lt;br /&gt;
&lt;br /&gt;
==Fingerprint Reader==&lt;br /&gt;
[[How to enable the fingerprint reader]] neatly explains everything. I had to do the last steps manually, because the [[Script for enabling the fingerprint reader]] did not run till the end on Suse 10.1&lt;br /&gt;
&lt;br /&gt;
==3D Acceleration==&lt;br /&gt;
The Standard driver did work for 2D, but with no 3D acceleration. When I added&lt;br /&gt;
&amp;lt;pre&amp;gt;Section &amp;quot;Module&amp;quot;&lt;br /&gt;
       	[...]&lt;br /&gt;
        Load  &amp;quot;glx&amp;quot;&lt;br /&gt;
	[...]&lt;br /&gt;
EndSection&amp;lt;/pre&amp;gt;&lt;br /&gt;
to my {{path|/etc/X11/xorg.conf}}, the 3D acceleration worked with the OpenSource driver, but now there were problems with Suspend. So I decided for the proprietary [[fglrx]]-Driver directly from Ati. Installed fine, after I created a distribution-specific rpm with the Installer.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
[[How_to_configure_the_TrackPoint#Scrolling | Trackpoint Scrolling]] &lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
[http://omnibus.uni-freiburg.de/~s8arhorn/index.php?section=Linux&amp;amp;file=Suse%2010.1%20auf%20IBM%20Thinkpad%2043 My Installation article, in German]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_configure_the_TrackPoint&amp;diff=22822</id>
		<title>How to configure the TrackPoint</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_configure_the_TrackPoint&amp;diff=22822"/>
		<updated>2006-06-20T19:41:21Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Using the X server (kernel 2.6.11+) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |The [[Patch to enable advanced trackpoint configuration|kernel trackpoint driver]] is controlled by echoing values to special files. Common configuration options are outlined below.&lt;br /&gt;
{{NOTE|&lt;br /&gt;
*Starting from 2.6.13 config files for this driver are located in &amp;lt;tt&amp;gt;/sys/devices/platform/i8042/serio0/serio2&amp;lt;/tt&amp;gt;. (This document uses the new locations.)&lt;br /&gt;
*From 2.6.11 on, they are in &amp;lt;tt&amp;gt;/sys/devices/platform/i8042/serio0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*Prior to kernel 2.6.11, these files were located in &amp;lt;tt&amp;gt;/proc/trackpoint&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*Prior to kernel 2.6.9, these files were not files at all, but were command-line options to the psmouse module.  (Note this means you must compile psmouse as a module!)  See http://stephen.evanchik.com/node/16.&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Configuration==&lt;br /&gt;
The configuration options are reflected by the files you can find in {{path|/sys/devices/platform/i8042/serio0/serio2}}. See the [[Patch to enable advanced trackpoint configuration|TrackPoint driver page]] for a complete list.&lt;br /&gt;
Configuration is done by echoing the appropriate values into these special files.&lt;br /&gt;
&lt;br /&gt;
==Most common Features==&lt;br /&gt;
The most common settings are '''Press to Select''', '''sensitivity''', '''speed''' and '''scrolling'''.&lt;br /&gt;
&lt;br /&gt;
===Press to Select===&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|echo -n 1 &amp;gt; /sys/devices/platform/i8042/serio0/serio2/press_to_select}}&lt;br /&gt;
&lt;br /&gt;
Press to Select should now be enabled. You can disable it in a similar manner:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|echo -n 0 &amp;gt; /sys/devices/platform/i8042/serio0/serio2/press_to_select}}&lt;br /&gt;
&lt;br /&gt;
===Sensitivity &amp;amp; Speed===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|echo -n 120 &amp;gt; /sys/devices/platform/i8042/serio0/serio2/speed}}&lt;br /&gt;
:{{cmdroot|echo -n 250 &amp;gt; /sys/devices/platform/i8042/serio0/serio2/sensitivity}}&lt;br /&gt;
&lt;br /&gt;
Feel free to experiment with your settings until you find a combination that is comfortable.&lt;br /&gt;
&lt;br /&gt;
===Scrolling===&lt;br /&gt;
====Using a kernel prior to 2.6.11====&lt;br /&gt;
The scrolling action is essentially the same as is used in the TrackPoint Windows drivers. To enable this feature, type the following in to a terminal (you may need to be root): &lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|echo -n 1 &amp;gt; /proc/trackpoint/scroll}}&lt;br /&gt;
&lt;br /&gt;
Then press the middle button and push the stick up and down to scroll. Similarly, to disable scrolling:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|echo -n 0 &amp;gt; /proc/trackpoint/scroll}}&lt;br /&gt;
&lt;br /&gt;
====Using the X server (kernel 2.6.11+)====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The necessary functionality, known  as &amp;quot;EmulateWheellTimeout&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
Once this functionality is in the X.org, add these lines to your TrackPoint configuration section in {{path|/etc/X11/xorg.conf}}:&lt;br /&gt;
&lt;br /&gt;
        Option          &amp;quot;EmulateWheel&amp;quot;          &amp;quot;on&amp;quot;&lt;br /&gt;
        Option          &amp;quot;EmulateWheelButton&amp;quot;    &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It may also be necessary to add these lines, which change axis orientation:&lt;br /&gt;
&lt;br /&gt;
        Option &amp;quot;XAxisMapping&amp;quot; &amp;quot;4 5&amp;quot;&lt;br /&gt;
        Option &amp;quot;YAxisMapping&amp;quot; &amp;quot;6 7&amp;quot;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===== EmulateWheelTimeout temporarily broken ===== &lt;br /&gt;
&lt;br /&gt;
Unfortunately, there was a regression so that EmulateWheelTimeout was broken in X.org 6.9.0, and fixed&lt;br /&gt;
on March 20th, 2006. &lt;br /&gt;
You can see the [https://bugs.freedesktop.org/show_bug.cgi?id=5071 primary bug report] here, and also reports on the [http://qa.mandriva.com/show_bug.cgi?id=21196 Mandriva] and [http://lists.debian.org/debian-x/2006/01/msg00249.html Debian] packages.&lt;br /&gt;
&lt;br /&gt;
===== Older versions of X.org =====&lt;br /&gt;
&lt;br /&gt;
For older versions of Xorg or for Xfree86 ({{path|/etc/X11/XF86Config}}) try this:&lt;br /&gt;
&lt;br /&gt;
       Option          &amp;quot;Emulate3Buttons&amp;quot;       &amp;quot;true&amp;quot;&lt;br /&gt;
       Option          &amp;quot;EmulateWheel&amp;quot;          &amp;quot;true&amp;quot;&lt;br /&gt;
       Option          &amp;quot;EmulateWheelButton&amp;quot;    &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now restart X and hold down button two and move the mouse for scrolling. To get a middle click, press buttons 1 and 3 simultaneously.&lt;br /&gt;
&lt;br /&gt;
==Soft Transparent Mode==&lt;br /&gt;
If you wish to connect a special device to the external PS/2 port, you should consider using &amp;quot;Soft Transparent Mode&amp;quot; so that the TrackPoint controller does not interpret any commands sent to the external PS/2 port. You can enable soft transparent mode by typing the following in to a terminal:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|echo -n 1 &amp;gt; /sys/devices/platform/i8042/serio0/serio2/transparent}}&lt;br /&gt;
&lt;br /&gt;
Disabling soft transparent mode is similar:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|echo -n 0 &amp;gt; /sys/devices/platform/i8042/serio0/serio2/transparent}}&lt;br /&gt;
&lt;br /&gt;
==Modify trackpoint parameter permanently in trackpoint.h==&lt;br /&gt;
If you do not want to run a script to reconfigure the trackpoint&lt;br /&gt;
you can change the default settings in the trackpoint header file that is located in&lt;br /&gt;
 /usr/src/&amp;lt;KERNEL_VERSION&amp;gt;/drivers/input/mouse/trackpoint.h.&lt;br /&gt;
&lt;br /&gt;
First you must convert the values (decimal numbers) you normaly echo to /sys/[...] to hex:&lt;br /&gt;
&lt;br /&gt;
'''echo -e 'obase=16;&amp;lt;DECIMAL_NUMBER&amp;gt;' | bc'''&lt;br /&gt;
&lt;br /&gt;
Then simply replace the default hex values in trackpoint.h, run 'make &amp;amp;&amp;amp; make modules_install' to recompile and install psmouse.ko (should be compiled as module)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example patch (speed=100, sensitivity=190, press_to_select=1):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 --- trackpoint.h.orig   2006-01-17 16:18:30.000000000 +0100&lt;br /&gt;
+++ trackpoint.h        2006-01-17 16:25:47.000000000 +0100&lt;br /&gt;
@@ -108,9 +108,9 @@&lt;br /&gt;
 /*&lt;br /&gt;
  * Default power on values&lt;br /&gt;
  */&lt;br /&gt;
-#define TP_DEF_SENS            0x80&lt;br /&gt;
+#define TP_DEF_SENS            0xBE&lt;br /&gt;
 #define TP_DEF_INERTIA         0x06&lt;br /&gt;
-#define TP_DEF_SPEED           0x61&lt;br /&gt;
+#define TP_DEF_SPEED           0x64&lt;br /&gt;
 #define TP_DEF_REACH           0x0A&lt;br /&gt;
&lt;br /&gt;
 #define TP_DEF_DRAGHYS         0xFF&lt;br /&gt;
@@ -123,7 +123,7 @@&lt;br /&gt;
&lt;br /&gt;
 /* Toggles */&lt;br /&gt;
 #define TP_DEF_MB              0x00&lt;br /&gt;
-#define TP_DEF_PTSON           0x00&lt;br /&gt;
+#define TP_DEF_PTSON           0x01&lt;br /&gt;
 #define TP_DEF_SKIPBACK                0x00&lt;br /&gt;
 #define TP_DEF_EXT_DEV         0x01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configure firefox for using trackpoint horizontal scrolling==&lt;br /&gt;
Vertical Scrolling seems to work out of the box in firefox if you followed the steps above.&lt;br /&gt;
Anyway, there is a problem when you doesnt scroll exactly vertical, because horizontal scrolling turns into&lt;br /&gt;
browser BACK/FORWARD commands. &lt;br /&gt;
You can avoid this by typing about:config + ENTER in the address bar of firefox.&lt;br /&gt;
You have to adjust the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mousewheel.horizscroll.withcontrolkey.action = 3;&lt;br /&gt;
mousewheel.horizscroll.withcontrolkey.numlines = 1; &lt;br /&gt;
mousewheel.horizscroll.withcontrolkey.sysnumlines = true;&lt;br /&gt;
&lt;br /&gt;
mousewheel.horizscroll.withnokey.action = 0;&lt;br /&gt;
mousewheel.horizscroll.withnokey.numlines = 1;&lt;br /&gt;
mousewheel.horizscroll.withnokey.sysnumlines = true;&lt;br /&gt;
&lt;br /&gt;
mousewheel.horizscroll.withshiftkey.action = 1;&lt;br /&gt;
mousewheel.horizscroll.withshiftkey.numlines = 1;&lt;br /&gt;
mousewheel.horizscroll.withshiftkey.sysnumlines = true;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configure Opera for using trackpoint horizontal scrolling==&lt;br /&gt;
You'll experience the same annoying problem with the popular browser Opera. To fix this you need to edit the configfile &amp;lt;tt&amp;gt;/usr/share/opera/ini/standard_mouse.ini&amp;lt;/tt&amp;gt; and comment the following lines out&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Button6                                                        = Back&lt;br /&gt;
Button7                                                        = Forward&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so they look something like that&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;Button6                                                        = Back&lt;br /&gt;
;Button7                                                        = Forward&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Remember, Button6 and Button7 do not so coincidental correspond with our X configuration we know from above:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Option &amp;quot;YAxisMapping&amp;quot; &amp;quot;6 7&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22801</id>
		<title>Installing OpenSUSE 10.1 on a ThinkPad T43</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22801"/>
		<updated>2006-06-19T20:24:25Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most things run just fine after installation, the Rest I got working with the great articles here.&lt;br /&gt;
&lt;br /&gt;
{{Todo|Finish article - it's not done yet!}}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
{{WARN| The Pre-Desktop-Area has to be protected before installation, otherwise the Recovery-System will be lost. To do so, set Predesktop-Area to &amp;quot;Secure&amp;quot; in BIOS. Additionally, it's always useful to have the Recovery-CDs burned before an installation attempt}}&lt;br /&gt;
&lt;br /&gt;
The automatic shrinking of the NTFS-partition did not work during the Installation of {{SUSE}}, so I shrinked it with QtParted from a Knoppix-DVD.&lt;br /&gt;
To be able to boot Windows and Linux (via Grub) and the Recovery-System (with {{ibmkey|Access IBM|#495988}}), install the bootloader in the new, extended partition (usually &amp;lt;tt&amp;gt;/dev/sda&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Besides that, everything went fine, most Hardware was set up correctly: Graphics Card, Touchpad and Trackpoint, WLAN, Bluetooth, Modem (yet untested), Volume Control.&lt;br /&gt;
&lt;br /&gt;
==ACPI==&lt;br /&gt;
Everything set up correctly, [[ibm-acpi]] ist installed, Suspend-to-RAM and Suspend-to-Disk work with the keys already assigned to them. I still miss [[RediSafe]] though, maybe I'll use [[Software Suspend 2]] some day.&lt;br /&gt;
&lt;br /&gt;
==Hotkeys==&lt;br /&gt;
&lt;br /&gt;
==Fingerprint Reader==&lt;br /&gt;
[[How to enable the fingerprint reader]] neatly explains everything. I had to do the last steps manually, because the [[Script for enabling the fingerprint reader]] did not run till the end on Suse 10.1&lt;br /&gt;
&lt;br /&gt;
==3D Acceleration==&lt;br /&gt;
The Standard driver did work for 2D, but with no 3D acceleration. When I added&lt;br /&gt;
&amp;lt;pre&amp;gt;Section &amp;quot;Module&amp;quot;&lt;br /&gt;
       	[...]&lt;br /&gt;
        Load  &amp;quot;glx&amp;quot;&lt;br /&gt;
	[...]&lt;br /&gt;
EndSection&amp;lt;/pre&amp;gt;&lt;br /&gt;
to my {{path|/etc/X11/xorg.conf}}, the 3D acceleration worked with the OpenSource driver, but now there were problems with Suspend. So I decided for the proprietary [[fglrx]]-Driver directly from Ati. Installed fine, after I created a distribution-specific rpm with the Installer.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
[[How_to_configure_the_TrackPoint#Scrolling | Trackpoint Scrolling]] &lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
[http://omnibus.uni-freiburg.de/~s8arhorn/index.php?section=Linux&amp;amp;file=Suse%2010.1%20auf%20IBM%20Thinkpad%2043 My Installation article, in German]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22800</id>
		<title>Installing OpenSUSE 10.1 on a ThinkPad T43</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22800"/>
		<updated>2006-06-19T19:29:07Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most things run just fine after installation, the Rest I got working with the great articles here.&lt;br /&gt;
&lt;br /&gt;
{{Todo|Finish article - it's not done yet!}}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
==ACPI==&lt;br /&gt;
Everything set up correctly, [[ibm-acpi]] ist installed, Suspend-to-RAM and Suspend-to-Disk work with the keys already assigned to them. I still miss [[RediSafe]] though, maybe I'll use [[Software Suspend 2]] some day.&lt;br /&gt;
&lt;br /&gt;
==Hotkeys==&lt;br /&gt;
&lt;br /&gt;
==Fingerprint Reader==&lt;br /&gt;
[[How to enable the fingerprint reader]] neatly explains everything. I had to do the last steps manually, because the [[Script for enabling the fingerprint reader]] did not run till the end on Suse 10.1&lt;br /&gt;
&lt;br /&gt;
==3D Acceleration==&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
[[How_to_configure_the_TrackPoint#Scrolling | Trackpoint Scrolling]] &lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
[http://omnibus.uni-freiburg.de/~s8arhorn/index.php?section=Linux&amp;amp;file=Suse%2010.1%20auf%20IBM%20Thinkpad%2043 My Installation article, in German]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22799</id>
		<title>Installing OpenSUSE 10.1 on a ThinkPad T43</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22799"/>
		<updated>2006-06-19T19:28:35Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most things run just fine after installation, the Rest I got working with the great articles here.&lt;br /&gt;
&lt;br /&gt;
{{Todo|Finish article - it's not done yet!}}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
==ACPI==&lt;br /&gt;
Everything set up correctly, [[ibm-acpi]] ist installed, Suspend-to-RAM and Suspend-to-Disk work with the keys already assigned to them. I still miss [[RediSafe]] though, maybe I'll use [[Software Suspend 2]] some day.&lt;br /&gt;
&lt;br /&gt;
==Hotkeys==&lt;br /&gt;
&lt;br /&gt;
==Fingerprint Reader==&lt;br /&gt;
[[How_to_enable_the_fingerprint_reader]] neatly explains everything. I had to do the last steps manually, because the [[hScript_for_enabling_the_fingerprint_reader]] did not run till the end on Suse 10.1&lt;br /&gt;
&lt;br /&gt;
==3D Acceleration==&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
[[How_to_configure_the_TrackPoint#Scrolling | Trackpoint Scrolling]] &lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
[http://omnibus.uni-freiburg.de/~s8arhorn/index.php?section=Linux&amp;amp;file=Suse%2010.1%20auf%20IBM%20Thinkpad%2043 My Installation article, in German]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22798</id>
		<title>Installing OpenSUSE 10.1 on a ThinkPad T43</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_OpenSUSE_10.1_on_a_ThinkPad_T43&amp;diff=22798"/>
		<updated>2006-06-19T19:28:06Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: First parts added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most things run just fine after installation, the Rest I got working with the great articles here.&lt;br /&gt;
&lt;br /&gt;
{{Todo|Finish article - it's not done yet!}}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
==ACPI==&lt;br /&gt;
Everything set up correctly, [[ibm-acpi]] ist installed, Suspend-to-RAM and Suspend-to-Disk work with the keys already assigned to them. I still miss [[RediSafe]] though, maybe I'll use [[Software Suspend 2]] some day.&lt;br /&gt;
&lt;br /&gt;
==Hotkeys==&lt;br /&gt;
&lt;br /&gt;
==Fingerprint Reader==&lt;br /&gt;
[[How_to_enable_the_fingerprint_reader]] neatly explains everything. I had to do the last steps manually, because the [[http://www.thinkwiki.org/wiki/Script_for_enabling_the_fingerprint_reader]] did not run till the end on Suse 10.1&lt;br /&gt;
&lt;br /&gt;
==3D Acceleration==&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
[[How_to_configure_the_TrackPoint#Scrolling | Trackpoint Scrolling]] &lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
[http://omnibus.uni-freiburg.de/~s8arhorn/index.php?section=Linux&amp;amp;file=Suse%2010.1%20auf%20IBM%20Thinkpad%2043 My Installation article, in German]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22797</id>
		<title>User:Hypnotoad</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22797"/>
		<updated>2006-06-19T19:12:53Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My machine: a [[:Category:T43|T43]] with [[:Category:SUSE|Suse 10.1]]&lt;br /&gt;
&lt;br /&gt;
My Experience with everything: [[Installing SUSE 10.1 on a ThinkPad T43 (2668)]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22796</id>
		<title>User:Hypnotoad</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22796"/>
		<updated>2006-06-19T19:11:35Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My machine: a [[:Category:T43|T43]] with [[:Category:SUSE|Suse 10.1]]&lt;br /&gt;
&lt;br /&gt;
My Experience with everything: [[Installing SUSE 10.1 on a ThinkPad T43]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22795</id>
		<title>User:Hypnotoad</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22795"/>
		<updated>2006-06-19T19:09:21Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My machine: a {{T43}} with {{SUSE}} 10.1&lt;br /&gt;
&lt;br /&gt;
My Experience with everything: [[Installing SUSE 10.1 on a ThinkPad T43]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22794</id>
		<title>User:Hypnotoad</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22794"/>
		<updated>2006-06-19T19:06:31Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My machine: a [[Category:T43 T43]] with [[Category:SUSE Suse 10.1]]&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22793</id>
		<title>User:Hypnotoad</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Hypnotoad&amp;diff=22793"/>
		<updated>2006-06-19T19:02:19Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My machine: a [[T43]] with Suse 10.1&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Links&amp;diff=22755</id>
		<title>Links</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Links&amp;diff=22755"/>
		<updated>2006-06-16T07:08:55Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: links corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Collection of useful Links pointing to ThinkPad specific information:&lt;br /&gt;
&lt;br /&gt;
==General ThinkPad sites==&lt;br /&gt;
* [http://www.tuxmobil.org/ibm.html TuxMobil.org IBM ThinkPad installation guides]&lt;br /&gt;
* [http://www5.pc.ibm.com/europe/me.nsf/webdocs-l/e-content:downloadable+3d+visual+tours:english?OpenDocument&amp;amp;cntry=DE-L Lenovo ThinkPad 3D visual tour downloads]&lt;br /&gt;
* [http://www.ibmmania.com/index.htm IBM Mania] (Korean)&lt;br /&gt;
&lt;br /&gt;
==Forums==&lt;br /&gt;
* [http://forum.thinkpads.com/ thinkpads.com Forum]&lt;br /&gt;
* [http://www.thinkpad-forum.de/ ThinkPad-Forum] (German)&lt;br /&gt;
* [http://www.notebook-foren.de/board/forumdisplay.php?f=67 Notebook-Forum.de/IBM] (German)&lt;br /&gt;
&lt;br /&gt;
==Galleries==&lt;br /&gt;
* [http://www.thinkpad-portal.com/modules/cpg1.2.1_standalone/ ThinkPad Photo Gallery]&lt;br /&gt;
&lt;br /&gt;
==Service sites==&lt;br /&gt;
* [http://www-306.ibm.com/pc/support/site.wss/warranty/warranty.vm IBM Warranty status page] Check your warranty status online.&lt;br /&gt;
&lt;br /&gt;
==Shopping sites==&lt;br /&gt;
* [http://www.thinkpad-parts.com/ ThinkPad Parts]&lt;br /&gt;
&lt;br /&gt;
==Community sites==&lt;br /&gt;
* http://www.pc.ibm.com/ca/thinkpad/community/legends/&lt;br /&gt;
&lt;br /&gt;
==Other sites==&lt;br /&gt;
* [http://www.senthoor.com/weblog/2005/01/ibm-thinkpad_110694025174114747.html ThinkPad indepth look] All you want to know about ThinkPad design&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=22521</id>
		<title>Problems with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=22521"/>
		<updated>2006-05-29T11:50:16Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Troubles using software suspend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses issues with the ATI proprietary [[fglrx]] display driver.&lt;br /&gt;
&lt;br /&gt;
== Known Troubles and Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== X-specific issues ===&lt;br /&gt;
&lt;br /&gt;
ATI proprietary drivers version 8.21.7 and later work with x.org 6.9.&lt;br /&gt;
&lt;br /&gt;
If you are running an older version (8.20.8) under Debian sid and you upgrade your xserver-xorg, apt will force you to remove any debian-packaged fglrx drivers (package fglrx-driver depends on x.org &amp;lt;&amp;lt; 6.8.99).  You can just download the driver from the ATI site and install after modifying the Debian packager script to allow dependencies to be satisfied by x.org 6.9, or just download 8.21.7 and install manually.  See talk page for step-by-step commands.&lt;br /&gt;
&lt;br /&gt;
After installing the fglrx driver, you can use module-assist to build the appropriate kernel module.&lt;br /&gt;
&lt;br /&gt;
=== Kernel-specific troubles ===&lt;br /&gt;
&lt;br /&gt;
Using ATI drivers &amp;lt;=8.21.7 with kernel &amp;gt;=2.6.15 needs a [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch].  (see table below for detail.) If you can't compile the driver modules with 2.6.15 or later, you should apply this [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch patch] instead. &lt;br /&gt;
&lt;br /&gt;
If you do not use one of these patches, you may experience peculiar lockups of X.  Try {{cmduser|fglrxinfo}} - if your shell hangs at the end of this command, you may have an issue and should try the patch or upgrade.&lt;br /&gt;
&lt;br /&gt;
Although unproven, there is a substantial amount of user / developer concern that the above patches prevent hard lockups but do not provide full reliability with 2.6.15 and there are larger / redisgn issues preventing compatibility.  These issues have been fixed with later ATI drivers (&amp;gt; 8.21.7) so you can simply upgrade if you are running a more modern kernel.&lt;br /&gt;
&lt;br /&gt;
=== No hardware acceleration ===&lt;br /&gt;
&lt;br /&gt;
====Acceleration lost after driver update====&lt;br /&gt;
If you lose hardware acceleration after a driver update this can be caused by an old fglrx kernel module being loaded.&lt;br /&gt;
&lt;br /&gt;
Check out {{path|1=/var/log/Xorg.0.log}} for a message like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(WW) fglrx(0): Kernel Module version does *not* match driver.&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(EE) fglrx(0): incompatible kernel module detected - HW accelerated OpenGL will not work&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify this yourself by looking at the version message some lines above. It should read something not matching the installed version like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0): Kernel Module Version Information:&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Name: fglrx&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Version: 8.10.19&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cause for this trouble might be that there resist multiple versions of the fglrx module within the kernel module search path.&amp;lt;br&amp;gt;&lt;br /&gt;
Go to {{path|1=/lib/modules/&amp;lt;your linux kernel version&amp;gt;/}} and type {{cmdroot|1=grep fglrx modules.dep}}.&amp;lt;br&amp;gt;&lt;br /&gt;
If grep finds multiple lines you nailed down the problem. All you have to do now is to delete any versions of the module (look at the filedate) but the most current one. Then run {{cmdroot|1=depmod}} and you are done.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Newer versions (8.21.7) of the fglrx module seem to be installed in the &amp;lt;code&amp;gt;extra/&amp;lt;/code&amp;gt; subdirectory.&amp;lt;br&amp;gt;&lt;br /&gt;
Older versions (8.19.10) used to be located in the &amp;lt;code&amp;gt;kernel/drivers/char/drm/&amp;lt;/code&amp;gt; subdirectory.}}&lt;br /&gt;
&lt;br /&gt;
====GCC 3.4====&lt;br /&gt;
If the ATI driver works only without the hardware acceleration, take into consideration that {{path|fglrx_dri.so}} was linked against libstdc++.so.5 which may not be present if your system uses gcc-3.4.&lt;br /&gt;
&lt;br /&gt;
To fix this, compile gcc-3.3.5 and copy &amp;lt;tt&amp;gt;libstdc++.so.5*&amp;lt;/tt&amp;gt; to {{path|/usr/lib}} and update the dynamic linker cache via {{cmdroot|ldconfig}}.&lt;br /&gt;
&lt;br /&gt;
Or install a compat package for your favorite distro. FC4 users can do:&lt;br /&gt;
:{{cmdroot|yum install libstdc++.so.5}}&lt;br /&gt;
&lt;br /&gt;
====radeonfb framebuffer====&lt;br /&gt;
Another possible cause for broken hardware acceleration (2D and 3D) is the radeonfb framebuffer: Switching to vesafb or vesafb-tng is reported to solve the problem on some systems. Also it has proven helpful to not perform {{cmdroot|modprobe fglrx}} after boot but to have the module loaded via {{path|/etc/modules.autoload/kernel2.x}} at boottime instead.&lt;br /&gt;
&lt;br /&gt;
====Perpetual Mesa GLX Indirect on Debian====&lt;br /&gt;
If you've done everything right and you're still seeing:&lt;br /&gt;
&lt;br /&gt;
 $ fglrxinfo&lt;br /&gt;
 display: :0.0  screen: 0&lt;br /&gt;
 OpenGL vendor string: Mesa project: www.mesa3d.org&lt;br /&gt;
 OpenGL renderer string: Mesa GLX Indirect&lt;br /&gt;
 OpenGL version string: 1.2 (1.5 Mesa 6.4.1)&lt;br /&gt;
&lt;br /&gt;
try this:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /usr/X11R6/lib/modules/dri&lt;br /&gt;
 # ln -s /usr/lib/dri/fglrx_dri.so /usr/X11R6/lib/modules/dri&lt;br /&gt;
&lt;br /&gt;
Thanks to Maciej Matysiak for the clear debug [http://lists.debian.org/debian-amd64/2006/02/msg00217.html here] and solution [http://lists.debian.org/debian-amd64/2006/02/msg00311.html here].&lt;br /&gt;
&lt;br /&gt;
=== Softlink hell ===&lt;br /&gt;
The [[fglrx]] installer replaces the standard X.org OpenGL implementation (Mesa) with its own files, potentially causing collisions with the distribution's file and package management. It is best to install the driver via a package built for your distribution, which will typically include the necessary kludges to make things work. See the [[fglrx]] page for pointers.&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
If using {{cmduser|fglrxinfo}} after installing [[fglrx]] indicates that you are still using the mesa indirect software GL renderer, you likely have some misplaced softlinks.  It seems like it has to do with an apt-get upgrade that sometimes replaces these links.  Anyway, go to&lt;br /&gt;
:{{cmdroot|cd /usr/X11R6/lib}}&lt;br /&gt;
and list your GL libraries and links&lt;br /&gt;
:{{cmdroot|ls -la *GL*}}&lt;br /&gt;
You should see something like the following two lines amoung others:&lt;br /&gt;
:{{cmdresult|libGL.so -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
:{{cmdresult|libGL.so.1 -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
If you see a link to a mesa library (something like {{cmdresult|... -&amp;gt; libGL.mesa.1.2}}), then that's your problem!  Restore the softlink like this (use your actual library version, though):&lt;br /&gt;
:{{cmdroot|ln -s libGL.so.1.2 libGL.so.1}}&lt;br /&gt;
&lt;br /&gt;
For some reason, this link might &amp;quot;break&amp;quot; later, giving you the software rendering once more.  Even after renaming the mesa library to something like &amp;lt;tt&amp;gt;mesa.bkup&amp;lt;/tt&amp;gt;, the system might still find it and link to it despite the name change.  If you have to do this a lot, you could write a restoreGL script.&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
{{Gentoo}} has built in tools for managing the OpenGL symlinks.  They seem to be replacing the old tool with a new one, so one of the following should work for you:&lt;br /&gt;
:{{cmdroot|opengl-update ati}} or&lt;br /&gt;
:{{cmdroot|eselect opengl set ati}}&lt;br /&gt;
Eselect is new, and still ~x86 (as of the end of 2005), so you may not have it yet.  &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; is the old tried-and-true method for managing the symlinks.  If &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; doesn't fix it for you, you should probably tell [http://bugs.gentoo.org Gentoo Bugzilla] (assuming they don't know yet).&lt;br /&gt;
&lt;br /&gt;
If {{cmdroot|ldd /usr/X11R6/bin/glxinfo}} shows that your system still uses the xorg-x11 mesa libs after trying one of the above commands, i.e. a line like this:&lt;br /&gt;
:{{cmdresult|1=libGL.so.1 =&amp;gt; /usr/lib/opengl/xorg-x11/lib/libGL.so.1 (0x400a8000)}}&lt;br /&gt;
you will also need to relink {{path|libGl.so.1.2}}:&lt;br /&gt;
:{{cmdroot|cd /usr/lib/opengl/xorg-x11/lib/}}&lt;br /&gt;
:{{cmdroot|mv libGL.so.1.2 libGL.so.1.2_backup}}&lt;br /&gt;
:{{cmdroot|ln -s /usr/lib/libGL.so.1.2 libGL.so.1.2}}&lt;br /&gt;
After another restart of X {{cmduser|fglrxinfo}} should show that it's using the right libs now.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm /usr/lib/libGL.so*&lt;br /&gt;
# rm /usr/X11R6/lib/libGL.so*&lt;br /&gt;
# cd /usr/X11R6/lib&lt;br /&gt;
# cp /usr/lib/fglrx/diversions/lib/libGL.so.1.2 .&lt;br /&gt;
# ln -s libGL.so.1.2 libGL.so.1&lt;br /&gt;
# ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubles using software suspend ===&lt;br /&gt;
When the computer resumes from suspend, X only displays a garbled image and the computer is frozen.&lt;br /&gt;
The problem is acknowledged in ATI's release notes and in knowledge base entry &amp;lt;strike&amp;gt;[https://support.ati.com/ics/support/KBResult.asp?searchFor=Search+Words&amp;amp;search.x=0&amp;amp;search.y=0&amp;amp;searchOption=id&amp;amp;questionID=737-218+&amp;amp;task=knowledge&amp;amp;searchTime=-1&amp;amp;productID=&amp;amp;folderID=-1&amp;amp;resultLimit=50 737-218]&amp;lt;/strike&amp;gt; [https://support.ati.com/ics/support/KBAnswer.asp?questionID=218 737-218]. Driver version 8.19.10 has &amp;quot;initial support for Suspend and Resume&amp;quot; but is working very nicely for most people (verified on T43, T43p and T42) without vbetool.&lt;br /&gt;
&lt;br /&gt;
If you are using an older version of fglrx, using [http://www.srcf.ucam.org/~mjg59/vbetool/ vbetool] to save/restore the video card state before/after suspend worked for some people. If you use [[Software Suspend 2|Software Suspend 2 (suspend2)]] scripts, you can simply uncomment &amp;lt;tt&amp;gt;EnableVbetool yes&amp;lt;/tt&amp;gt; in {{path|/etc/hibernate/hibernate.conf}}. Be aware though that it breaks suspend/resume for drivers beginning with version 8.19.10, so remember to disable it again when upgrading.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ tested with the following configurations&lt;br /&gt;
!model!!distro||kernel!!fglrx!!PM!!success!!comments&lt;br /&gt;
|-&lt;br /&gt;
|{{T42}}||SUSE 9.3||2.6.11||8.14.13||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T41p}}||???||2.6.14||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T42p}}||Debian||2.6.10||Debian packaged||suspend2||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian sid||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 (but not earlier versions!)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian etch||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 and without vbetool&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Ubuntu Breezy||2.6.12-10||8.19.10||swsusp||yes||Perfect.  (Finally.)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.1||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch], requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.2||8.19.10||suspend2 2.2-rc11||yes||requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.19.10||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.20.8||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R50p}}||???||???||8.19.10||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14||8.19.10||Suspend to RAM||yes||without vbetool or UseDummyXServer, those two ''break'' the resume process here, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14.3||8.20.8||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R52}}||Debian sid||2.6.15-rc5||8.20.8||swsup||yes||both vbetool and UseDummyXServer disabled, DRI enabled, needs [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Gentoo||[http://packages.gentoo.org/ebuilds/?suspend2-sources-2.6.15-r6 2.6.15]||8.22.5||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled - console is garbled until switching back from X&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Gentoo||[http://packages.gentoo.org/ebuilds/?suspend2-sources-2.6.15-r6 2.6.15]||8.22.5||suspend2 2.2||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||SUSE 10.1||2.6.16||8.25.18||swsusp||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||SUSE 10.1||2.6.16||8.25.18||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubles with large RAM ===&lt;br /&gt;
Version 8.14.13 (and probably earlier versions) of the driver does not seem to be able to cope with large amounts of RAM: with 512 MB it works, with 1.5 GB it crashes the machine as soon as X is started. The problem is present only if the &amp;lt;tt&amp;gt;fglrx&amp;lt;/tt&amp;gt; kernel module is loaded, but independently of whether {{kernelconf|CONFIG_HIGHMEM||||||}} is enabled. A workaround is to limit RAM by adding the {{bootparm|mem|864m}} kernel parameter.&lt;br /&gt;
&lt;br /&gt;
Version 8.16.20 fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===Display switching ===&lt;br /&gt;
The switching between internal and external display doesn't work with fglrx versions &amp;lt;= 8.24.8, because the driver blocks messing around with the chipset via ACPI. If you want to use this feature (i.e. during presentations), you should use the &amp;lt;tt&amp;gt;vesa&amp;lt;/tt&amp;gt; server instead (experienced with a R52, Kernel 2.6.11, xorg 6.8.2, fglrx 8.16.20). Or boot notebook with CRT connected, it will automatically detect it and display on both.&lt;br /&gt;
&lt;br /&gt;
===Composite Support===&lt;br /&gt;
ATI has not officially supported composite windowing (alpha channel) enabling hardware acclerated translucent windows (primarily for 'eye candy.')  Enabling Composite in KDE and the fglrx driver results in a very pretty desktop but unacceptably slow performance on a T43p with ATI's FireGL T2.  It is still unusable in its current state (as of driver 8.24.8).&lt;br /&gt;
&lt;br /&gt;
ATI promises support in the future when composite is officially supported by Xorg.  Discussion of current status of drivers can be found in the Rage3d forums' (rage3d.com/board) Linux area.&lt;br /&gt;
&lt;br /&gt;
There were some rumors that composite support was fast with the open-source 2d accelerated drivers in x.org 7.0 (as opposed to 6.8.x).  Alas, trying this gives better results than the proprietary drivers, but it is still too slow to be reasonably useful.&lt;br /&gt;
&lt;br /&gt;
===Hardlock on X logout===&lt;br /&gt;
Up from driver version 8.19.10 you will expierence a system hard lock when logging out from X, if the session manager (kdm/gdm) is not properly configured. You have to tell the session manager to restart X.&lt;br /&gt;
&lt;br /&gt;
In the kdm config file (gentoo: {{path|/usr/kde/&amp;lt;VERSION&amp;gt;/share/config/kdm/kdmrc}}) you have to add following to the section &amp;lt;code&amp;gt;[X-:*-Core]&amp;lt;/code&amp;gt;: &lt;br /&gt;
 TerminateServer=true&lt;br /&gt;
&lt;br /&gt;
In the gdm config file add:&lt;br /&gt;
 AlwaysRestartServer=true&lt;br /&gt;
&lt;br /&gt;
Information from the ATI bugtracker: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another reason of hardlock my be agp driver. Make sure that you have proper driver for your motherboard loaded before fglrx: (gentoo: {{path|/etc/modules.autoload.d/kernel-2.6}}):&lt;br /&gt;
 intel-agp&lt;br /&gt;
 fglrx&lt;br /&gt;
&lt;br /&gt;
Information from gentoo bugtracker: http://bugs.gentoo.org/show_bug.cgi?id=113685&lt;br /&gt;
&lt;br /&gt;
===Error messages in system log===&lt;br /&gt;
&lt;br /&gt;
If you find something like the following in {{path|/var/log/messages}}:&lt;br /&gt;
&lt;br /&gt;
:{{cmdresult|kernel: mtrr: base(0xc0000000) is not aligned on a size(0x7ff0000) boundary}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_addmap] *ERROR* mtrr allocation failed (-22)}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_unlock] *ERROR* Process 5132 using kernel context 0}}&lt;br /&gt;
&lt;br /&gt;
try to execute the following line and reload the fglrx module:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|1=echo &amp;quot;base=0xd0000000 size=0x8000000 type=write-combining&amp;quot; &amp;gt; /proc/mtrr}}&lt;br /&gt;
&lt;br /&gt;
More detailed instructions can be found [http://ubuntuforums.org/showthread.php?t=115104 here].&lt;br /&gt;
&lt;br /&gt;
===Hang when logging out===&lt;br /&gt;
&lt;br /&gt;
A common problem is that when logging out from X, instead of gettign the KDM or GDM prompt, the system hangs.&lt;br /&gt;
&lt;br /&gt;
This is discussed, including workarounds here: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
===No power saving when CRT in use===&lt;br /&gt;
&lt;br /&gt;
When both CRT and LCD are in use, power saving cannot be enabled.&lt;br /&gt;
&lt;br /&gt;
This is reported here: http://ati.cchtml.com/show_bug.cgi?id=304&lt;br /&gt;
&lt;br /&gt;
== Patches ==&lt;br /&gt;
The following patches might be needed for certain versions of fglrx.&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.23.7===&lt;br /&gt;
* For kernel 2.6.16: [http://mirror.espri.arizona.edu/gentoo/rsync/x11-drivers/ati-drivers/files/ati-drivers-8.22.5-intermodule.patch &amp;lt;tt&amp;gt;intermodule&amp;lt;/tt&amp;gt; patch] and [http://mirror.espri.arizona.edu/gentoo/rsync/x11-drivers/ati-drivers/files/ati-drivers-8.23.7-noiommu.patch &amp;lt;tt&amp;gt;noiommu&amp;lt;/tt&amp;gt; patch]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.21.7===&lt;br /&gt;
&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.20.8===&lt;br /&gt;
&lt;br /&gt;
* [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 for kernel 2.6.15]&lt;br /&gt;
or&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx (problem met at least with version 8.18.8)===&lt;br /&gt;
* [http://lkml.org/lkml/2005/9/22/183 for kernel &amp;gt;= 2.6.13 ]  Missing verify_area bug&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.8.25 ===&lt;br /&gt;
* [http://www.rage3d.com/board/showthread.php?t=33798874 for kernels &amp;gt;= 2.6.10]&lt;br /&gt;
* [http://www.gehirn.org.uk/wiki/images/8.8.25-kernel-2.6.11+.patch For kernels &amp;gt;= 2.6.11-rc1]&lt;br /&gt;
&lt;br /&gt;
===Links ===&lt;br /&gt;
* [http://gentoo-wiki.com/HOWTO_ATI_Drivers Gentoo HOWTO ATI]&lt;br /&gt;
&lt;br /&gt;
== Other Known Problems ==&lt;br /&gt;
&lt;br /&gt;
===Emacs with GUI affected===&lt;br /&gt;
I installed fglrx 8.20.8 on SuSE 10.0 with kernel 2.6.13 on T43 and fglrx 8.24.8 on Ubuntu 5.10 with kernel 2.6.12 on T40. On both systems, emacs works well with &amp;quot;-nw&amp;quot; option. However, in the first system, emacs doesn't respond to any key stroke when started with GUI interface, but it works well with &amp;quot;emacs -font fixed&amp;quot;. In the second system, Emacs displays all characters as empty rectangles and responds to all key strokes althouth they are illegible. If I use the xorg.conf before fglrx was installed, then emacs works perfectly. I doubt that the problem is caused by the font. But it stays there even if I use the same fontpaths under section &amp;quot;Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Does anyone else have this problem? I haven't found any other X applications affected by the use of the driver.&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=22520</id>
		<title>Problems with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=22520"/>
		<updated>2006-05-29T11:47:42Z</updated>

		<summary type="html">&lt;p&gt;Hypnotoad: /* Troubles using software suspend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses issues with the ATI proprietary [[fglrx]] display driver.&lt;br /&gt;
&lt;br /&gt;
== Known Troubles and Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== X-specific issues ===&lt;br /&gt;
&lt;br /&gt;
ATI proprietary drivers version 8.21.7 and later work with x.org 6.9.&lt;br /&gt;
&lt;br /&gt;
If you are running an older version (8.20.8) under Debian sid and you upgrade your xserver-xorg, apt will force you to remove any debian-packaged fglrx drivers (package fglrx-driver depends on x.org &amp;lt;&amp;lt; 6.8.99).  You can just download the driver from the ATI site and install after modifying the Debian packager script to allow dependencies to be satisfied by x.org 6.9, or just download 8.21.7 and install manually.  See talk page for step-by-step commands.&lt;br /&gt;
&lt;br /&gt;
After installing the fglrx driver, you can use module-assist to build the appropriate kernel module.&lt;br /&gt;
&lt;br /&gt;
=== Kernel-specific troubles ===&lt;br /&gt;
&lt;br /&gt;
Using ATI drivers &amp;lt;=8.21.7 with kernel &amp;gt;=2.6.15 needs a [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch].  (see table below for detail.) If you can't compile the driver modules with 2.6.15 or later, you should apply this [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch patch] instead. &lt;br /&gt;
&lt;br /&gt;
If you do not use one of these patches, you may experience peculiar lockups of X.  Try {{cmduser|fglrxinfo}} - if your shell hangs at the end of this command, you may have an issue and should try the patch or upgrade.&lt;br /&gt;
&lt;br /&gt;
Although unproven, there is a substantial amount of user / developer concern that the above patches prevent hard lockups but do not provide full reliability with 2.6.15 and there are larger / redisgn issues preventing compatibility.  These issues have been fixed with later ATI drivers (&amp;gt; 8.21.7) so you can simply upgrade if you are running a more modern kernel.&lt;br /&gt;
&lt;br /&gt;
=== No hardware acceleration ===&lt;br /&gt;
&lt;br /&gt;
====Acceleration lost after driver update====&lt;br /&gt;
If you lose hardware acceleration after a driver update this can be caused by an old fglrx kernel module being loaded.&lt;br /&gt;
&lt;br /&gt;
Check out {{path|1=/var/log/Xorg.0.log}} for a message like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(WW) fglrx(0): Kernel Module version does *not* match driver.&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(EE) fglrx(0): incompatible kernel module detected - HW accelerated OpenGL will not work&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify this yourself by looking at the version message some lines above. It should read something not matching the installed version like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0): Kernel Module Version Information:&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Name: fglrx&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Version: 8.10.19&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cause for this trouble might be that there resist multiple versions of the fglrx module within the kernel module search path.&amp;lt;br&amp;gt;&lt;br /&gt;
Go to {{path|1=/lib/modules/&amp;lt;your linux kernel version&amp;gt;/}} and type {{cmdroot|1=grep fglrx modules.dep}}.&amp;lt;br&amp;gt;&lt;br /&gt;
If grep finds multiple lines you nailed down the problem. All you have to do now is to delete any versions of the module (look at the filedate) but the most current one. Then run {{cmdroot|1=depmod}} and you are done.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Newer versions (8.21.7) of the fglrx module seem to be installed in the &amp;lt;code&amp;gt;extra/&amp;lt;/code&amp;gt; subdirectory.&amp;lt;br&amp;gt;&lt;br /&gt;
Older versions (8.19.10) used to be located in the &amp;lt;code&amp;gt;kernel/drivers/char/drm/&amp;lt;/code&amp;gt; subdirectory.}}&lt;br /&gt;
&lt;br /&gt;
====GCC 3.4====&lt;br /&gt;
If the ATI driver works only without the hardware acceleration, take into consideration that {{path|fglrx_dri.so}} was linked against libstdc++.so.5 which may not be present if your system uses gcc-3.4.&lt;br /&gt;
&lt;br /&gt;
To fix this, compile gcc-3.3.5 and copy &amp;lt;tt&amp;gt;libstdc++.so.5*&amp;lt;/tt&amp;gt; to {{path|/usr/lib}} and update the dynamic linker cache via {{cmdroot|ldconfig}}.&lt;br /&gt;
&lt;br /&gt;
Or install a compat package for your favorite distro. FC4 users can do:&lt;br /&gt;
:{{cmdroot|yum install libstdc++.so.5}}&lt;br /&gt;
&lt;br /&gt;
====radeonfb framebuffer====&lt;br /&gt;
Another possible cause for broken hardware acceleration (2D and 3D) is the radeonfb framebuffer: Switching to vesafb or vesafb-tng is reported to solve the problem on some systems. Also it has proven helpful to not perform {{cmdroot|modprobe fglrx}} after boot but to have the module loaded via {{path|/etc/modules.autoload/kernel2.x}} at boottime instead.&lt;br /&gt;
&lt;br /&gt;
====Perpetual Mesa GLX Indirect on Debian====&lt;br /&gt;
If you've done everything right and you're still seeing:&lt;br /&gt;
&lt;br /&gt;
 $ fglrxinfo&lt;br /&gt;
 display: :0.0  screen: 0&lt;br /&gt;
 OpenGL vendor string: Mesa project: www.mesa3d.org&lt;br /&gt;
 OpenGL renderer string: Mesa GLX Indirect&lt;br /&gt;
 OpenGL version string: 1.2 (1.5 Mesa 6.4.1)&lt;br /&gt;
&lt;br /&gt;
try this:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /usr/X11R6/lib/modules/dri&lt;br /&gt;
 # ln -s /usr/lib/dri/fglrx_dri.so /usr/X11R6/lib/modules/dri&lt;br /&gt;
&lt;br /&gt;
Thanks to Maciej Matysiak for the clear debug [http://lists.debian.org/debian-amd64/2006/02/msg00217.html here] and solution [http://lists.debian.org/debian-amd64/2006/02/msg00311.html here].&lt;br /&gt;
&lt;br /&gt;
=== Softlink hell ===&lt;br /&gt;
The [[fglrx]] installer replaces the standard X.org OpenGL implementation (Mesa) with its own files, potentially causing collisions with the distribution's file and package management. It is best to install the driver via a package built for your distribution, which will typically include the necessary kludges to make things work. See the [[fglrx]] page for pointers.&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
If using {{cmduser|fglrxinfo}} after installing [[fglrx]] indicates that you are still using the mesa indirect software GL renderer, you likely have some misplaced softlinks.  It seems like it has to do with an apt-get upgrade that sometimes replaces these links.  Anyway, go to&lt;br /&gt;
:{{cmdroot|cd /usr/X11R6/lib}}&lt;br /&gt;
and list your GL libraries and links&lt;br /&gt;
:{{cmdroot|ls -la *GL*}}&lt;br /&gt;
You should see something like the following two lines amoung others:&lt;br /&gt;
:{{cmdresult|libGL.so -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
:{{cmdresult|libGL.so.1 -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
If you see a link to a mesa library (something like {{cmdresult|... -&amp;gt; libGL.mesa.1.2}}), then that's your problem!  Restore the softlink like this (use your actual library version, though):&lt;br /&gt;
:{{cmdroot|ln -s libGL.so.1.2 libGL.so.1}}&lt;br /&gt;
&lt;br /&gt;
For some reason, this link might &amp;quot;break&amp;quot; later, giving you the software rendering once more.  Even after renaming the mesa library to something like &amp;lt;tt&amp;gt;mesa.bkup&amp;lt;/tt&amp;gt;, the system might still find it and link to it despite the name change.  If you have to do this a lot, you could write a restoreGL script.&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
{{Gentoo}} has built in tools for managing the OpenGL symlinks.  They seem to be replacing the old tool with a new one, so one of the following should work for you:&lt;br /&gt;
:{{cmdroot|opengl-update ati}} or&lt;br /&gt;
:{{cmdroot|eselect opengl set ati}}&lt;br /&gt;
Eselect is new, and still ~x86 (as of the end of 2005), so you may not have it yet.  &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; is the old tried-and-true method for managing the symlinks.  If &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; doesn't fix it for you, you should probably tell [http://bugs.gentoo.org Gentoo Bugzilla] (assuming they don't know yet).&lt;br /&gt;
&lt;br /&gt;
If {{cmdroot|ldd /usr/X11R6/bin/glxinfo}} shows that your system still uses the xorg-x11 mesa libs after trying one of the above commands, i.e. a line like this:&lt;br /&gt;
:{{cmdresult|1=libGL.so.1 =&amp;gt; /usr/lib/opengl/xorg-x11/lib/libGL.so.1 (0x400a8000)}}&lt;br /&gt;
you will also need to relink {{path|libGl.so.1.2}}:&lt;br /&gt;
:{{cmdroot|cd /usr/lib/opengl/xorg-x11/lib/}}&lt;br /&gt;
:{{cmdroot|mv libGL.so.1.2 libGL.so.1.2_backup}}&lt;br /&gt;
:{{cmdroot|ln -s /usr/lib/libGL.so.1.2 libGL.so.1.2}}&lt;br /&gt;
After another restart of X {{cmduser|fglrxinfo}} should show that it's using the right libs now.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm /usr/lib/libGL.so*&lt;br /&gt;
# rm /usr/X11R6/lib/libGL.so*&lt;br /&gt;
# cd /usr/X11R6/lib&lt;br /&gt;
# cp /usr/lib/fglrx/diversions/lib/libGL.so.1.2 .&lt;br /&gt;
# ln -s libGL.so.1.2 libGL.so.1&lt;br /&gt;
# ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubles using software suspend ===&lt;br /&gt;
When the computer resumes from suspend, X only displays a garbled image and the computer is frozen.&lt;br /&gt;
The problem is acknowledged in ATI's release notes and in knowledge base entry &amp;lt;strike&amp;gt;[https://support.ati.com/ics/support/KBResult.asp?searchFor=Search+Words&amp;amp;search.x=0&amp;amp;search.y=0&amp;amp;searchOption=id&amp;amp;questionID=737-218+&amp;amp;task=knowledge&amp;amp;searchTime=-1&amp;amp;productID=&amp;amp;folderID=-1&amp;amp;resultLimit=50 737-218]&amp;lt;/strike&amp;gt; [https://support.ati.com/ics/support/KBAnswer.asp?questionID=218 737-218]. Driver version 8.19.10 has &amp;quot;initial support for Suspend and Resume&amp;quot; but is working very nicely for most people (verified on T43, T43p and T42) without vbetool.&lt;br /&gt;
&lt;br /&gt;
If you are using an older version of fglrx, using [http://www.srcf.ucam.org/~mjg59/vbetool/ vbetool] to save/restore the video card state before/after suspend worked for some people. If you use [[Software Suspend 2|Software Suspend 2 (suspend2)]] scripts, you can simply uncomment &amp;lt;tt&amp;gt;EnableVbetool yes&amp;lt;/tt&amp;gt; in {{path|/etc/hibernate/hibernate.conf}}. Be aware though that it breaks suspend/resume for drivers beginning with version 8.19.10, so remember to disable it again when upgrading.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ tested with the following configurations&lt;br /&gt;
!model!!distro||kernel!!fglrx!!PM!!success!!comments&lt;br /&gt;
|-&lt;br /&gt;
|{{T42}}||SUSE 9.3||2.6.11||8.14.13||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T41p}}||???||2.6.14||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T42p}}||Debian||2.6.10||Debian packaged||suspend2||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian sid||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 (but not earlier versions!)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian etch||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 and without vbetool&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Ubuntu Breezy||2.6.12-10||8.19.10||swsusp||yes||Perfect.  (Finally.)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.1||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch], requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.2||8.19.10||suspend2 2.2-rc11||yes||requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.19.10||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.20.8||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R50p}}||???||???||8.19.10||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14||8.19.10||Suspend to RAM||yes||without vbetool or UseDummyXServer, those two ''break'' the resume process here, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14.3||8.20.8||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R52}}||Debian sid||2.6.15-rc5||8.20.8||swsup||yes||both vbetool and UseDummyXServer disabled, DRI enabled, needs [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Gentoo||[http://packages.gentoo.org/ebuilds/?suspend2-sources-2.6.15-r6 2.6.15]||8.22.5||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled - console is garbled until switching back from X&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Gentoo||[http://packages.gentoo.org/ebuilds/?suspend2-sources-2.6.15-r6 2.6.15]||8.22.5||suspend2 2.2||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||SUSE 10.1||2.6.16||8.25.18||swsusp||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||SUSE 10.1||2.6.16||8.25.18||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled}&lt;br /&gt;
&lt;br /&gt;
=== Troubles with large RAM ===&lt;br /&gt;
Version 8.14.13 (and probably earlier versions) of the driver does not seem to be able to cope with large amounts of RAM: with 512 MB it works, with 1.5 GB it crashes the machine as soon as X is started. The problem is present only if the &amp;lt;tt&amp;gt;fglrx&amp;lt;/tt&amp;gt; kernel module is loaded, but independently of whether {{kernelconf|CONFIG_HIGHMEM||||||}} is enabled. A workaround is to limit RAM by adding the {{bootparm|mem|864m}} kernel parameter.&lt;br /&gt;
&lt;br /&gt;
Version 8.16.20 fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===Display switching ===&lt;br /&gt;
The switching between internal and external display doesn't work with fglrx versions &amp;lt;= 8.24.8, because the driver blocks messing around with the chipset via ACPI. If you want to use this feature (i.e. during presentations), you should use the &amp;lt;tt&amp;gt;vesa&amp;lt;/tt&amp;gt; server instead (experienced with a R52, Kernel 2.6.11, xorg 6.8.2, fglrx 8.16.20). Or boot notebook with CRT connected, it will automatically detect it and display on both.&lt;br /&gt;
&lt;br /&gt;
===Composite Support===&lt;br /&gt;
ATI has not officially supported composite windowing (alpha channel) enabling hardware acclerated translucent windows (primarily for 'eye candy.')  Enabling Composite in KDE and the fglrx driver results in a very pretty desktop but unacceptably slow performance on a T43p with ATI's FireGL T2.  It is still unusable in its current state (as of driver 8.24.8).&lt;br /&gt;
&lt;br /&gt;
ATI promises support in the future when composite is officially supported by Xorg.  Discussion of current status of drivers can be found in the Rage3d forums' (rage3d.com/board) Linux area.&lt;br /&gt;
&lt;br /&gt;
There were some rumors that composite support was fast with the open-source 2d accelerated drivers in x.org 7.0 (as opposed to 6.8.x).  Alas, trying this gives better results than the proprietary drivers, but it is still too slow to be reasonably useful.&lt;br /&gt;
&lt;br /&gt;
===Hardlock on X logout===&lt;br /&gt;
Up from driver version 8.19.10 you will expierence a system hard lock when logging out from X, if the session manager (kdm/gdm) is not properly configured. You have to tell the session manager to restart X.&lt;br /&gt;
&lt;br /&gt;
In the kdm config file (gentoo: {{path|/usr/kde/&amp;lt;VERSION&amp;gt;/share/config/kdm/kdmrc}}) you have to add following to the section &amp;lt;code&amp;gt;[X-:*-Core]&amp;lt;/code&amp;gt;: &lt;br /&gt;
 TerminateServer=true&lt;br /&gt;
&lt;br /&gt;
In the gdm config file add:&lt;br /&gt;
 AlwaysRestartServer=true&lt;br /&gt;
&lt;br /&gt;
Information from the ATI bugtracker: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another reason of hardlock my be agp driver. Make sure that you have proper driver for your motherboard loaded before fglrx: (gentoo: {{path|/etc/modules.autoload.d/kernel-2.6}}):&lt;br /&gt;
 intel-agp&lt;br /&gt;
 fglrx&lt;br /&gt;
&lt;br /&gt;
Information from gentoo bugtracker: http://bugs.gentoo.org/show_bug.cgi?id=113685&lt;br /&gt;
&lt;br /&gt;
===Error messages in system log===&lt;br /&gt;
&lt;br /&gt;
If you find something like the following in {{path|/var/log/messages}}:&lt;br /&gt;
&lt;br /&gt;
:{{cmdresult|kernel: mtrr: base(0xc0000000) is not aligned on a size(0x7ff0000) boundary}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_addmap] *ERROR* mtrr allocation failed (-22)}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_unlock] *ERROR* Process 5132 using kernel context 0}}&lt;br /&gt;
&lt;br /&gt;
try to execute the following line and reload the fglrx module:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|1=echo &amp;quot;base=0xd0000000 size=0x8000000 type=write-combining&amp;quot; &amp;gt; /proc/mtrr}}&lt;br /&gt;
&lt;br /&gt;
More detailed instructions can be found [http://ubuntuforums.org/showthread.php?t=115104 here].&lt;br /&gt;
&lt;br /&gt;
===Hang when logging out===&lt;br /&gt;
&lt;br /&gt;
A common problem is that when logging out from X, instead of gettign the KDM or GDM prompt, the system hangs.&lt;br /&gt;
&lt;br /&gt;
This is discussed, including workarounds here: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
===No power saving when CRT in use===&lt;br /&gt;
&lt;br /&gt;
When both CRT and LCD are in use, power saving cannot be enabled.&lt;br /&gt;
&lt;br /&gt;
This is reported here: http://ati.cchtml.com/show_bug.cgi?id=304&lt;br /&gt;
&lt;br /&gt;
== Patches ==&lt;br /&gt;
The following patches might be needed for certain versions of fglrx.&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.23.7===&lt;br /&gt;
* For kernel 2.6.16: [http://mirror.espri.arizona.edu/gentoo/rsync/x11-drivers/ati-drivers/files/ati-drivers-8.22.5-intermodule.patch &amp;lt;tt&amp;gt;intermodule&amp;lt;/tt&amp;gt; patch] and [http://mirror.espri.arizona.edu/gentoo/rsync/x11-drivers/ati-drivers/files/ati-drivers-8.23.7-noiommu.patch &amp;lt;tt&amp;gt;noiommu&amp;lt;/tt&amp;gt; patch]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.21.7===&lt;br /&gt;
&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.20.8===&lt;br /&gt;
&lt;br /&gt;
* [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 for kernel 2.6.15]&lt;br /&gt;
or&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx (problem met at least with version 8.18.8)===&lt;br /&gt;
* [http://lkml.org/lkml/2005/9/22/183 for kernel &amp;gt;= 2.6.13 ]  Missing verify_area bug&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.8.25 ===&lt;br /&gt;
* [http://www.rage3d.com/board/showthread.php?t=33798874 for kernels &amp;gt;= 2.6.10]&lt;br /&gt;
* [http://www.gehirn.org.uk/wiki/images/8.8.25-kernel-2.6.11+.patch For kernels &amp;gt;= 2.6.11-rc1]&lt;br /&gt;
&lt;br /&gt;
===Links ===&lt;br /&gt;
* [http://gentoo-wiki.com/HOWTO_ATI_Drivers Gentoo HOWTO ATI]&lt;br /&gt;
&lt;br /&gt;
== Other Known Problems ==&lt;br /&gt;
&lt;br /&gt;
===Emacs with GUI affected===&lt;br /&gt;
I installed fglrx 8.20.8 on SuSE 10.0 with kernel 2.6.13 on T43 and fglrx 8.24.8 on Ubuntu 5.10 with kernel 2.6.12 on T40. On both systems, emacs works well with &amp;quot;-nw&amp;quot; option. However, in the first system, emacs doesn't respond to any key stroke when started with GUI interface, but it works well with &amp;quot;emacs -font fixed&amp;quot;. In the second system, Emacs displays all characters as empty rectangles and responds to all key strokes althouth they are illegible. If I use the xorg.conf before fglrx was installed, then emacs works perfectly. I doubt that the problem is caused by the font. But it stays there even if I use the same fontpaths under section &amp;quot;Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Does anyone else have this problem? I haven't found any other X applications affected by the use of the driver.&lt;/div&gt;</summary>
		<author><name>Hypnotoad</name></author>
		
	</entry>
</feed>