Category Archives: Debian

>Debain: Upgrading from xserver-xorg-video-i810 to xserver-xorg-video-intel

>I have a Dell Latitude D620 laptop, and I run Debian testing on it. I’ve been running it this way for many years now. Every so often something changes and *poof* I’ve got to figure everything out again.

One of the things that changed over from Debian Etch to Debian Lenny (the current testing) was a new driver for the Intel 945GM card. The biggest bummer was that with my old config file the new driver would crash.

At any rate, lets go over this for anyone else who has to go through this:

The old package:
http://packages.debian.org/stable/x11/xserver-xorg-video-i810

The new package:
http://packages.debian.org/testing/x11/xserver-xorg-video-intel

From lspci:


00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)

So, in the mix of the things that have changed is a completely different xorg.conf format.

The biggest shocker for me was the complete lack of Xinerama support. Turn it on and it crashes the driver cold. Since I use a monitor along with my laptop monitor, this was a problem.

Now its important to note that the old driver had two seperate xorg.conf devices, one for each “display pipe”… thus one per monitor. Xinerama was used to connect the devices back together into one display.

The new method stacks three concepts. To oversimplify: a screen can have one or many CRTCs (CRT Controllers) which can be hooked up to one or many outputs (monitors).

I have a DELL E228WFP monitor hooked to the DVI port on my port replicator, and I have the laptop monitor. The external monitor is 1680×1050 and the laptop is 1440×900.

So, to make one large display, you make a virtual screen that is 3120×1050 (the monitors sitting next to each other). You then configure a CRTC to be at offset +0+0 and another to be at +1680+0. It is a little strange that you can actually configure the CRTCs to overlap and you’ll see the same image on both screens.

Now, theres a problem with having a 3120×1050 screen. “There is a known issue that DRI doesn’t work on pre-965 if maximum is larger than 2048×2048.” So, have it set up that way and no DRI (meaning crappy 2D and really crappy 3D support).

My hack around that was to logically stack my screens (i.e. up-down)… I tell X that my display is actually 1650×1950 even though the screens are left-right. The drawback is that I have to move off the bottom of my screen to go to my laptop (instead of to the right).

At any rate, here’s my old config file. Do note there are issues with it even with the old driver (like, for instance, having to hit Fn-F8 on boot so the primary monitor will be the big one — and not the laptop monitor).

# Jeff's old /etc/X11/xorg.conf

Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
#Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "type1"
Load "vbe"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ExplorerPS/2"
Option "Emulate3Buttons" "true"
EndSection

Section "InputDevice"
Driver "synaptics"
Identifier "Synaptics Touchpad"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "LeftEdge" "120"
Option "RightEdge" "830"
Option "TopEdge" "120"
Option "BottomEdge" "650"
Option "FingerLow" "14"
Option "FingerHigh" "15"
Option "MaxTapTime" "180"
Option "MaxTapMove" "110"
Option "EmulateMidButtonTime" "75"
Option "VertScrollDelta" "20"
Option "HorizScrollDelta" "20"
Option "MinSpeed" "0.6"
Option "MaxSpeed" "0.6"
Option "AccelFactor" "0.015"
Option "EdgeMotionMinSpeed" "200"
Option "EdgeMotionMaxSpeed" "200"
Option "UpDownScrolling" "1"
Option "CircularScrolling" "1"
Option "CircScrollDelta" "0.1"
Option "CircScrollTrigger" "2"
EndSection

Section "Device"
Identifier "Internal Video Card"
Driver "i810"
VideoRam 262144
BusID "PCI:0:2:0"
Option "FlipPrimary" "on"
Option "MonitorLayout" "DFP,LFP"
Screen 0
EndSection

Section "Device"
Identifier "External Video Card"
Driver "i810"
VideoRam 262144
BusID "PCI:0:2:0"
Option "FlipPrimary" "on"
Screen 1

EndSection

Section "Device"
Identifier "External Video Card FP"
Driver "i810"
VideoRam 262144
BusID "PCI:0:2:0"
#Option "MonitorLayout" "LFP,DFP"
#Option "MonitorLayout" "DFP,LFP"
#Option "FlipPrimary" "on"
Screen 1

