Linux Xorg

 

[ID Components]     [xorg.conf Examples]     [Create xorg.conf]     [ Knoppix 3.8.2 ISO]

While this document will concentrate on setting up the video card and monitor, don't forget that the pointing device, typically a mouse, but hardly the only device to move a cursor on screen, and the input devices, typically a keyboard, are also included in the X configuration. The examples and the configuration described on these pages will be for Xorg but do not forget XFree86 which works well and continues to be used on may *x platforms.

X Windows, as X, was first used at MIT in 1984 a year before MS Windows 1.0 was released. It was in 1987 that the X11 protocal's first revision appeared. From that early start and for most of it's existance it is IMHO that X is superior to MS Windows. Use and programming for X11 has always been much easier that MS Windows; and I suspect it always will be.

The many desktop managers for X may not have always been as 'pretty' as MS Windows but they have all been feature and function packed. An environment for using a computer more as a tool than as a place to play. Today desktops can be configured and customized for work or play and both! Personally I find the virtual desktop bar, a ubiquitous feature today, invaluable and yet still not in MS Windows. I first used it with vtwm in 1996. GNOME & KDE two of the most popular today. Ubuntu will be, with their April 11.04 release, switching to the Unity desktop manager.

The goal is not to convince you to use X11, you wouldn't be here if you were not already interested. So click the second tab to get started and see if this helps you configure X11 to your exact needs. The menu is in the order most will need to follow from the left to the right.

 

Identify Component Specifications

One of the most difficult tasks to get the screen to be used at it's full capacity is to determine particular characteristics of the X peripherals attached to the computer being changed. I use the word changed as during the build a /etc/X11/xorg.conf file will ususally, but not always, be generated.

So how do I get the specifications I need?

  • Check the printed documentation that came with the computer and monitor.
     
  • Look at the output from dmesg for clues: dmesg | more .
     
  • Go on-line to the computer or monitor's manufacturer and check the specifications for the device being, X'd.
        For example using the DELL 'Tag ID'.
     
  • Run the command lspci or lshw | more or hwinfo | more.
    These provide detailed information regarding the components in the box you are working with.
     
  • Download the Knoppix 3.8.2 ISO listed on the last tab at the top of the page and burn the image onto a CD.
        Boot from that CD. ( Which is in a live format )
    1. boot: < hit return key >
    2. A small image of Tux the iconic Linux Penguin mascot will appear in the upper left corner.
    3. During boot process watch the screen carefully for the following bits of info.
      Sometimes a 'Ctrl s' will stop the process so you can collect all the info you need to.
      This also hangs the boot process so you will need to power down or Ctrl-Alt-Delete!
      scanning for device 0 0 0 0
        OLD: Host: < Removable Media Model displayed >
          Vendor is: < Removable Media Manufacturer displayed >
          Type: < DVD or CD-ROM indicated >
      Mouse is < mouse type displayed >
      Soundcard: < sound card type displayed >
      Video is < video card type displayed >, using < X version used displayed >
      Monitor is < monitor type displayed >< H: ##.#-##.#Khz V: ##.#-##.#Hz>
                                                For example H:28.0-96Khz V:50-75Hz -- Most important bit to catch
      Using Modes "####x###" "###x###" "###x###"
                                                For example 1024x768" "800x600" "640x480" -- Next most important bit to catch

The Horizontal and Vertical Refresh rate & and the Monitor Resolution modes are the two sets of information that will let you get a monitor working at its best maximum. BUT it is a good idea to capture everything about all components. Snap a pic with your cell phone camera, if Ctrl s does not stop the boot process.
Note: Now that you have taken the time to collect this information, create a file to save it. I like to use Open Office to create the file and save in a smallish font. I print the file out and tape it somewhere on the box or laptop so I will have it. You configure a Linux box once, you will configure it again!

 

xorg.conf example files

All the descriptors and values below are explained in the xorg.conf document page. Still this will take some time to completely understand and confidence to hack at with will. Modelines are the trickiest to get right but finding and adding the horizontal sync (HorizSync) and the vertical refresh rate VertRefresh and the modes for the monitor will often make the screen resolution hit the max. With those entries missing the best you can get is a mode of 800x600 or even 640x480!

Computers A, B & C are connected via KVM to the same monitor... each works at max resolution
-- Generic Example -- Computer A & C Example -- Computer B Example --

 

Generic Example

# ##############################################################################
# xorg.conf (X.Org X Window System server configuration file)
# ##############################################################################
#
# This file was generated by debconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   "   sudo dpkg-reconfigure -phigh xserver-xorg   "
# ##############################################################################
#
# The values enclosed by <  angle brackets  > are the ones to find and fill in.
# The values in " double quotes " are usually all that is needed.
#
# ##############################################################################

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "<usually pc104 or pc105>"
        Option          "XkbLayout"     "us"
EndSection

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
EndSection

