[ltp] T41p/T42p/R50p VGA and DVI Out
Dave Hansen
linux-thinkpad@linux-thinkpad.org
Thu, 05 Jan 2006 01:22:18 -0800
On Mon, 2005-12-19 at 10:16 -0500, th.trauco@neverbox.com wrote:
> 1) Can a t42p be configured to do on-the-fly (i.e. without restarting
> the X server) switching/cloning of the screen using fn-f7 for the VGA
> port?
Yes. I just got this working today, and I used the "CloneDisplay"
option to the free radeon driver. My colleagues and I are learning
that there are several ways to do this, but this method is functional
for me. It also allows me to switch resolutions at runtime with
gnome-display-properties and xrandr.
The key was putting this in my xorg.conf file's Device section:
Section "Device"
Identifier "Primary ATI FireGL Mobility T2"
Driver "radeon"
BusID "PCI:1:0:0"
Option "AGPMode" "4"
Option "AGPFastWrite" "on"
Option "MonitorLayout" "LVDS, CRT"
Option "CloneDisplay" "1"
Option "CRT2HSync" "30-130"
Option "CRT2VRefresh" "50-160"
Option "MetaModes" "1400x1050-1600x1200 1400x1050-1280x1024 1280x1024-1280x1024"
EndSection
You might want to add some MetaModes and CRT2 parameters which more
closely match your projector or external monitor.
> 2) If the answer to (1) is yes, could you please explain how, and maybe
> post your xorg.conf and your acpi event script for FN-F7?
I used a custom script with acpid and xrandr to actually do the
resolution switching with Fn-F7. If this doesn't work, make sure to
post the output of
cat /proc/acpi/ibm/hotkey
All the script basically does is switch between the three different
modes that I gave in the MetaModes section.
# /etc/acpi/events/ibmvideobtn
# This is called when the user presses the video button. It is currently
# a placeholder.
event=ibm/hotkey HKEY 00000080 00001007
action=/etc/acpi/ibm-thinkpad-fn-f7.sh
#!/bin/bash
# /etc/acpi/ibm-thinkpad-fn-f7.sh
. /etc/default/acpi-support
. /usr/share/acpi-support/power-funcs
. /usr/share/acpi-support/device-funcs
DeviceConfig;
function xrandr_reslines
{
xrandr | grep '^[ \*][0-9][0-9]*'
}
RES_NR="$(xrandr_reslines | grep -n ^\* | awk -F: '{print $1}')"
NR_RESES="$(xrandr_reslines | wc -l)"
TARGET_RESLINE="$(xrandr_reslines | head -$((RES_NR%NR_RESES + 1)) | tail -1)"
# resline format is like this:
# 1 1400 x 1050 ( 542mm x 406mm ) 0
#echo resline: "$TARGET_RESLINE"
TARGET_RES="$(echo "$TARGET_RESLINE" | awk '{print $2$3$4}')"
xrandr --size $TARGET_RES
-- Dave