[ltp] Question on X60
Dieter Jurzitza
linux-thinkpad@linux-thinkpad.org
Wed, 28 Feb 2007 21:04:40 +0100
--Boundary-00=_YBe5F0gUcRd1Vvz
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Dear Matt,
thank you for looking into this. I (think) I found the bug in the meantime =
and=20
I wonder whether other people could share my findings.
=2D X60 comes with i945 graphics.This one is apparently not detected correc=
tly=20
by the acpi-daemon (or the ibm_acpi module)
=2D this is why (IMHO) pressing FN-F7 generates acpi-events, but they do no=
t do=20
the right things.
=2D in SuSE's case those events end in /usr/lib/dockutils/dockhandler what =
IMHO=20
is not the right place (but that's worth a bug-report for SuSE, a different=
=20
story I'll work on later).
=2D /proc/acpi/ibm/video does not react to video_switch events as expected.=
=20
(echo video_switch > /proc/acpi/ibm/video) IMHO this is a bug.
=2D there is one tool available called i810switch that can be patched (Patc=
h=20
provided by Debian) to treat the 945 as a 855. Applying the patch one can=20
turn the display on and off with that tool. The latest release (0.6.5) can =
be=20
downloaded from http://www16.oaka,ir,ho/mano-a-mano/i810switch.html
=2D the next step is to follow the rules pointed out in the very nice=20
description at http://www.kai-hildebrandt.de/linux/thinkpad/tp_acpi.html,=20
(but this is only for the smart people speaking German :-)))) ).
=2D please find attached the patch for i810switch what may be downloaded fr=
om=20
Debian, too. I did some additional eye-candy with the Path and so on - matt=
er=20
of taste.
=2D for those using SuSE I can provide more SuSE-specific details on reques=
t.=20
got FN-F7 working now, what was my target.
I assume the problem is buried somewhere down in the acpi-subsystem, maybe =
in=20
ibm_acpi.ko; but I could not track that down until now. I think it is not=20
related to the X-server.
Thanks again for helping (and listening!),
take care
Dieter Jurzitza
Am Dienstag, 27. Februar 2007 22:38 schrieb Matt Graham:
> On Tuesday 27 February 2007 15:13, after a long battle with technology,
>
> Dieter Jurzitza wrote:
> > I am using openSUSE 10.2 on the lenovo X60. Everything is working to
*****
=2D-=20
=2D----------------------------------------------------------
|
\
/\_/\ |
| ~x~ |/-----\ /
\ /- \_/
^^__ _ / _ ____ /
<=B0=B0__ \- \_/ | |/ | |
|| || _| _| _| _|
if you really want to see the pictures above - use some font
with constant spacing like courier! :-)
=2D----------------------------------------------------------
--Boundary-00=_YBe5F0gUcRd1Vvz
Content-Type: text/x-diff;
charset="iso-8859-1";
name="i810switch-0.6.5.i945.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="i810switch-0.6.5.i945.diff"
--- i810switch-0.6.5/i810switch.c.original 2005-06-12 06:36:36.000000000 +0200
+++ i810switch-0.6.5/i810switch.c 2007-02-28 15:05:49.000000000 +0100
@@ -60,6 +60,7 @@
#define I855STR "8086:3582"
//#define I865STR "8086:2572"
#define I915STR "8086:2592"
+#define I945STR "8086:27a2"
#define MEMSTR "Memory at"
#define NONPRSTR "32-bit, non-prefetchable"
@@ -272,7 +273,8 @@
return p;
}
- i = (p = strstr(*buff_ptr, I855STR)) != NULL;
+ i = (p = strstr(*buff_ptr, I855STR)) != NULL ||
+ (p = strstr(*buff_ptr, I945STR)) != NULL;
if (i)
{
*chiptype = I855;
--- i810switch-0.6.5/Makefile 2007-02-28 16:20:44.000000000 +0100
+++ i810switch-0.6.5/Makefile 2007-02-28 16:20:44.000000000 +0100
@@ -9,14 +9,14 @@
$(CC) $(CFLAGS) -o $@ $(OBJECTS)
install: i810switch
- install -d $(DESTDIR)/usr/bin
+ install -d $(DESTDIR)/usr/sbin
install -d $(DESTDIR)/usr/share/man/man1
- install i810switch i810rotate $(DESTDIR)/usr/bin
+ install i810switch i810rotate $(DESTDIR)/usr/sbin
install i810switch.1.gz i810rotate.1.gz $(DESTDIR)/usr/share/man/man1
uninstall:
- rm -f $(DESTDIR)/usr/bin/i810switch
- rm -f $(DESTDIR)/usr/bin/i810rotate
+ rm -f $(DESTDIR)/usr/sbin/i810switch
+ rm -f $(DESTDIR)/usr/sbin/i810rotate
rm -f $(DESTDIR)/usr/share/man/man1/i810switch.1.gz
rm -f $(DESTDIR)/usr/share/man/man1/i810rotate.1.gz
--- i810switch-0.6.5/i810rotate 2007-02-28 19:47:23.000000000 +0100
+++ i810switch-0.6.5/i810rotate 2007-02-28 19:47:23.000000000 +0100
@@ -1,12 +1,13 @@
#!/bin/sh -
+I810SWITCH="/usr/sbin/i810switch"
-dev=`i810switch`
+dev=`${I810SWITCH}`
dev=`echo $dev`
if [ "$dev" = "CRT: off LCD: on" ] ; then
- i810switch crt on lcd on > /dev/null
+ ${I810SWITCH} crt on lcd on > /dev/null
elif [ "$dev" = "CRT: on LCD: off" ] ; then
- i810switch crt off lcd on > /dev/null
+ ${I810SWITCH} crt off lcd on > /dev/null
else
- i810switch crt on lcd off > /dev/null
+ ${I810SWITCH} crt on lcd off > /dev/null
fi
--Boundary-00=_YBe5F0gUcRd1Vvz--