Dual-head with XRandR
Thursday, March 27th, 2008I decided last quarter that I wanted to be able to present from my laptop without rebooting into Windows. It’s nice to be able to use my own equipment for that sort of thing, and especially from it was developed in.
Anyway, I never really made an effort to get this to work before, so I didn’t know much about what I was in for. It appears that there are four basic methodologies for getting a dual-head configuration to work. I’ll detail those here. First, let me outline my relevant hardware configuration: ATI Mobility Radeon 9000, 14.1″ laptop LCD capable of displaying up to 1400×1050 resolution, and supplying a signal to a standard VGA port and an S-video port. I was originally using the radeon driver, but in my exploration, I found that the ati driver is a wrapper providing additional functionality, which uses the radeon driver when it needs to.
- By hand, with xorg.conf
This method involves editing xorg.conf by hand, configuring each Monitor and Screen and playing with Modes, Virtual lines, and adding Devices and positioning information as needed. I got this to work, but KDE never cooperated, either creating a second desktop and another instance of kdm, or stretching itself in some bizarre way. I gave up on getting them to cooperate when I found out about…
- Compiling in support for Xinerama
Xinerama is actually designed to work with multiple monitors effectively. This was the first method that I got to work correctly, and all it took was adding the ‘Option “Xinerama” “Enabled”‘ line to the Extensions section. And compiling most of KDE with the xinerama use flag. Only once I got it working did I discover that using it disables DRI, so I couldn’t present anything involving 3D animations. It was around this time when I found out that Xinerama has been deprecated in favor of…
- Enabling MergedFB
Apparently, some time ago it was determined that X display drivers would support the MergedFB directive, including an additional directive for MergedNonRectangular, which allows for a pair of displays of unequal resolution. This was convenient, and also supported DRI, but unfortunately, it only worked for a brief time. I changed something in the configuration, and couldn’t get it to work again. In searching for a reason for this, I happened upon some documentation that suggested that MergedFB would also be deprecated in the near future. Its replacement would be…
- XRandR
This final method allows X to finally support dynamic resizing of the desktop – that is, as long as your video driver is sufficiently up-to-date. Originally, I was using the x11-drivers/xf86-video-ati-6.6.3 package which, upon review of the changelog, does not support XRandR. Support was added in as of version 6.7, and the current version is 6.8.0. However, it’s been masked for x86, and apparently it isn’t stable with my configuration, because it crashed X. I reverted to version 6.7, and then was able to successfully startx and query with the xrandr command.
In short, I can project now! There is one drawback – apparently because I had to set Virtual to greater than 2048 2048, I can’t use DRI with this configuration. I’m working on a fix to that. I’ve posted my working xorg.conf here.
By the way, thanks to Greg for helping me with this.
