-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hei,
Tässä suomentamani udev-opas tarkistettavaksi:
<?xml version='1.0' encoding="ISO-8859-15"?>
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
<!--
$Header: /var/www/www.gentoo.org/raw_cvs/gentoo/xml/htdocs/doc/en/udev-guide.xml,v
1.17 2004/09/22 11:59:16 swift Exp$ -->
<guide link="/doc/fi/udev-guide.xml">
<title>Gentoon udev-opas</title>
<author title="Tekijä">
<mail link="swift@g.o">Sven Vermeulen</mail>
</author>
<author title="Contributor">
<mail link="g.guidi@...">Gregorio Guidi</mail>
</author>
<author title="Kääntäjä">
<mail link="japsu@...">Santtu Pajukanta</mail>
</author>
<abstract>
Tämä opas kertoo, mikä on udev ja miten voit käyttää sitä täyttämään tarpeesi.
</abstract>
<license/>
<version>0.13</version>
<date>22. syyskuuta 2004</date>
<chapter>
<title>Mikä on udev?</title>
<section>
<title>/dev-hakemisto</title>
<body>
<p>
Kun Linux-käyttäjät keskustelevat tietokoneidensa laitteista sellaisten
ihmisten läheisyydessä, jotka luulevat Linuxin olevan jonkinlainen virus tai
kahvimerkki, "kautta dev kautta foon" käyttö saa varmasti aikaan outoja
katseita. Mutta onnellisille käyttäjille (Sinut mukaanlukien)
<path>/dev/hda1</path>:n käyttö on vain nopea tapa selittää, että tarkoitamme
ensisijaisen IDE-väylän isäntälaitteen ensimmäistä osiota. Vai tarkoitammeko?
</p>
<p>
Me kaikki tiedämme, mikä laitetiedosto on. Jotkut jopa tietävät, miksi
laitetiedostoilla on erityiset numerot, kun katsomme niitä lähempää
komentamalla <c>ls -l</c> <path>/dev</path>-hakemistossa. Sinusta se ei
välttämättä näytä tältä, mutta tämä on suunnitteluvirhe. <!-- flaw by design
== suunnitteluvirhe? -->
</p>
<p>
Ajattele laitteita, jotka voit kiinnittää koneeseesi sen käydessä, esimerkiksi
USB:tä, IEEE1394:ää, lennossa liitettävää PCI:tä... Mikä on ensimmäinen
laite? Ja kuinka pitkään? Miten muut laitteet nimetään, kun ensimmäinen
katoaa? Miten tämä vaikuttaa käynnissä oleviin toimenpiteisiin? Eikö olisikin
hauskaa, jos tulostustyösi siirtyisi yhtäkkiä uudelta lasertulostimeltasi
ikivanhalle puolikuolleelle matriisitulostimellesi, koska äitisi päätti
irroittaa mustesuihkutulostimesi johdon - sen, joka sattui olemaan
ensimmäinen tulostin?
</p>
<p>
Kuvaan astuu <e>udev</e>. Udev-projektin tavoitteet ovat sekä mielenkiintoisia
että tarpeellisia:
</p>
<ul>
<li>Toimii käyttäjätilassa</li>
<li>Luo ja poistaa laitetiedostoja dynaamisesti</li>
<li>Tarjoaa yhtenäisen nimeämistavan</li>
<li>Tarjoaa käyttäjätilan sovellusrajapinnan</li>
</ul>
<p>
Näiden toimintojen tarjoamiseksi udeviä kehitetään kolmessa eri projektissa:
<e>namedev</e>issä, <e>libsysfs</e>:ssä ja tietysti <e>udev</e>issä.
</p>
</body>
</section>
<section>
<title>namedev</title>
<body>
<p>
Namedev mahdollistaa laitteiden nimeämisen erillään udev-ohjelmasta. Tämä
mahdollistaa eri osapuolten kehittämät joustavatnimeämistavat. Laitteiden
nimeämisestä huolehtiva alijärjestelmä tarjoaa standardoidun rajapinnan, jota
udev voi käyttää.
</p>
<p>
Tällä hetkellä namedev tarjoaa vain yhden nimeämistavan; sen, jonka on
määritellyt LANANA ja jota suurin osa Linux-järjestelmien käyttäjistä nykyään
käyttää, ja joka näinollen sopii erittäin hyvin Linux-käyttäjien
enemmistölle.
</p>
<p>
Namedev käyttää viisikohtaista menetelmää tietyn laitteen nimen
päättelemiseksi. Jos laitteelle löydetään nimi jossain vaiheessa, tätä nimeä
käytetään. Vaiheet ovat:
</p>
<ul>
<li>nimiö tai sarjanumero</li>
<li>väylän laitenumero</li>
<li>väylätopologia</li>
<li>staattisesti määritelty nimi</li>
<li>kernelin määrittämä nimi</li>
</ul>
<p>
<e>Nimiö tai sarjanumero</e> -vaiheessa tarkistetaan, onko laitteella jokin
yksilöllinen tunniste. Esimerkiksi USB-laitteilla on yksilöllinen
USB-sarjanumero; SCSI-laitteilla on yksilöllinen UUID-tunniste. Jos namedev
löytää vastaavuuden tämän tunnisteen ja annetun asetustiedoston välillä,
asetustiedostossa määriteltyä laitenimeä käytetään.
</p>
<p>
<e>Väylän laitenumero</e> -vaiheessa tarkistetaan laitteen väylänumero. Tämä
menetelmä on riittävä ympäristöissä, joissa laitteita ei voida liittää
koneeseen lennossa. Esimerkiksi PCI-väylänumerot vaihtuvat harvoin
järjestelmän elinaikana. Mikäli namedev löytää vastaavuuden tämän sijainnin
ja annetun asetustiedoston välillä, asetustiedostossa määriteltyä laitenimeä
käytetään.
</p>
<p>
Yhtä lailla <e>väylätopologia</e> on melko staattinen tapa määritellä laite,
kunhan käyttäjä ei vaihda niitä. Kun laitteensijainti topologiassa vastaa
käyttäjän antamaa asetusta, tätä vastaavaa nimeä käytetään.
</p>
<p>
Neljäs vaihe, <e>staattisesti määritelty nimi</e>, tapahtuu yksinkertaisella
merkkijonon korvaamisella. Kun kernelin määrittämä nimi (laitteen oletusnimi)
vastaa annettua merkkijonoa, korvaavaa nimeä käytetään.
</p>
<p>
Viimeinen vaihe (<e>kernelin määrittämä nimi</e>) valitsee kernelin tarjoaman
oletusnimen. Useimmissa tapauksissa tämä tapa riittää, koska se vastaa
useimmissa Linux-järjestelmissä käytettyä laitteiden nimeämistapaa.
</p>
</body>
</section>
<section>
<title>libsysfs</title>
<body>
<p>
udev kommunikoi kernelin kanssa sysfs-näennäistiedostojärjestelmän kautta.
libsysfs-projekti tarjoaa yhteisen sovellusrajapinnan, jonka kautta päästään
käsiksi geneerisellä tavalla sysfs-tiedostojärjestelmän antamaan tietoon.
Tämä mahdollistaa kaikenlaisten laitteiden tiedustelemisen ilman, että täytyy
tehdä oletuksia siitä, minkälainen laite on kyseessä.
</p>
</body>
</section>
<section>
<title>udev</title>
<body>
<p>
Kernel kutsuu <path>/sbin/hotplug</path>-ohjelmaa aina, kun se huomaa
muutoksen laitteistorakenteessa. Hotplug ajaa ne sovellukset, joihin on
linkki <path>/etc/hotplug.d/default</path>-hakemistossa, josta löydät myöskin
symbolisen linkin udev-sovellukseen. Hotplug ohjaa kernelin antaman
informaation udev-ohjelmalle, joka suorittaa tarvittavat toimenpiteet
<path>/dev</path>-tiedostopuussa (luo tai poistaa laitetiedostoja).
</p>
</body>
</section>
</chapter>
<chapter>
<title>udevin käyttö Gentoossa</title>
<section>
<title>Vaatimukset</title>
<body>
<p>
udev on tarkoitettu käytettäväksi yhdessä 2.6-sarjan kernelin (kuten
<c>development-sources</c> ja <c>gentoo-dev-sources</c>) kanssa. Jos käytät
tällaista kerneliä, sinun tarvitsee vain varmistaa että sinulla on riittävän
uusi versio <c>sys-apps/baselayout</c>-paketista.
</p>
<pre caption="udevin asentaminen">
# <i>emerge udev</i>
</pre>
<p>
udev asentaa <c>hotplug-base</c>-paketin yhtenä riippuvuuksistaan. Jos aiot
käyttää hotplugia suorittamaan tiettyjä toimenpiteitä, kun liität koneeseen
USB- tai IEEE1394-laitteitasi, sinun tulisi myös asentaa tarvittavat
hotplug-skriptit.
</p>
<pre caption="Valinnaisten hotplug-skriptien asentaminen">
# <i>emerge hotplug</i>
</pre>
<p>
Jos käytät <c>genkernel</c>illä käännettyä kerneliä, kaikki on jo kunnossa
kernelin osalta. Muuten varmista, että olet asettanut seuraavat kernelin
asetukset:
</p>
<pre caption="Vaaditut kernelin asetukset">
General setup --->
[*] Support for hot-pluggable devices
File systems --->
Pseudo filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
</pre>
<p>
Voit jättää <c>/dev file system support (OBSOLETE)</c> -valinnan aktiiviseksi
mikäli haluat, mutta varmista tällöin, että <c>Automatically mount at
boot</c> ei ole valittu.
</p>
<pre caption="Devfs:ää ei liitetä automaagisesti">
File systems --->
Pseudo Filesystems --->
[*] /dev file system support (OBSOLETE)
[ ] Automatically mount at boot
</pre>
</body>
</section>
<section>
<title>Asetukset</title>
<body>
<p>
Jos haluat käyttää Gentohon lisättyjä udev-virityksiä, joiden tarkoitus on
tehdä elämäsi helpommaksi, sinun ei tarvitse lukea tästä eteenpäin. Gentoo
käyttää udeviä mutta säilyttää staattisen <path>/dev</path>-hakemiston, jotta
Sinulta ei koskaan puuttuisi tarvittavia laitetiedostoja. Gentoon
käynnistysskriptit eivät aja devfsd-palvelinta ja ne kytkevät käynnistyksen
aikana devfs:n pois käytöstä.
</p>
<p>
Jos haluat kuitenkin ajaa ainoastaan udeviä käyttävää virittämätöntä
järjestelmää, kuten udeviä kehitettäessä on tarpeen (ja kärsiä niistä
vaikeuksista, jotka aiheutuvat udev-tuen puutteen vuoksi puuttuvista
laitetiedostoista), ole hyvä ja lue eteenpäin :)
</p>
<p>
Poistamme säännöt, jotka tallentavat laitetiedostot: muokkaa
<c>RC_DEVICE_TARBALL</c>-muuttujaa <path>/etc/conf.d/rc</path>-tiedostossa ja
aseta sen arvoksi <c>no</c>:
</p>
<pre caption="/etc/conf.d/rc">
RC_DEVICE_TARBALL="no"
</pre>
<p>
Jos olet sisällyttänyt kerneliisi tuen devfs:lle, voit kytkeä sen pois
käytöstä järjestelmälataajan asetuksista: lisää <c>gentoo=nodevfs</c>
kernelin parametreihin. Jos haluat käyttää devfs:ää ja kytkeä udevin pois
käytöstä, lisää <c>gentoo=noudev</c> kernelin parametreihin.
</p>
</body>
</section>
</chapter>
<chapter>
<title>Tunnetut ongelmat</title>
<section>
<title>Puuttuvat laitetiedostot käynnistyksen aikana</title>
<body>
<p>
Jos et pysty käynnistämään järjestelmääsi, koska saat virheilmoituksen
<path>/dev/null</path>-tiedoston puuttumisesta tai koska konsoli puuttuu,
ongelmasi on, että Sinulta puuttuu joitakin niistä laitetiedostoista, joiden
on oltava olemassa <e>ennen kuin</e> <path>/dev</path> liitetään
tiedostojärjestelmään ja se siirtyy udevin hallintaan. Tämä on tavallista
Gentoo-järjestelmissä, jotka on asennettu vanhalta asennusmedialta.
</p>
<p>
Jos ajat <c>sys-apps/baselayout-1.8.12</c>:a tai uudempaa, tämä ongelma
voidaan sivuuttaa, koska käynnistysprosessin pitäisi silti pystyä toimimaan.
Jos kuitenkin haluat eroon ongelman aiheuttamista ärsyttävistä
virheilmoituksista, Sinun tulisi luoda puuttuvat laitetiedostot allaolevien
ohjeiden mukaisesti.
</p>
<p>
Nähdäksesi, mitkä laitetiedostot ovat saatavilla ennen kuin
<path>/dev</path>-tiedostojärjestelmä liitetään, anna seuraavat komennot:
</p>
<pre caption="Käynnistyksen aikana saatavilla olevien laitetiedostojen
listaaminen">
# <i>mkdir test</i>
# <i>mount --bind / test</i>
# <i>cd test/dev</i>
# <i>ls</i>
</pre>
<p>
Onnistuneeseen käynnistykseen tarvittavat tiedostot ovat
<path>/dev/null</path> ja <path>/dev/console</path>. Jos ne eivätnäy
äskeisessä testissä, Sinun on luotava ne käsin. Anna seuraavat komennot
<path>test/dev</path>-hakemistossa:
</p>
<pre caption="Tarvittavien laitetiedostojen luominen">
# <i>mknod -m 660 console c 5 1</i>
# <i>mknod -m 660 null c 1 3</i>
</pre>
<p>
Kun olet valmis, älä unohda irroittaa <path>test/</path>-hakemistoa
tiedostojärjestelmästä:
</p>
<pre caption="test/-hakemiston irroittaminen">
# <i>cd ../..</i>
# <i>umount test</i>
# <i>rmdir test</i>
</pre>
</body>
</section>
<section>
<title>udev ja nvidia</title>
<body>
<p>
Jos käytät nVidian suljettua ajuria ja X-palvelimesi ei käynnisty pelkkää
udevia käyttävässä järjestelmässä, varmista, että Sinulla on
</p>
<ul>
<li>
<c>nvidia</c>-moduuli listattuna
<path>/etc/modules.autoload.d/kernel-2.6</path>-tiedostossa,
</li>
<li>
<c>nvidia-kernel</c>-paketista vähintään versio
<c>media-video/nvidia-kernel-1.0.5336-r2</c> ja
</li>
<li>
<c>baselayout</c>-paketista vähintään versio
<c>sys-apps/baselayout-1.8.12</c>
</li>
</ul>
</body>
</section>
<section>
<title>LVM2-nimet katoavat</title>
<body>
<p>
Kun käytät <c>udev</c>iä ja LVM2:ta yhdessä, saatat huomata luomiesi
koosteryhmien <!-- volume groups --> ja loogisten koosteiden <!-- logical
volumes --> kadonneen. Ne eivät varsinaisesti ole kadonneet, mutta
valitettavasti ne on nimetty tyyliin <path>/dev/dm-#</path> missä # on 0,
1, ...
</p>
<p>
Korjataksesi tämän muokkaa
<path>/etc/udev/rules.d/50-udev.rules</path>-tiedostoa ja poista
kommenttimerkki (#) seuraavan rivin edestä:
</p>
<pre caption="Poista kommentointi tältä riviltä
tiedostosta /etc/udev/rules.d/50-udev.rules">
KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k",
SYMLINK="%c"
</pre>
</body>
</section>
<section>
<title>Muita ongelmia</title>
<body>
<p>
Jos laitetiedostoja ei luoda automaattisesti, kun moduuli ladataan tiedostosta
<path>/etc/modules.autoload.d/kernel-2.6</path>, mutta ne ilmestyvät kun
lataat moduulin käsin <c>modprobe</c>-komennolla, Sinun tulisi päivittää
<c>sys-apps/baselayout-1.8.12</c>:iin tai uudempaan.
</p>
<p>
Tuki framebuffer-laitteille (<path>/dev/fb/*</path>) sisältyy kerneliin
versiosta 2.6.6-rc2 lähtien.
</p>
<p>
Mikäli kernelisi on vanhempi kuin 2.6.4, tulee Sinun erikseen valita tuki
<path>/dev/pts</path>-tiedostojärjestelmälle.
</p>
<pre caption="/dev/pts-tiedostojärjestelmän aktivoiminen">
File systems --->
Pseudo filesystems --->
[*] /dev/pts file system for Unix98 PTYs
</pre>
</body>
</section>
</chapter>
<chapter>
<title>Resursseja ja tunnustusta</title>
<section>
<body>
<p>
Greg Kroah-Hartmanin (IBM Corporation) Linux Symposiumissa (Ottawa, Ontario
Canada - 2003) pitämä udev-aiheinen puhe antoiohjeen kirjoittajalle vankan
käsityksen udev-sovelluksesta.
</p>
<p>
<uri
link="http://webpages.charter.net/decibelshelp/LinuxHelp_UDEVPrimer.html">Decibel's
UDEV Primer</uri> on syvällinen dokumentti udevistä ja Gentoosta.
</p>
<p>
Daniel Draken, erään Gentoo-kehittäjän, kirjoittama <uri
link="http://www.reactivated.net/udevrules.php">Writing udev rules</uri> on
erinomainen dokumentti, jos haluat oppia mukauttamaan udev-asennustasi.
</p>
</body>
</section>
</chapter>
</guide>
- --
Santtu Pajukanta <japsu@...>
OpenPGP key ID: 0x520A97CC
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
iD8DBQFBVvsvZzmiiVIKl8wRAhmrAJ9KRhcs/HNz+QAoJKx1gXIJEWO6GQCfVvxe
8a8xPDa8mYEkVdFiJHKxCZs=
=ZaeT
-----END PGP SIGNATURE-----
--
gentoo-doc-fi@g.o mailing list
|