Version 7 (modified by ajaworski, 13 years ago) (diff)

--

Xorg Server Setup

Xorg

Xorg is a server for graphical user interface used in most Linux distributions. Usually, its configuration can be tough when you have more than 1 monitor. Each tile computer runs 18 monitors, so the configuration is really extreme. To configure the Xorg server, /etc/X11/xorg.conf file is used. This approach is now legacy, but is still supported and most people still use it. Configuration file for Xorg used by PSNC tile computers can be found in repo.

xorg.conf sections

xorg.conf file consist os four main section types:

  • Monitor,
  • Device,
  • Screen,
  • ServerLayout.

Let's take a look at what each section is responsible for. Tile computers run on ATI cards and some of the settings mentioned below can be platform-specific.

Monitor

This section describes single monitor connected to a computer. Most important options used in configuration on PSNC tile computers are:

  • DPMS false - one of two parts needed for disabling screen blanking,
  • PreferredMode 1920x1200 - preferred resolution,
  • Position x y - x and y offset of monitor in a single Screen
  • Paning WxH+Xo+Yo/wxh+xo+yo - making the display on each monitor slightly larger to compensate the frames on neighbouring monitors. Therefore, a little part of the display is not visible, but straight line displayed through multiple monitors will still be straight. Parameters of panning are:
    • W, H - new width and height of bigger display,
    • Xo, Yo - x and y offset of display; needs to be the same as in Position,
    • w,h,xo,yo - larger screen can be scrolled to show areas that are outside monitor's resolution; these parameters describe the bounding box of where mouse position is tracked to to scroll the screen, therefore, to keep the display in one position, the minimal bounding box is applied in our configuration.

Monitor section describes single monitor type, not single physical monitor. As all monitors use in our wall are identical, we only need 6 Monitor section to describe monitors running same Screen, connected to one Device (upper-left, lower-left, upper-middle, lower-middle, upper-right and lower-right). The only difference in these sections are Position and Panning parameters.

Device

Device section describes single GPU in a computer. Because there are multiple cards in one computer, each needs to have its own Device section. To determine which section is connected to which card, GPU's physical address is used (which can be read using lspci command - usually lower address number is connected to PCI port located higher on motherboard) as BusID parameter. Each device needs to know what monitors are connected to it and on which port. Therefore, the use of DFP-[1-6] parameters is needed. DFP-[1-6] are ports on GPU. In ATI cards they are numbered starting from the one located furthest from the mainboard. In ATI cards with mixed miniDP and DVI ports, DFP-[1-4] are miniDP and DFP-[5-6] are DVI ports, also starting from the furthest from the mainboard.

When you want to display multiple Screens on a single GPU, you need to define multiple Device sections - one for each Screen. Then to distinguish them, you have to use Screen parameter in Device section, having values starting from 0. The number is not connected to Screen name, it is only information that one GPU runs multiple Screens.

Screen

Screen section is responsible for displaying a single desktop picture. Its main part is Device parameter, which is the name of Device section used to display the Screen.

ServerLayout

This section is the highest level in Xorg configuration. It describes the positioning of each Screen section. One Screen needs to be anchored, usually at (0,0). Others can be placed relatively to each other using Below, Above, RightOf or LeftOf keywords.

Disabling screen blanking

To disable screen blanking, additional ServerFlags section is used. It sets BlankTime, StandbyTime, SuspendTime and OffTime to 0 to disable them. However, when no window is displayed on any Screen, it is reset and brought back to default values. This means, that something needs to be displayed at all times. Therefore, on each Screen in a corner 1 by 1 pixel xclock is displayed. To run Xorg on each tile computer with "xclock feature" it is best to use runxall script from access machine.