Gentoo Archives: gentoo-doc-fi

From: Santtu Pajukanta <japsu@×××.fi>
To: gentoo-doc-fi@l.g.o
Subject: [gentoo-doc-fi] Uusi versio udev-oppaan käännöksestä
Date: Sun, 26 Sep 2004 20:43:32
Message-Id: 200409262343.37208.japsu@iki.fi
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 ---&gt;
228 [*] Support for hot-pluggable devices
229
230 File systems ---&gt;
231 Pseudo filesystems ---&gt;
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 ---&gt;
244 Pseudo Filesystems ---&gt;
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 ---&gt;
427 Pseudo filesystems ---&gt;
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