Tuesday, March 31, 2009

Fedora 10, xrandr and InFocus projector

So, I'm doing this presentation at the Trenton Computer Festival next month and couldn't get the InFocus IN2102EP Projector to work on my dual boot MacBook Pro (2.33Ghz Core 2 Duo) that runs both Leopard and Fedora 10, x86-64 using ReFit as the boot loader. I tried to connect the InFocus to the DVI output of the Mac while running under Fedora.

The InFocus is connected this way:
MacBook external DVI output > DVI-VGA dongle > VGA - M1-DA Cable
> InFocus M1-DA connector

The problem is that though xrandr sees the DVI-0 port as connected, but the InFocus doesn't get the signal or spring to life through the setup listed above.

I've verified that the DVI-0 output works with a regular DVI cable connected to the DVI input on my Dell 1907FP 19-inch Flat Panel LCD. So this means a digital signal is being output from the port. Now, I've also verified that the DVI-0 output from Fedora does NOT work with the DVI-VGA dongle connected to the VGA input on the Dell. When connected with the DVI-VGA setup listed above, xrandr sees that the InFocus is connected (shown below). Also, Gnome sees the InFocus in the connected displays.

On the flipside, I've verified that the InFocus projector works using the DVI-VGA cable setup when booted from the Mac OS. So that's odd.

Since I can see the output while connected to the Dell's DVI input, I don't think this is a configuration issue. But maybe Fedora just doesn't like the DVI-VGA dongle. I'm sure I could buy an M1-DA direct to DVI adapter and be done with it, but I'd rather save the $55 and figure out why the Mac sees the Infocus, but why Fedora has troubles.

Here is the output of xrandr:
[cm@cm ~]$ xrandr
Screen 0: minimum 320 x 200, current 2464 x 900, maximum 2720 x 1924
LVDS connected 1440x900+0+0 (normal left inverted right x axis y axis)
331mm x 207mm
1440x900 60.0*+
2048x1536 60.0
1920x1440 60.0
1856x1392 60.0
1792x1344 75.0 60.0
1600x1200 85.0 75.0 70.0 65.0 60.0
1400x1050 74.8 60.0
1280x1024 85.0 75.0 60.0
DVI-0 connected 1024x768+1440+0 (normal left inverted right x axis y axis)
0mm x 0mm
1024x768 60.0*+ 85.0 75.1 75.0 70.1 60.0*
1400x1050 60.0
1280x1024 75.0 60.0
1024x768_60.00 60.0
1280x960 60.0
1152x864 75.0
832x624 74.6
800x600 85.1 72.2 75.0 60.3 56.2
640x480 85.0 72.8 75.0 72.8 75.0 60.0
720x400 85.0
640x400 85.1
640x350 85.1
0x0 0.0


Here is my xorg.conf:
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Synaptics Touchpad" "CorePointer"
EndSection

Section "Module"
Load "synaptics"
Load "extmod"
Load "dbe"
Load "glx"
EndSection

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "SHMConfig" "true"
Option "LeftEdge" "10"
Option "RightEdge" "1200"
Option "TopEdge" "10"
Option "BottomEdge" "370"
Option "FingerLow" "10"
Option "FingerHigh" "20"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "SingleTapTimeout" "100"
Option "MaxDoubleTapTime" "180"
Option "LockedDrags" "off"
Option "MinSpeed" "1.10"
Option "MaxSpeed" "1.30"
Option "AccelFactor" "0.08"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"
Option "RTCornerButton" "0"
Option "RBCornerButton" "0"
Option "LTCornerButton" "0"
Option "LBCornerButton" "0"
Option "VertScrollDelta" "20"
Option "HorizScrollDelta" "50"
Option "HorizEdgeScroll" "0"
Option "VertEdgeScroll" "0"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection

Section "Device"
Identifier "ATI Technologies Inc M56P [Radeon Mobility X1600]"
Driver "radeon"
Option "backingstore" "true"
Option "RenderAccel" "true"
Option "AccelMethod" "EXA"
Option "Monitor-LVDS" "Internal Monitor"
Option "Monitor-DVI-0" "External DVI"
BusID "PCI:1:0:0"
EndSection

Section "Monitor"
Identifier "Internal Monitor"
HorizSync 30.0 - 110.0
VertRefresh 50.0 - 150.0
Option "DPMS"
EndSection

Section "Monitor"
Identifier "External DVI"
Modeline "1024x768_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028
1060 -HSync +Vsync
Option "Enable" "true"
EndSection

Section "Screen"
Identifier "Screen0"
Device "ATI Technologies Inc M56P [Radeon Mobility X1600]"
DefaultDepth 24
SubSection "Display"
Depth 24
Virtual 2720 1924 # <--- This is the newly added entry
EndSubSection
EndSection

Section "DRI"
Mode 0666
EndSection


Alex Deucher on the Xorg mailing list was able to help me:
> > > If you are using F10 with kernel modesetting (KMS) it doesn't have the
> > > proper quirks do deal with the broken connector table on the macbooks.
> > > I think the non-KMS code shipped with F10 should have the proper
> > > quirk handling, if not, you may need to upgrade your ddx.

Kernel modesetting on Fedora systems allows the different graphics modes that are specified in the xorg.conf file to be set by the kernel, rather than the Device Dependent X (DDX) driver in the X server. More info here:
http://fedoraproject.org/wiki/Features/KernelModesetting
http://dri.freedesktop.org/wiki/DDX

So, as per Alex's comment, I did a workaround and used the "nomodeset" kernel parameter option on kernel command line in grub.conf to disable KMS. So now, the display wakes up when Gnome starts.

Hooray!
TAG

Xorg/Xrandr References
Xorg Info Page
XRandr Wiki
Open Solaris on MacBook Pro
XRandr on Debian

No comments:

Feel free to drop me a line or ask me a question.