EndSection

Section "Monitor"
Identifier "Internal FP"
Option "DPMS"
HorizSync 30-83
VertRefresh 56-60
ModeLine "1680x1050" 119.0 1680 1728 1760 1840 1050 1053 1059 1080 -hsync +vsync
EndSection

Section "Monitor"
Identifier "DELL 2007FP"
ModelName "DELL 2007FP"
ModeLine "1680x1050" 119.0 1680 1728 1760 1840 1050 1053 1059 1080 -hsync +vsync
Option "DPMS"
HorizSync 30-83
VertRefresh 56-60
EndSection

Section "Monitor"
Identifier "Tube"
ModeLine "1680x1050" 119.0 1680 1728 1760 1840 1050 1053 1059 1080 -hsync +vsync

Option "DPMS"
#HorizSync 30-183
HorizSync 30-183
VertRefresh 75-90
EndSection

Section "Screen"
Identifier "Internal LCD"
Device "Internal Video Card"
Monitor "Internal FP"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1680x1050" "1440x900" "1280x1024" "1280x768" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "Screen"
Identifier "External FP"
Device "External Video Card FP"
Monitor "DELL 2007FP"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1440x900" "1280x1024" "1280x768" "1024x768" "800x600" "640x480"
Virtual 1440 900
EndSubSection
EndSection


Section "Screen"
Identifier "External Monitor"
Device "External Video Card"
Monitor "Tube"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1680x1050" "1280x1024" "1280x768" "1024x768" "800x600" "640x480"
Virtual 1680 1050
EndSubSection
EndSection


Section "ServerLayout"
Identifier "external"
Screen 0 "Internal LCD" 0 0
Screen 1 "External FP" Rightof "Internal LCD"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
Option "Xinerama" "true"
EndSection

Section "ServerLayout"
Identifier "internal"
Screen "Internal LCD"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Internal LCD" 0 0
Screen 1 "External Monitor" Leftof "Internal LCD"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
Option "Xinerama" "true"
EndSection

Section "ServerLayout"
Identifier "Default Layout bak"
Screen "Internal LCD"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
EndSection

Section "DRI"
Mode 0666
EndSection

And now here’s the new config file. I haven’t yet applied my Synaptics tweeks to make the trackpad work better.

# The *NEW* xorg.conf dual monitor file
Section "Files"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
EndSection

Section "Device"
Identifier "Intel 945GM"
Driver "intel"
Option "Monitor-TMDS-1" "TMDS Monitor"
Option "Monitor-LVDS" "LVDS Monitor"
#Option "ModeDebug" "true"

EndSection

Section "Monitor"
Identifier "LVDS Monitor"
Option "DPMS"
Option "Below" "TMDS Monitor"
Option "PreferredMode" "1440x900"
Option "Position" "0 1050"
EndSection

Section "Monitor"
Identifier "TMDS Monitor"
Option "DPMS"
#HorizSync 65-70
#VertRefresh 59-60
HorizSync 64-83
VertRefresh 56-75

Option "PreferredMode" "1680x1050"
EndSection

Section "Screen"
Identifier "The Screen"
Device "Intel 945GM"
SubSection "Display"
Virtual 1680 1950
EndSubsection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "The Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
EndSection

Now there is one oddity which I wasn’t able to find a way around other than the old school hack of specifying an overly-restrictive horizontal refresh rate: xorg wants to put the Flat Panel into 1280x1024x75hz mode and not 1680x1050x60hz mode. I ended up putting the slightly more restrictive HorizSync to make it so that it won’t go into 1280×1024 mode.

For more information about setting up dual head under the Intel driver is available from their site.

>Vmware vs. Debian Testing

>So I updated Debian testing yesterday and after that starting vmware just exits without actually doing anything. Since vmware is actually run via a wrapper program, it was not only eating the output (grr) but it was making testing it a bit harder.

Ultimatly I picked up a solution from the Ubuntu forums that resolved the problem. Basically libhal and libdbus got upgraded and VMware Workstation 5.5.2 build-29772 couldn’t deal with it.

Yay… now back to vmware goodness.