| 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.35 2009/12/31 01:37:01 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.25</version> |
| 26 | <date>2005-02-07</date> |
26 | <date>2009-12-30</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 | |
|
|
216 | <p> |
|
|
217 | Now it's time to start the Hardware Abstraction Layer (HAL) daemon and set it to |
|
|
218 | automatically start each time you boot. This is necessary to get a working X |
|
|
219 | environment, otherwise your input devices won't be detected and you'll probably |
|
|
220 | just get a blank screen. We'll cover HAL more in the <uri |
|
|
221 | link="#using_hal">next section</uri>. |
|
|
222 | </p> |
|
|
223 | |
|
|
224 | <pre caption="Starting HAL"> |
|
|
225 | # <i>/etc/init.d/hald start</i> |
|
|
226 | # <i>rc-update add hald default</i> |
|
|
227 | </pre> |
|
|
228 | |
| 115 | </body> |
229 | </body> |
| 116 | </section> |
230 | </section> |
| 117 | </chapter> |
231 | </chapter> |
|
|
232 | |
| 118 | <chapter> |
233 | <chapter> |
| 119 | <title>Configuring Xorg</title> |
234 | <title>Configuring Xorg</title> |
|
|
235 | <section id="using_hal"> |
|
|
236 | <title>Using HAL</title> |
|
|
237 | <body> |
|
|
238 | |
|
|
239 | <p> |
|
|
240 | Recent X server versions are designed to work out-of-the-box, with no need to |
|
|
241 | manually edit Xorg's configuration files. |
|
|
242 | </p> |
|
|
243 | |
|
|
244 | <p> |
|
|
245 | You should first try <uri link="#using_startx">starting X</uri> without creating |
|
|
246 | <path>/etc/X11/xorg.conf</path>. |
|
|
247 | </p> |
|
|
248 | |
|
|
249 | <p> |
|
|
250 | If Xorg won't start (if there's something wrong with the screen, or with your |
|
|
251 | keyboard/mouse), then you can try fixing problems by using the right |
|
|
252 | configuration files. |
|
|
253 | </p> |
|
|
254 | |
|
|
255 | <p> |
|
|
256 | By default, Xorg uses HAL (Hardware Abstraction Layer) to detect and configure |
|
|
257 | devices such as keyboards and mice. |
|
|
258 | </p> |
|
|
259 | |
|
|
260 | <p> |
|
|
261 | HAL comes with many premade device rules, also called policies. These policy |
|
|
262 | files are available in <path>/usr/share/hal/fdi/policy/</path>. Just find a few |
|
|
263 | that suit your needs most closely and copy them to |
|
|
264 | <path>/etc/hal/fdi/policy/</path>. |
|
|
265 | </p> |
|
|
266 | |
|
|
267 | <impo> |
|
|
268 | Do not edit the files in <path>/usr/share/hal/fdi/</path>! Just copy the ones |
|
|
269 | you need, and edit them once they're placed in the proper <path>/etc</path> |
|
|
270 | location. |
|
|
271 | </impo> |
|
|
272 | |
|
|
273 | <p> |
|
|
274 | For example, to get a basic working keyboard/mouse combination, you could copy |
|
|
275 | the following files to <path>/etc/hal/fdi/policy/</path>: |
|
|
276 | </p> |
|
|
277 | |
|
|
278 | <pre caption="Using HAL policy files"> |
|
|
279 | # <i>cp /usr/share/hal/fdi/policy/10osvendor/10-input-policy.fdi /etc/hal/fdi/policy</i> |
|
|
280 | # <i>cp /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi /etc/hal/fdi/policy</i> |
|
|
281 | </pre> |
|
|
282 | |
|
|
283 | <p> |
|
|
284 | There are several other HAL policies in <path>/usr/share/hal/fdi/</path> that |
|
|
285 | may interest you, such as laptop configurations, storage device handling, power |
|
|
286 | management, and more. Just copy any of the policies to |
|
|
287 | <path>/etc/hal/fdi/policy/</path>. |
|
|
288 | </p> |
|
|
289 | |
|
|
290 | <impo> |
|
|
291 | Remember, <e>every</e> time you finish making changes to HAL policy files, you |
|
|
292 | need to restart the HAL daemon by running <c>/etc/init.d/hald restart</c>. |
|
|
293 | </impo> |
|
|
294 | |
|
|
295 | <p> |
|
|
296 | You can edit the policy files in <path>/etc/hal/fdi/policy</path> to your |
|
|
297 | liking. You may want to make a few tweaks or to expose additional |
|
|
298 | functionality. Let's go through an example of tweaking a HAL policy. |
|
|
299 | </p> |
|
|
300 | |
|
|
301 | <p> |
|
|
302 | One very convenient trick is to kill the X server entirely by pressing |
|
|
303 | Ctrl-Alt-Backspace. This is useful when your X server is malfunctioning, frozen, |
|
|
304 | etc. It's not as extreme as rebooting the whole machine with Ctrl-Alt-Del. |
|
|
305 | </p> |
|
|
306 | |
|
|
307 | <p> |
|
|
308 | Recent X server versions disabled this key combination by default. However, you |
|
|
309 | can reenable it by copying <path>10-x11-input.fdi</path> to |
|
|
310 | <path>/etc/hal/fdi/policy</path> and editing it. You'll need to add just one |
|
|
311 | line to the appropriate section, as shown below: |
|
|
312 | </p> |
|
|
313 | |
|
|
314 | <pre caption="Editing 10-x11-input.fdi"> |
|
|
315 | <comment>(Open the file in your preferred editor)</comment> |
|
|
316 | # <i>nano -w /etc/hal/fdi/policy/10-x11-input.fdi</i> |
|
|
317 | <comment>(Find the "input.keys" section)</comment> |
|
|
318 | <match key="info.capabilities" contains="input.keys"> |
|
|
319 | <comment>(Add the "terminate" merge string as shown)</comment> |
|
|
320 | <match key="info.capabilities" contains="input.keys"> |
|
|
321 | <merge key="input.x11_driver" type="string">keyboard</merge> |
|
|
322 | <i><merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge></i> |
|
|
323 | <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" |
|
|
324 | string="Linux"> |
|
|
325 | <merge key="input.x11_driver" type="string">evdev<merge> |
|
|
326 | </match> |
|
|
327 | </match> |
|
|
328 | </pre> |
|
|
329 | |
|
|
330 | <p> |
|
|
331 | Once you're done, run <c>/etc/init.d/hald restart</c> so that HAL picks up your |
|
|
332 | changes. |
|
|
333 | </p> |
|
|
334 | |
|
|
335 | <p> |
|
|
336 | There, now you have a handy way of killing an unresponsive X server. This is |
|
|
337 | useful when programs have frozen your display entirely, or when configuring and |
|
|
338 | tweaking your Xorg environment. Be careful when killing your desktop with this |
|
|
339 | key combination -- most programs really don't like it when you end them this |
|
|
340 | way, and you may lose some (or all) of what you were working on. |
|
|
341 | </p> |
|
|
342 | |
|
|
343 | <p> |
|
|
344 | Hopefully just working with the HAL policy files results in a working X desktop. |
|
|
345 | If Xorg still won't start, or there's some other problem, then you'll need to |
|
|
346 | manually configure <path>xorg.conf</path> as shown in the next section. |
|
|
347 | </p> |
|
|
348 | |
|
|
349 | </body> |
| 120 | <section> |
350 | </section> |
|
|
351 | <section> |
| 121 | <title>The xorg.conf File</title> |
352 | <title>The xorg.conf file</title> |
| 122 | <body> |
353 | <body> |
| 123 | |
354 | |
|
|
355 | <note> |
|
|
356 | Configuring <path>xorg.conf</path> should be seen as a "last resort" option. It |
|
|
357 | really desirable to run without one if possible, and to do all your |
|
|
358 | configuration via HAL policy files. If you still can't get a working |
|
|
359 | configuration, then read on. |
|
|
360 | </note> |
|
|
361 | |
| 124 | <p> |
362 | <p> |
| 125 | The configuration file of Xorg is called <path>xorg.conf</path> and it |
363 | 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 |
364 | 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 |
365 | <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 |
366 | 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: |
367 | documentation regarding the syntax, don't hesitate to read the man page: |
| 130 | </p> |
368 | </p> |
| 131 | |
369 | |
| 132 | <pre caption="Reading the xorg.conf man page"> |
370 | <pre caption="Reading the xorg.conf man page"> |
| 133 | # <i>man 5 xorg.conf</i> |
371 | $ <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> |
372 | </pre> |
| 140 | |
373 | |
| 141 | </body> |
374 | </body> |
| 142 | </section> |
|
|
| 143 | <section> |
375 | </section> |
|
|
376 | <section> |
| 144 | <title>Default: Automatic Generation of xorg.conf</title> |
377 | <title>Automatic Generation of xorg.conf</title> |
| 145 | <body> |
378 | <body> |
| 146 | |
379 | |
| 147 | <p> |
380 | <p> |
| 148 | Xorg itself is able to guess most parameters for you. In most cases, you |
381 | 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 |
382 | 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 |
383 | 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 |
384 | resources at the end of this chapter. But first, let us generate a (hopefully |
| 152 | working) Xorg configuration file. |
385 | working) Xorg configuration file. |
| 153 | </p> |
386 | </p> |
| 154 | |
387 | |
| 155 | <pre caption="Generating an xorg.conf file"> |
388 | <pre caption="Generating an xorg.conf file"> |
| 156 | # <i>Xorg -configure</i> |
389 | # <i>Xorg -configure</i> |
| 157 | </pre> |
390 | </pre> |
| … | |
… | |
| 159 | <p> |
392 | <p> |
| 160 | Be sure to read the last lines printed on your screen when Xorg has finished |
393 | 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 |
394 | 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 |
395 | 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 |
396 | will have told you that it has written <path>/root/xorg.conf.new</path> ready |
| 164 | for you to test. So let's test :) |
397 | for you to test. So let's test. :) |
| 165 | </p> |
398 | </p> |
| 166 | |
399 | |
| 167 | <pre caption="Testing the xorg.conf.new file"> |
400 | <pre caption="Testing the xorg.conf.new file"> |
| 168 | # <i>X -config /root/xorg.conf.new</i> |
401 | # <i>X -config /root/xorg.conf.new</i> |
| 169 | </pre> |
402 | </pre> |
| 170 | |
403 | |
| 171 | <p> |
404 | <p> |
| 172 | If all goes well, you should see an ugly, loathsome, repulsive, deformed |
405 | 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 |
406 | 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. |
407 | 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 |
408 | 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> |
409 | </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 | |
410 | |
| 190 | </body> |
411 | </body> |
| 191 | </section> |
|
|
| 192 | <section> |
412 | </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> |
413 | <section> |
| 212 | <title>Copying over xorg.conf</title> |
414 | <title>Copying over xorg.conf</title> |
| 213 | <body> |
415 | <body> |
| 214 | |
416 | |
| 215 | <p> |
417 | <p> |
| 216 | Let us first copy over the <path>xorg.conf.new</path> to |
418 | 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 |
419 | <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 :) |
420 | <c>X -config</c> -- typing just <c>startx</c> is easier. :) |
| 219 | </p> |
421 | </p> |
| 220 | |
422 | |
| 221 | <pre caption="Copying over xorg.conf"> |
423 | <pre caption="Copying over xorg.conf"> |
| 222 | # <i>cp /root/xorg.conf.new /etc/X11/xorg.conf</i> |
424 | # <i>cp /root/xorg.conf.new /etc/X11/xorg.conf</i> |
| 223 | </pre> |
425 | </pre> |
| 224 | |
426 | |
| 225 | <p> |
427 | </body> |
| 226 | Now run <c>startx</c> to start up your X server. It will use the freshly copied |
428 | </section> |
| 227 | file as its configuration file. To finish the X session, type in <c>exit</c> or |
429 | <section id="using_startx"> |
| 228 | Ctrl-D in the upcoming xterms. You can also kill the X session using the |
430 | <title>Using startx</title> |
| 229 | Ctrl-Alt-Backspace combination. This will however make X exit disgracefully - |
431 | <body> |
| 230 | something that you might not always want. It doesn't hurt though :) |
432 | |
| 231 | </p> |
433 | <p> |
|
|
434 | Now try <c>startx</c> to start up your X server. <c>startx</c> is a script |
|
|
435 | that executes an <e>X session</e>, that is, it starts the X servers and some |
|
|
436 | graphical applications on top of it. It decides which applications to run |
|
|
437 | using the following logic: |
|
|
438 | </p> |
|
|
439 | |
|
|
440 | <ul> |
|
|
441 | <li> |
|
|
442 | If a file named <path>.xinitrc</path> exists in the home directory, it will |
|
|
443 | execute the commands listed there. |
|
|
444 | </li> |
|
|
445 | <li> |
|
|
446 | Otherwise, it will read the value of the XSESSION variable and will execute |
|
|
447 | one of the sessions available in <path>/etc/X11/Sessions/</path> |
|
|
448 | accordingly. You can set the value of XSESSION in |
|
|
449 | <path>/etc/env.d/90xsession</path> to make it a default for all the users on |
|
|
450 | the system. For example, as root, run <c>echo XSESSION="Xfce4" > |
|
|
451 | /etc/env.d/90xsession</c>. This will create the <path>90xsession</path> file |
|
|
452 | and set the default X session to Xfce4. |
|
|
453 | </li> |
|
|
454 | <li> |
|
|
455 | If all of the above fail, it will fall back to a simple window manager, |
|
|
456 | usually <c>twm</c>. |
|
|
457 | </li> |
|
|
458 | </ul> |
| 232 | |
459 | |
| 233 | <pre caption="Starting X"> |
460 | <pre caption="Starting X"> |
| 234 | # <i>startx</i> |
461 | # <i>startx</i> |
| 235 | </pre> |
462 | </pre> |
| 236 | |
463 | |
|
|
464 | <p> |
|
|
465 | You can kill the X session using the Ctrl-Alt-Backspace combination. This will |
|
|
466 | however make X exit disgracefully -- something that you might not always want. |
|
|
467 | </p> |
|
|
468 | |
| 237 | </body> |
469 | </body> |
| 238 | </section> |
470 | </section> |
|
|
471 | </chapter> |
|
|
472 | |
|
|
473 | <chapter> |
|
|
474 | <title>Tweaking X settings</title> |
| 239 | <section> |
475 | <section> |
| 240 | <title>Setting your Resolution</title> |
476 | <title>Setting your Resolution</title> |
| 241 | <body> |
477 | <body> |
| 242 | |
478 | |
| 243 | <p> |
479 | <p> |
| 244 | If you feel that the screen resolution is wrong, you will need to check two |
480 | 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 |
481 | 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 |
482 | 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 |
483 | 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 |
484 | this is the case, Xorg will estimate the resolutions based on the information in |
| 249 | second section, <e>Monitor</e>. |
485 | the second section, <e>Monitor</e>. |
| 250 | </p> |
486 | </p> |
| 251 | |
487 | |
| 252 | <p> |
488 | <p> |
| 253 | What happens is that Xorg checks the settings of <c>HorizSync</c> and |
489 | 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. |
490 | <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> |
491 | 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 |
492 | 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 |
493 | 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> |
494 | </p> |
| 261 | |
495 | |
| 262 | <warn> |
496 | <warn> |
| 263 | Do <b>not</b> "just" change the values of these two monitor-related variables |
497 | Do <b>not</b> "just" change the values of these two monitor related variables |
| 264 | without consulting the technical specifications of your monitor. Setting |
498 | 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 |
499 | incorrect values lead to out-of-sync errors at best and smoked up screens at |
| 266 | worst. |
500 | worst. |
| 267 | </warn> |
501 | </warn> |
| 268 | |
502 | |
| 269 | <p> |
503 | <p> |
| 270 | Now let us change the resolutions. In the next example from |
504 | 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 |
505 | <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 |
506 | <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 |
507 | default. Don't mind the given strings -- they are examples and will most likely |
| 274 | differ from the settings on your system. |
508 | differ from the settings on your system. |
| 275 | </p> |
509 | </p> |
| 276 | |
510 | |
| 277 | <pre caption="Changing the Screen section in /etc/X11/xorg.conf"> |
511 | <pre caption="Changing the Screen section in /etc/X11/xorg.conf"> |
| 278 | Section "Screen" |
512 | Section "Screen" |
| 279 | Identifier "Default Screen" |
513 | Identifier "Default Screen" |
| 280 | Device "S3 Inc. ProSavage KN133 [Twister K]" |
514 | Device "RadeonHD 4550" |
| 281 | Monitor "Generic Monitor" |
515 | Monitor "Generic Monitor" |
| 282 | <i>DefaultDepth 24</i> |
516 | <i>DefaultDepth 24</i> |
| 283 | <comment># Skipping some text to improve readability</comment> |
517 | <comment># Skipping some text to improve readability</comment> |
| 284 | SubSection "Display" |
518 | SubSection "Display" |
| 285 | Depth 24 |
519 | Depth 24 |
| 286 | <i>Modes "1024x768"</i> |
520 | <i>Modes "1440x900"</i> |
| 287 | EndSubSection |
521 | EndSubSection |
| 288 | EndSection |
522 | EndSection |
| 289 | </pre> |
523 | </pre> |
| 290 | |
524 | |
| 291 | <p> |
525 | <p> |
| 292 | Run X (<c>startx</c>) to discover it uses the resolution you want :) |
526 | Run X (<c>startx</c>) to discover it uses the resolution you want. :) |
| 293 | </p> |
527 | </p> |
| 294 | |
528 | |
| 295 | </body> |
529 | </body> |
| 296 | </section> |
|
|
| 297 | <section> |
530 | </section> |
|
|
531 | <section> |
| 298 | <title>Configuring your Keyboard</title> |
532 | <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> |
533 | <body> |
| 320 | </section> |
534 | |
|
|
535 | <p> |
|
|
536 | To setup X to use an international keyboard, you can copy the content of |
|
|
537 | <path>/usr/share/doc/hal-*/*/use-estonian-layout.fdi.bz2</path> to |
|
|
538 | <path>/etc/hal/fdi/policy/10-xinput-configuration.fdi</path>: |
|
|
539 | </p> |
|
|
540 | |
|
|
541 | <pre caption="Using an existing config file"> |
|
|
542 | # <i>bzcat /usr/share/doc/hal-*/*/use-estonian-layout.fdi > /etc/hal/fdi/policy/10-xinput-configuration.fdi</i> |
|
|
543 | </pre> |
|
|
544 | |
|
|
545 | <p> |
|
|
546 | Now you can just edit <path>10-xinput-configuration.fdi</path> and change the |
|
|
547 | Estonian keyboard layout (<c>ee</c>) to your own, such as Great Britain |
|
|
548 | (<b>gb</b>) or Polish (<b>pl</b>). |
|
|
549 | </p> |
|
|
550 | |
|
|
551 | <p> |
|
|
552 | When you're finished, run <c>/etc/init.d/hald restart</c> as root to make sure |
|
|
553 | that HAL picks up your configuration file changes. |
|
|
554 | </p> |
|
|
555 | |
|
|
556 | </body> |
| 321 | <section> |
557 | </section> |
| 322 | <title>Configuring your Mouse</title> |
558 | <section> |
|
|
559 | <title>Finishing up</title> |
| 323 | <body> |
560 | <body> |
| 324 | |
561 | |
| 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> |
562 | <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 |
563 | 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 |
564 | (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 |
565 | 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 :) |
566 | that's not part of this guide. |
| 367 | </p> |
567 | </p> |
| 368 | |
568 | |
| 369 | </body> |
569 | </body> |
| 370 | </section> |
570 | </section> |
| 371 | </chapter> |
571 | </chapter> |
|
|
572 | |
| 372 | <chapter> |
573 | <chapter> |
| 373 | <title>Resources</title> |
574 | <title>Resources</title> |
| 374 | <section> |
575 | <section> |
| 375 | <title>Creating and Tweaking xorg.conf</title> |
576 | <title>Creating and Tweaking xorg.conf</title> |
| 376 | <body> |
577 | <body> |
| 377 | |
578 | |
| 378 | <p> |
579 | <p> |
| 379 | First of all, <c>man 5 xorg.conf</c> provides a quick yet complete reference |
580 | 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 |
581 | complete references about the syntax used by these configuration files. Be sure |
| 381 | terminal near you when you edit your configuration file! |
582 | to have them open on a terminal near you when you edit your configuration |
| 382 | </p> |
583 | files! |
| 383 | |
|
|
| 384 | <p> |
584 | </p> |
| 385 | A second point of resources on your system is the |
585 | |
| 386 | <path>/usr/X11R6/lib/X11/doc</path> directory with various <path>README</path>'s |
586 | <p> |
| 387 | for individual graphical chipsets. |
587 | Also, be sure to look at <path>/etc/X11/xorg.conf.example</path>; you may wish |
|
|
588 | to copy this and use it as a foundation for writing your own |
|
|
589 | <path>xorg.conf</path>. |
|
|
590 | </p> |
|
|
591 | |
|
|
592 | <p> |
|
|
593 | You may find the X.org <uri link="http://www.x.org/wiki/FAQ">FAQ</uri> provided |
|
|
594 | on their website, in addition to their other documentation. |
| 388 | </p> |
595 | </p> |
| 389 | |
596 | |
| 390 | <p> |
597 | <p> |
| 391 | There are also many online resources on editing <path>xorg.conf</path>. We only |
598 | 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> |
599 | 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 |
600 | for more. |
| 394 | configuration file for the XFree86 project) use the |
601 | </p> |
| 395 | same syntaxis for most configuration options and more information about |
602 | |
| 396 | <path>XF86Config</path> is available, we'll list those resources as well. |
603 | </body> |
|
|
604 | </section> |
|
|
605 | <section> |
|
|
606 | <title>Other resources</title> |
|
|
607 | <body> |
|
|
608 | |
| 397 | </p> |
609 | <p> |
|
|
610 | More information about installing and configuring various graphical desktop |
|
|
611 | environments and applications can be found in the <uri |
|
|
612 | link="/doc/en/?catid=desktop">Gentoo Desktop Documentation Resources</uri> |
|
|
613 | section of our documentation. |
|
|
614 | </p> |
| 398 | |
615 | |
| 399 | <ul> |
616 | <p> |
| 400 | <li> |
617 | 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 |
618 | read the <uri |
| 402 | Local Multi-User HOWTO</uri> |
619 | link="/proj/en/desktop/x/x11/xorg-server-1.6-upgrade-guide.xml">migration |
| 403 | </li> |
620 | guide</uri>. |
| 404 | <li> |
621 | </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 | |
622 | |
| 411 | </body> |
623 | </body> |
| 412 | </section> |
624 | </section> |
| 413 | </chapter> |
625 | </chapter> |
| 414 | </guide> |
626 | </guide> |