nightmorph 10/08/29 03:39:55 Modified: xorg-config.xml Log: rewrite X guide for KMS, open-source drivers, and whatnot. inspired by bug 328001.
Revision Changes Path 1.40 xml/htdocs/doc/en/xorg-config.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/xorg-config.xml?rev=1.40&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/xorg-config.xml?rev=1.40&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/xorg-config.xml?r1=1.39&r2=1.40 Index: xorg-config.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/xorg-config.xml,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- xorg-config.xml 23 May 2010 21:31:50 -0000 1.39 +++ xorg-config.xml 29 Aug 2010 03:39:55 -0000 1.40 @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xorg-config.xml,v 1.39 2010/05/23 21:31:50 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xorg-config.xml,v 1.40 2010/08/29 03:39:55 nightmorph Exp $ --> <guide> <title>The X Server Configuration HOWTO</title> @@ -22,8 +22,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>1.29</version> -<date>2010-05-23</date> +<version>2</version> +<date>2010-08-28</date> <chapter> <title>What is the X Window Server?</title> @@ -34,8 +34,8 @@ <p> The average user may be frightened at the thought of having to type in commands. Why wouldn't he be able to point and click his way through the freedom provided -by Gentoo (and Linux in general)? Well, *big smile*, of course you are able to -do this. :-) Linux offers a wide variety of flashy user interfaces and +by Gentoo (and Linux in general)? Well, of course you are able to +do this! Linux offers a wide variety of flashy user interfaces and environments which you can install on top of your existing installation. </p> @@ -88,15 +88,26 @@ <chapter> <title>Installing Xorg</title> <section> -<title>Kernel configuration</title> +<body> + +<p> +Before you can install Xorg, you need to prepare your system for it. First, +we'll set up the kernel to support input devices and video cards. Then we'll +prepare <path>/etc/make.conf</path> so that the right drivers and Xorg packages +are built and installed. +</p> + +</body> +</section> +<section> +<title>Input driver support</title> <body> <p> By default, Xorg uses <c>evdev</c>, a generic input driver. You'll need to activate support for <c>evdev</c> by making a change to your kernel -configuration. (Read the -<uri link="/doc/en/kernel-config.xml">Kernel Configuration Guide</uri> if you -don't know how to setup your kernel.) +configuration. Read the <uri link="/doc/en/kernel-config.xml">Kernel +Configuration Guide</uri> if you don't know how to setup your kernel. </p> <pre caption="Enabling evdev in the kernel"> @@ -108,29 +119,149 @@ </body> </section> <section> +<title>Kernel modesetting</title> +<body> + +<p> +Modern open-source video drivers rely on kernel modesetting (KMS). KMS provides +an improved graphical boot with less flickering, faster user switching, a +built-in framebuffer console, seamless switching from the console to Xorg, and +other features. KMS conflicts with legacy framebuffer drivers, which must remain +<b>disabled</b> in your kernel configuration. +</p> + +<p> +First, prepare your kernel for KMS. You need to do this step regardless of which +Xorg video driver you're using. +</p> + +<pre caption="Configuring framebuffers"> +Device Drivers ---> + Graphics support ---> + Support for frame buffer devices ---> + <comment>(Disable all drivers, including VGA, Intel, nVidia, and ATI)</comment> + + <comment>(Further down, enable basic console support. KMS uses this.)</comment> + Console display driver support ---> + <*> Framebuffer Console Support +</pre> + +<p> +Next, configure your kernel to use the proper KMS driver for your video card. +Intel, nVidia, and ATI are the most common cards, so follow code listing for +your card below. +</p> + +<p> +For Intel cards: +</p> + +<pre caption="Intel settings"> +Device Drivers ---> + Graphics support ---> + /dev/agpgart (AGP Support) ---> + <*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support + Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> + <*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) + i915 driver + [*] Enable modesetting on intel by default +</pre> + +<p> +For nVidia cards: +</p> + +<pre caption="nVidia settings"> +<comment>(Enable DRM)</comment> +Device Drivers ---> + Graphics support ---> + <*> Direct Rendering Manager ---> + +<comment>(Nouveau is currently in the Staging drivers section)</comment> +Device Drivers ---> + Staging drivers ---> + [ ] Exclude Staging drivers from being built + <*> Nouveau (nVidia) cards +</pre> + +<p> +For newer ATI cards (<uri link="/doc/en/ati-faq.xml">RadeonHD 2000 and +up</uri>), you will need to emerge <c>radeon-ucode</c>. Once you have installed +<c>radeon-ucode</c>, configure your kernel as shown: +</p> + +<pre caption="ATI settings"> +<comment>(Setup the kernel to use the radeon-ucode firmware)</comment> +Device Drivers ---> + Generic Driver Options ---> + [*] Include in-kernel firmware blobs in kernel binary + <comment># RadeonHD 2000, 3000, and 4000 series cards:</comment> + (radeon/R600_rlc.bin radeon/R700_rlc.bin) External firmware blobs + <comment># RadeonHD 5000, a.k.a Evergreen, and newer cards:</comment> + (radeon/CEDAR_me.bin radeon/CEDAR_pfp.bin radeon/CEDAR_rlc.bin + radeon/CYPRESS_me.bin radeon/CYPRESS_pfp.bin radeon/CYPRESS_rlc.bin + radeon/JUNIPER_me.bin radeon/JUNIPER_pfp.bin radeon/JUNIPER_rlc.bin + radeon/REDWOOD_me.bin radeon/REDWOOD_pfp.bin + radeon/REDWOOD_rlc.bin) External firmware blobs + (/lib/firmware/) Firmware blobs root directory + +<comment>(Enable Radeon KMS support)</comment> +Device Drivers ---> + Graphics support ---> + <*> Direct Rendering Manager ---> + <*> ATI Radeon + [*] Enable modesetting on radeon by default +</pre> + +<note> +Old Radeon cards (X1900 series and older) don't need the <c>radeon-ucode</c> +package or any firmware configuration. Just enable the Direct Rendering Manager +and ATI Radeon modesetting. +</note> + +<p> +Now that you're done setting up KMS, continue with preparing +<path>/etc/make.conf</path> in the next section. +</p> + +</body> +</section> +<section> <title>make.conf configuration</title> <body> <p> -Before you install Xorg, you have to configure two important variables in the -<path>/etc/make.conf</path> file. +Now that your kernel is prepared, you have to configure two important variables +in the <path>/etc/make.conf</path> file before you can install Xorg. </p> <p> The first variable is <c>VIDEO_CARDS</c>. This is used to set the video drivers -that you intend to use and is usually based on the kind and brand of card you -have. The most common settings are <c>nvidia</c> for Nvidia cards or -<c>fglrx</c> for ATI Radeon cards. Those are the proprietary drivers from Nvidia -and ATI respectively. If you would like to use the open source nVidia driver, -use <c>nv</c> rather than <c>nvidia</c> in the variable, but bear in mind that -using this driver means no 3D acceleration at all. The free <c>radeon</c> and -<c>radeonhd</c> drivers are available for ATI cards, and are more or less the -equal of the proprietary <c>fglrx</c> driver. The <c>intel</c> driver may be -used for desktops or laptops with common Intel integrated graphics chipsets. -<c>VIDEO_CARDS</c> may contain more than one driver, in this case list of them -should be separated with spaces. +that you intend to use and is usually based on the kind of video card you have. +The most common settings are <c>nouveau</c> for nVidia cards or <c>radeon</c> +for ATI cards. Both have actively developed, well-supported open-source +drivers. </p> +<note> +You may also try the proprietary drivers from nVidia and ATI, <c>nvidia</c> and +<c>fglrx</c> respectively. However, setting up the proprietary drivers is +beyond the scope of this guide. Please read the <uri +link="/doc/en/nvidia-guide.xml">Gentoo Linux nVidia Guide</uri> and <uri +link="/doc/en/ati-faq.xml">Gentoo Linux ATI FAQ</uri>. If you don't know which +drivers you should choose, refer to these guides for more information. +</note> + +<p> +The <c>intel</c> driver may be used for desktops or laptops with common Intel +integrated graphics chipsets. +</p> + +<note> +<c>VIDEO_CARDS</c> may contain more than one driver, each separated with a +space. +</note> + <p> The second variable is <c>INPUT_DEVICES</c> and is used to determine which drivers are to be built for input devices. In most cases setting it to @@ -147,43 +278,34 @@ <pre caption="Sample make.conf entries"> <comment>(For mouse, keyboard, and Synaptics touchpad support)</comment> INPUT_DEVICES="evdev synaptics" -<comment>(For Nvidia cards)</comment> -VIDEO_CARDS="nvidia" +<comment>(For nVidia cards)</comment> +VIDEO_CARDS="nouveau" <comment>(OR, for ATI Radeon cards)</comment> VIDEO_CARDS="radeon" </pre> -<note> -More instructions on how to configure nVidia and ATI cards can be found in the -<uri link="/doc/en/nvidia-guide.xml">Gentoo Linux nVidia Guide</uri> and in the -<uri link="/doc/en/ati-faq.xml">Gentoo Linux ATI FAQ</uri>. If you don't know -which drivers you should choose, refer to these guides for more information. -</note> - <p> If the suggested settings don't work for you, you should run <c>emerge -pv -xorg-server</c>, check all the options available and choose those which apply to +xorg-drivers</c>, check all the options available and choose those which apply to your system. This example is for a system with a keyboard, mouse, Synaptics touchpad, and a Radeon video card. </p> <pre caption="Displaying all the driver options available"> -# <i>emerge -pv xorg-server</i> +# <i>emerge -pv xorg-drivers</i> These are the packages that would be merged, in order: Calculating dependencies... done! -[ebuild R ] x11-base/xorg-server-1.6.3.901-r2 USE="hal nptl xorg -debug --dmx -ipv6 -kdrive -minimal -sdl -tslib" 0 kB -[ebuild R ] x11-base/xorg-drivers-1.6 INPUT_DEVICES="evdev synaptics --acecad -aiptek -citron -elographics -fpit -hyperpen -joystick -keyboard -mouse --mutouch -penmount -tslib -virtualbox -vmmouse -void -wacom" +[ebuild R ] x11-base/xorg-drivers-1.8 INPUT_DEVICES="evdev synaptics +-acecad -aiptek -elographics% -fpit% -joystick -keyboard -mouse -penmount -tslib +-virtualbox -vmmouse -void -wacom" VIDEO_CARDS="radeon -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx -(-geode) -glint -i128 (-i740) (-impact) (-imstt) -intel -mach64 -mga -neomagic -(-newport) -nv -nvidia -r128 -radeonhd -rendition -s3 -s3virge -savage +(-geode) -glint -i128 (-i740) (-impact) -intel -mach64 -mga -neomagic (-newport) +-nouveau -nv -nvidia -r128 -radeonhd -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) -(-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l (-vermilion) -vesa -via --virtualbox -vmware (-voodoo) (-xgi)" 0 kB +(-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l -vesa -via -virtualbox +-vmware (-voodoo) (-xgi)" 0 kB </pre> <p> @@ -237,8 +359,8 @@ <body> <p> -Recent X server versions are designed to work out-of-the-box, with no need to -manually edit Xorg's configuration files. +The X server is designed to work out-of-the-box, with no need to manually edit +Xorg's configuration files. </p> <p> @@ -432,7 +554,7 @@ <p> Now try <c>startx</c> to start up your X server. <c>startx</c> is a script -that executes an <e>X session</e>, that is, it starts the X servers and some +that executes an <e>X session</e>, that is, it starts the X server and some graphical applications on top of it. It decides which applications to run using the following logic: </p> @@ -446,10 +568,11 @@ Otherwise, it will read the value of the XSESSION variable and will execute one of the sessions available in <path>/etc/X11/Sessions/</path> accordingly. You can set the value of XSESSION in - <path>/etc/env.d/90xsession</path> to make it a default for all the users on - the system. For example, as root, run <c>echo XSESSION="Xfce4" > + <path>/etc/env.d/90xsession</path> to make it a default for all the users + on the system. For example, as root, run <c>echo XSESSION="Xfce4" > /etc/env.d/90xsession</c>. This will create the <path>90xsession</path> file - and set the default X session to Xfce4. + and set the default X session to <uri + link="/doc/en/xfce-config.xml">Xfce</uri>. </li> </ul> @@ -458,7 +581,7 @@ </pre> <p> -You can kill the X session by using the Ctrl-Alt-Backspace combination. This +You can kill the X session by using the Ctrl-Alt-Backspace key combination. This will, however, make X exit disgracefully -- something that you might not always want. </p> @@ -512,24 +635,25 @@ </warn> <p> -Now let us change the resolutions. In the next example from -<path>/etc/X11/xorg.conf</path> we add the <c>Modes</c> lines and the -<c>DefaultDepth</c> so that our X server starts with 24 bits at 1440x900 by -default. Don't mind the given strings -- they are examples and will most likely -differ from the settings on your system. -</p> - -<pre caption="Changing the Screen section in /etc/X11/xorg.conf"> -Section "Screen" - Identifier "Default Screen" - Device "RadeonHD 4550" - Monitor "Generic Monitor" - <i>DefaultDepth 24</i> - <comment># Skipping some text to improve readability</comment> - SubSection "Display" - Depth 24 - <i>Modes "1440x900"</i> - EndSubSection +Now let us change the resolution. In the next example from +<path>/etc/X11/xorg.conf</path> we add the <c>PreferredMode</c> line so that our +X server starts at 1440x900 by default. Don't mind the given strings -- they are +examples and will most likely differ from the settings on your system. However, +the <c>Option</c> in the <c>Device</c> section must match the name of your +monitor (<c>DVI-0</c>), which can be obtained by running <c>xrandr</c>. You'll +need to <c>emerge xrandr</c> just long enough to get this information. The +argument after the monitor name (in the <c>Device</c> section) must match the +<c>Identifier</c> in the <c>Monitor</c> section. +</p> + +<pre caption="Changing the Monitor section in /etc/X11/xorg.conf"> +Section "Device" + Identifier "RadeonHD 4550" + Option "Monitor-DVI-0" "DVI screen" +EndSection +Section "Monitor" + Identifier "DVI screen" + Option "PreferredMode" "1440x900" EndSection </pre> @@ -573,8 +697,8 @@ <p> Run <c>startx</c> and be happy about the result. Congratulations, you now (hopefully) have a working Xorg on your system. The next step is to install a -useful window manager (or even a desktop environment) such as KDE or GNOME, but -that's not part of this guide. +useful window manager or desktop environment such as KDE, GNOME, or +Xfce, but that's not part of this guide. </p> </body> @@ -625,9 +749,9 @@ </p> <p> -If you're upgrading to xorg-server-1.6 from an earlier version, then be sure to -read the <uri -link="/proj/en/desktop/x/x11/xorg-server-1.6-upgrade-guide.xml">migration +If you're upgrading to <c>xorg-server</c> 1.8 from an earlier version, then be +sure to read the <uri +link="/proj/en/desktop/x/x11/xorg-server-1.8-upgrade-guide.xml">migration guide</uri>. </p>
