1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA1 |
3 |
|
4 |
Hei, |
5 |
|
6 |
Tässä on kääntämästäni udev-oppaasta uusi versio, jossa pahimmat |
7 |
kardinaalimunaukset on pyritty korjaamaan. Vastaavat tulee openMosix- ja |
8 |
DistCC-oppaistakin kunhan kerkeän (saattaa venyä tiistaihin). |
9 |
|
10 |
|
11 |
|
12 |
<?xml version='1.0' encoding="ISO-8859-15"?> |
13 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
14 |
|
15 |
<!-- |
16 |
$Header: /var/www/www.gentoo.org/raw_cvs/gentoo/xml/htdocs/doc/en/udev-guide.xml,v |
17 |
1.17 2004/09/22 11:59:16 swift Exp$ --> |
18 |
|
19 |
<guide link="/doc/fi/udev-guide.xml"> |
20 |
<title>Gentoon udev-opas</title> |
21 |
|
22 |
<author title="Tekijä"> |
23 |
<mail link="swift@g.o">Sven Vermeulen</mail> |
24 |
</author> |
25 |
<author title="Contributor"> |
26 |
<mail link="g.guidi@×××.it">Gregorio Guidi</mail> |
27 |
</author> |
28 |
<author title="Kääntäjä"> |
29 |
<mail link="japsu@×××.fi">Santtu Pajukanta</mail> |
30 |
</author> |
31 |
|
32 |
<abstract> |
33 |
Tämä opas kertoo, mikä on udev ja miten sitä voidaan käyttää |
34 |
Gentoo-järjestelmässä. |
35 |
</abstract> |
36 |
|
37 |
<license/> |
38 |
|
39 |
<version>0.13</version> |
40 |
<date>22. syyskuuta 2004</date> |
41 |
|
42 |
<chapter> |
43 |
<title>Mikä on udev?</title> |
44 |
<section> |
45 |
<title>/dev-hakemisto</title> |
46 |
<body> |
47 |
|
48 |
<p> |
49 |
Kun Linux-käyttäjät keskustelevat tietokoneidensa laitteista sellaisten |
50 |
ihmisten läheisyydessä, jotka luulevat Linuxin olevan jonkinlainen virus tai |
51 |
kahvimerkki, "kautta dev kautta foon" käyttö saa varmasti aikaan outoja |
52 |
katseita. Mutta onnellisille käyttäjille <path>/dev/hda1</path>:n käyttö on |
53 |
vain nopea tapa selittää, että tarkoitetaan ensisijaisen IDE-väylän |
54 |
isäntälaitteen ensimmäistä osiota. Vai tarkoitammeko? |
55 |
</p> |
56 |
|
57 |
<p> |
58 |
Kaikki tietävät, mikä on laitetiedosto. Jotkut jopa tietävät, miksi |
59 |
laitetiedostoilla on erityiset numerot, kun katsomme niitä lähempää |
60 |
komentamalla <c>ls -l</c> <path>/dev</path>-hakemistossa. Ensinäkemältä se ei |
61 |
välttämättä siltä näytä, mutta kyseessä on rakennevika. |
62 |
</p> |
63 |
|
64 |
<p> |
65 |
Ajatellaan laitteita, jotka voidaan yhdistää tietokoneeseen sen käydessä, |
66 |
esimerkiksi USB- ja IEEE1394-laitteita, lennossaliitettäviä PCI-laitteita... |
67 |
Mikä on ensimmäinen laite? Ja kuinka kauan? Eikö olisikin hauskaa, jos |
68 |
tulostustyö siirtyisi yhtäkkiä uudelta lasertulostimelta ikivanhalle |
69 |
puolikuolleelle matriisitulostimelle, koska joku päätti irroittaa |
70 |
mustesuihkutulostimen johdon - sen, joka sattui olemaan ensimmäinen tulostin? |
71 |
</p> |
72 |
|
73 |
<p> |
74 |
Kuvaan astuu <e>udev</e>. udev-projektin tavoitteet ovat sekä mielenkiintoisia |
75 |
että tarpeellisia: |
76 |
</p> |
77 |
|
78 |
<ul> |
79 |
<li>Toimii käyttäjätilassa</li> |
80 |
<li>Luo ja poistaa laitetiedostoja dynaamisesti</li> |
81 |
<li>Tarjoaa yhtenäisen nimeämistavan</li> |
82 |
<li>Tarjoaa käyttäjätilan sovellusrajapinnan</li> |
83 |
</ul> |
84 |
|
85 |
<p> |
86 |
Näiden toimintojen tarjoamiseksi udeviä kehitetään kolmessa eri projektissa: |
87 |
<e>namedev</e>issä, <e>libsysfs</e>:ssä ja tietysti <e>udev</e>issä. |
88 |
</p> |
89 |
|
90 |
</body> |
91 |
</section> |
92 |
<section> |
93 |
<title>namedev</title> |
94 |
<body> |
95 |
|
96 |
<p> |
97 |
Namedev mahdollistaa laitteiden nimeämisen erillään udev-ohjelmasta. Tämä |
98 |
mahdollistaa eri osapuolten kehittämät joustavatnimeämistavat. Laitteiden |
99 |
nimeämisestä huolehtiva alijärjestelmä tarjoaa standardoidun rajapinnan, jota |
100 |
udev voi käyttää. |
101 |
</p> |
102 |
|
103 |
<p> |
104 |
Tällä hetkellä namedev tarjoaa vain yhden nimeämistavan; sen, jonka on |
105 |
määritellyt LANANA ja jota suurin osa Linux-järjestelmien käyttäjistä nykyään |
106 |
käyttää, ja joka näinollen sopii erittäin hyvin Linux-käyttäjien |
107 |
enemmistölle. |
108 |
</p> |
109 |
|
110 |
<p> |
111 |
Namedev käyttää viisikohtaista menetelmää tietyn laitteen nimen |
112 |
päättelemiseksi. Jos laitteelle löydetään nimi jossain vaiheessa, tätä nimeä |
113 |
käytetään. Vaiheet ovat: |
114 |
</p> |
115 |
|
116 |
<ul> |
117 |
<li>nimiö tai sarjanumero</li> |
118 |
<li>väylän laitenumero</li> |
119 |
<li>väylätopologia</li> |
120 |
<li>staattisesti määritelty nimi</li> |
121 |
<li>käyttöjärjestelmän ytimen (engl. <e>kernel</e>) määrittämä nimi</li> |
122 |
</ul> |
123 |
|
124 |
<p> |
125 |
<e>Nimiö tai sarjanumero</e> -vaiheessa tarkistetaan, onko laitteella jokin |
126 |
yksilöllinen tunniste. Esimerkiksi USB-laitteilla on yksilöllinen |
127 |
USB-sarjanumero; SCSI-laitteilla on yksilöllinen UUID-tunniste. Jos namedev |
128 |
löytää vastaavuuden tämän tunnisteen ja annetun asetustiedoston välillä, |
129 |
asetustiedostossa määriteltyä laitenimeä käytetään. |
130 |
</p> |
131 |
|
132 |
<p> |
133 |
<e>Väylän laitenumero</e> -vaiheessa tarkistetaan laitteen väylänumero. Tämä |
134 |
menetelmä on riittävä ympäristöissä, joissa laitteita ei voida liittää |
135 |
koneeseen lennossa. Esimerkiksi PCI-väylänumerot vaihtuvat harvoin |
136 |
järjestelmän elinaikana. Mikäli namedev löytää vastaavuuden tämän sijainnin |
137 |
ja annetun asetustiedoston välillä, asetustiedostossa määriteltyä laitenimeä |
138 |
käytetään. |
139 |
</p> |
140 |
|
141 |
<p> |
142 |
Yhtä lailla <e>väylätopologia</e> on melko staattinen tapa määritellä laite, |
143 |
kunhan käyttäjä ei vaihda niitä. Kun laitteensijainti topologiassa vastaa |
144 |
käyttäjän antamaa asetusta, tätä vastaavaa nimeä käytetään. |
145 |
</p> |
146 |
|
147 |
<p> |
148 |
Neljäs vaihe, <e>staattisesti määritelty nimi</e>, tapahtuu yksinkertaisella |
149 |
merkkijonon korvaamisella. Kun käyttöjörjestelmän ytimen määrittämä nimi |
150 |
(laitteen oletusnimi) vastaa annettua merkkijonoa, korvaavaa nimeä käytetään. |
151 |
</p> |
152 |
|
153 |
<p> |
154 |
Viimeinen vaihe (<e>käyttöjärjestelmän ytimen määrittämä nimi</e>) valitsee |
155 |
ytimen tarjoaman oletusnimen. Useimmissa tapauksissa tämä tapa riittää, koska |
156 |
se vastaa useimmissa Linux-järjestelmissä käytettyä laitteiden nimeämistapaa. |
157 |
</p> |
158 |
|
159 |
</body> |
160 |
</section> |
161 |
<section> |
162 |
<title>libsysfs</title> |
163 |
<body> |
164 |
|
165 |
<p> |
166 |
udev kommunikoi ytimen kanssa sysfs-näennäistiedostojärjestelmän kautta. |
167 |
libsysfs-projekti tarjoaa yhteisen sovellusrajapinnan, jonka kautta päästään |
168 |
käsiksi geneerisellä tavalla sysfs-tiedostojärjestelmän antamaan tietoon. |
169 |
Tämä mahdollistaa kaikenlaisten laitteiden tiedustelemisen ilman, että täytyy |
170 |
tehdä oletuksia siitä, minkälainen laite on kyseessä. |
171 |
</p> |
172 |
|
173 |
</body> |
174 |
</section> |
175 |
<section> |
176 |
<title>udev</title> |
177 |
<body> |
178 |
|
179 |
<p> |
180 |
Ydin kutsuu <path>/sbin/hotplug</path>-ohjelmaa aina, kun se huomaa muutoksen |
181 |
laitteistorakenteessa. Hotplug ajaa ne sovellukset, joihin on linkki |
182 |
<path>/etc/hotplug.d/default</path>-hakemistossa, josta löytyy myöskin |
183 |
symbolinen linkki udev-sovellukseen. Hotplug ohjaa ytimen antaman |
184 |
informaation udev-ohjelmalle, joka suorittaa tarvittavat toimenpiteet |
185 |
<path>/dev</path>-tiedostopuussa (luo tai poistaa laitetiedostoja). |
186 |
</p> |
187 |
|
188 |
</body> |
189 |
</section> |
190 |
</chapter> |
191 |
|
192 |
<chapter> |
193 |
<title>udevin käyttö Gentoossa</title> |
194 |
<section> |
195 |
<title>Vaatimukset</title> |
196 |
<body> |
197 |
|
198 |
<p> |
199 |
udev on tarkoitettu käytettäväksi yhdessä 2.6-sarjan ytimien (kuten |
200 |
<c>development-sources</c> ja <c>gentoo-dev-sources</c>) kanssa. Jos |
201 |
tällainen ydin on käytössä, tarvitsee enää vain varmistaa, että asennettu |
202 |
versio <c>sys-apps/baselayout</c>-paketista on riittävän uusi. |
203 |
</p> |
204 |
|
205 |
<pre caption="udevin asentaminen"> |
206 |
# <i>emerge udev</i> |
207 |
</pre> |
208 |
|
209 |
<p> |
210 |
udev asentaa <c>hotplug-base</c>-paketin yhtenä riippuvuuksistaan. Jos |
211 |
hotplugia aiotaan käyttää suorittamaan tiettyjä toimenpiteitä, kun koneeseen |
212 |
liitetään USB- tai IEEE1394-laitteita, tulee myös asentaa tarvittavat |
213 |
hotplug-skriptit. |
214 |
</p> |
215 |
|
216 |
<pre caption="Valinnaisten hotplug-skriptien asentaminen"> |
217 |
# <i>emerge hotplug</i> |
218 |
</pre> |
219 |
|
220 |
<p> |
221 |
Jos käytössä on <c>genkernel</c>illä käännetty ydin, kaikki on jo kunnossa |
222 |
ytimen osalta. Itse käännettyä ydintä käytettäessä tulee varmistaa, että |
223 |
seuraavat asetukset on valittu ytimen asetuksista: |
224 |
</p> |
225 |
|
226 |
<pre caption="Vaaditut ytimen asetukset"> |
227 |
General setup ---> |
228 |
[*] Support for hot-pluggable devices |
229 |
|
230 |
File systems ---> |
231 |
Pseudo filesystems ---> |
232 |
[*] /proc file system support |
233 |
[*] Virtual memory file system support (former shm fs) |
234 |
</pre> |
235 |
|
236 |
<p> |
237 |
<c>/dev file system support (OBSOLETE)</c> -valinnan voi jättää aktiiviseksit, |
238 |
mutta tällöin tulee varmistaa, että <c>Automatically mount at boot</c> ei ole |
239 |
valittu. |
240 |
</p> |
241 |
|
242 |
<pre caption="Devfs:ää ei liitetä automaagisesti"> |
243 |
File systems ---> |
244 |
Pseudo Filesystems ---> |
245 |
[*] /dev file system support (OBSOLETE) |
246 |
[ ] Automatically mount at boot |
247 |
</pre> |
248 |
|
249 |
</body> |
250 |
</section> |
251 |
<section> |
252 |
<title>Asetukset</title> |
253 |
<body> |
254 |
|
255 |
<p> |
256 |
Jos halutaan käyttää Gentohon lisättyjä udev-virityksiä, joiden tarkoitus on |
257 |
helpottaa elämää, ei allaolevia ohjeita tarvitse noudattaa. Tällöin Gentoo |
258 |
käyttää udeviä mutta säilyttää staattisen <path>/dev</path>-hakemiston, jotta |
259 |
tarvittavia laitetiedostoja ei koskaan puuttuisi. Gentoon käynnistysskriptit |
260 |
eivät aja devfsd-palvelinta ja ne kytkevät käynnistyksen aikana devfs:n pois |
261 |
käytöstä. |
262 |
</p> |
263 |
|
264 |
<p> |
265 |
Seuraavaksi käsitellään tilannetta, jossa halutaan ajaa ainoastaan udeviä |
266 |
käyttävää virittelemätöntä järjestelmää (ja kärsiä niistä vaikeuksista, jotka |
267 |
aiheutuvat udev-tuen puutteen vuoksi puuttuvista laitetiedostoista). Tämä on |
268 |
tarpeen esimerkiksi udev-ohjelman kehitystyössä. |
269 |
</p> |
270 |
|
271 |
<p> |
272 |
Poistetaan laitetiedostojen tallentaminen käytöstä muokkaamalla |
273 |
<c>RC_DEVICE_TARBALL</c>-muuttujaa <path>/etc/conf.d/rc</path>-tiedostossa: |
274 |
</p> |
275 |
|
276 |
<pre caption="/etc/conf.d/rc"> |
277 |
RC_DEVICE_TARBALL="no" |
278 |
</pre> |
279 |
|
280 |
<p> |
281 |
Jos käytössä olevassa ytimessä on tuki devfs:lle, sen voi kytkeä pois käytöstä |
282 |
järjestelmälataajan asetuksista lisäämällä <c>gentoo=nodevfs</c> ytimen |
283 |
parametreihin. Vastaavasti devfs:ää käytettäessä udev voidaan kytkeä pois |
284 |
käytöstä lisäämällä <c>gentoo=noudev</c> ytimen parametreihin. |
285 |
</p> |
286 |
|
287 |
</body> |
288 |
</section> |
289 |
</chapter> |
290 |
|
291 |
<chapter> |
292 |
<title>Tunnetut ongelmat</title> |
293 |
<section> |
294 |
<title>Puuttuvat laitetiedostot käynnistyksen aikana</title> |
295 |
<body> |
296 |
|
297 |
<p> |
298 |
Jos järjestelmäsi ei käynnisty, vaan antaa virheilmoituksen |
299 |
<path>/dev/null</path>-tiedoston tai konsolin puuttumisesta, ongelmana on se, |
300 |
että jokin niistä laitetiedostoista puuttuu, joiden on oltava olemassa |
301 |
<e>ennen kuin</e> <path>/dev</path> liitetään tiedostojärjestelmään ja se |
302 |
siirtyy udevin hallintaan. Tämä on tavallista Gentoo-järjestelmissä, jotka on |
303 |
asennettu vanhalta asennusmedialta. |
304 |
</p> |
305 |
|
306 |
<p> |
307 |
Jos käytössä on <c>sys-apps/baselayout-1.8.12</c>:a tai uudempi, tämä ongelma |
308 |
voidaan sivuuttaa, koska käynnistysprosessinpitäisi silti pystyä toimimaan. |
309 |
Jos kuitenkin halutaan eroon ongelman aiheuttamista ärsyttävistä |
310 |
virheilmoituksista, tuleepuuttuvat laitetiedostot luoda allaolevien ohjeiden |
311 |
mukaisesti. |
312 |
</p> |
313 |
|
314 |
<p> |
315 |
Lista ennen <path>/dev</path>-hakemiston liittämistä saatavilla olevista |
316 |
laitetiedostoista saadaan seuraavasti: |
317 |
</p> |
318 |
|
319 |
<pre caption="Käynnistyksen aikana saatavilla olevien laitetiedostojen |
320 |
listaaminen"> |
321 |
# <i>mkdir test</i> |
322 |
# <i>mount --bind / test</i> |
323 |
# <i>cd test/dev</i> |
324 |
# <i>ls</i> |
325 |
</pre> |
326 |
|
327 |
<p> |
328 |
Onnistuneeseen käynnistykseen tarvittavat tiedostot ovat |
329 |
<path>/dev/null</path> ja <path>/dev/console</path>. Jos ne eivätnäy |
330 |
äskeisessä testissä, ne on luotava käsin antamalla seuraavat komennot |
331 |
<path>test/dev</path>-hakemistossa: |
332 |
</p> |
333 |
|
334 |
<pre caption="Tarvittavien laitetiedostojen luominen"> |
335 |
# <i>mknod -m 660 console c 5 1</i> |
336 |
# <i>mknod -m 660 null c 1 3</i> |
337 |
</pre> |
338 |
|
339 |
<p> |
340 |
Tämän jälkeen kannattaa muistaa irroittaa <path>test/</path>-hakemisto |
341 |
tiedostojärjestelmästä: |
342 |
</p> |
343 |
|
344 |
<pre caption="test/-hakemiston irroittaminen"> |
345 |
# <i>cd ../..</i> |
346 |
# <i>umount test</i> |
347 |
# <i>rmdir test</i> |
348 |
</pre> |
349 |
|
350 |
</body> |
351 |
</section> |
352 |
<section> |
353 |
<title>udev ja nvidia</title> |
354 |
<body> |
355 |
|
356 |
<p> |
357 |
Jos käytössä on nVidian suljettu ajuri ja X-palvelin ei käynnisty pelkkää |
358 |
udevia käyttävässä järjestelmässä, varmista, että |
359 |
</p> |
360 |
|
361 |
<ul> |
362 |
<li> |
363 |
<c>nvidia</c>-moduuli on listattu |
364 |
<path>/etc/modules.autoload.d/kernel-2.6</path>-tiedostossa |
365 |
</li> |
366 |
<li> |
367 |
<c>nvidia-kernel</c>-paketista on asennettu vähintään versio |
368 |
<c>media-video/nvidia-kernel-1.0.5336-r2</c> |
369 |
</li> |
370 |
<li> |
371 |
<c>baselayout</c>-paketista on asennettu vähintään versio |
372 |
<c>sys-apps/baselayout-1.8.12</c> |
373 |
</li> |
374 |
</ul> |
375 |
|
376 |
</body> |
377 |
</section> |
378 |
<section> |
379 |
<title>LVM2-nimet katoavat</title> |
380 |
<body> |
381 |
|
382 |
<p> |
383 |
Kun <c>udev</c>iä ja LVM2:ta käytetään yhdessä, saattaa näyttää siltä, että |
384 |
luodut levyasemaryhmät ja loogiset asemat ovatkadonneet. Ne eivät |
385 |
varsinaisesti ole kadonneet, mutta valitettavasti ne on nimetty tyyliin |
386 |
<path>/dev/dm-#</path> missä #on 0, 1, ... |
387 |
</p> |
388 |
|
389 |
<p> |
390 |
Tämä korjataan muokkamalla |
391 |
<path>/etc/udev/rules.d/50-udev.rules</path>-tiedostoa ja poistamalla |
392 |
kommenttimerkki (#) seuraavan rivin edestä: |
393 |
</p> |
394 |
|
395 |
<pre caption="Poista kommentointi tältä riviltä |
396 |
tiedostosta /etc/udev/rules.d/50-udev.rules"> |
397 |
KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k", |
398 |
SYMLINK="%c" |
399 |
</pre> |
400 |
|
401 |
</body> |
402 |
</section> |
403 |
<section> |
404 |
<title>Muita ongelmia</title> |
405 |
<body> |
406 |
|
407 |
<p> |
408 |
Jos laitetiedostoja ei luoda automaattisesti, kun moduuli ladataan tiedostosta |
409 |
<path>/etc/modules.autoload.d/kernel-2.6</path>, mutta ne ilmestyvät kun |
410 |
moduuli ladataan käsin <c>modprobe</c>-komennolla, tulee baselayout-paketti |
411 |
päivittää versioon <c>sys-apps/baselayout-1.8.12</c> tai uudempaan. |
412 |
</p> |
413 |
|
414 |
<p> |
415 |
Tuki framebuffer-laitteille (<path>/dev/fb/*</path>) sisältyy ytimeen |
416 |
versiosta 2.6.6-rc2 lähtien. |
417 |
</p> |
418 |
|
419 |
<p> |
420 |
Mikäli käyttöjärjestelmän ytimestä on käytössä versio, joka on vanhempi kuin |
421 |
2.6.4, <path>/dev/pts</path>-tiedostojärjestelmän tuki on erikseen valittava |
422 |
käyttöön. |
423 |
</p> |
424 |
|
425 |
<pre caption="/dev/pts-tiedostojärjestelmän aktivoiminen"> |
426 |
File systems ---> |
427 |
Pseudo filesystems ---> |
428 |
[*] /dev/pts file system for Unix98 PTYs |
429 |
</pre> |
430 |
|
431 |
</body> |
432 |
</section> |
433 |
</chapter> |
434 |
|
435 |
<chapter> |
436 |
<title>Resursseja ja tunnustusta</title> |
437 |
<section> |
438 |
<body> |
439 |
|
440 |
<p> |
441 |
Greg Kroah-Hartmanin (IBM Corporation) Linux Symposiumissa (Ottawa, Ontario |
442 |
Canada - 2003) pitämä udev-aiheinen puhe antoiohjeen kirjoittajalle vankan |
443 |
käsityksen udev-sovelluksesta. |
444 |
</p> |
445 |
|
446 |
<p> |
447 |
<uri |
448 |
link="http://webpages.charter.net/decibelshelp/LinuxHelp_UDEVPrimer.html">Decibel's |
449 |
UDEV Primer</uri> on syvällinen dokumentti udevistä ja Gentoosta. |
450 |
</p> |
451 |
|
452 |
<p> |
453 |
Daniel Draken, erään Gentoo-kehittäjän, kirjoittama <uri |
454 |
link="http://www.reactivated.net/udevrules.php">Writing udev rules</uri> on |
455 |
erinomainen dokumentti, jos haluat oppia mukauttamaan udev-asennustasi. |
456 |
</p> |
457 |
|
458 |
</body> |
459 |
</section> |
460 |
</chapter> |
461 |
|
462 |
</guide> |
463 |
|
464 |
|
465 |
|
466 |
|
467 |
|
468 |
- -- |
469 |
Santtu Pajukanta <japsu@×××.fi> |
470 |
OpenPGP key ID: 0x520A97CC |
471 |
-----BEGIN PGP SIGNATURE----- |
472 |
Version: GnuPG v1.2.6 (GNU/Linux) |
473 |
|
474 |
iD8DBQFBVyn5ZzmiiVIKl8wRAlT/AKCuTWat85JRV7DRKlLkdJlZeWnXYwCgtHwJ |
475 |
AFLL4kLyCXnTCcwU00LqVwU= |
476 |
=wJ7p |
477 |
-----END PGP SIGNATURE----- |
478 |
|
479 |
-- |
480 |
gentoo-doc-fi@g.o mailing list |