If you have a question not listed here, don't post your question here, please use the bugzilla or the mailing list.

Server doesn't start and generates an error message

Error messages that don't immediately lead to a fatal server error (and the termination of the server) are marked in the log file by a (EE) at the beginning of the line. An error that leads to immediate server termination usually prints the line Fatal server error: followed by some explanation.

I keep getting the error message: could not open default font 'fixed'

This was once by far the most popular Frequently Asked Question. It should no longer be seen on any recent X server release since the required fonts are now builtin to libXfont. The remaining answer mostly applies to old X server versions.

To run X you need at least the font 'fixed' and 'cursor' to display a cursor image and be able to print meaningful error messages. If these fonts are not present the server doesn't start. My Xserver refuses to start and gives me the error message:

Fatal server error:
could not open default font 'fixed'
When reporting a problem related to a server crash, please send
the full server output, not just the last messages.
This can be found in the log file "/var/log/Xorg.0.log".
Please report problems to xorg@lists.freedesktop.org.

There may be different reasons for this:

Somewhere (pretty much at the beginning of the log) there is a message:

 Could not init font path element unix/:7100, removing from list!

This message tells that the Xserver is trying to contact a font server which appearantly isn't running. So you need to get your font server up and running before you start X. How this is done depends heavily on the OS and/or the distribution you use. Please contact your vendor support on how to do this!
Please note: The use of the font server xfs is deprecated due to several bugs in it. It is recommended that the Xserver loads the fonts directly. To do so add at least the lines:

    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath   "/usr/X11R6/lib/X11/fonts/CID/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"

to the "Files" section of your xorg.conf file.

The Debian package xfonts-base puts these fonts in /usr/share/fonts/X11. If this is the package you are using, the FontPaths should instead be

    Fontpath   "/usr/share/fonts/X11/misc"
    FontPath   "/usr/share/fonts/X11/Type1/"
    FontPath   "/usr/share/fonts/X11/75dpi/"
    FontPath   "/usr/share/fonts/X11/100dpi/"

There is also a possibility that the [fontpath]/misc/fonts.alias file is missing. This can cause the X server to not find the alias of 'fixed' to whatever is the actual fixed font.

   fixed -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1

  • If you see a messages like:
(WW) The directory "/usr/X11R6/lib/X11/fonts/100dpi" does not exist.
 Entry deleted from font path.

