| 1 | <?xml version='1.0' encoding='UTF-8'?> |
1 | <?xml version='1.0' encoding='UTF-8'?> |
| 2 | |
|
|
| 3 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xorg-config.xml,v 1.8 2005/02/14 09:26:19 swift Exp $ --> |
|
|
| 4 | |
|
|
| 5 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
2 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
|
|
3 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xorg-config.xml,v 1.34 2009/12/17 04:41:24 nightmorph Exp $ --> |
| 6 | |
4 | |
| 7 | <guide link="xorg-config.xml"> |
5 | <guide> |
| 8 | |
|
|
| 9 | <title>The X Server Configuration HOWTO</title> |
6 | <title>The X Server Configuration HOWTO</title> |
| 10 | |
7 | |
| 11 | <author title="Author"> |
8 | <author title="Author"> |
| 12 | <mail link="swift@gentoo.org">Sven Vermeulen</mail> |
9 | <mail link="swift@gentoo.org">Sven Vermeulen</mail> |
| 13 | </author> |
10 | </author> |
|
|
11 | <author title="Author"> |
|
|
12 | <mail link="nightmorph"/> |
|
|
13 | </author> |
| 14 | |
14 | |
| 15 | <abstract> |
15 | <abstract> |
| 16 | Xorg is the X Window server which allows users to have a graphical |
16 | Xorg is the X Window server which allows users to have a graphical |
| 17 | environment at their fingertips. This HOWTO explains what Xorg is, how to |
17 | environment at their fingertips. This HOWTO explains what Xorg is, how to |
| 18 | install it and what the various configuration options are. |
18 | install it and what the various configuration options are. |
| 19 | </abstract> |
19 | </abstract> |
| 20 | |
20 | |
| 21 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
21 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
| 22 | <!-- See http://creativecommons.org/licenses/by-sa/2.0 --> |
22 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
| 23 | <license/> |
23 | <license/> |
| 24 | |
24 | |
| 25 | <version>1.7</version> |
25 | <version>1.24</version> |
| 26 | <date>2005-02-07</date> |
26 | <date>2009-12-16</date> |
| 27 | |
27 | |
| 28 | <chapter> |
28 | <chapter> |
| 29 | <title>What is the X Window Server?</title> |
29 | <title>What is the X Window Server?</title> |
| 30 | <section> |
30 | <section> |
| 31 | <title>Graphical vs Command-Line</title> |
31 | <title>Graphical vs Command-Line</title> |
| … | |
… | |
| 33 | |
33 | |
| 34 | <p> |
34 | <p> |
| 35 | The average user may be frightened at the thought of having to type in commands. |
35 | The average user may be frightened at the thought of having to type in commands. |
| 36 | Why wouldn't he be able to point and click his way through the freedom provided |
36 | Why wouldn't he be able to point and click his way through the freedom provided |
| 37 | by Gentoo (and Linux in general)? Well, *big smile*, of course you are able to |
37 | by Gentoo (and Linux in general)? Well, *big smile*, of course you are able to |
| 38 | do this :-) Linux offers a wide variety of flashy user interfaces and |
38 | do this. :-) Linux offers a wide variety of flashy user interfaces and |
| 39 | environments which you can install on top of your existing installation. |
39 | environments which you can install on top of your existing installation. |
| 40 | </p> |
40 | </p> |
| 41 | |
41 | |
| 42 | <p> |
42 | <p> |
| 43 | This is one of the biggest surprises new users come across: a graphical user |
43 | This is one of the biggest surprises new users come across: a graphical user |
| … | |
… | |
| 46 | a powerful tool that fully enables the graphical abilities of your workstation. |
46 | a powerful tool that fully enables the graphical abilities of your workstation. |
| 47 | </p> |
47 | </p> |
| 48 | |
48 | |
| 49 | <p> |
49 | <p> |
| 50 | As standards are important, a standard for drawing and moving windows on a |
50 | As standards are important, a standard for drawing and moving windows on a |
| 51 | screen, interacting with the user through mouse and keyboard and other basic yet |
51 | screen, interacting with the user through mouse, keyboard and other basic, yet |
| 52 | important aspects has been created and named the <e>X Window System</e>, |
52 | important aspects has been created and named the <e>X Window System</e>, |
| 53 | commonly abbreviated as <e>X11</e> or just <e>X</e>. It is used on Unix, Linux |
53 | commonly abbreviated as <e>X11</e> or just <e>X</e>. It is used on Unix, Linux |
| 54 | and Unix-like operating systems throughout the world. |
54 | and Unix-like operating systems throughout the world. |
| 55 | </p> |
55 | </p> |
| 56 | |
56 | |
| 57 | <p> |
57 | <p> |
| 58 | The application that provides Linux users with the ability to run graphical |
58 | The application that provides Linux users with the ability to run graphical |
| 59 | user interfaces and that uses the X11 standard is Xorg-X11, a fork of |
59 | user interfaces and that uses the X11 standard is Xorg-X11, a fork of |
| 60 | the XFree86 project. XFree86 has decided to use a license that might not be |
60 | the XFree86 project. XFree86 has decided to use a license that might not be |
| 61 | compatible with the GPL license; the use of Xorg is therefore recommended. |
61 | compatible with the GPL license; the use of Xorg is therefore recommended. |
| 62 | The official Portage tree does not provide an XFree86 package anymore. |
62 | The official Portage tree does not provide an XFree86 package anymore. |
| 63 | </p> |
63 | </p> |
| 64 | |
64 | |
| 65 | </body> |
65 | </body> |
| 66 | </section> |
66 | </section> |
| … | |
… | |
| 68 | <title>The X.org Project</title> |
68 | <title>The X.org Project</title> |
| 69 | <body> |
69 | <body> |
| 70 | |
70 | |
| 71 | <p> |
71 | <p> |
| 72 | The <uri link="http://www.x.org">X.org</uri> project created and |
72 | The <uri link="http://www.x.org">X.org</uri> project created and |
| 73 | maintains a freely redistributable open-source implementation of the X11 system. |
73 | maintains a freely redistributable, open-source implementation of the X11 |
| 74 | It is an open source X11-based desktop infrastructure. |
74 | system. It is an open source X11-based desktop infrastructure. |
| 75 | </p> |
75 | </p> |
| 76 | |
76 | |
| 77 | <p> |
77 | <p> |
| 78 | Xorg provides an interface between your hardware and the graphical software |
78 | Xorg provides an interface between your hardware and the graphical software |
| 79 | you want to run. Besides that, Xorg is also fully network-aware, meaning you |
79 | you want to run. Besides that, Xorg is also fully network-aware, meaning you |
| 80 | are able to run an application on one system while viewing it on a different |
80 | are able to run an application on one system while viewing it on a different |
| 81 | one. |
81 | one. |
| 82 | </p> |
82 | </p> |
| 83 | |
83 | |
| 84 | </body> |
84 | </body> |
| 85 | </section> |
85 | </section> |
| 86 | </chapter> |
86 | </chapter> |
|
|
87 | |
| 87 | <chapter> |
88 | <chapter> |
| 88 | <title>Installing Xorg</title> |
89 | <title>Installing Xorg</title> |
| 89 | <section> |
90 | <section> |
| 90 | <title>Using emerge</title> |
91 | <title>Kernel configuration</title> |
|
|
92 | <body> |
|
|
93 | |
|
|
94 | <p> |
|
|
95 | By default, Xorg uses <c>evdev</c>, a generic input driver. You'll need to |
|
|
96 | activate support for <c>evdev</c> by making a change to your kernel |
|
|
97 | configuration. (Read the |
|
|
98 | <uri link="/doc/en/kernel-config.xml">Kernel Configuration Guide</uri> if you |
|
|
99 | don't know how to setup your kernel.) |
|
|
100 | </p> |
|
|
101 | |
|
|
102 | <pre caption="Enabling evdev in the kernel"> |
|
|
103 | Device Drivers ---> |
|
|
104 | Input device support ---> |
|
|
105 | <*> Event interface |
|
|
106 | </pre> |
|
|
107 | |
| 91 | <body> |
108 | </body> |
|
|
109 | </section> |
|
|
110 | <section> |
|
|
111 | <title>make.conf configuration</title> |
|
|
112 | <body> |
| 92 | |
113 | |
|
|
114 | <p> |
|
|
115 | Before you install Xorg, you have to configure two important variables in the |
|
|
116 | <path>/etc/make.conf</path> file. |
| 93 | <p> |
117 | </p> |
| 94 | Enough chitchat, let's get to business shall we? To install Xorg, you just |
118 | |
| 95 | need to run <c>emerge xorg-x11</c>. Installing Xorg does take a while |
119 | <p> |
| 96 | though, so you might want to grab a snack while you are waiting. |
120 | The first variable is <c>VIDEO_CARDS</c>. This is used to set the video drivers |
|
|
121 | that you intend to use and is usually based on the kind and brand of card you |
|
|
122 | have. The most common settings are <c>nvidia</c> for Nvidia cards or |
|
|
123 | <c>fglrx</c> for ATI Radeon cards. Those are the proprietary drivers from Nvidia |
|
|
124 | and ATI respectively. If you would like to use the open source nVidia driver, |
|
|
125 | use <c>nv</c> rather than <c>nvidia</c> in the variable, but bear in mind that |
|
|
126 | using this driver means no 3D acceleration at all. The free <c>radeon</c> and |
|
|
127 | <c>radeonhd</c> drivers are available for ATI cards, and are more or less the |
|
|
128 | equal of the proprietary <c>fglrx</c> driver. The <c>intel</c> driver may be |
|
|
129 | used for desktops or laptops with common Intel integrated graphics chipsets. |
|
|
130 | <c>VIDEO_CARDS</c> may contain more than one driver, in this case list of them |
|
|
131 | should be separated with spaces. |
|
|
132 | </p> |
|
|
133 | |
|
|
134 | <p> |
|
|
135 | The second variable is <c>INPUT_DEVICES</c> and is used to determine which |
|
|
136 | drivers are to be built for input devices. In most cases setting it to |
|
|
137 | <c>evdev</c> should work just fine. If you use alternative input |
|
|
138 | devices, such as a Synaptics touchpad for a laptop, be sure to add it to |
|
|
139 | <c>INPUT_DEVICES</c>. |
|
|
140 | </p> |
|
|
141 | |
|
|
142 | <p> |
|
|
143 | Now you should decide which drivers you will use and add necessary settings to |
|
|
144 | the <path>/etc/make.conf</path> file: |
|
|
145 | </p> |
|
|
146 | |
|
|
147 | <pre caption="Sample make.conf entries"> |
|
|
148 | <comment>(For mouse, keyboard, and Synaptics touchpad support)</comment> |
|
|
149 | INPUT_DEVICES="evdev synaptics" |
|
|
150 | <comment>(For Nvidia cards)</comment> |
|
|
151 | VIDEO_CARDS="nvidia" |
|
|
152 | <comment>(OR, for ATI Radeon cards)</comment> |
|
|
153 | VIDEO_CARDS="radeon" |
|
|
154 | </pre> |
|
|
155 | |
|
|
156 | <note> |
|
|
157 | More instructions on how to configure nVidia and ATI cards can be found in the |
|
|
158 | <uri link="/doc/en/nvidia-guide.xml">Gentoo Linux nVidia Guide</uri> and in the |
|
|
159 | <uri link="/doc/en/ati-faq.xml">Gentoo Linux ATI FAQ</uri>. If you don't know |
|
|
160 | which drivers you should choose, refer to these guides for more information. |
|
|
161 | </note> |
|
|
162 | |
|
|
163 | <p> |
|
|
164 | If the suggested settings don't work for you, you should run <c>emerge -pv |
|
|
165 | xorg-server</c>, check all the options available and choose those which apply to |
|
|
166 | your system. This example is for a system with a keyboard, mouse, Synaptics |
|
|
167 | touchpad, and a Radeon video card. |
|
|
168 | </p> |
|
|
169 | |
|
|
170 | <pre caption="Displaying all the driver options available"> |
|
|
171 | # <i>emerge -pv xorg-server</i> |
|
|
172 | |
|
|
173 | These are the packages that would be merged, in order: |
|
|
174 | |
|
|
175 | Calculating dependencies... done! |
|
|
176 | [ebuild R ] x11-base/xorg-server-1.6.3.901-r2 USE="hal nptl xorg -debug |
|
|
177 | -dmx -ipv6 -kdrive -minimal -sdl -tslib" 0 kB |
|
|
178 | [ebuild R ] x11-base/xorg-drivers-1.6 INPUT_DEVICES="evdev synaptics |
|
|
179 | -acecad -aiptek -citron -elographics -fpit -hyperpen -joystick -keyboard -mouse |
|
|
180 | -mutouch -penmount -tslib -virtualbox -vmmouse -void -wacom" |
|
|
181 | VIDEO_CARDS="radeon -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx |
|
|
182 | (-geode) -glint -i128 (-i740) (-impact) (-imstt) -intel -mach64 -mga -neomagic |
|
|
183 | (-newport) -nv -nvidia -r128 -radeonhd -rendition -s3 -s3virge -savage |
|
|
184 | -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) |
|
|
185 | (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l (-vermilion) -vesa -via |
|
|
186 | -virtualbox -vmware (-voodoo) (-xgi)" 0 kB |
|
|
187 | </pre> |
|
|
188 | |
|
|
189 | <p> |
|
|
190 | After setting all the necessary variables you can install the Xorg package. |
| 97 | </p> |
191 | </p> |
| 98 | |
192 | |
| 99 | <pre caption="Installing Xorg"> |
193 | <pre caption="Installing Xorg"> |
| 100 | # <i>emerge xorg-x11</i> |
194 | # <i>emerge xorg-server</i> |
| 101 | </pre> |
195 | </pre> |
| 102 | |
196 | |
|
|
197 | <note> |
|
|
198 | You could install the <c>xorg-x11</c> metapackage instead of the more |
|
|
199 | lightweight <c>xorg-server</c>. Functionally, <c>xorg-x11</c> and |
|
|
200 | <c>xorg-server</c> are the same. However, <c>xorg-x11</c> brings in many more |
|
|
201 | packages that you probably don't need, such as a huge assortment of fonts in |
|
|
202 | many different languages. They're not necessary for a working desktop. |
|
|
203 | </note> |
|
|
204 | |
| 103 | <p> |
205 | <p> |
| 104 | When the installation is finished, you might need to reinitialise some |
206 | When the installation is finished, you will need to re-initialise some |
| 105 | environment variables before you continue. Just run <c>env-update</c> followed |
207 | environment variables before you continue. Just run <c>env-update</c> followed |
| 106 | by <c>source /etc/profile</c> and you're all set. This doesn't harm your system |
208 | by <c>source /etc/profile</c> and you're all set. |
| 107 | in any way. |
|
|
| 108 | </p> |
209 | </p> |
| 109 | |
210 | |
| 110 | <pre caption="Reinitialising the environment variables"> |
211 | <pre caption="Re-initialising the environment variables"> |
| 111 | # <i>env-update</i> |
212 | # <i>env-update</i> |
| 112 | # <i>source /etc/profile</i> |
213 | # <i>source /etc/profile</i> |
| 113 | </pre> |
214 | </pre> |
| 114 | |
215 | |
| 115 | </body> |
216 | </body> |
| 116 | </section> |
217 | </section> |
| 117 | </chapter> |
218 | </chapter> |
|
|
219 | |
| 118 | <chapter> |
220 | <chapter> |
| 119 | <title>Configuring Xorg</title> |
221 | <title>Configuring Xorg</title> |
| 120 | <section> |
222 | <section> |
|
|
223 | <title>Using HAL</title> |
|
|
224 | <body> |
|
|
225 | |
|
|
226 | <p> |
|
|
227 | Recent X server versions are designed to work out-of-the-box, with no need to |
|
|
228 | manually configure Xorg's configuration files. |
|
|
229 | </p> |
|
|
230 | |
|
|
231 | <p> |
|
|
232 | You should first try <uri link="#using_startx">starting X</uri> without creating |
|
|
233 | <path>/etc/X11/xorg.conf</path>. |
|
|
234 | </p> |
|
|
235 | |
|
|
236 | <p> |
|
|
237 | If Xorg won't start (if there's something wrong with the screen, or with your |
|
|
238 | keyboard/mouse), then you can try fixing problems by using the right |
|
|
239 | configuration files. |
|
|
240 | </p> |
|
|
241 | |
|
|
242 | <p> |
|
|
243 | By default, Xorg uses HAL (Hardware Abstraction Layer) to detect and configure |
|
|
244 | devices such as keyboards and mice. |
|
|
245 | </p> |
|
|
246 | |
|
|
247 | <p> |
|
|
248 | HAL comes with many premade device rules, also called policies. These policy |
|
|
249 | files are available in <path>/usr/share/hal/fdi/policy/</path>. Just find a few |
|
|
250 | that suit your needs most closely and copy them to |
|
|
251 | <path>/etc/hal/fdi/policy/</path>. |
|
|
252 | </p> |
|
|
253 | |
|
|
254 | <impo> |
|
|
255 | Do not edit the files in <path>/usr/share/hal/fdi/</path>! Just copy the ones |
|
|
256 | you need, and edit them once they're placed in the proper <path>/etc</path> |
|
|
257 | location. |
|
|
258 | </impo> |
|
|
259 | |
|
|
260 | <p> |
|
|
261 | For example, to get a basic working keyboard/mouse combination, you could copy |
|
|
262 | the following files to <path>/etc/hal/fdi/policy/</path>: |
|
|
263 | </p> |
|
|
264 | |
|
|
265 | <pre caption="Using HAL policy files"> |
|
|
266 | # <i>cp /usr/share/hal/fdi/policy/10osvendor/10-input-policy.fdi /etc/hal/fdi/policy</i> |
|
|
267 | # <i>cp /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi /etc/hal/fdi/policy</i> |
|
|
268 | </pre> |
|
|
269 | |
|
|
270 | <p> |
|
|
271 | There are several other HAL policies in <path>/usr/share/hal/fdi/</path> that |
|
|
272 | may interest you, such as laptop configurations, storage device handling, power |
|
|
273 | management, and more. Just copy any of the policies to |
|
|
274 | <path>/etc/hal/fdi/policy/</path>. |
|
|
275 | </p> |
|
|
276 | |
|
|
277 | <p> |
|
|
278 | You can edit the policy files in <path>/etc/hal/fdi/policy</path> to your |
|
|
279 | liking. You may want to make a few tweaks or to expose additional |
|
|
280 | functionality. Let's go through an example of tweaking a HAL policy. |
|
|
281 | </p> |
|
|
282 | |
|
|
283 | <p> |
|
|
284 | One very convenient trick is to kill the X server entirely by pressing |
|
|
285 | Ctrl-Alt-Backspace. This is useful when your X server is malfunctioning, frozen, |
|
|
286 | etc. It's not as extreme as rebooting the whole machine with Ctrl-Alt-Del. |
|
|
287 | </p> |
|
|
288 | |
|
|
289 | <p> |
|
|
290 | Recent X server versions disabled this key combination by default. However, you |
|
|
291 | can reenable it by copying <path>10-x11-input.fdi</path> to |
|
|
292 | <path>/etc/hal/fdi/policy</path> and editing it. You'll need to add just one |
|
|
293 | line to the appropriate section, as shown below: |
|
|
294 | </p> |
|
|
295 | |
|
|
296 | <pre caption="Editing 10-x11-input.fdi"> |
|
|
297 | <comment>(Open the file in your preferred editor)</comment> |
|
|
298 | # <i>nano -w /etc/hal/fdi/policy/10-x11-input.fdi</i> |
|
|
299 | <comment>(Find the "input.keys" section)</comment> |
|
|
300 | <match key="info.capabilities" contains="input.keys"> |
|
|
301 | <comment>(Add the "terminate" merge string as shown)</comment> |
|
|
302 | <match key="info.capabilities" contains="input.keys"> |
|
|
303 | <merge key="input.x11_driver" type="string">keyboard</merge> |
|
|
304 | <i><merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge></i> |
|
|
305 | <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" |
|
|
306 | string="Linux"> |
|
|
307 | <merge key="input.x11_driver" type="string">evdev<merge> |
|
|
308 | </match> |
|
|
309 | </match> |
|
|
310 | </pre> |
|
|
311 | |
|
|
312 | <p> |
|
|
313 | There, now you have a handy way of killing an unresponsive X server. This is |
|
|
314 | useful when programs have frozen your display entirely, or when configuring and |
|
|
315 | tweaking your Xorg environment. Be careful when killing your desktop with this |
|
|
316 | key combination -- most programs really don't like it when you end them this |
|
|
317 | way, and you may lose some (or all) of what you were working on. |
|
|
318 | </p> |
|
|
319 | |
|
|
320 | <p> |
|
|
321 | Hopefully just working with the HAL policy files results in a working X desktop. |
|
|
322 | If Xorg still won't start, or there's some other problem, then you'll need to |
|
|
323 | manually configure <path>xorg.conf</path> as shown in the next section. |
|
|
324 | </p> |
|
|
325 | |
|
|
326 | </body> |
|
|
327 | </section> |
|
|
328 | <section> |
| 121 | <title>The xorg.conf File</title> |
329 | <title>The xorg.conf file</title> |
| 122 | <body> |
330 | <body> |
| 123 | |
331 | |
|
|
332 | <note> |
|
|
333 | Configuring <path>xorg.conf</path> should be seen as a "last resort" option. It |
|
|
334 | really desirable to run without one if possible, and to do all your |
|
|
335 | configuration via HAL policy files. If you still can't get a working |
|
|
336 | configuration, then read on. |
|
|
337 | </note> |
|
|
338 | |
| 124 | <p> |
339 | <p> |
| 125 | The configuration file of Xorg is called <path>xorg.conf</path> and it |
340 | The configuration file of Xorg is called <path>xorg.conf</path> and it resides |
| 126 | resides in <path>/etc/X11</path>. The Xorg-X11 package provides an example |
341 | in <path>/etc/X11</path>. Xorg provides an example configuration as |
| 127 | configuration as <path>/etc/X11/xorg.conf.example</path> which you can use to |
342 | <path>/etc/X11/xorg.conf.example</path> which you can use to create your own |
| 128 | create your own configuration. It is heavily commented, but if you are in need |
343 | configuration. It is heavily commented, but if you are in need of more |
| 129 | of more documentation regarding the syntax, don't hesitate to read the man page: |
344 | documentation regarding the syntax, don't hesitate to read the man page: |
| 130 | </p> |
345 | </p> |
| 131 | |
346 | |
| 132 | <pre caption="Reading the xorg.conf man page"> |
347 | <pre caption="Reading the xorg.conf man page"> |
| 133 | # <i>man 5 xorg.conf</i> |
348 | $ <i>man 5 xorg.conf</i> |
| 134 | </pre> |
|
|
| 135 | |
|
|
| 136 | <p> |
|
|
| 137 | Happy reading for those of you willing to. We surely don't so we'll continue |
|
|
| 138 | with checking out how we can create the file automatically. |
|
|
| 139 | </p> |
349 | </pre> |
| 140 | |
350 | |
| 141 | </body> |
351 | </body> |
| 142 | </section> |
|
|
| 143 | <section> |
352 | </section> |
|
|
353 | <section> |
| 144 | <title>Default: Automatic Generation of xorg.conf</title> |
354 | <title>Automatic Generation of xorg.conf</title> |
| 145 | <body> |
355 | <body> |
| 146 | |
356 | |
| 147 | <p> |
357 | <p> |
| 148 | Xorg itself is able to guess most parameters for you. In most cases, you |
358 | Xorg itself is able to guess most parameters for you. In most cases, you |
| 149 | will only have to change some lines to get the resolution you want up and |
359 | will only have to change some lines to get the resolution you want up and |
| 150 | running. If you are interested in more in-depth tweaking, be sure to check the |
360 | running. If you are interested in more in-depth tweaking, be sure to check the |
| 151 | resources at the end of this chapter. But first, let us generate a (hopefully |
361 | resources at the end of this chapter. But first, let us generate a (hopefully |
| 152 | working) Xorg configuration file. |
362 | working) Xorg configuration file. |
| 153 | </p> |
363 | </p> |
| 154 | |
364 | |
| 155 | <pre caption="Generating an xorg.conf file"> |
365 | <pre caption="Generating an xorg.conf file"> |
| 156 | # <i>Xorg -configure</i> |
366 | # <i>Xorg -configure</i> |
| 157 | </pre> |
367 | </pre> |
| … | |
… | |
| 159 | <p> |
369 | <p> |
| 160 | Be sure to read the last lines printed on your screen when Xorg has finished |
370 | Be sure to read the last lines printed on your screen when Xorg has finished |
| 161 | probing your hardware. If it tells you it failed at some point, you're forced to |
371 | probing your hardware. If it tells you it failed at some point, you're forced to |
| 162 | manually write an <path>xorg.conf</path> file. Assuming that it didn't fail, it |
372 | manually write an <path>xorg.conf</path> file. Assuming that it didn't fail, it |
| 163 | will have told you that it has written <path>/root/xorg.conf.new</path> ready |
373 | will have told you that it has written <path>/root/xorg.conf.new</path> ready |
| 164 | for you to test. So let's test :) |
374 | for you to test. So let's test. :) |
| 165 | </p> |
375 | </p> |
| 166 | |
376 | |
| 167 | <pre caption="Testing the xorg.conf.new file"> |
377 | <pre caption="Testing the xorg.conf.new file"> |
| 168 | # <i>X -config /root/xorg.conf.new</i> |
378 | # <i>X -config /root/xorg.conf.new</i> |
| 169 | </pre> |
379 | </pre> |
| 170 | |
380 | |
| 171 | <p> |
381 | <p> |
| 172 | If all goes well, you should see an ugly, loathsome, repulsive, deformed |
382 | If all goes well, you should see a simple black and white pattern. Verify if |
| 173 | window manager called <c>twm</c>, probably the smallest window manager |
383 | your mouse works correctly and if the resolution is good. You might not be able |
| 174 | available. Try moving your mouse and see if your keyboard and such is working. |
384 | to deduce the exact resolution, but you should be able to see if it's too low. |
| 175 | In the next section we will optimize our <path>xorg.conf</path> so it fits your |
385 | You can exit any time by pressing Ctrl-Alt-Backspace. |
| 176 | hardware. Now go into one of the terminals you see on your screen and type in |
|
|
| 177 | <c>exit</c> (or press Ctrl-D) until Xorg shuts down. If you are unable to |
|
|
| 178 | use your mouse to focus the terminals, you can also press Ctrl-Alt-Backspace to |
|
|
| 179 | kill the X server. |
|
|
| 180 | </p> |
|
|
| 181 | |
|
|
| 182 | <p> |
386 | </p> |
| 183 | If <c>twm</c> doesn't load, don't worry - it will once you'll start the X server |
|
|
| 184 | through the regular <c>startx</c> command. Verify if your mouse works correctly |
|
|
| 185 | and if the resolution is good. You might not be able to deduce the exact |
|
|
| 186 | resolution, but you should be able to see if it's too low. You can exit any time |
|
|
| 187 | by pressing Ctrl-Alt-Backspace. |
|
|
| 188 | </p> |
|
|
| 189 | |
387 | |
| 190 | </body> |
388 | </body> |
| 191 | </section> |
|
|
| 192 | <section> |
389 | </section> |
| 193 | <title>Alternative: Semi-Automatic Generation of xorg.conf</title> |
|
|
| 194 | <body> |
|
|
| 195 | |
|
|
| 196 | <p> |
|
|
| 197 | Xorg provides a tool called <c>xorgconfig</c> which will ask you for various |
|
|
| 198 | information regarding your system (graphical adapter, keyboard, ...). Based on |
|
|
| 199 | your input it will create a <path>xorg.conf</path> file. |
|
|
| 200 | </p> |
|
|
| 201 | |
|
|
| 202 | <pre caption="Semi-Automatic Generation of xorg.conf"> |
|
|
| 203 | # <i>xorgconfig</i> |
|
|
| 204 | </pre> |
|
|
| 205 | |
|
|
| 206 | </body> |
|
|
| 207 | </section> |
|
|
| 208 | </chapter> |
|
|
| 209 | <chapter> |
|
|
| 210 | <title>Tweaking xorg.conf</title> |
|
|
| 211 | <section> |
390 | <section> |
| 212 | <title>Copying over xorg.conf</title> |
391 | <title>Copying over xorg.conf</title> |
| 213 | <body> |
392 | <body> |
| 214 | |
393 | |
| 215 | <p> |
394 | <p> |
| 216 | Let us first copy over the <path>xorg.conf.new</path> to |
395 | Let us copy over the <path>xorg.conf.new</path> to |
| 217 | <path>/etc/X11/xorg.conf</path> so we won't have to continuously run <c>Xorg |
396 | <path>/etc/X11/xorg.conf</path> now, so we won't have to continuously run |
| 218 | -config</c> -- typing <c>startx</c> is far more easy :) |
397 | <c>X -config</c> -- typing just <c>startx</c> is easier. :) |
| 219 | </p> |
398 | </p> |
| 220 | |
399 | |
| 221 | <pre caption="Copying over xorg.conf"> |
400 | <pre caption="Copying over xorg.conf"> |
| 222 | # <i>cp /root/xorg.conf.new /etc/X11/xorg.conf</i> |
401 | # <i>cp /root/xorg.conf.new /etc/X11/xorg.conf</i> |
| 223 | </pre> |
402 | </pre> |
| 224 | |
403 | |
| 225 | <p> |
404 | </body> |
| 226 | Now run <c>startx</c> to start up your X server. It will use the freshly copied |
405 | </section> |
| 227 | file as its configuration file. To finish the X session, type in <c>exit</c> or |
406 | <section id="using_startx"> |
| 228 | Ctrl-D in the upcoming xterms. You can also kill the X session using the |
407 | <title>Using startx</title> |
| 229 | Ctrl-Alt-Backspace combination. This will however make X exit disgracefully - |
408 | <body> |
| 230 | something that you might not always want. It doesn't hurt though :) |
409 | |
| 231 | </p> |
410 | <p> |
|
|
411 | Now try <c>startx</c> to start up your X server. <c>startx</c> is a script |
|
|
412 | that executes an <e>X session</e>, that is, it starts the X servers and some |
|
|
413 | graphical applications on top of it. It decides which applications to run |
|
|
414 | using the following logic: |
|
|
415 | </p> |
|
|
416 | |
|
|
417 | <ul> |
|
|
418 | <li> |
|
|
419 | If a file named <path>.xinitrc</path> exists in the home directory, it will |
|
|
420 | execute the commands listed there. |
|
|
421 | </li> |
|
|
422 | <li> |
|
|
423 | Otherwise, it will read the value of the XSESSION variable and will execute |
|
|
424 | one of the sessions available in <path>/etc/X11/Sessions/</path> |
|
|
425 | accordingly. You can set the value of XSESSION in |
|
|
426 | <path>/etc/env.d/90xsession</path> to make it a default for all the users on |
|
|
427 | the system. For example, as root, run <c>echo XSESSION="Xfce4" > |
|
|
428 | /etc/env.d/90xsession</c>. This will create the <path>90xsession</path> file |
|
|
429 | and set the default X session to Xfce4. |
|
|
430 | </li> |
|
|
431 | <li> |
|
|
432 | If all of the above fail, it will fall back to a simple window manager, |
|
|
433 | usually <c>twm</c>. |
|
|
434 | </li> |
|
|
435 | </ul> |
| 232 | |
436 | |
| 233 | <pre caption="Starting X"> |
437 | <pre caption="Starting X"> |
| 234 | # <i>startx</i> |
438 | # <i>startx</i> |
| 235 | </pre> |
439 | </pre> |
| 236 | |
440 | |
|
|
441 | <p> |
|
|
442 | You can kill the X session using the Ctrl-Alt-Backspace combination. This will |
|
|
443 | however make X exit disgracefully -- something that you might not always want. |
|
|
444 | </p> |
|
|
445 | |
| 237 | </body> |
446 | </body> |
| 238 | </section> |
447 | </section> |
|
|
448 | </chapter> |
|
|
449 | |
|
|
450 | <chapter> |
|
|
451 | <title>Tweaking X settings</title> |
| 239 | <section> |
452 | <section> |
| 240 | <title>Setting your Resolution</title> |
453 | <title>Setting your Resolution</title> |
| 241 | <body> |
454 | <body> |
| 242 | |
455 | |
| 243 | <p> |
456 | <p> |
| 244 | If you feel that the screen resolution is wrong, you will need to check two |
457 | If you feel that the screen resolution is wrong, you will need to check two |
| 245 | sections in your configuration. First of all, you have the <e>Screen</e> section |
458 | sections in your <path>xorg.conf</path> configuration. First of all, you have |
| 246 | which lists the resolutions - if any - that your X server will run at. By |
459 | the <e>Screen</e> section which lists the resolutions, if any that your X server |
| 247 | default, this section might not list any resolutions at all. If this is the |
460 | will run at. By default, this section might not list any resolutions at all. If |
| 248 | case, Xorg will estimate the resolutions based on the information in the |
461 | this is the case, Xorg will estimate the resolutions based on the information in |
| 249 | second section, <e>Monitor</e>. |
462 | the second section, <e>Monitor</e>. |
| 250 | </p> |
463 | </p> |
| 251 | |
464 | |
| 252 | <p> |
465 | <p> |
| 253 | What happens is that Xorg checks the settings of <c>HorizSync</c> and |
466 | What happens is that Xorg checks the settings of <c>HorizSync</c> and |
| 254 | <c>VertRefresh</c> in the <e>Monitor</e> section to compute valid resolutions. |
467 | <c>VertRefresh</c> in the <e>Monitor</e> section to compute valid resolutions. |
| 255 | For now, leave these settings as-is. Only when the changes to the <e>Screen</e> |
468 | For now, leave these settings as-is. Only when the changes to the <e>Screen</e> |
| 256 | section (which we will describe in a minute) don't work, then you will need to |
469 | section (which we will describe in a minute) don't work, then you will need to |
| 257 | look up the specs for your monitor and fill in the correct values. You can also |
470 | look up the specs for your monitor and fill in the correct values. |
| 258 | use a tool that searches for your monitor's specs, such as |
|
|
| 259 | <c>sys-apps/ddcxinfo-knoppix</c>. |
|
|
| 260 | </p> |
471 | </p> |
| 261 | |
472 | |
| 262 | <warn> |
473 | <warn> |
| 263 | Do <b>not</b> "just" change the values of these two monitor-related variables |
474 | Do <b>not</b> "just" change the values of these two monitor related variables |
| 264 | without consulting the technical specifications of your monitor. Setting |
475 | without consulting the technical specifications of your monitor. Setting |
| 265 | incorrect values lead to out-of-sync errors at best and smoked up screens at |
476 | incorrect values lead to out-of-sync errors at best and smoked up screens at |
| 266 | worst. |
477 | worst. |
| 267 | </warn> |
478 | </warn> |
| 268 | |
479 | |
| 269 | <p> |
480 | <p> |
| 270 | Now let us change the resolutions. In the next example from |
481 | Now let us change the resolutions. In the next example from |
| 271 | <path>/etc/X11/xorg.conf</path> we add the <c>Modes</c> lines and the |
482 | <path>/etc/X11/xorg.conf</path> we add the <c>Modes</c> lines and the |
| 272 | <c>DefaultDepth</c> so that our X server starts with 24 bits at 1024x768 by |
483 | <c>DefaultDepth</c> so that our X server starts with 24 bits at 1440x900 by |
| 273 | default. Don't mind the given strings - they are examples and will most likely |
484 | default. Don't mind the given strings -- they are examples and will most likely |
| 274 | differ from the settings on your system. |
485 | differ from the settings on your system. |
| 275 | </p> |
486 | </p> |
| 276 | |
487 | |
| 277 | <pre caption="Changing the Screen section in /etc/X11/xorg.conf"> |
488 | <pre caption="Changing the Screen section in /etc/X11/xorg.conf"> |
| 278 | Section "Screen" |
489 | Section "Screen" |
| 279 | Identifier "Default Screen" |
490 | Identifier "Default Screen" |
| 280 | Device "S3 Inc. ProSavage KN133 [Twister K]" |
491 | Device "RadeonHD 4550" |
| 281 | Monitor "Generic Monitor" |
492 | Monitor "Generic Monitor" |
| 282 | <i>DefaultDepth 24</i> |
493 | <i>DefaultDepth 24</i> |
| 283 | <comment># Skipping some text to improve readability</comment> |
494 | <comment># Skipping some text to improve readability</comment> |
| 284 | SubSection "Display" |
495 | SubSection "Display" |
| 285 | Depth 24 |
496 | Depth 24 |
| 286 | <i>Modes "1024x768"</i> |
497 | <i>Modes "1440x900"</i> |
| 287 | EndSubSection |
498 | EndSubSection |
| 288 | EndSection |
499 | EndSection |
| 289 | </pre> |
500 | </pre> |
| 290 | |
501 | |
| 291 | <p> |
502 | <p> |
| 292 | Run X (<c>startx</c>) to discover it uses the resolution you want :) |
503 | Run X (<c>startx</c>) to discover it uses the resolution you want. :) |
| 293 | </p> |
504 | </p> |
| 294 | |
505 | |
| 295 | </body> |
506 | </body> |
| 296 | </section> |
|
|
| 297 | <section> |
507 | </section> |
|
|
508 | <section> |
| 298 | <title>Configuring your Keyboard</title> |
509 | <title>Configuring your keyboard</title> |
| 299 | <body> |
|
|
| 300 | |
|
|
| 301 | <p> |
|
|
| 302 | To setup X to use an international keyboard, search for the <e>InputDevice</e> |
|
|
| 303 | section that configures the keyboard and add the <c>XkbLayout</c> option to |
|
|
| 304 | point to the keyboard layout you want. As an example, we show you how to apply |
|
|
| 305 | for the Belgian layout. Just substitute the country-keycode with yours: |
|
|
| 306 | </p> |
|
|
| 307 | |
|
|
| 308 | <pre caption="Changing the keyboard layout"> |
|
|
| 309 | Section "InputDevice" |
|
|
| 310 | Identifier "Generic Keyboard" |
|
|
| 311 | Driver "keyboard" |
|
|
| 312 | Option "CoreKeyboard" |
|
|
| 313 | Option "XkbRules" "xorg" |
|
|
| 314 | Option "XkbModel" "pc105" |
|
|
| 315 | <i>Option "XkbLayout" "be"</i> |
|
|
| 316 | EndSection |
|
|
| 317 | </pre> |
|
|
| 318 | |
|
|
| 319 | </body> |
510 | <body> |
| 320 | </section> |
511 | |
|
|
512 | <p> |
|
|
513 | To setup X to use an international keyboard, you can copy the content of |
|
|
514 | <path>/usr/share/doc/hal-*/*/use-estonian-layout.fdi.bz2</path> to |
|
|
515 | <path>/etc/hal/fdi/policy/10-xinput-configuration.fdi</path>: |
|
|
516 | </p> |
|
|
517 | |
|
|
518 | <pre caption="Using an existing config file"> |
|
|
519 | # <i>bzcat /usr/share/doc/hal-*/*/use-estonian-layout.fdi > /etc/hal/fdi/policy/10-xinput-configuration.fdi</i> |
|
|
520 | </pre> |
|
|
521 | |
|
|
522 | <p> |
|
|
523 | Now you can just edit <path>10-xinput-configuration.fdi</path> and change the |
|
|
524 | Estonian keyboard layout (<c>ee</c>) to your own, such as Great Britain |
|
|
525 | (<b>gb</b>) or Polish (<b>pl</b>). |
|
|
526 | </p> |
|
|
527 | |
|
|
528 | <p> |
|
|
529 | When you're finished, run <c>/etc/init.d/hald restart</c> as root to make sure |
|
|
530 | that HAL picks up your configuration file changes. |
|
|
531 | </p> |
|
|
532 | |
|
|
533 | </body> |
| 321 | <section> |
534 | </section> |
| 322 | <title>Configuring your Mouse</title> |
535 | <section> |
|
|
536 | <title>Finishing up</title> |
| 323 | <body> |
537 | <body> |
| 324 | |
538 | |
| 325 | <p> |
|
|
| 326 | If your mouse isn't working, you will first need to find out if it is detected |
|
|
| 327 | by the kernel at all. PS/2 mice are (device-wise) seen as |
|
|
| 328 | <path>/dev/psaux</path>. Other mice (like USBs) are seen as |
|
|
| 329 | <path>/dev/input</path> (or <path>/dev/input/mice</path>). In either case you |
|
|
| 330 | can check if the devices do represent your mouse by checking the output of those |
|
|
| 331 | files when you move your mouse. To end the session press <c>Ctrl-C</c>. |
|
|
| 332 | </p> |
539 | <p> |
| 333 | |
|
|
| 334 | <pre caption="Checking the device files"> |
|
|
| 335 | # <i>cat /dev/input</i> |
|
|
| 336 | <comment>(Don't forget to press Ctrl-C to end this)</comment> |
|
|
| 337 | </pre> |
|
|
| 338 | |
|
|
| 339 | <p> |
|
|
| 340 | If your mouse isn't detected, verify if all the necessary modules are loaded. |
|
|
| 341 | </p> |
|
|
| 342 | |
|
|
| 343 | <p> |
|
|
| 344 | If your mouse is detected, fill in the device in the appropriate |
|
|
| 345 | <e>InputDevice</e> section. In the next example you'll see we also set two other |
|
|
| 346 | options: <c>Protocol</c> (which lists the mouse protocol to be used - most users |
|
|
| 347 | will use PS/2 or IMPS/2) and <c>ZAxisMapping</c> (which allows for the |
|
|
| 348 | mousewheel (if applicable) to be used). |
|
|
| 349 | </p> |
|
|
| 350 | |
|
|
| 351 | <pre caption="Changing the mouse settings in Xorg"> |
|
|
| 352 | Section "InputDevice" |
|
|
| 353 | Identifier "TouchPad Mouse" |
|
|
| 354 | Driver "mouse" |
|
|
| 355 | Option "CorePointer" |
|
|
| 356 | <i>Option "Device" "/dev/psaux"</i> |
|
|
| 357 | <i>Option "Protocol" "IMPS/2"</i> |
|
|
| 358 | <i>Option "ZAxisMapping" "4 5"</i> |
|
|
| 359 | EndSection |
|
|
| 360 | </pre> |
|
|
| 361 | |
|
|
| 362 | <p> |
|
|
| 363 | Run <c>startx</c> and be happy about the result :) Congratulations, you now |
540 | Run <c>startx</c> and be happy about the result. Congratulations, you now |
| 364 | (hopefully) have a working Xorg on your system. The next step is to remove this |
541 | (hopefully) have a working Xorg on your system. The next step is to install a |
| 365 | ugly lightweight window manager and use a high-feature one (or even a desktop |
542 | useful window manager (or even a desktop environment) such as KDE or GNOME, but |
| 366 | environment) such as KDE or GNOME, but that's not part of this guide :) |
543 | that's not part of this guide. |
| 367 | </p> |
544 | </p> |
| 368 | |
545 | |
| 369 | </body> |
546 | </body> |
| 370 | </section> |
547 | </section> |
| 371 | </chapter> |
548 | </chapter> |
|
|
549 | |
| 372 | <chapter> |
550 | <chapter> |
| 373 | <title>Resources</title> |
551 | <title>Resources</title> |
| 374 | <section> |
552 | <section> |
| 375 | <title>Creating and Tweaking xorg.conf</title> |
553 | <title>Creating and Tweaking xorg.conf</title> |
| 376 | <body> |
554 | <body> |
| 377 | |
555 | |
| 378 | <p> |
556 | <p> |
| 379 | First of all, <c>man 5 xorg.conf</c> provides a quick yet complete reference |
557 | First of all, <c>man xorg.conf</c> and <c>man evdev</c> provide quick yet |
| 380 | about the syntaxis used by the configuration file. Be sure to have it open on a |
558 | complete references about the syntax used by these configuration files. Be sure |
| 381 | terminal near you when you edit your configuration file! |
559 | to have them open on a terminal near you when you edit your configuration |
| 382 | </p> |
560 | files! |
| 383 | |
|
|
| 384 | <p> |
561 | </p> |
| 385 | A second point of resources on your system is the |
562 | |
| 386 | <path>/usr/X11R6/lib/X11/doc</path> directory with various <path>README</path>'s |
563 | <p> |
| 387 | for individual graphical chipsets. |
564 | Also, be sure to look at <path>/etc/X11/xorg.conf.example</path>; you may wish |
|
|
565 | to copy this and use it as a foundation for writing your own |
|
|
566 | <path>xorg.conf</path>. |
|
|
567 | </p> |
|
|
568 | |
|
|
569 | <p> |
|
|
570 | You may find the X.org <uri link="http://www.x.org/wiki/FAQ">FAQ</uri> provided |
|
|
571 | on their website, in addition to their other documentation. |
| 388 | </p> |
572 | </p> |
| 389 | |
573 | |
| 390 | <p> |
574 | <p> |
| 391 | There are also many online resources on editing <path>xorg.conf</path>. We only |
575 | There are also many online resources on editing <path>xorg.conf</path>. We only |
| 392 | list few of them here, be sure to <uri link="http://www.google.com">Google</uri> |
576 | list few of them here, be sure to <uri link="http://www.google.com">Google</uri> |
| 393 | for more :) As <path>xorg.conf</path> and <path>XF86Config</path> (the |
577 | for more. |
| 394 | configuration file for the XFree86 project) use the |
578 | </p> |
| 395 | same syntaxis for most configuration options and more information about |
579 | |
| 396 | <path>XF86Config</path> is available, we'll list those resources as well. |
580 | </body> |
|
|
581 | </section> |
|
|
582 | <section> |
|
|
583 | <title>Other resources</title> |
|
|
584 | <body> |
|
|
585 | |
| 397 | </p> |
586 | <p> |
|
|
587 | More information about installing and configuring various graphical desktop |
|
|
588 | environments and applications can be found in the <uri |
|
|
589 | link="/doc/en/?catid=desktop">Gentoo Desktop Documentation Resources</uri> |
|
|
590 | section of our documentation. |
|
|
591 | </p> |
| 398 | |
592 | |
| 399 | <ul> |
593 | <p> |
| 400 | <li> |
594 | If you're upgrading to xorg-server-1.6 from an earlier version, then be sure to |
| 401 | <uri link="http://tldp.org/HOWTO/XFree-Local-multi-user-HOWTO/">The XFree |
595 | read the <uri |
| 402 | Local Multi-User HOWTO</uri> |
596 | link="/proj/en/desktop/x/x11/xorg-server-1.6-upgrade-guide.xml">migration |
| 403 | </li> |
597 | guide</uri>. |
| 404 | <li> |
598 | </p> |
| 405 | <uri |
|
|
| 406 | link="http://www-106.ibm.com/developerworks/edu/os-dw-linuxxwin-i.html">An |
|
|
| 407 | Introduction to XFree 4.x</uri> by Chris Houser |
|
|
| 408 | </li> |
|
|
| 409 | </ul> |
|
|
| 410 | |
599 | |
| 411 | </body> |
600 | </body> |
| 412 | </section> |
601 | </section> |
| 413 | </chapter> |
602 | </chapter> |
| 414 | </guide> |
603 | </guide> |