Section "InputDevice"
        Identifier      "< Manufacturer Model/Description">"
        Driver          "< Manufacturer Driver Name>"
        Option          "Device"     "/dev/< device name>"
EndSection

Section "Device"
        Identifier      "Configured Video Device"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
        VendorName      "< Manufacturer Name">"
        ModelName       "< Manufacturer Model>"
### EDID information ###
        Modeline  "<resolution>" <dotclock> <hdisp> <hsyncstart> <hsyncend> <htotal> 
<vdisp> <vsyncstart> <vsyncend> <vtotal> HorizSync < low number ">-< high number > VertRefresh < low number ">-< high number > EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" SubSection "Display" Viewport 0 0 Depth < bit depth > Modes "< highest res >" "< mid-high res >" "< mid-low res >"
"< lowest res >" EndSubSection EndSection

Example A & C

This was hand edited with a great deal of change and test on Computer A (Ubuntu 10.10). Running lspci reports the video chain as ...
VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:02.1 Display controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
I decided to just try it in computer C (also Ubuntu 10.10) which has this video card in it VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev b2)
It worked the first time.

# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-reconfigure -phigh xserver-xorg

Section "Device"
        Identifier      "Configured Video Device"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
        VendorName      "Dell"
        ModelName       "2209WAF"
        Modeline "1680x1050"  187.00  1680 1800 1976 2272  1050 1053 1059 1099
        Modeline "1680x1050"  174.00  1680 1800 1976 2272  1050 1053 1059 1096
        Modeline "1680x1050"  146.25  1680 1784 1960 2240  1050 1053 1059 1089
        HorizSync       30-83
        VertRefresh     56-75
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
        SubSection      "Display"
                Viewport        0 0
                Depth           24
                Modes   "1680x1050"     "1440x900"      "1360x768"      "1280x1024"
        EndSubSection
EndSection

 

Example B

I believe this was generated during the install, however it could have been generated by a dpkg-reconfigure -phigh xserver-xorg run.
Running lspci finds the following for this machine (which is running Ubuntu 10.04.1 LTS).
VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev b2) video card. This simple xorg.conf works for that machine. An older release of Ubuntu uses a simpler xorg.conf file. Go figure. I have not tried this in machine C which uses the same video card at the newest release of Ubuntu (last quarter of 2010, that is).

Section "Screen"
        Identifier      "Default Screen"
        DefaultDepth    24
        Option  "AddARGBGLXVisuals"     "True"
EndSection

Section "Module"
        Load    "glx"
EndSection

Section "Device"
        Identifier      "Default Device"
        Driver  "nvidia"
        Option  "NoLogo"        "True"
EndSection

Create a /etc/X11/org.conf file

At first glance the /etc/X11/org.conf is dense and confusing. But only till you have digested the content here. It is in fact a well organized file with a good layout scheme. This gives detail to the content and layout of xorg.conf. This is an older but still useful offical ubuntu page that has a good example (used here) to the content and layout of xorg.conf.

If you want to try a quick method that often has success try this command:
    /usr/bin/dpkg-reconfigure -phigh xserver-xorg .

If you need or just desire a manual creation of the file you should print out the example xorg.conf as a reference. You should have the information you collected (using the methods described under the ID Components tab) for the monitor and video card. For now if the mouse and keyboard (sorry pointing device and input device) are working correctly don't make changes for them.

Now cd /etc/X11 and make a backup of the file that exists. cp -p xorg.cong xorg.conf.0
Use an editor you are familar with and open up xorg.conf. Carefully scan the entries in the file down to   Section "Monitor". You must now type in the values for the entries noted below.

  • VendorName
  • ModelName
  • HorizSync
  • VertRefresh

Use the xorg.conf example files for the correct layout and section lines.
Once that is done. It is easiest to reboot if you have any x-windows running in any mode, that is to say, you are working from a GUI desktop. On the other hand if you are in command line mode then run /usr/bin/startx to try to start x-windows. If this fails it will offer an interface that can also help to get an xorg.conf created that will bring up a GUI.

If after creating an xorg.conf file using the sync and mode values you discovered in the second step you still fail to get a good resolution, you may need to add Modeline entries.

  • Calculate them; here, here, or here -- I don't know how well these works.
  • Even when you have a failure doing changes to xorg.cont, Examine the xorg log (/var/log/Xorg.<number>.log.
    There can be Modelines that will help you get the highest resolution for the monitor.
    You can grep for them; grep Modelines Xorg.*.log in /var/log/

These can be particularly tricky too. Be careful. You could damage a monitor and/or a video card with Modeline settings that are too far off.

You might get it the first time. Look though dmesg output again, what you just did may have left some new clues. Including so data to modelines. Don't give up. It has taken me several tries to get a workable resolution, especially on a laptop or on the newer wide screen monitors. Persevere and keep trying, any set up can eventually be configured for use.

Last Updated: 2/8/17