Gentoo Archives: gentoo-doc-fi

From: Santtu Pajukanta <japsu@×××.fi>
To: gentoo-doc-fi@l.g.o
Subject: [gentoo-doc-fi] udev-opas tarkistettavaksi
Date: Sun, 26 Sep 2004 17:23:52
Message-Id: 200409262023.59530.japsu@iki.fi
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Hei,
5
6 Tässä suomentamani udev-opas tarkistettavaksi:
7
8
9
10 <?xml version='1.0' encoding="ISO-8859-15"?>
11 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
12
13 <!--
14 $Header: /var/www/www.gentoo.org/raw_cvs/gentoo/xml/htdocs/doc/en/udev-guide.xml,v
15 1.17 2004/09/22 11:59:16 swift Exp$ -->
16
17 <guide link="/doc/fi/udev-guide.xml">
18 <title>Gentoon udev-opas</title>
19
20 <author title="Tekijä">
21 <mail link="swift@g.o">Sven Vermeulen</mail>
22 </author>
23 <author title="Contributor">
24 <mail link="g.guidi@×××.it">Gregorio Guidi</mail>
25 </author>
26 <author title="Kääntäjä">
27 <mail link="japsu@×××.fi">Santtu Pajukanta</mail>
28 </author>
29
30 <abstract>
31 Tämä opas kertoo, mikä on udev ja miten voit käyttää sitä täyttämään tarpeesi.
32 </abstract>
33
34 <license/>
35
36 <version>0.13</version>
37 <date>22. syyskuuta 2004</date>
38
39 <chapter>
40 <title>Mikä on udev?</title>
41 <section>
42 <title>/dev-hakemisto</title>
43 <body>
44
45 <p>
46 Kun Linux-käyttäjät keskustelevat tietokoneidensa laitteista sellaisten
47 ihmisten läheisyydessä, jotka luulevat Linuxin olevan jonkinlainen virus tai
48 kahvimerkki, "kautta dev kautta foon" käyttö saa varmasti aikaan outoja
49 katseita. Mutta onnellisille käyttäjille (Sinut mukaanlukien)
50 <path>/dev/hda1</path>:n käyttö on vain nopea tapa selittää, että tarkoitamme
51 ensisijaisen IDE-väylän isäntälaitteen ensimmäistä osiota. Vai tarkoitammeko?
52 </p>
53
54 <p>
55 Me kaikki tiedämme, mikä laitetiedosto on. Jotkut jopa tietävät, miksi
56 laitetiedostoilla on erityiset numerot, kun katsomme niitä lähempää
57 komentamalla <c>ls -l</c> <path>/dev</path>-hakemistossa. Sinusta se ei
58 välttämättä näytä tältä, mutta tämä on suunnitteluvirhe. <!-- flaw by design
59 == suunnitteluvirhe? -->
60 </p>
61
62 <p>
63 Ajattele laitteita, jotka voit kiinnittää koneeseesi sen käydessä, esimerkiksi
64 USB:tä, IEEE1394:ää, lennossa liitettävää PCI:tä... Mikä on ensimmäinen
65 laite? Ja kuinka pitkään? Miten muut laitteet nimetään, kun ensimmäinen
66 katoaa? Miten tämä vaikuttaa käynnissä oleviin toimenpiteisiin? Eikö olisikin
67 hauskaa, jos tulostustyösi siirtyisi yhtäkkiä uudelta lasertulostimeltasi
68 ikivanhalle puolikuolleelle matriisitulostimellesi, koska äitisi päätti
69 irroittaa mustesuihkutulostimesi johdon - sen, joka sattui olemaan
70 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>kernelin 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 kernelin määrittämä nimi (laitteen oletusnimi)
150 vastaa annettua merkkijonoa, korvaavaa nimeä käytetään.
151 </p>
152
153 <p>
154 Viimeinen vaihe (<e>kernelin määrittämä nimi</e>) valitsee kernelin tarjoaman
155 oletusnimen. Useimmissa tapauksissa tämä tapa riittää, koska se vastaa
156 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 kernelin 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 Kernel kutsuu <path>/sbin/hotplug</path>-ohjelmaa aina, kun se huomaa
181 muutoksen laitteistorakenteessa. Hotplug ajaa ne sovellukset, joihin on
182 linkki <path>/etc/hotplug.d/default</path>-hakemistossa, josta löydät myöskin
183 symbolisen linkin udev-sovellukseen. Hotplug ohjaa kernelin 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 kernelin (kuten
200 <c>development-sources</c> ja <c>gentoo-dev-sources</c>) kanssa. Jos käytät
201 tällaista kerneliä, sinun tarvitsee vain varmistaa että sinulla on riittävän
202 uusi versio <c>sys-apps/baselayout</c>-paketista.
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 aiot
211 käyttää hotplugia suorittamaan tiettyjä toimenpiteitä, kun liität koneeseen
212 USB- tai IEEE1394-laitteitasi, sinun tulisi 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ät <c>genkernel</c>illä käännettyä kerneliä, kaikki on jo kunnossa
222 kernelin osalta. Muuten varmista, että olet asettanut seuraavat kernelin
223 asetukset:
224 </p>
225
226 <pre caption="Vaaditut kernelin 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 Voit jättää <c>/dev file system support (OBSOLETE)</c> -valinnan aktiiviseksi
238 mikäli haluat, mutta varmista tällöin, että <c>Automatically mount at
239 boot</c> ei ole 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 haluat käyttää Gentohon lisättyjä udev-virityksiä, joiden tarkoitus on
257 tehdä elämäsi helpommaksi, sinun ei tarvitse lukea tästä eteenpäin. Gentoo
258 käyttää udeviä mutta säilyttää staattisen <path>/dev</path>-hakemiston, jotta
259 Sinulta ei koskaan puuttuisi tarvittavia laitetiedostoja. Gentoon
260 käynnistysskriptit eivät aja devfsd-palvelinta ja ne kytkevät käynnistyksen
261 aikana devfs:n pois käytöstä.
262 </p>
263
264 <p>
265 Jos haluat kuitenkin ajaa ainoastaan udeviä käyttävää virittämätöntä
266 järjestelmää, kuten udeviä kehitettäessä on tarpeen (ja kärsiä niistä
267 vaikeuksista, jotka aiheutuvat udev-tuen puutteen vuoksi puuttuvista
268 laitetiedostoista), ole hyvä ja lue eteenpäin :)
269 </p>
270
271 <p>
272 Poistamme säännöt, jotka tallentavat laitetiedostot: muokkaa
273 <c>RC_DEVICE_TARBALL</c>-muuttujaa <path>/etc/conf.d/rc</path>-tiedostossa ja
274 aseta sen arvoksi <c>no</c>:
275 </p>
276
277 <pre caption="/etc/conf.d/rc">
278 RC_DEVICE_TARBALL="no"
279 </pre>
280
281 <p>
282 Jos olet sisällyttänyt kerneliisi tuen devfs:lle, voit kytkeä sen pois
283 käytöstä järjestelmälataajan asetuksista: lisää <c>gentoo=nodevfs</c>
284 kernelin parametreihin. Jos haluat käyttää devfs:ää ja kytkeä udevin pois
285 käytöstä, lisää <c>gentoo=noudev</c> kernelin parametreihin.
286 </p>
287
288 </body>
289 </section>
290 </chapter>
291
292 <chapter>
293 <title>Tunnetut ongelmat</title>
294 <section>
295 <title>Puuttuvat laitetiedostot käynnistyksen aikana</title>
296 <body>
297
298 <p>
299 Jos et pysty käynnistämään järjestelmääsi, koska saat virheilmoituksen
300 <path>/dev/null</path>-tiedoston puuttumisesta tai koska konsoli puuttuu,
301 ongelmasi on, että Sinulta puuttuu joitakin niistä laitetiedostoista, joiden
302 on oltava olemassa <e>ennen kuin</e> <path>/dev</path> liitetään
303 tiedostojärjestelmään ja se siirtyy udevin hallintaan. Tämä on tavallista
304 Gentoo-järjestelmissä, jotka on asennettu vanhalta asennusmedialta.
305 </p>
306
307 <p>
308 Jos ajat <c>sys-apps/baselayout-1.8.12</c>:a tai uudempaa, tämä ongelma
309 voidaan sivuuttaa, koska käynnistysprosessin pitäisi silti pystyä toimimaan.
310 Jos kuitenkin haluat eroon ongelman aiheuttamista ärsyttävistä
311 virheilmoituksista, Sinun tulisi luoda puuttuvat laitetiedostot allaolevien
312 ohjeiden mukaisesti.
313 </p>
314
315 <p>
316 Nähdäksesi, mitkä laitetiedostot ovat saatavilla ennen kuin
317 <path>/dev</path>-tiedostojärjestelmä liitetään, anna seuraavat komennot:
318 </p>
319
320 <pre caption="Käynnistyksen aikana saatavilla olevien laitetiedostojen
321 listaaminen">
322 # <i>mkdir test</i>
323 # <i>mount --bind / test</i>
324 # <i>cd test/dev</i>
325 # <i>ls</i>
326 </pre>
327
328 <p>
329 Onnistuneeseen käynnistykseen tarvittavat tiedostot ovat
330 <path>/dev/null</path> ja <path>/dev/console</path>. Jos ne eivätnäy
331 äskeisessä testissä, Sinun on luotava ne käsin. Anna seuraavat komennot
332 <path>test/dev</path>-hakemistossa:
333 </p>
334
335 <pre caption="Tarvittavien laitetiedostojen luominen">
336 # <i>mknod -m 660 console c 5 1</i>
337 # <i>mknod -m 660 null c 1 3</i>
338 </pre>
339
340 <p>
341 Kun olet valmis, älä unohda irroittaa <path>test/</path>-hakemistoa
342 tiedostojärjestelmästä:
343 </p>
344
345 <pre caption="test/-hakemiston irroittaminen">
346 # <i>cd ../..</i>
347 # <i>umount test</i>
348 # <i>rmdir test</i>
349 </pre>
350
351 </body>
352 </section>
353 <section>
354 <title>udev ja nvidia</title>
355 <body>
356
357 <p>
358 Jos käytät nVidian suljettua ajuria ja X-palvelimesi ei käynnisty pelkkää
359 udevia käyttävässä järjestelmässä, varmista, että Sinulla on
360 </p>
361
362 <ul>
363 <li>
364 <c>nvidia</c>-moduuli listattuna
365 <path>/etc/modules.autoload.d/kernel-2.6</path>-tiedostossa,
366 </li>
367 <li>
368 <c>nvidia-kernel</c>-paketista vähintään versio
369 <c>media-video/nvidia-kernel-1.0.5336-r2</c> ja
370 </li>
371 <li>
372 <c>baselayout</c>-paketista vähintään versio
373 <c>sys-apps/baselayout-1.8.12</c>
374 </li>
375 </ul>
376
377 </body>
378 </section>
379 <section>
380 <title>LVM2-nimet katoavat</title>
381 <body>
382
383 <p>
384 Kun käytät <c>udev</c>iä ja LVM2:ta yhdessä, saatat huomata luomiesi
385 koosteryhmien <!-- volume groups --> ja loogisten koosteiden <!-- logical
386 volumes --> kadonneen. Ne eivät varsinaisesti ole kadonneet, mutta
387 valitettavasti ne on nimetty tyyliin <path>/dev/dm-#</path> missä # on 0,
388 1, ...
389 </p>
390
391 <p>
392 Korjataksesi tämän muokkaa
393 <path>/etc/udev/rules.d/50-udev.rules</path>-tiedostoa ja poista
394 kommenttimerkki (#) seuraavan rivin edestä:
395 </p>
396
397 <pre caption="Poista kommentointi tältä riviltä
398 tiedostosta /etc/udev/rules.d/50-udev.rules">
399 KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k",
400 SYMLINK="%c"
401 </pre>
402
403 </body>
404 </section>
405 <section>
406 <title>Muita ongelmia</title>
407 <body>
408
409 <p>
410 Jos laitetiedostoja ei luoda automaattisesti, kun moduuli ladataan tiedostosta
411 <path>/etc/modules.autoload.d/kernel-2.6</path>, mutta ne ilmestyvät kun
412 lataat moduulin käsin <c>modprobe</c>-komennolla, Sinun tulisi päivittää
413 <c>sys-apps/baselayout-1.8.12</c>:iin tai uudempaan.
414 </p>
415
416 <p>
417 Tuki framebuffer-laitteille (<path>/dev/fb/*</path>) sisältyy kerneliin
418 versiosta 2.6.6-rc2 lähtien.
419 </p>
420
421 <p>
422 Mikäli kernelisi on vanhempi kuin 2.6.4, tulee Sinun erikseen valita tuki
423 <path>/dev/pts</path>-tiedostojärjestelmälle.
424 </p>
425
426 <pre caption="/dev/pts-tiedostojärjestelmän aktivoiminen">
427 File systems ---&gt;
428 Pseudo filesystems ---&gt;
429 [*] /dev/pts file system for Unix98 PTYs
430 </pre>
431
432 </body>
433 </section>
434 </chapter>
435
436 <chapter>
437 <title>Resursseja ja tunnustusta</title>
438 <section>
439 <body>
440
441 <p>
442 Greg Kroah-Hartmanin (IBM Corporation) Linux Symposiumissa (Ottawa, Ontario
443 Canada - 2003) pitämä udev-aiheinen puhe antoiohjeen kirjoittajalle vankan
444 käsityksen udev-sovelluksesta.
445 </p>
446
447 <p>
448 <uri
449 link="http://webpages.charter.net/decibelshelp/LinuxHelp_UDEVPrimer.html">Decibel's
450 UDEV Primer</uri> on syvällinen dokumentti udevistä ja Gentoosta.
451 </p>
452
453 <p>
454 Daniel Draken, erään Gentoo-kehittäjän, kirjoittama <uri
455 link="http://www.reactivated.net/udevrules.php">Writing udev rules</uri> on
456 erinomainen dokumentti, jos haluat oppia mukauttamaan udev-asennustasi.
457 </p>
458
459 </body>
460 </section>
461 </chapter>
462
463 </guide>
464
465
466
467
468
469 - --
470 Santtu Pajukanta <japsu@×××.fi>
471 OpenPGP key ID: 0x520A97CC
472 -----BEGIN PGP SIGNATURE-----
473 Version: GnuPG v1.2.6 (GNU/Linux)
474
475 iD8DBQFBVvsvZzmiiVIKl8wRAhmrAJ9KRhcs/HNz+QAoJKx1gXIJEWO6GQCfVvxe
476 8a8xPDa8mYEkVdFiJHKxCZs=
477 =ZaeT
478 -----END PGP SIGNATURE-----
479
480 --
481 gentoo-doc-fi@g.o mailing list