it means that this font path element either does not exist or isn't readable. Normally it is no problem if some font path elements listed in your xorg.conf are missing. However if /usr/X11R6/lib/X11/fonts/misc/ is missing the cursor and the fixed fonts are missing, too, therefore the server cannot start. Therefore please make sure that this directory exists and is readable. To have a good selection of standard fonts you should have at least the directories listed above. If you need non-latin character sets more fonts may be required.

  • Please also check for messages like:
 (WW) `fonts.dir' not found (or not valid) in "/usr/X11R6/lib/X11/fonts/local/"\
  Entry deleted from font path.
  (Run 'mkfontdir' on "/usr/X11R6/lib/X11/fonts/local/").
 Could not init font path element /usr/X11R6/lib/X11/fonts/misc/, removing from\

These tell you that the fonts were probably not installed correctly. Please do as suggested and run

    mkfontdir /usr/X11R6/lib/X11/fonts/local/

Please replace /usr/X11R6/lib/X11/fonts/local/ with the directories listed in your log file. You should do this for every directory listed.

If adjusting the paths in the xorg.conf file didn't fix it, try the following. It essentially rebuilds the fonts.dir and fonts.scale files and force refreshes the cache.

    cd /usr/share/fonts/misc
    mkfontscale .
    mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large .
    /usr/bin/fc-cache -f

I keep getting the message: "kernel module version is 1.1.1 but 1.3.1 or later is preferred."

Your DRM kernel driver version is older than the one desired by your Xorg driver. You should get a later DRM module version.
If you are using a distribution and X and your kernel were shipped by your distribution vendor you should contact your vendor support to find out how to fix this problem.
If you've built X and/or the kernel yourself you should make sure the kernel is recent enough.

I keep getting the message: "AddScreen/ScreenInit failed for driver 0"

You get an error message like:

(EE) R128(0): (Ron = 12288) + (Rloop = 17) >= (Roff = 12012)
Fatal server error:
AddScreen/ScreenInit failed for driver 0

This kind of problem typically occurs when you're using a big monitor with an old graphics card. You can solve it by deleting some of the highest resolutions of the deepest colour mode in the Screen section of your xorg.conf, or even the whole last Display subsection.

I keep getting the message: "failed to initialize core devices"

You get an error message like:

(EE) xf86OpenSerial: Cannot open device Logitech
 No such file or directory.
(EE) Mouse1: cannot open input device
(EE) PreInit failed for input device "Mouse1"
(II) UnloadModule: "mouse"
(II) Keyboard "Keyboard1" handled by legacy driver
(WW) No core pointer registered
No core pointer
Fatal server error:
failed to initialize core devices

The message xf86OpenSerial: Cannot open device Logitech tells you that the input device 'Logitech' cannot be opened. The next line tells you why: No such file or directory. There is no such device. Device names usually start with /dev/. The device name itself depends on the device you use, your OS and the distribution you use. Usually there os a symlink from /dev/mouse to the correct device. If you are using a distribution it usually comes with a configuration tool for X, so you may just want to rerun the configuration tool to correct the setup.
Please note: Usually the server refuses to start if there is no core pointer device. You can change this by adding the line:
Option "AllowMouseOpenFail" "1"
to the ServerFlags section of your xorg.conf.

Note: Be sure you have either hotplug or udev installed. If you don't, you will have problems detecting mice and video hardware.

I keep getting the message: "Server is already active for display 0"

You get an error message like:

Fatal server error:
Server is already active for display 0
 If this server is no longer running, remove /tmp/.X0-lock
 and start again.

The number denotes the display number (in this case 0). This number needs to be unique on the system, so you cannot run two servers on one system with identical display numbers. This message indicates that there is already a server with this number running on the system. You can verify this by running

 ps aux | grep `cat /tmp/.X0-lock`

If you see an output like:

root  2283  0.5  5.1 27796 6536 ?    S  Apr21  59:03 [X]

it indicates that there is indeed an Xserver running under this PID. To start a second server on the same system you have to give it a different dislay number. If you start your servers using startx you can do

startx -- :1

to start a server with display number 1. If you are sure there is no other server running on your system and above ps command indicates that no server with this PID is running, you should remove the file /tmp/.X0-lock by doing (as 'root'):

rm -rf /tmp/.X0-lock

I keep getting the message: "Cannot establish any listening sockets..."

You get an error message like:

_XSERVTransSocketINETCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
Fatal server error:
Cannot establish any listening sockets - Make sure an X server isn't already running

This problem is very similar to the previous one. You will get this message possibly because the lock file was removed somehow or some other program which doesn't create a lock file is already listening on this port. You can check this by doing a netstat -ln. Xservers usually listen at tcp port 6000+, therefore if you have started your Xserver with the command line option :1 it will be listening on port 6001.
Please check the article above for further information.

I keep getting the message "Unable to load required base modules, Exiting..."

You get an error message like:

(II) Loading /usr/X11R6/lib/modules/libpcidata.a
(II) Module pcidata: vendor="The X.Org Foundation"
 compiled for 6.7.0, module version = 1.0.0
 ABI class: X.Org Video Driver, version 0.6
Fatal server error:
Unable to load required base modules, Exiting...

This means that the server has problems loading a module. The message immediately above tells you which module it was. The most likely cause is that the module doesn't exist. You may therefore try to reinstall your Xserver modules.

I keep getting the message: "no screens found"

This is a very general message telling you that something went wrong and there is no screen left which the server can successfully drive. Usually you'll see another error message describing what went wrong in more detail:

Message: "No devices detected"

You get an error message like:

(EE) No devices detected.
Fatal server error:
no screens found

It is very likely that your xorg.conf file doesn't contain the correct driver(s) for the chipset(s) in your system or that your chipset isn't supported by any of the drivers.
You can check for the detected devices in the log file (in most cases /var/log/Xorg.0.log) by looking for lines like:
(--) PCI:*(1:0:0) Neomagic Corporation NM2200 [MagicGraph 256AV] rev 32, Mem @ 0xfd000000/24, 0xfe800000/22, 0xfec00000/20
In this example the active video device (the one with the *) is a Neomagic NM2200 video chip. In order to get this chipset to work you'd have to use the neomagic driver.
If you are using a distribution you should rerun its configuration tool. If there is no such tool, or if it keeps configuring your Xserver wrong you may want to try xorgcfg, the graphical tool shipped with Xorg. You can also let the server generate a config file: as root just run X -configure.
Please note: If you appear to use the correct driver and you still keep getting this message it is very likely that your chipset isn't supported (yet). In this case you may try the vesa driver or - if this doesn't work - the vga driver. However both are entirely unaccellerated.

Message: "Screen(s) found, but none have a usable configuration.

You get an error message:

(EE) Screen(s) found, but none have a usable configuration.
Fatal server error:
no screens found

In most cases this means there are no video modes available for your configuration. Each entry in the list of specified or default video modes gets checked if it lies withing the limit or the hardware: if it lies within the sync range specified or probed for the monitor, if it will work with the memory available on the video card or if the pixel clock lies within the range supported by the chipsets. There are many more limits. For each rejected mode you can see in the log file the reason for rejection:

(II) VGA(0): Not using default mode "320x200" (vrefresh out of range)
(II) VGA(0): Not using default mode "720x400" (insufficient memory for mode)
(II) VGA(0): Not using default mode "360x200" (hsync out of range)

In most cases the monitor ranges are the reason why your modes where rejected. Please try to extend these ranges carefully until you get a working mode. Please note: on older monitors you need to be careful extending the ranges as it can be easily destroyed. There may be other reasons why you get this message.

  • If the specified depth is not supported with your hardware. In this case try depth 8, or if you
  • are using the vga driver even depth 4.
    • If you specified a combination of options the driver cannot handle.
    • If loading of a required sub module wasn't successful. In this case you'll get a message that the loading failed. Please try to investigate, why. The message may give you a clue: you may be using the wrong version of the module, or the file may not exist.

Message: "Unable to locate/open config file"

You are getting the message:

(EE) Unable to locate/open config file
(EE) Error from xf86HandleConfigFile()

This means that the Xserver cannot find a configuration file because it has not been properly configured. Please check FAQMiscellaneous for information how to configure your Xserver.
Another reason for this error may be that you have created a configuration file but it is not in the correct location. The Xserver checks for configuration files at different locations. The usual locations are: /etc/X11/xorg.conf or /etc/X11/XF86Config-4.
Another reason for this message may be that your Xserver cannot read the file because the server binary has the wrong permission. On UN*X like systems the server is usually owned by root and runs with the SUID bit set so that it runs with root privileges even if started by an ordinary user. Therefore it should be able to open the configuration file regardless of who owns it or of its permissions. Please check "How do I check if my server bianry has the correct permissions?" on the FAQMiscellaneous page for futher information

Message: "Error from xf86HandleConfigFile()"

You are getting the message:

(EE) Unable to locate /open config file
(EE) Error from xf86HandleConfigFile()
Fatal server error
no screens found

This indicates that you have a problem with your config file. It either doesn't exist, in which case you'll additionally see the message:

(EE) Unable to locate /etc/X11/xorg.conf config file

or your config file contains a typo. In this case you see the message:

(EE) Problem parsing the config file

You are even told where the error was:

Parse error on line 3 of section ServerLayout in file /etc/X11/xorg.conf
                  "Idntifier" is not a valid keyword in this section.

You can then either correct the config file or regenerate the config file. How to do this is described here.