ULB 2004 Video Follow-Up

by Cosmo King

The configuration necessary for getting all four displays to work in this year's Ultimate Linux Box may have been common sense for any X config or ATI guru, but I had to do a bit of hacking to get it all working. The autodetected multihead from FC2 had two device sections, referencing the two PCI IDs given by the video card. These did multihead fine, but the sub-device or second and fourth video outputs simply were clones of the first and third.

I had to create additional device entries for the sub-devices, and apply a fixed Screen entry for all of the device entries. Each of the two PCI ID referenced devices was treated as a separate card, so instead of using:

Section "Device"
...
  BusID        "25:1:0"
  Screen 0
...
Endsection

Section "Device"
...
  BusID        "25:1:0"
  Screen 1
...
Endsection

Section "Device"
...
  BusID        "25:5:0"
  Screen 2
...
Endsection

Section "Device"
...
  BusID        "25:5:0"
  Screen 3
...
Endsection

which might have been logical, I had to use:

Section "Device"
...
  BusID        "25:1:0"
  Screen 0
...
Endsection

Section "Device"
...
  BusID        "25:1:0"
  Screen 1
...
Endsection

Section "Device"
...
  BusID        "25:5:0"
  Screen 0
...
Endsection

Section "Device"
...
  BusID        "25:5:0"
  Screen 1
...
Endsection

The primary head of the two devices also required the options Option "MonitorLayout" "CRT,CRT", which indicated that the primary and secondary heads of this device both would be CRT output. I was using CRT adapters provided from Appian. The LVD connections did not operate well with my displays. All of the displays also needed unique Identifier fields, of course. I manually coded the VideoRAM sections, in hope of forcing each card to be allocated 1/4 of the 64MB onboard video RAM.

Finally, an interesting ServerLayout section was necessary to create the Xinerama effect. I configured a 2x2 monitor array for the magazine article like this:

Section "ServerLayout"
  Identifier   "Layout[all]"
  InputDevice  "Keyboard[0]" "CoreKeyboard"
  InputDevice  "Mouse[1]" "CorePointer"
  Screen      0 "Screen0" 0 0
  Screen      1 "Screen1" RightOf "Screen0"
  Screen      2 "Screen2" Above "Screen0"
  Screen      3 "Screen3" Rightof "Screen2"
  Option       "Xinerama"  "1"
EndSection

The end result was a nice four-monitor display arranged in a square, for a total of 2560x2048 pixels. A really cool trick would be to try for a nine-monitor setup by adding another 4-port Appian card (for eight) and then any old single-port PCI Video card (for the ninth). That would be a big freakin' XF86Config file--sorry, it's xorg.conf now, we must remember.

Unfortunately, the graphics were a bit slow and, of course, were not 3-D in the 64-bit OS after all configuration was done. I'd be interested if anyone out there--the aforementioned gurus--would have suggestions to improve the speed of this setup.

Cosmo King is a systems engineer at Pogo Linux, Inc.

Load Disqus comments