<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">

<book id="lwce20010827" lang="no">

  <bookinfo>
    <title>LTSP - Linux Terminal Server Project - v3.0</title>

    <authorgroup>
        <author>
           <firstname>James</firstname>
           <surname>McQuillan</surname>
           <affiliation>
              <address><email>jam@LTSP.org</email>
              </address>
           </affiliation>
        </author>
        <author>
           <firstname>Ragnar</firstname>
           <surname>Wisløff</surname>
           <affiliation>
              <address><email>ragnar@wisloff.no</email>
              </address>
           </affiliation>
        </author>
    </authorgroup>

    <revhistory>
       <revision>
         <revnumber>3.0.4&nbsp;</revnumber>
         <date>2002-03-02</date>
         <authorinitials>jam</authorinitials>
       </revision>
       <revision>
         <revnumber>3.0.4-1-no&nbsp;</revnumber>
         <date>2002-03-02</date>
         <authorinitials>rw</authorinitials>
       </revision>
    </revhistory>

    <copyright>
        <year>2002</year>
        <holder>James A. McQuillan for den engelskspråklige versjonen</holder>
    </copyright>

    <copyright>
        <year>2002</year>
        <holder>Ragnar Wisløff for den norskspråklige versjonen</holder>
    </copyright>

    <abstract>
       <para>
           GNU/Linux er en flott plattform å bruke til tynne klienter.
	   Hovedformålet med dette dokumentet er å vise deg hvordan man setter opp
	   tynne klienter med LTSP. I tillegg dekker det andre emner som
	   gjelder tynne klienter generelt.
       </para>
    </abstract>
  </bookinfo>

<preface>
    <title>Innledning</title>

    <para>
        LTSP tilbyr en enkel måte å benytte lavkost arbeidsstasjoner, enten
	som grafiske eller tegnbaserte terminaler mot en GNU/Linux applikasjonstjener.
    </para>

    <para>
        I et tradisjonelt kontormiljø benyttes Intel-baserte PC'er med relativt høy
	ytelse på hver pult. Hver av disse har flere gigabytes med harddisk-plass.
	Brukerne lagrer sine data på lokale harddisker og backup av disse gjøres
	sjelden eller aldri.
    </para>

    <para>
        Er det virkelig fornuftig å ha en fullverdig datamaskin på hver pult?
    </para>

    <para>
        Vi mener svaret er nei.
    </para>

    <para>
        Heldigvis finnes det et alternativ. Ved å bruke LTSP kan du ta utrangerte
	PC'er, fjerne harddisk, diskettstasjon og CD-spiller og sette inn et
	nettverksort maskinen kan starte fra. Mange nettverksort har ledig plass til
	en brikke som gjør dette mulig.
    </para>

    <para>
        I oppstarten får den diskløse arbeidsstasjonen sitt nettverksoppsett
	og en kjerne fra tjeneren og monterer rot filsystemet fra tjeneren
	via NFS.
    </para>

    <para>
        Arbeidsstasjonen kan settes opp i en av tre modi:
        <itemizedlist>
            <listitem>
                <para><command>Grafisk X Window</command></para>
                <para>
		    Med X Window kan arbeidsstasjonen gis tilgang til alle
		    programmene på tjeneren eller andre tjenere i nettverket.
                </para>
            </listitem>
        </itemizedlist>

        <itemizedlist>
            <listitem>
                <para><command>Tegnbasert telnet-økt</command></para>
                <para>
		    Arbeidsstasjonen kan starte flere telnet-oppkoblinger mot
		    en tjener. Hver telnet-økt går i en virtuell terminal.
		    Tastekombinasjonene Alt-F1 til Alt-F9 bytter mellom
		    telnet-øktene.
                </para>
            </listitem>
        </itemizedlist>

        <itemizedlist>
            <listitem>
                <para><command>Lokalt skall</command></para>
                <para>
		    Arbeidsstasjonen kan settes opp til å gi deg et skall i
		    konsollet ved oppstart. Dette er spesielt nyttig under
		    feilsøking av problemer med X Window eller NFS.
                </para>
            </listitem>
        </itemizedlist>
    </para>

    <para>
        Det virkelig fine er at du kan henge svært mange arbeidsstasjoner på en
	enkelt GNU/Linux tjenermaskin. Hvor mange arbeidsstasjoner? Vel, det
	kommer an på tjenermaskinen og på programmene som skal brukes.
    </para>

    <para>
        Det er ikke uvanlig å ha 40 arbeidsstasjoner, alle med Netscape og
	Staroffice, betjent av en enkelt 2-CPU PIII-650 med 1 GB RAM. Vi vet
	at dette virker. Faktisk er gjennomsnittlig last sjelden over 1.0!
    </para>

    <sect1>
        <title>Ansvarsfraskrivelse</title>
        <para>
	    Hverken forfatteren eller distributøren, eller noen annen bidragsyter
	    til dette dokumentet er på noen måte ansvarlig for fysisk, økonomisk,
	    moralsk eller annen form for skade påført ved at forslagene i denne
	    teksten følges.
        </para>
    </sect1>

    <sect1 id="copyright">
        <title>Opphavsrett og lisens</title>
        <para>
	    Opphavsretten til dette dokumentet er fra 2001 og
	    tilhører James McQuillan og Ragnar Wisløff. Dokumentet er offentliggjort under betingelsene
	    i GNU Free Documentation License, som herved er inkludert ved referanse.
        </para>
    </sect1>
</preface>

<chapter>
    <title>Teori og prinsipper</title>
    <para>
        Å starte opp en diskløs arbeidsstasjon består av flere steg. Å forstå
	hva som skjer underveis vil gjøre det mye enklere å løse problemer som
	måtte oppstå.
    </para>
    <para>
        Dette eksempelet er basert på følgende oppsett:
        <itemizedlist>
            <listitem>
                <para>Standard x86-basert arbeidsstasjon</para>
            </listitem>
            <listitem>
                <para>
		    Linksys LNE100TX nettverkskort med Etherboot oppstartsROM.
                </para>
            </listitem>
            <listitem>
                <para>Intel i810-basert skjermkort</para>
            </listitem>
            <listitem>
                <para>Tjenermaskin som kjører Red Hat Linux 7.2</para>
            </listitem>
            <listitem>
                <para>DHCP</para>
            </listitem>
            <listitem>
                <para>Nettverksadresser 192.168.0.0/24</para>
            </listitem>
        </itemizedlist>
    </para>

    <para>
    Dersom man antar at tjenermaskinen er satt opp med LTSP-pakken
    er dette det som skjer:
    </para>

    <orderedlist spacing="normal">
        <listitem>
            <para>
	        Når du skrur på maskinen går den gjennom sin
                "Power On Self Test" (POST).
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Under egen-testen vil BIOS søke etter funksjonsbrikker. Nettverkskortet
		inneholder en Etherboot-brikke som er en slik utvidelsesbrikke.
		BIOS finner denne brikken på nettverkskortet.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Når POST er ferdig, overtar Etherboot-koden.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	       Etherboot-koden leter etter et nettverkskort. Hvis et slikt
	       blir funnet, initialiseres det.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Etherboot-koden kringkaster så ut en DHCP-forespørsel
		til det lokale nettverket. Denne forespørselen inneholder
		MAC-adressen til nettverkskortet.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        DHCP-daemonen på tjeneren vil fange opp denne forespørselen
		fra arbeidsstasjonen, og slå opp i sin liste for å se om
		den kjenner igjen MAC-adressen for dette nettverkskortet.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        DHCP-daemonen bygger opp en svar-pakke som inneholder
		flere typer informasjon. Denne pakken sendes tilbake til
		arbeidsstasjonen og inneholder blant annet:
                <itemizedlist>
                    <listitem>
                        <para>
                            IP-adressen til arbeidsstasjonen
                        </para>
                    </listitem>
                    <listitem>
                        <para>
                            Nettmasken for det lokale nettverket.
                        </para>
                    </listitem>
                    <listitem>
                        <para>
                            Sti til kjernen som skal overføres til arbeidsstasjonen
                        </para>
                    </listitem>
                    <listitem>
                        <para>
                            Sti til rot-filsystemet som skal monteres
                        </para>
                    </listitem>
                    <listitem>
                        <para>
			    Andre parametre som skal gis til kjernen via
			    kjernens kommanodlinje
                        </para>
                    </listitem>
                </itemizedlist>
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Etherboot-koden vil ta i mot svaret fra tjenermaskinen
		og bruke informasjonen til å sette opp nettverkskortets
		TCP/IP-parametre.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Ved hjelp av TFTP (Trivial File Transfer Protocol) vil
		Etherboot-koden ta kontakt med tjeneren og begynne å overføre
		Linux-kjernen.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Når kjernen er ferdig overført til arbeidsstasjonen
		vil Etherboot-koden legge kjernen inn på riktig sted
		i minnet.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Kontrollen overlates så til kjernen som initialiserer
		arbeidsstasjonen og alle komponenter den finner.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Her starter den virkelige moroa. I enden av kjernen er det
		hengt på et filsystem-bilde. Dette legges inn i minnet som
		en RAM-disk og blir montert midlertidig som et rot-filsystem.
		Kommandolinje-argumentet <command>root=/dev/ram0</command>
		ber kjernen om å montere bildet som rot filsystem.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Vanligvis vil kjernen overlate kommandoen til
		<command>init</command> når den er ferdig med å starte opp
		maskinen. Men i dette tilfellet har vi instruert kjernen
		om å kjøre et skallskript i stedet. For å få til dette benytter
		vi <command>init=/linuxrc</command> på kjernens kommandolinje.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Skallskriptet <command>/linuxrc</command> starter med å
		undersøke PCI-bussen for å se om den finner nettverkskort.
		For hvert PCI-kort det finner slår det opp i filen
		<filename>/etc/niclist</filename>
		for å se om kortet finnes der. Et treff gir som resultat drivermodulen
		til nettverkskortet. For ISA
		nettverkskort må driveren og eventuelle IRQ og IO-adresser
		angis eksplisitt på kommandolinjen til kjernen.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Når nettverkskortet er identifisert vil <command>/linuxrc</command>
		-skriptet legge inn kjernemodulen som støtter kortet.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
                Deretter kjøres <command>dhclient</command> for å gjøre nok en
		DHCP-forespørsel. Dersom vi benytter resultatet som kom fra Etherboots
		forespørsel, ville dette bli svelget av kjernen. I tillegg ville
		kjernen ignorere NFS-tjenere som måtte bli angitt i parameteren
		for rot filsystemet. Dette er viktig dersom du ønsker å benytte
		en annen maskin for NFS enn den som benyttes for TFTP.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Når <command>dhclient</command> får svar fra tjeneren kjører
		det <command>/etc/dhclient-script</command> som benytter
		informasjonen gitt til dhclient for å sette opp nettverkskortet
		eth0.
            </para>
            <para></para>
        </listitem>


        <listitem>
            <para>
	        Opp til dette punktet har rot filsystemet vært en RAMdisk.
		Nå monterer <command>/linuxrc</command> et nytt rot filsystem via NFS.
		Katalogen som stilles til rådighet for dette på tjeneren er
		typisk <filename>/opt/ltsp/i386</filename>. Men denne kan ikke
		bare monteres som /. Først må den monteres som <filename>/mnt</filename>.
		Så utføres
		kommandoen <command>pivot_root</command> som bytter det nåværende
		filsystemet med et nytt. Når den er ferdig vil NFS-filsystemet
		være montert som / og det gamle filsystemet som
		<filename>/oldroot</filename>.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Når montering og bytting av rot filsystemer er jobben til
		skallskriptet <command>/linuxrc</command> gjort
		og det virkelige <command>init</command> kan kjøres.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Init vil lese <filename>/etc/inittab</filename>
		og begynne på oppsettet av arbeidsstasjonens miljø.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Init benytter prinsippet <emphasis>driftsnivå</emphasis>.
		Hvert driftsnivå setter opp et sett med tjenester for
		arbeidsstasjonen.
		Alle LTSP arbeidsstasjoner starter først i driftsnivå '2'
		som er satt av variabelen <emphasis>initdefault</emphasis>
		i filen <filename>inittab</filename>.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        En av de første variablene i <filename>inittab</filename>
		er <command>rc.local</command>, en kommando som kjøres
		mens arbeidsstasjonen er i tilstanden
		'<emphasis role="strong">sysinit</emphasis>'.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Skriptet <command>rc.local</command> lager en RAMdisk
		på 1 MB som skal inneholde alt som trengs å bli skrevet til
		eller modifisert på noen måte.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        RAMdisken blir montert som katalogen
		<filename class="directory">/tmp</filename>.
		Alle filer som skal opprettes vil befinne seg i
		<filename class="directory">/tmp</filename> og det finnes
		en rekke symbolske lenker som peker mot disse filene.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Filsystemet <filename class="directory">/proc</filename>
		monteres.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Hvis arbeidsstasjonen er satt opp til å benytte NFS som
		swap vil katalogen
		<filename class="directory">/var/opt/ltsp/swapfiles</filename>
		monteres som
		<filename class="directory">/tmp/swapfiles</filename>
		Dersom det ikke finnes en swap-fil for arbeidsstasjonen blir en
		slik opprettet automatisk. Størrelsen på denne er satt i
		 <filename>lts.conf</filename>.
            </para>
            <para>
	        Swapfilen vil så gjøres tilgjengelig med kommandoen
                <command>swapon</command>.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Den interne nettverksenheten
		<emphasis role="strong">loopback</emphasis> settes opp.
		Denne enheten har IP-adressen
		 <emphasis>127.0.0.1</emphasis>.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Hvis arbeidsstasjonen skal benytte lokale programmer
		vil katalogen <filename class="directory">/home</filename>
		monteres slik at disse programmene har tilgang til brukernes
		hjemmeområder.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Flere kataloger opprettes i filsystemet under
		<filename class="directory">/tmp</filename>
		for å gi et hjem til endel filer som skal endres mens
		systemet er i drift. Kataloger som:
                <orderedlist>
                    <listitem>
                        <para>
                            <filename>/tmp/compiled</filename>
                        </para>
                        <para></para>
                    </listitem>
                    <listitem>
                        <para>
                            <filename>/tmp/var</filename>
                        </para>
                        <para></para>
                    </listitem>
                    <listitem>
                        <para>
                            <filename>/tmp/var/run</filename>
                        </para>
                        <para></para>
                    </listitem>
                    <listitem>
                        <para>
                            <filename>/tmp/var/log</filename>
                        </para>
                        <para></para>
                    </listitem>
                    <listitem>
                        <para>
                            <filename>/tmp/var/lock</filename>
                        </para>
                        <para></para>
                    </listitem>
                    <listitem>
                        <para>
                            <filename>/tmp/var/lock/subsys</filename>
                        </para>
                        <para></para>
                    </listitem>
                </orderedlist>
            </para>
            <para></para>

            <para>
                blir alle opprettet.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Nå settes X Window opp. I <filename>lts.conf</filename>
		finnes parameteren <command>XSERVER</command>. Hvis
		denne mangler eller er satt til "<command>auto</command>"
		vil en automatisk deteksjon forsøkes. Hvis skjermkortet
		er PCI vil leverandør og enhetsidentifikator bli funnet
		og det gjøres et oppslag i <filename>/etc/vidlist</filename>.
            </para>
            <para>
	        Hvis skjermkortet er støttet av XFree86 4.X vil
		<command>pci_scan</command>-rutinen gi navnet på drivermodulen.
		Hvis det er støttet bare av XFree86 3.3.6 vil
		<command>pci_scan</command> gi navnet på X-tjeneren som
		skal benyttes. <command>rc.local</command> vil kunne se forskjell
		på de to fordi de eldre 3.3.6 tjenerne starter med 'XF86_'.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Hvis XFree86 4.x skal benyttes vil skriptet
		<command>/etc/rc.setupx</command> lage en oppsettfil for
		X. Dersom XFree86 3.3.6 skal benyttes gjøres dette av
		<command>/etc/rc.setupx3</command>.
            </para>
            <para>
	        <filename>XF86Config</filename> lages basert på parametre
		i <filename>/etc/lts.conf</filename>.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Når skriptet <command>rc.setupx</command> er ferdig går
		kontrollen tilbake til <command>rc.local</command>. Deretter
		blir skriptet <command>/tmp/start_ws</command> laget, og benyttet
		til å starte X-tjeneren.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Filen <filename>/tmp/syslog.conf</filename> opprettes.
		Denne inneholder informasjon som angir for
		<command>syslogd</command> hvilken maskin på nettverket som
		skal ha loggene. En parameter i <filename>lts.conf</filename>
		styrer hvilken maskin dette er.
		<filename>/etc/syslog.conf</filename> er en symbolsk lenke som
		peker på <filename>/tmp/syslog.conf</filename>.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        <command>Syslogd</command>-daemonen startes med oppsettfilen
		som ble opprettet i forrige punkt.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Kontrollen gis så tilbake til <command>init</command> som
		ser på verdien av <emphasis role="strong">initdefault</emphasis>
		for å avgjøre hvilket <emphasis role="strong">driftsnivå</emphasis>
		som skal benyttes. Fra og med versjonen lts_core-2.08 er denne verdien
		<emphasis role="strong">2</emphasis>.
            </para>
            <para></para>
        </listitem>

        <listitem>
            <para>
	        Driftsnivå <emphasis role="strong">2</emphasis> vil føre til at
		<command>init</command> kaller skriptet
		<command>set_runlevel</command> som leser <filename>lts.conf</filename>
		for å avgjøre hvilket driftsnivå arbeidsstasjonen
		skal ha når den er i vanlig drift.
            </para>
            <para>
	        Standard driftsnivåer for LTSP er
                <emphasis role="strong">3</emphasis>,
                <emphasis role="strong">4</emphasis> og
                <emphasis role="strong">5</emphasis>.
                <itemizedlist>
                    <listitem>
                        <para>
                            <emphasis role="strong">3</emphasis> - Starter et
			    kommandoskall. Nyttig for feilsøking av
			    arbeidsstasjonen.
                        </para>
                        <para></para>
                    </listitem>
                    <listitem>
                        <para>
                            <emphasis role="strong">4</emphasis> - Starter en
			    eller flere telnet-oppkoblinger i tegnbasert modus.
			    Dette er nyttig hvis du skal erstatte gamle serielle
			    terminaler.
                        </para>
                        <para></para>
                    </listitem>
                    <listitem>
                        <para>
                            <emphasis role="strong">5</emphasis> - Grafisk modus.
			    Starter X, sender en XDMCP-forespørsel til
			    tjeneren og viser et grafisk innloggingsbilde
			    for å la brukeren logge seg inn på tjeneren.
			    Du trenger en tjeneste på tjeneren som kan sende
			    dette bildet til arbeidsstasjonen, så som
                            <emphasis role="strong">XDM</emphasis>,
                            <emphasis role="strong">GDM</emphasis> eller
                            <emphasis role="strong">KDM</emphasis>.
                        </para>
                        <para></para>
                    </listitem>
                </itemizedlist>
            </para>
            <para></para>
        </listitem>
    </orderedlist>
    <para></para>
</chapter>

<chapter>
    <title>Installasjon av LTSP på tjenermaskinen</title>
    <para>
        LTSP er tilgjengelig som pakker i både
        <emphasis role="strong">RPM</emphasis> og
        <emphasis role="strong">TGZ</emphasis> formater. Velg det formatet som
	passer for deg og følg det tilsvarende .
    </para>

    <para>
        Hvis du vil kjøre X på arbeidsstasjonen trenger du å overføre
	fire pakker til maskinen som skal brukes som tjener. Vi minner om
	at i dette dokumentet benytter vi som eksempel en arbeidsstasjon
	med et Tulip nettverkskort og et Intel i810-basert skjermkort.

        <orderedlist>
            <listitem>
                <para>
                    LTSPs hovedpakke
                </para>
            </listitem>
            <listitem>
                <para>
                    Kjernepakken
                </para>
            </listitem>
            <listitem>
                <para>
                    Hovedpakken for X
                </para>
            </listitem>
            <listitem>
                <para>
                    Pakke med X skrifttyper
                </para>
            </listitem>
        </orderedlist>

	Pakken med X skriftyper er ikke egentlig nødvendig, men for en
	førstegangsinstallasjon er det anbefalt. Når du er fortrolig med
	å sette opp tjenere og diskløse arbeidsstasjoner kan du lære å bruke
	X' skrifttype-tjener (XFS).
     </para>

     <para>
        Etter at pakkene er installert må LTSP initialiseres. Denne prosessen
	innebærer å gjøre de endringer som er nødvendige i systemoppsett-filene
	slik at tjenermaskinen kan tilby de tjenester som trengs for
	at arbeidsstasjonene skal fungere.
    </para>

    <sect1>
        <title>Installasjon av RPM-pakkene</title>
          <para>
	    Overfør de nyeste versjonene av ltsp-pakkene og installer dem
	    med disse kommandoene:
            <programlisting>
rpm -ivh ltsp_core-3.0.0-1.i386.rpm

rpm -ivh ltsp_kernel-3.0.1-1.i386.rpm

rpm -ivh ltsp_x_core-3.0.1-1.i386.rpm

rpm -ivh ltsp_x_fonts-3.0.0-0.i386.rpm</programlisting>
            Kommandoene ovenfor installerer pakkene i katalogen
            <filename class="directory">/opt/ltsp/i386</filename>.
        </para>
    </sect1>

    <sect1>
        <title>Installasjon av TGZ-pakkene</title>

        <para>
	    Overfør den nyeste versjonen av ltsp-pakkene og installer dem
	    med disse kommandoene:
            <programlisting>
tar xzf ltsp_core-3.0.0-i386.tgz
cd ltsp_core
./install.sh
cd ..

tar xzf ltsp_kernel-3.0.1-i386.tgz
cd ltsp_kernel
./install.sh
cd ..

tar xzf ltsp_x_core-3.0.1-i386.tgz
cd ltsp_x_core
./install.sh
cd ..

tar xzf ltsp_x_fonts-3.0.0-i386.tgz
cd ltsp_x_fonts
./install.sh
cd ..</programlisting>
            Kommandoene ovenfor vil installere pakkene i katalogen
            <filename class="directory">/opt/ltsp/i386</filename>.
        </para>
    </sect1>

    <sect1>
        <title>Initialisering av tjenermaskinen</title>
        <para>
	    Når installasjon av pakkene er ferdig bytter du katalog til
            <filename class="directory">/opt/ltsp/templates</filename>.
	    Her finnes flere filer som vil endre innstillingene i sentrale
	    oppsettfiler på din tjenermaskin.
	    Hver av disse filene er laget for å endre en enkelt systemoppsett-fil.
	    Ta en titt på disse filene og vær sikker på at du er fortrolig med
	    og enig i endringene de gjør. Disse endringene kan gjøre maskinen
	    dårligere sikret mot mulige angrep. Du kan gjøre endringene manuelt i
	    de ulike filene. Hvis du ønsker å gjøre dem automatisk kjører du kommandoen
	    ltsp_initialize som superbruker:

            <programlisting>
cd /opt/ltsp/templates
./ltsp_initialize </programlisting>

            Kommandoen over vil stille mange spørsmål om hvilke tjenester du vil
	    endre.

	    Den vil sette opp følgende tjenester:

            <itemizedlist>
                <listitem>
                    <para>XDM - X grafisk innlogging</para>
                </listitem>
                <listitem>
                    <para>GDM - Gnome grafisk innlogging</para>
                </listitem>
                <listitem>
                    <para>Grafisk innlogging oppstartskript</para>
                </listitem>
                <listitem>
                    <para>bootp</para>
                </listitem>
                <listitem>
                    <para>NFS - filen /etc/exports</para>
                </listitem>
                <listitem>
                    <para>tcpwrappers</para>
                </listitem>
                <listitem>
                    <para>Portmapper</para>
                </listitem>
                <listitem>
                    <para>syslogd</para>
                </listitem>
                <listitem>
                    <para>TFTP oppstartsskript</para>
                </listitem>
            </itemizedlist>
        </para>
    </sect1>

    <sect1>
        <title>Oppsett av en arbeidsstasjon</title>
        <para>
	    Nå må LTSP-tjeneren fortelles litt om arbeidsstasjonen din.
	    Det er tre ulike filer som inneholder informasjon om arbeidsstasjonen.

            <orderedlist>

                <listitem>
                    <para>/etc/dhcpd.conf</para>
                </listitem>

                <listitem>
                    <para>/etc/hosts</para>
                </listitem>

                <listitem>
                    <para>/opt/ltsp/i386/etc/lts.conf</para>
                </listitem>

            </orderedlist>

        </para>

        <sect2>
            <title>/etc/dhcpd.conf</title>
            <para>
	        Arbeidsstasjonen trenger en IP-adresse og endel annen informasjon.
		Det får den fra DHCP-tjeneren:
                <itemizedlist>
                    <listitem> <para>IP-adresse</para> </listitem>
                    <listitem> <para>Maskinnavn</para> </listitem>
                    <listitem> <para>Tjenerens IP-adresse</para> </listitem>
                    <listitem> <para>Default gateway</para> </listitem>
                    <listitem> <para>Sti til kjernen som skal overføres</para> </listitem>
                    <listitem> <para>Maskin og sti til katalogen som skal montereres
                                     som rot filsystem
                               </para> </listitem>
                </itemizedlist>
            </para>
            <para>
	        I vårt eksempel har vi valgt å benytte DHCP for tildeling
		av IP-adresser til arbeidsstasjoner.
            </para>
            <para>
	        Skriptet <command>ltsp_initialize</command> installerer et eksempel
		på en <filename>dhcpd.conf</filename>. Denne ligger i
		<filename>/etc/dhcpd.conf.example</filename>. Du kan kopiere denne
		til <filename>/etc/dhcpd.conf</filename> og bruke den som grunnlag
		for for ditt endelige oppsett av DHCP. Du må manuelt endre de delene av filen
		som gjelder din arbeidsstasjon og tjenermaskin.
                <figure float="1">
                <title>/etc/dhcpd.conf</title>
                <programlisting>
default-lease-time            21600;
max-lease-time                21600;

option subnet-mask            255.255.255.0;
option broadcast-address      192.168.0.255;
option routers                192.168.0.254;
option domain-name-servers    192.168.0.254;
option domain-name            "ltsp.org";
option root-path              "192.168.0.254:/opt/ltsp/i386";

shared-network WORKSTATIONS {
    subnet 192.168.0.0 netmask 255.255.255.0 {
    }
}

group	{
    use-host-decl-names       on;
    option log-servers        192.168.0.254;

    host ws001 {
        hardware ethernet     00:E0:18:E0:04:82;
        fixed-address         192.168.0.1;
        filename              "/lts/vmlinuz.ltsp";
    }
} </programlisting>
                </figure>
            </para>

            <para>
	        Fra LTSPs versjon 2.09pre2 av trenger du ikke lenger å
		spesifisere den spesifikke kjernen som skal benyttes, avhengig av
		nettverkskortet i arbeidsstasjonen. Standard-kjernen
		støtter alle nettverkskort Linux selv har støtte for.
		To kjerner er tatt med i LTSPs kjernepakke. En av disse
		har tatt inn Linux Progress Patch (LPP), den andre ikke.
		Navnene på disse kjernene er:
                <programlisting>
vmlinuz-2.4.9-ltsp-5
vmlinuz-2.4.9-ltsp-lpp-5 </programlisting>
            </para>
            <para>
	        du har kanskje sett at kjernen er lagt i katalogen
		<filename class="directory">/tftpboot/lts</filename>
		mens spesifikasjonen i <filename>/etc/dhcpd.conf</filename>
		mangler den innledende <filename class="directory">/tftpboot</filename>-
		komponenten.
		Dette skyldes at Red Hat Linux versjon 7.1 og senere starter
		TFTP med parameteren '-s'. Da kjører daemonen i
		<emphasis role="strong">sikker</emphasis> modus. TFTP vil gjøre en
		<command>chroot</command> til
		<filename class="directory">/tftpboot</filename> når den startes
		og alle filer som er tilgjengelige for TFTP-daemonen er relative til
		katalogen <filename class="directory">/tftpboot</filename>.
            </para>
            <para>
	        Andre Linux-distribusjoner har kanskje ikke denne '-s'-opsjonen
		satt for TFTP, slik at du muligens må legge
		<filename class="directory">/tftpboot</filename>
		til spesifikasjonen av kjerne-navnet i
		<filename>/etc/dhcpd.conf</filename>.
            </para>
        </sect2>

        <sect2>
            <title>/etc/hosts</title>
            <para>Kobling av IP-adresser og maskinnavn</para>
            <para>
	        Generelt sett kommuniserer datamaskiner fint seg i mellom
		med IP-adresser. Det er oss mennesker som har behov for
		å sette navn på maskiner fordi vi ikke har så lett for å huske
		tallene i IP-adressene. Her kommer DNS og
		<filename>/etc/hosts</filename> inn i bildet. Denne koblingen
		mellom IP-adresser og maskinnavn er vanligvis ikke nødvendig
		annet enn i spesielle situasjoner, som når LTSP benyttes. Uten
		denne koblingen vil NFS gi feilmeldinger om manglende rettigheter
		når arbeidsstasjonene forsøker å montere sitt rot-filsystem.
            </para>
            <para>
	        I tillegg til NFS-problemer kan du også oppleve at de grafiske
		innloggingsbildene
		<emphasis role="strong">GDM</emphasis> eller
                <emphasis role="strong">KDM</emphasis> ikke virker hvis
		arbeidsstasjonen mangler i <filename>/etc/hosts</filename>.
            </para>
        </sect2>

        <sect2>
            <title>/opt/ltsp/i386/etc/lts.conf</title>
            <para>
	        Et stort antall oppsett-parametre kan spesifiseres i
		<filename>lts.conf</filename>.
            </para>

            <para>
	        <filename>lts.conf</filename> har en enkel syntakse som er
		basert på seksjoner. <command>[default]</command> angir
		standard-valgene. I tillegg kan det angis avsitt som er
		spesielle for hver arbeidsstasjon. Navnet på disse seksjonene
		kan være maskinnavn, IP-adresse eller MAC-adresse.
            </para>

            <para>
	        En typisk <filename>lts.conf</filename> kan se ut som dette:
                <example>
                    <title>lts.conf</title>
                    <programlisting>
#
# Config file for the Linux Terminal Server Project (www.ltsp.org)
#

[Default]
        SERVER             = 192.168.0.254
        XSERVER            = auto
        X_MOUSE_PROTOCOL   = "PS/2"
        X_MOUSE_DEVICE     = "/dev/psaux"
        X_MOUSE_RESOLUTION = 400
        X_MOUSE_BUTTONS    = 3
        USE_XFS            = N
        LOCAL_APPS         = N
        RUNLEVEL           = 5

[ws001]
        USE_NFS_SWAP       = Y
        SWAPFILE_SIZE      = 48m
        RUNLEVEL           = 5

[ws002]
        XSERVER            = XF86_SVGA
        LOCAL_APPS         = N
        USE_NFS_SWAP       = Y
        SWAPFILE_SIZE      = 64m
        RUNLEVEL           = 3</programlisting>
                </example>
            </para>

            <para>
	        Vi tar med en kort liste over noen av mulighetene:
                <variablelist>
                    <varlistentry>
                        <term><command>XSERVER</command></term>
                        <listitem>
                            <para>
			        Om du har et PCI eller AGP skjermkort som
				er støttet av XFree86 4.1 trenger du bare
				ltsp_x_core-pakken. Denne inneholder alle
				driver-modulene for X4.
                            </para>
                            <para>
			        Et antall XFree86 3.3.6-pakker er tilgjengelige
				for LTSP. Bruk en av disse dersom skjermkortet
				ikke er støttet av XFree86 4.1.
                            </para>
                            <para>
			        Du kan angi parametre for hver enkelt
				arbeidsstasjon eller for alle samlet
				i <filename>lts.conf</filename>.
                            </para>
                            <para>
			        Vår arbeidsstasjon har et Intel i810
				brikkesett. Dette finnes automatisk
				slik at vi ikke trenger å oppgi noen XSERVER
				parameter for kortet i <filename>lts.conf</filename>.
				Om du vil, kan du oppgi modulen til kortet
				eller sette parameteren til 'auto' for å
				vise at den skal finnes automatisk.
                            </para>
                        </listitem>
                    </varlistentry>

                    <varlistentry>
                        <term><command>RUNLEVEL</command></term>
                        <listitem>
                            <para>
			        Vi øsnker å bruke arbeidsstasjonen i grafisk
				modus, så vi setter driftsnivået til '5'. Dette
				gjøres med parameteren RUNLEVEL i
                                <filename>lts.conf</filename>.
                            </para>
                        </listitem>
                    </varlistentry>
                </variablelist>
            </para>
        </sect2>
    </sect1>
</chapter>



<chapter>
    <title>Oppsett av arbeidsstasjonen</title>
    <para>
        Når serveren er ferdig, er det klart for å ta en titt på oppsettet
	av arbeidsstasjonen.
    </para>
    <para>
        LTSP-prosjektet handler mye om hva som skjer etter at kjernen
	er plassert i minnet. Det er flere måter å få plassert kjernen
	der, blant annet Etherboot, Netboot, PXE og diskett.
    </para>

    <para>
        I dette dokumentet bruker vi en oppstarts-diskett med kode fra
        <command>Etherboot</command>-prosjektet.
    </para>

    <sect1>
        <title>Hvordan man lager en oppstartsdiskett</title>
        <blockquote><attribution>Ken Yap</attribution>
        <para>
	    Etherboot er en programvarepakke for å lage et nytt program
	    som kan lagres i en ROM. Dette programmet kan overføre nye
	    programmer til en x86-maskin over en Ethernet-forbindelse for
	    å bli utført. Mange nettverkskort har en plass til slike ROM-
	    brikker, og Etherboot er verktøyet for å plassere et program
	    i denne brikken.
        </para>
        </blockquote>

        <para></para>

        <para>
	    Etherboot er også fri programvare, beskyttet av GNU General
	    Public License, versjon 2 (GPL2).
        </para>

        <para>
	    Du kan laste ned en Etherboot-pakke og tilpasse den til den
	    typen oppstarts-ROM du trenger. Så kan du bygge kildekoden
	    for å produsere det bildet som skal skrives til EPROM-brikken
	    eller til diskett for testing.
        </para>

        <para>
	    En mye enklere løsning er å gå til Marty Connor's nettsted
            <ulink url="http://www.rom-o-matic.net"><citetitle>www.Rom-O-Matic.net</citetitle></ulink>

        </para>

        <para>
	    Marty har laget en fin nettside som gjør det enkelt å tilpasse
	    og bygge et bootrom-bilde for Etherboot. Her kan du velge
	    hvilket nettverkskort du har og hva slags type bilde du ønsker.
	    I tillegg kan du modifisere mange oppsett-parametre. Når du så trykker
	    på 'Get ROM' blir programmet satt sammen og overført til din maskin som
	    en enkelt fil.
        </para>

        <para>
	    Vår arbeidsstasjon har et Linksys LNE100TX, versjon 4.1 nettverkskort.
	    Dette benytter et AMDTek Centaur-P brikkesett. Vi må derfor velge
            <emphasis role="strong">centaur-p</emphasis> som vår NIC/ROM.
        </para>

        <para>
	    Vi trenger ikke gjøre noen endringer i forhold til standard-oppsettet
	    så du kan se bort fra 'Configure'-knappen.
        </para>

        <para>
	    Velg 'Floppy Bootable ROM Image' som format for filen du produserer.
	    Det vil legge inn en 512 byte lang blokk i begynnelsen av filen, eller
	    bildet, denne benyttes for å legge inn oppstartskode i minne og sørge
	    for at det utføres ved start av maskinen.
        </para>

        <para>
	    Klikk på knappen merker 'Get ROM'. Oppstartsbildet produseres mens du venter.
	    Prosessen tar bare noen sekunder og når den ferdig vil nettleseren vise et
	    vindu som lar deg lagre filen på det stedet du ønsker på maskinen din.
        </para>

        <para>
	    Jeg lagrer vanligvis filen i
            <filename class="directory">/tmp</filename>-katalogen. I dette tilfelle
	    vil det bety en filspesifikasjon som
            <filename>/tmp/eb-5.0.2-centaur-p.lzdsk</filename>
        </para>

        <para>
	    Etter at filen er lagret på disk må du skrive den til en diskett.
	    Sett inn en diskett og gi følgende kommando for å overføre filen:
            <programlisting>
cat   /tmp/eb-5.0.2-centaur-p.lzdsk   >/dev/fd0 </programlisting>
        </para>

    </sect1>

</chapter>

<chapter>
    <title>Start av arbeidsstasjonen</title>
    <para>
        Hvis vi antar at både tjenermaskinen og arbeidsstasjonen er riktig satt
	opp vil det bare være nødvendig å sette inn oppstartsdisketten og skru
	på arbeidsstasjonen.
    </para>

    <para>
        Etherboot-programmet leses fra diskett og legges i minnet, nettverkskortet
	blir funnet, DHCP-forespørselen sendes ut på nettverket og et svar
	returneres fra tjeneren etterfulgt av Linux-kjernen som blir overført fra
	tjeneren til arbeidsstasjonen. Når kjernen har startet opp komponentene i
	arbeidsstasjonen vil X starte opp og et innloggingsvindu dukke opp på
	skjermen. Dette kan se ut som i eksempelet under dersom du benytter XDM:
    </para>

    <figure><title>Login screen</title>
        <GRAPHIC FILEREF="pics/ltsplogin1.gif"
                 FORMAT="GIF"
                 SRCCREDIT="James McQuillan, 2001" >
    </figure>

    <para>
        Nå kan du logge inn. Det er viktig å huske at du logger deg på tjeneren.
	Alle kommandoer utføres på tjeneren, det er bare resultatene som vises på
	din lokale skjerm på arbeidsstasjonen. Nettverksorienteringen til X Window
	gjør dette mulig.
    </para>

    <para>
        Du kan kjøre samtlige programmer som er lagt inn på tjeneren.
    </para>

</chapter>

<chapter>
    <title>Utskrift</title>
    <para>
        I tillegg til at arbeidsstasjonen er en fullt funksjonell grafisk
	eller tekstbasert terminal kan den også være en utskriftssentral
	med opp til tre skrivere koblet til parallell- eller seriellporter.
    </para>

    <para>
        Denne funksjonen er helt usynlig for brukeren, som ikke vil merke
	den lille trafikken som går gjennom arbeidsstasjonen til skriveren(e).
    </para>

    <sect1>
        <title>Oppsett på klienten</title>

        <para>
	    LTSP bruker programmet <command>lp_server</command> på arbeidsstasjonen
	    for å sende utskriftsjobber fra tjeneren til en skriver koblet
	    til en av utgangene på arbeidsstasjonen.
        </para>

        <para>
	    For å gjøre utskriftsfunksjonen tilgjengelig på arbeidsstasjonen benyttes
	    et sett med parametre i <filename>lts.conf</filename>.
            <programlisting>
[ws001]
    PRINTER_0_DEVICE = /dev/lp0
    PRINTER_0_TYPE   = P </programlisting>
            Disse linjene starter lp_server som en bakgrunnsprosess. Den lytter
	    på TCP/IP-porten 9100 for å motta utskriftsjobber fra tjeneren.
	    Utskriftsdataene som mottas blir sendt videre til parallelporten
	    /dev/lp0.
        </para>

        <para>
	    Det er mange flere valg tilgjengelig. Ta en titt i avsnittet om
	    <filename>lts.conf</filename> lenger ut i håndboka for mer informasjon
	    om hvilke muligheter som finnes for bruk av skrivere og hvordan de settes opp.
        </para>
    </sect1>

    <sect1>
        <title>Oppsett på tjeneren</title>

        <para>
	    Skriverstøtte på tjeneren krever at det settes opp en skriverkø.
	    Det er ofte verktøy for dette på tjenermaskinen.
        </para>

        <para>
	    I Red Hat Linux 7.2 og senere er det både et grafisk og et tekstbasert
	    verktøy for å klargjøre skrivere. Det grafiske er
            <command>printconf-gui</command>, og det tekstbaserte heter
	    <command>printconf-tui</command>.  Eldre versjoner av Red Hat Linux
	    har programmet <command>printtool</command>, som i og for seg også
	    finnes i versjon 7.2, men dette kaller bare <command>printconf-gui</command>.
	    Andre distribusjoner har sine egne verktøy for å sette opp skrivere.
        </para>

        <figure>
            <title>Printconf-gui - legg til ny skriver</title>
            <GRAPHIC FILEREF="pics/printconf-gui-add.gif"
                     FORMAT="GIF"
                     SRCCREDIT="James McQuillan, 2001" >
        </figure>

        <para>
	    Etter å ha startet <command>printconf-gui</command> må du
	    legge til en ny skriver. La denne være en <command>JetDirect</command>
	    -skriver. Programmet <command>lp_server</command> får arbeidsstasjonen
	    til å se ut som en HP JetDirect utskriftssentral.
        </para>

        <para>
	    Du må gi skriveren et kø-navn. Dette kan være hva som helst, men
	    la det være meningsfylt. Navnet kan inneholde bare disse tegnene:
            <itemizedlist>
                <listitem>
                    <para>
                        <computeroutput>
                            "a-z"  små bokstaver
                        </computeroutput>
                    </para></listitem>
                <listitem>
                    <para>
                        <computeroutput>
                            "A-Z"  store bokstaver
                        </computeroutput>
                    </para></listitem>
                <listitem>
                    <para>
                        <computeroutput>
                            "0-9"  tall
                        </computeroutput>
                    </para></listitem>
                <listitem>
                    <para>
                        <computeroutput>
                            "-"    &nbsp;&nbsp;bindestrek
                        </computeroutput>
                    </para></listitem>
                <listitem>
                    <para>
                        <computeroutput>
                            "_"    &nbsp;&nbsp;understrek
                        </computeroutput>
                    </para></listitem>
            </itemizedlist>
        </para>
        <para>
	    Navnet i eksempelet over er
            <command>ws001_lp</command> og indikerer at skriveren er tilkoblet
	    arbeidsstasjonen <command>ws001</command>.
        </para>

        <figure>
            <title>Printconf-gui - nettverksparametre</title>
            <GRAPHIC FILEREF="pics/printconf-gui-detail.gif"
                     FORMAT="GIF"
                     SRCCREDIT="James McQuillan, 2001" >
        </figure>
        <para>
	    To felter er nødvendige for å kommunisere med skriveren:
            <orderedlist>
                <listitem>
                    <para>
		        IP-adressen eller maskinnavnet til arbeidsstasjonen
			som skriveren er koblet til.
                    </para>
                </listitem>
                <listitem>
                    <para>
		        TCP-porten som programmet <command>lp_server</command>
                        lytter på.
                    </para>
                    <para>
		        Den første skriveren som kobles til en arbeidsstasjon
			vil bruke TCP/IP-porten <command>9100</command>.
			Den andre skriveren finnes på <command>9101</command>,
                        og den tredje på <command>9102</command>.
                    </para>
                </listitem>
            </orderedlist>
        </para>
    </sect1>

</chapter>

<chapter>
    <title>Feilsøking</title>
    <para>
        Hvis arbeidsstasjonen ikke kommer opp, til tross for at du har
	fulgt instruksjonene til punkt og prikke, må du til med å feilsøke
	installasjonen.
    </para>

    <para>
        Det første du må gjøre er å finne ut hvor langt maskinen kommer i
	oppstartsprosessen før noe går galt.
    </para>

    <sect1>
        <title>Feilsøking av Etherboot diskett-oppstart</title>
        <para>
	    Når du starter fra diskett bør du se noe som ligner på dette:
        </para>
        <para>
        <screen>
loaded ROM segment 0x0800 length 0x4000 reloc 0x9400
Etherboot 5.0.1 (GPL) Tagged ELF for [LANCE/PCI]
Found AMD Lance/PCI at 0x1000, ROM address 0x0000
Probing...[LANCE/PCI] PCnet/PCI-II 79C970A base 0x1000, addr 00:50:56:81:00:01
Searching for server (DHCP)...
&#60;sleep&#62; </screen>
        </para>
        <para>
	    Eksempelet over viser hva du kan forvente å se på skjermen
	    på arbeidsstasjonen når du starter den fra diskett. Linjene
	    indikerer at Eherboot er startet. Hvis de ikke er der kan det være
	    du har en ødelagt floppy eller at programmet som ble skrevet til
	    den enten hadde en feil eller ikke ble skrevet riktig til disketten.
        </para>

        <para>
	    Hvis du ser noe som ligner på teksten under, tyder det på
	    at programmet som ligger på disketten ikke er det riktige for ditt
	    nettverkskort.
        <screen>
ROM segment 0x0800 length 0x8000 reloc 0x9400
Etherboot 5.0.2 (GPL) Tagged ELF for [Tulip]
Probing...[Tulip]No adapter found
&#60;sleep&#62;
&#60;abort&#62; </screen>
        </para>

        <para>
            Hvis oppstarten kommer til punktet der nettverkskortet finnes
	    og den riktige MAC-adressen vises kan man anta at disketten
	    er god.
        </para>

    </sect1>

    <sect1>
        <title>Feilsøking av DHCP</title>
        <para>
	    Når nettverkskortet er initialisert vil det kringkaste en
	    DHCP-forespørsel på lokalnettverket for å finne en DHCP-tjener.
        </para>

        <para>
	    Hvis arbeidsstasjonen får et gyldig svar fra en DHCP-tjener vil
	    informasjonen i svaret brukes til å sette opp parametrene for
	    nettverkskortet. Hvis denne operasjonen gikk bra vil IP-adressen
	    som gis til nettverkskortet vises på skjermen. Denne meldingen
	    man se slik ut:
         <screen>
ROM segment 0x0800 length 0x4000 reloc 0x9400
Etherboot 5.0.1 (GPL) Tagged ELF for [LANCE/PCI]
Found AMD Lance/PCI at 0x1000, ROM address 0x0000
Probing...[LANCE/PCI] PCnet/PCI-II 79C970A base 0x1000, addr 00:50:56:81:00:01
Searching for server (DHCP)...
&#60;sleep&#62;
Me: 192.168.0.1, Server: 192.168.0.254, Gateway 192.168.0.254
	</screen>
	    Hvis du ser en linje som starter med 'Me:' etterfulgt av en IP-adresse
	    kan du gå ut fra at DHCP virker. Du kan da gå videre til å finne ut
	    om TFTP fungerer.
        </para>

        <para>
	    Hvis du i stedet ser teksten under, etterfulgt av mange
	    &#60;sleep&#62;-meldinger er noe galt. Noen få slike meldinger
	    er normalt før DHCP-tjeneren svarer.
            <screen>
Searching for server (DHCP)...  </screen>
        </para>

        <para>
	    Å finne ut hva som er galt er ofte vanskelig, men her er noen
	    punkter å sjekke:
        </para>
            <sect2>
                <title>Sjekk alle forbindelser</title>
                <para>
		    Er arbeidsstasjonen fysisk koblet til samme nettverk som
		    tjenermaskinen?
                </para>
                <para>
		    Vær sikker på at det er lys i alle dioder som viser
		    forbindelse mellom nettverksutstyret.
                </para>

                <para>
		    Hvis du kobler arbeidsstasjonen og tjenermaskinen direkte
		    (uten switch eller hub) må du være sikker på at du bruker en
		    krysset kabel. Hvis du kobler via en switch eller hub, må
		    du være sikker på at kablene ikke er krysset - både mellom
		    arbeidsstasjonen og switch/hub, og mellom switch/hub og
		    tjener-maskinen.
                </para>

            </sect2>

            <sect2>
                <title>Går tjenesten DHCP?</title>
                <para>
		    Det er helt nødvendig at prosessen <command>dhcpd</command>
		    kjører på tjeneren. Det er et par måter å finne ut dette på.
                </para>

                <para>
                    <command>dhcpd</command> går vanligvis i bakgrunnen og lytter
		    på UDP port 67. Prøv med <command>netstat</command>-kommandoen
		    for å se om noe virkelig lytter på denne porten:
                    <programlisting>
netstat -an | grep ":67 " </programlisting>
                    Du bør se et resultat omtrent som:
                    <programlisting>
udp     0    0   0.0.0.0:67         0.0.0.0:*</programlisting>
                    Den fjerde kolonnen viser IP-adressen og porten, atskilt av
		    et kolon (':'). En adresse med bare nuller ('0.0.0.0')
		    indikerer at den lytter på alle nettverks-enheter.
		    Hvis du har to nettverkskort, <command>eth0</command>
		    og <command>eth1</command>, vil
                    <command>dhcpd</command> lytte på begge.
                </para>

                <para>
		    Selv om <command>netstat</command> viser at noe lytter på port
		    67, er det ikke sikkert at det er <command>dhcpd</command>.
		    Det kan være <command>bootpd</command>, selv om det er usannsynlig
		    siden bootp ikke lenger er del av de mest vanlige
		    Linux-distribusjonene.
                </para>

                <para>
		    For å være sikker på at <command>dhcpd</command>
		    kjører, kan du bruke kommandoen <command>ps</command>.
                    <programlisting>
ps aux | grep dhcpd </programlisting>

                    Du burde få et resultat omtrent som dette:

                    <programlisting>
root 23814 0.0 0.3 1676 820 ?      S 15:13 0:00 /usr/sbin/dhcpd
root 23834 0.0 0.2 1552 600 pts/0  S 15:52 0:00 grep dhcp </programlisting>

                    Den første linjen viser at <command>dhcpd</command> kjører.
		    Den andre linjen er bare vår <command>grep</command>-kommando
		    som ikke er avsluttet.
                </para>

                <para>
		    Hvis du ikke ser noen linje med <command>dhcpd</command>
		    må du sjekke at tjeneren er satt opp for å starte i
		    driftsnivå 5 og at <command>dhcpd</command> automatisk
		    vil starte på dette driftsnivået. På Red Hat Linux-baserte
		    maskiner kan du bruke kommandoen <command>ntsysv</command> og
		    bla nedover til du finner dhcpd og verifisere at tjenesten er satt
		    til å starte.

		    Du kan prøve å starte den med denne kommandoen:
		    <command> service dhcpd start</command>. Følg med på hva som
		    blir skrevet ut som respons, den kan inneholde feilmeldinger.
                </para>

            </sect2>

            <sect2>
                <title>Dobbeltsjekk oppsettet av dhcpd</title>
                <para>
		    Er det et avsnitt for arbeidsstasjonen i
                    <filename>/etc/dhcpd.conf</filename>?
                </para>
                <para>
		    Du bør sjekke at 'hardware ethernet' stemmer fullstendig
		    overens med nettverkskortets MAC-adresse, og at 'fixed-address'
		    er riktig.
                </para>
            </sect2>

            <sect2>
                <title>Stanses kringkastingen av iptables eller iphains?</title>
                <sect3>
                    <title>Sjekking av ipchains</title>
                    <para>
		        Kjør denne kommandoen og se hva resultatet er:
                        <programlisting>
ipchains -L -v </programlisting>
                        Hvis du ser noe som ligner på dette:
                        <programlisting>
Chain input (policy ACCEPT: 229714 packets, 115477216 bytes):
Chain forward (policy ACCEPT: 10 packets, 1794 bytes):
Chain output (policy ACCEPT: 188978 packets, 66087385 bytes): </programlisting>
                        kan du være rimelig sikker på ikke ipchains ikke
			står i veien for pakkene.
                    </para>
                </sect3>
                <sect3>
                    <title>Sjekking av iptables</title>
                    <para>
                        Kjør denne kommandoen og se hva resultatet er:
                        <programlisting>
iptables -L -v </programlisting>
                        Hvis du ser noe som ligner på dette:
                        <programlisting>
Chain INPUT (policy ACCEPT 18148 packets, 2623K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 17721 packets, 2732K bytes)
 pkts bytes target     prot opt in     out     source               destination</programlisting>
                        stanser ikke iptables dhcp-forespørselen.
                    </para>
                </sect3>
            </sect2>

            <sect2>
                <title>Sender arbeidsstasjonen forespørselen?</title>
                <para>
		    Prøv å følge meldingene i systemloggen
		    <filename>/var/log/messages</filename> på tjenermaskinen
                    mens arbeidsstasjonen starter opp.
		    Du kan få en kontinuerlig oppdatering av loggen med kommandoen:
                    <programlisting>
tail -f /var/log/messages </programlisting>
		    Dette legger inn nye linjer i loggen etter hvert som
		    de ulike programmene skriver til den.
                    <programlisting>
server dhcpd: DHCPDISCOVER from 00:50:56:81:00:01 via eth0
server dhcpd: no free leases on subnet WORKSTATIONS
server dhcpd: DHCPDISCOVER from 00:50:56:81:00:01 via eth0
server dhcpd: no free leases on subnet WORKSTATIONS </programlisting>
		    Hvis du ser meldinger som dem over, med teksten
                    'no free leases',
		    indikerer det at <command>dhcpd</command> går på tjeneren,
		    men ikke kjenner igjen arbeidsstasjonen som ber om
		    en IP-adresse. F.eks. kan det være at MAC-adressen ikke
		    stemmer.
                </para>
            </sect2>

    </sect1>

    <sect1>
        <title>Feilsøking av TFTP</title>
        <para>
	    Etherboot bruker TFTP for å overføre en Linux-kjerne fra tjener-maskinen.
	    Dette er en relativt enkel protokoll, men noen ganger kan det
	    være vanskelig å få den til å virke.
        </para>

        <para>
            Hvis du ser en melding som ligner på denne:
        <screen>
Loading 192.168.0.254:/lts/vmlinuz-2.4.9-ltsp-5 | </screen>
          der det siste tegnet '|' veksler mellom
	  '|', '\', '-' and '/',
	  slik at det ser ut som en roterende stolpe, er det et
	  tegn på at kjernen blir overført. Da virker TFTP som den
	  skal.
        </para>

        <para>
	  Hvis du ikke ser denne roterende stolpen kan du ha et
	  av følgende problem:
        </para>

        <sect2>
            <title><command>tftpd</command> går ikke</title>
            <para>
	        Red Hat Linux 7.1 startes <command>tftpd</command>
		av <command>xinetd</command>. Informasjon om hvordan
		<command>tftpd</command> skal fungere finnes i filen
                <filename>/etc/xinetd.d/tftp</filename>.
            </para>
        </sect2>

        <sect2>
            <title>Kjernen ligger ikke der tftpd forventer å finne den</title>
            <para>
	        Kjernen må være lagt på et sted der <command>tftpd</command>
		kan få tak i den.
		Hvis '-s' er spesifisert når <command>tftpd</command> kjøres
		må alle filspesifikasjoner som sendes til <command>tftpd</command>
		være relative til <filename class="directory">/tftpboot</filename>.
		Så hvis linjen <command>filename</command> i
                <filename>/etc/dhcpd.conf</filename> angir
		<filename>/lts/vmlinuz-2.4.9-ltsp-5</filename>,
		så må kjernen befinne seg i
                <filename>/tftpboot/lts/vmlinuz-2.4.9-ltsp-5</filename>
            </para>
        </sect2>
    </sect1>

<!--
    <sect1>
        <title>Feilsøking av kjernen</title>
        <para>
	    Hvis du bruker en av standardkjernene som følger med LTSP-pakken
	    må du bare passe på at kjernen stemmer overens med typen maskinvare
	    brukt i den maskinen du skal bruke som arbeidsstasjon. Det viktigste
	    er at nettverkskortet kan gjenkjennes av kjernen.
        </para>

        <para>
	    Standardkjernen til LTSP har filnavnet<command>vmlinuz.ltsp</command>
	    og støtter alle nettverkskort som Linux selv har drivere for.
        </para>

        <para>
	    En god indikator på at du benytter en feil kjerne er meldinger
	    som denne:
            <screen>
.
.
.
RAM disk driver initialized:  16 RAM disks of 1024K size
IP-Config: No Network devices available
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device 02:00
Kernel panic: VFS: Unable to mount root fs on 02:00 </screen>
            Mange blir her lurt av "NFS"-feilen og overser den forutgående
	    feilmeldingen <command>No Network devices available</command>. Det
	    er den virkelige årsaken til problemet. Kjernen forsøkte å finne et
	    nettverkskort, men fant ingen. Husk at kjernen inneholder støtte

            is the key to the problem.  The kernel  probed for known network
            cards, and didn't find any.  Keep in mind that the kernels are
            compiled with support for specific network cards.
            (Except the vmlinuz.all kernel, which contains support for ALL
            known cards).
        </para>
    </sect1>
-->

    <sect1>
        <title>Feilsøking av NFS rot-filsystemet</title>
        <para>
            Det er flere ting som kan hindre rot-filsystemet i å bli
	    montert. Blant disse er:
        </para>
        <sect2>
            <title>No init found</title>
            <para>
                Hvis du får denne feilmeldingen:
                <screen>
Kernel panic: No init found.  Try passing init= option to kernel.  </screen>
		er det sannsynlig at du monterer feil katalog som
		rot-filsystem, eller at
                <filename>/opt/ltsp/i386</filename>-katalogen er tom.
            </para>
        </sect2>

        <sect2>
            <title>Server returned error -13</title>
            <para>
                Hvis du får denne feilmeldingen:
                <screen>
Root-NFS: Server returned error -13 while mounting /opt/ltsp/i386 </screen>
                indikerer den at katalogen
                <filename class="directory">/opt/ltsp/i386</filename>
		ikke er tatt inn i NFS oppsett-filen
		<filename>/etc/exports</filename>.
            </para>
            <para>
	        Kikk i systemloggen <filename>/var/log/messages</filename>
		på tjenermaskinen for å se om det er noen spor. En linje som dette:
                <screen>
Jul 20 00:28:39 jamlap rpc.mountd: refused mount request from ws004
                  for /opt/ltsp/i386 (/): no export entry </screen>
                bekrefter vår mistanke om at det er en feil i
                <filename>/etc/exports</filename>.
            </para>
        </sect2>

        <sect2>
            <title>Problemer med NFS-tjenesten (portmap, nfsd &amp; mountd)</title>
            <para>
	        NFS er en tjeneste det kan være en kompleks og vanskelig oppgave
		å feilsøke. Derfor er det viktig å vite hvordan de involverte tjenestene
		skal settes opp og hvilke verktøy som er tilgjengelige for å stille
		en diagnose, slik at denne jobben blir så enkel som mulig.
            </para>
            <para>
	        Tre tjenester kjører i bakgrunnen (daemoner) for å få NFS til å
		fungere riktig. Disse er <command>portmap</command>,
                <command>nfsd</command> and <command>mountd</command>.
            </para>
            <sect3>
                <title>portmap</title>
                <para>
		    Hvis du får disse feilmeldingene:
                    <screen>
Looking up port of RPC 100003/2 on 192.168.0.254
portmap: server 192.168.0.254 not responding, timed out
Root-NFS: Unable to get nfsd port number from server, using default
Looking up port of RPC 100005/2 on 192.168.0.254
portmap: server 192.168.0.254 not responding, timed out
Root-NFS: Unable to get mountd port number from server, using default
mount: server 192.168.0.254 not responding, timed out
Root-NFS: Server returned error -5 while mounting /opt/ltsp/i386
VFS: unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or 02:00
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 02:00 </screen>

		    er det mest sannsynlig at <command>portmap</command>
		    ikke kjører. Du kan undersøke dette ved å bruke kommandoen
		    <command>ps</command>:
		    <screen>
ps -e | grep portmap </screen>
                    Hvis <command>portmap</command> går vil du se et resultat som dette:
                    <screen>
30455 ?        00:00:00 portmap </screen>
                    <command>netstat</command> kan også benyttes for å sjekke
		    <command>portmap</command>, som bruker port 111 for både
		    UDP og TCP. Prøv denne kommandoen:
                    <screen>
netstat -an | grep ":111 " </screen>
                    som skal gi resultatet:
                    <screen>
tcp   0   0 0.0.0.0:111       0.0.0.0:*          LISTEN
udp   0   0 0.0.0.0:111       0.0.0.0:*                           </screen>
                    Hvis du ikke ser noe som ligner på dette kan du anta at
		    tjenesten <command>portmap</command> ikke kjører. Den kan
		    startes med denne kommandoen:
                    <screen>
/etc/rc.d/init.d/portmap   start </screen>
                    For å være sikker på at <command>portmap</command> starter
		    når maskinen startes kan du bruke
                    <command>ntsysv</command>. Finn <command>portmap</command> og
		    sjekk at det er krysset av for at den skal starte.
                </para>
            </sect3>

            <sect3>
                <title>Bakgrunnsprogrammene NFS og MOUNT (nfsd &amp; mountd)</title>
                <para>
		    NFS selv har to bakgrunnsprogrammer (daemoner) som
		    må være i drift for å sikre at NFS fungerer:
                    <command>nfsd</command> og <command>mountd</command>.
		    Begge startes fra skriptet
                    <filename>/etc/rc.d/init.d/nfs</filename>.
                </para>
                <para>
		    Du kan bruke kommandoen <command>ps</command>
		    for å sjekke om de kjører.
                    <screen>
ps -e | grep nfs
ps -e | grep mountd </screen>
                    Hvis resultatet viser at en eller begge programmene
		    ikke er i drift, må du starte dem.
                </para>

                <para>
		    Oppstarts-skriptet er ment å skulle starte begge de nødvendige
		    programmene hvis kommandolinje-argumentet benyttes slik:
		     <command>service nfs restart</command>. Av en eller annen grunn
		    (en feil?) virker dette ikke for dette skriptet. Det er bare
		    <command>mountd</command> som startes, mens
		    <command>nfsd</command> ikke startes med denne kommandoen.
		    Derfor bør du gjøre en slik omstart av NFS i to steg:
                    <screen>
/etc/rc.d/init.d/nfs  stop
/etc/rc.d/init.d/nfs  start </screen>
		    Du kan få feilmeldinger med den første
		    (<command>stop</command>), men det er greit. Den andre linjen skal
		    vise <command>OK</command> som resultat.
                </para>

                <para>
		    Hvis programmene virkelig er i gang, men NFS fremdeles ikke virker,
		    kan du verifisere at NFS-programmene er registrert av
		    <command>portmap</command> med kommandoen <command>rpcinfo</command>.
                    <screen>
rpcinfo -p localhost </screen>
                    Her skal du se et resultat som ligner på
                    <screen>
program vers proto   port
 100000    2   tcp    111  portmapper
 100000    2   udp    111  portmapper
 100011    1   udp    856  rquotad
 100011    2   udp    856  rquotad
 100005    1   udp   1104  mountd
 100005    1   tcp   2531  mountd
 100005    2   udp   1104  mountd
 100005    2   tcp   2531  mountd
 100003    2   udp   2049  nfs </screen>
                    Dette indikerer at både <command>nfs</command> (nfsd) og
		    <command>mountd</command> er i gang og har meldt seg til
		    tjeneste hos <command>portmap</command>.
                </para>
            </sect3>
        </sect2>
    </sect1>

    <sect1>
        <title>Feilsøking av X Window</title>
        <para>
	    Ojoj! Dette er sannsynligvis den vanskeligste delen av å sette opp
	    en LTSP arbeidsstasjon: å få X Window til å virke skikkelig. Hvis du
	    har et relativt nytt skjermkort i arbeidsstasjonen og dette er støttet
	    av XFree86 trenger det ikke være problematisk. Dersom også skjermen
	    kan håndtere et relativt stort antall frekvenser og oppløsninger bør
	    oppsettet gå smertefritt. Vanligvis er problemet at valg av driver eller
	    XFree86 tjenerversjon ikke stemmer overens med kortet.
        </para>
        <para>
	    At en X-tjener ikke virker med skjermkortet er vanligvis ganske
	    åpenbart. Enten starter ikke X i det hele tatt, eller så er skjermen
	    helt forvrengt.
        </para>
        <para>
	    Når arbeidsstasjonen er klar til å starte X Window vil den kjøre
	    skallskriptet <filename>/tmp/start_ws</filename>,
	    som starter X lokalt på arbeidsstasjonen. Oppstarten angir
	    at X skal forsøke å koble opp mot maskinen angitt av
            <command>-query</command>
	    hvor et innloggingsprogram, f.eks. <command>XDM</command>,
            <command>GDM</command> eller <command>KDM</command> lytter på forespørsler fra
	    maskiner på nettverket.
        </para>

        <para>
	    Gangen i å starte X på en LTSP arbeidsstasjon er at skriptet
	    <filename>start_ws</filename> blir kjørt av
	    <command>init</command>, og i sin tur starter X. Hvis
	    <filename>start_ws</filename>  ikke greier å starte X, vil
	    <command>init</command> gjøre et nytt forsøk. Ti ganger vil
	    <command>init</command> forsøke å få i gang X på denne måten,
	    deretter gir det opp fordi det tror at det blir restartet for
	    fort. Den feilmeldingen som angir grunnen til at X ikke vil
	    starte kan nå ses på skjermen.
        </para>

        <para>
	    Å vente på at X skal gjøre ti feilslåtte forsøk på å starte kan
	    være ganske irriterende. En enkel måte å unngå dette på er å starte
	    arbeidsstasjonen i driftsnivå 3, slik at X ikke startes automatisk.
	    I stedet får du opp en <command>bash</command> kommandolinje.
	    Fra kommandolinjen kan du starte X manuelt med kommandoen
            <screen>
sh  /tmp/start_ws </screen>
	    X gjør et forsøk på å starte, og når forsøket feiler vil du få tilbake
	    kommandolinjen. Feilmeldingene vil være skrevet ut på skjermen slik
	    at det er mulig å avgjøre hva årsaken til feilen er.
        </para>
    </sect1>

    <sect1>
        <title>Feilsøking av innloggings-programmet</title>
        <para>
	    Programmet som viser innloggingsbildet på arbeidsstasjonens skjerm
	    er en bakgrunnsprosess på tjeneren. Denne lytter etter forespørsler
	    fra X på andre maskiner som prøver å sette opp en forbindelse.
	    Hvis denne forbindelsen er etablert vil et innloggingsbilde bli
	    vist på skjermen, slik at brukeren kan autentisere seg og få tilgang
	    til maskinen.
        </para>

        <para>
	    De tre mest vanlige innloggings-programmene er:
            <itemizedlist>
                <listitem>
                    <para>
                        XDM - som har vært i bruk så lenge noen kan huske.
			Den følger med som standard i X - pakken.
                    </para>
                </listitem>
                <listitem>
                    <para>
                        GDM - 'Gnome Display Manager'. Del av arbeidsflaten Gnome.
                    </para>
                </listitem>
                <listitem>
                    <para>
                        KDM - 'KDE Display Manager'.  Del av skrivebordsflaten KDE.
                    </para>
                </listitem>
            </itemizedlist>
	    De fleste GNU/Linux-distribusjonene har med alle disse.
        </para>

        <sect2>
            <title>Grå skjerm med en markør formet som en X</title>
            <para>
                Dette er en indikasjon på at X er oppe og kjører, men at det
		ikke er opprettet kontakt med et innloggings-program.
		Noen vanlige årsaker til dette kan være:
                <orderedlist>
                    <listitem>
                        <para>
			    Innloggings-programmet er ikke i gang.
                        </para>
                        <para>
			    På nylige versjoner av Red Hat Linux (7.0 og senere)
			    startes innloggingsbildet fra
                            <command>init</command>. I fila
                            <filename>/etc/inittab</filename> er det en linje som
			    ser slik ut:
                            <screen>
x:5:respawn:/etc/X11/prefdm -nodaemon </screen>

                            Skriptet <command>prefdm</command> avgjør hvilket program
			    som vil håndtere innloggingen.
                        </para>

                        <para>
			    Hvilket innloggingsbilde som benyttes er avhengig av hvilke
			    pakker som er installert. Dersom Gnome er lagt inn vil
			    GDM være standard. Dersom Gnome ikke er installert vil
			    skriptet <command>prefdm</command> sjekke om KDE er
			    installert. Hvis det er, vil KDM settes som  standard
			    innloggingsbilde. Hvis ikke KDE heller er installert, vil
			    XDM settes som innloggingsbilde.
                        </para>

                        <para>
			    Ved å bruke kommandoen <command>netstat</command>
			    kan du se om programmet som styrer innnloggingsbildet
			    er i gang. Bruk denne kommandoen på tjenermaskinen:
                            <screen>
netstat -ap | grep xdmcp </screen>
			    Du burde få respons som viser at det går en prosess
			    som lytter på port 177, xdmcp-protokollens port.
                            <screen>
udp     0   0 *:xdmcp            *:*               1493/gdm </screen>
                            Her ser vi at <command>gdm</command> kjører med prosess-nr.
			    1493 og lytter på xdmcp-porten.
                        </para>

                        <para>
			    Hvis du får et resultat som det over, og kan være rimelig
			    sikker på at det riktige programmet kjører på tjenermaskinen,
			    må du flytte fokus til arbeidsstasjonen. Du må være sikker
			    på at denne sender ut xdmcp-forespørsler til riktig
			    tjener.
                        </para>

                        <para>
			    I <filename>lts.conf</filename> kan man angi hvilken
			    IP-adresse som benyttes av maskinen som sender
			    innloggingsbildet til arbeidsstasjonen. Dersom man velger
			    å angi denne IP-adressen eksplisitt (det er valgfritt), er formatet
			    på den aktuelle linjen:
                            <screen>
XDM_SERVER  =  192.168.0.254 </screen>
                            IP-adressen i dette eksempelet er ikke nødvendigvis den
			    samme som i ditt nettverk og for dine maskiner.
                        </para>

                        <para>
			    Hvis 'XDM_SERVER' ikke er eksplisitt oppgitt, vil
			    ip-adressen antas å være den samme som er angitt for
			    'SERVER'. Hvis denne heller ikke er oppgitt benyttes
			    <command>192.168.0.254</command>.
                        </para>

                        <para>
			    Uansett hvordan den er angitt, må du bare sørge for at
			    den IP-adressen som benyttes av arbeidsstasjonen når den
			    sender ut forespørselen om innloggingsbilde er
			    den samme som den som gjelder for tjeneren som leverer
			    innloggingsbildet.
                        </para>
                    </listitem>
                    <listitem>
                        <para>
			    Programmet som styrer innloggingsbildet kan være satt opp
			    til å overse forspørsler fra andre maskiner i nettverket.
                        </para>

                        <para>
			    Hvis du er sikker på at programmet kjører og at
			    arbeidsstasjonen benytter riktig IP-adresse for
			    forespørslene, kan det være at programmet ikke
			    reagerer på XDMCP-forespørsler fra arbeidsstasjonen.
			    Du må sjekke oppsettet for den aktuelle pakken
			    (GDM, KDM eller XDM) for å
			    finne ut om den faktisk håndterer forespørsler fra andre
			    maskiner.
                        </para>

                        <itemizedlist>
                            <listitem>
                                <para><command>XDM</command></para>
                                <para>
				    Standard oppsett for Red Hat Linux er å hindre
				    tilgang til innloggingsbildet fra andre maskiner.
				    Når du kjører tilpasningsprogrammet
				    <command>ltsp_initialize</command>
				    vil de nødvendige endringene bli gjort for å
				    gi slik tilgang. Hvis systemet allikevel ikke
				    fungerer bør du sjekke innstillingene i
                                    <filename>/etc/X11/xdm/xdm-config</filename>.
				    Let etter en linje som ligner på denne:
                                    <screen>
DisplayManager.requestPort:     0 </screen>
                                    Denne linjen MÅ være kommentert ut for at
				    XDM skal lytte på port 177 for innkommende
				    forspørsler fra andre maskiner.
                                </para>
                                <para>
				    En annen oppsettfil er også viktig for at XDM
				    skal kunne levere innloggingsbildet. Dette er
                                    <filename>/etc/X11/xdm/Xaccess</filename>
				    som MÅ inneholde en linje som starter med en
				    stjerne '*'. Red Hat Linux kommer med denne linjen
				    kommentert ut, og <command>ltsp_initialize</command>
				    skal fjerne kommentar-tegnet. Hvis fjerninnloggingen
				    allikevel ikke fungerer bør du kontrollere denne
				    oppsettfilen. Linjen bør se omtrent slik ut:
                                    <screen>
*        #any host can get a login window </screen>
                                </para>
                            </listitem>

                            <listitem>
                                <para><command>KDM</command></para>
                                <para>
				    Nyere versjoner av KDM har egen oppsettfil,
				    <command>kdmrc</command>.
				    De ulike Linux-distribusjonene plasserer denne
				    filen på forskjellige steder. Red Hat Linux
				    7.2 har den i <command>/etc/kde/kdm/kdmrc</command>.
				    For å finne den i andre distribusjoner bør
				    du bruke kommandoen <command>locate kdmrc</command>.
                                </para>
                                <para>
				    I kdmrc er det avsnittet som starter med
				    <command>[Xdmcp]</command> som styrer om et
				    innloggingsbilde sendes til andre maskiner.
				    Sørg for at <command>Enable</command>
                                    er satt til <command>true</command> i dette avsnittet.
                                </para>
                                <para>
				    Eldre versjoner av KDM bruker XDMs oppsettfiler.
				    Disse finner du i
				    <filename class="directory">/etc/X11/xdm</filename>.
                                </para>
                            </listitem>

                            <listitem>
                                <para><command>GDM</command></para>
                                <para>
				    GDM bruker et eget sett med oppsettfiler. Disse er
				    lagt i katalogen
                                    <filename class="directory">/etc/X11/gdm</filename>.
                                </para>

                                <para>
				    Den viktigste filen er <filename>gdm.conf</filename>.
				    Finn avsnittet <command>[xdmcp]</command>.
				    Her finner du parameteren 'Enable', denne
				    må være satt til '1' eller 'True', avhengig av hvilken
				    versjon av GDM som er i bruk. Her er et eksempel:
                                    <screen>
[xdmcp]
Enable=true
HonorIndirect=0
MaxPending=4
MaxPendingIndirect=4
MaxSessions=16
MaxWait=30
MaxWaitIndirect=30
Port=177 </screen>
                                </para>
                                <para>
				    Merk linjen med 'Enable=true'. Eldre versjoner av GDM
				    bruker '0' og '1' som verdier for henholdsvis 'false'
				    og 'true'. Nyere versjoner benytter 'false' og 'true'.
				</para>
                            </listitem>
                        </itemizedlist>
                    </listitem>

                    <listitem>
                        <para>
			    Hvis programmet som styrer innloggingsbildet
			    kjører og lytter, på riktig port, etter forespørsler
			    fra andre maskiner kan det være et nettverksproblem
			    som hindrer at bildet kommer opp på arbeidsstasjonens
			    skjerm. Programmet må kunne gjøre om IP-adressen til
			    et maskinnavn, det gjøres som regel med filen
			    <filename>/etc/hosts</filename> der det må finnes en
			    linje med IP-adressen og maskinnavnet til den aktuelle
			    arbeidsstasjonen. Alternativt må arbeidsstasjonen være
			    satt opp i DNS-tabellene.
                        </para>
                    </listitem>

                </orderedlist>
            </para>
        </sect2>
    </sect1>
</chapter>

<chapter>
    <title>Kjerner</title>
    <para>
        Man må ta noen avgjørelser når det gjelder kjernene som skal benyttes
	på arbeidsstasjonene. Først og fremst gjelder dette om du vil bruke en
	av de ferdiglagde kjernene som følger med LTSP, eller om du vil bygge
	egne. Du må også bestemme deg for om du vil vise grafikk fremfor tekst
	under oppstarten av arbeidsstasjonen - med bruk av
	<command>Linux Progress Patch (LPP)</command>.
    </para>

    <sect1>
        <title>Standard kjerner som følger med LTSP</title>
        <para>
	    LTSP tilbyr to ferdige kjerner - en med LPP, en uten.
        </para>

        <para>
	    Begge kjernene har patchen for NFS Swap innlagt.
        </para>
    </sect1>

    <sect1>
        <title>Bygg din egen kjerne</title>
        <para>
	    Det er to måter å lage kjerner for LTSP. Standardmetoden er å
	    benytte noe som kalles en 'initiell ramdisk', eller forkortet
            <command>initrd</command>.
	    Denne ramdisken er et lite filsystem som er hengt på kjernen.
	    Initrd'en legges inn i minnet og så snart kjernen er startet
	    vil den montere opp dette filsystemet. Det er noen viktige fordeler
	    med initrd. For det første kan man bygge nettverksdriverne som moduler
	    og legge inn riktig modul ved oppstart. En slik løsning gjør det mulig
	    å ha en enkelt kjerne for så godt som alle typer nettverkskort. For det
	    andre kan man kjøre DHCP-klienten som et bruker-program i stedet for
	    et kjernebasert. I bruker-modus har man flere muligheter for å
	    be om og ta i mot parametre fra DHCP-tjeneren. Det gjør også kjernen litt
	    mindre. Den andre muligheten er å lage en kjerne uten en initrd. Driveren
	    for det aktuelle nettverkskortet må da bygges inn i selve kjernen sammen
	    med IP-autoconfig og 'rot-filsystem over NFS'. Denne framgangsmåten
	    gjør kjernen litt mindre og den vil starte opp litt raskere. Når
	    arbeidsstasjonen er oppe og går er det så godt som ingen forskjell
	    i hvordan arbeidsstasjonen virker.
        </para>

        <para>
	    Standard LTSP-kjerner har en initiell ramdisk som tar seg av
	    gjenkjenning av nettverkskortet og DHCP-forespørsler. Et viktig
	    kriterium for initrd'en var å gjøre den så liten som mulig.
	    Derfor valgte vi uClinux' libc-erstatning og busybox som verktøyene
	    vi trenger under oppstart.
        </para>

        <para>
	    Hvis du vil lage dine egne kjerner, trenger du å overføre pakken
	    ltsp_initrd_kit til din lokale maskin. Pakken inneholder det nødvendige
	    hierarkiet til rot-filsystemet og et skript for å bygge initrd'en.
        </para>

        <sect2>
            <title>Å finne kildekoden for kjernen</title>

            <para>
	        Det er vanligvis en god ide å starte med fersk kildekode
		fra <command>ftp.kernel.org</command> når man skal bygge
		kjerne. En av grunnene til dette er at de fleste distribusjonene,
		som f.eks. Red Hat, legger inn en rekke patcher i 'sine'
		kjerner. Disse er et stykke fra den offisielle kjernens
		kildekode.
            </para>

            <para>
	        Overfør pakken med kildekoden for kjernen du vil bruke og lagre
		den i katalogen <filename class="directory">/usr/src.</filename>
                Kjernene finnes under
		<filename class="directory">/pub/linux/kernel</filename>
		på ftp-tjeneren til ftp.kernel.org. Bruk en relativt
		moderne 2.4.x-kjerne fordi du trenger funksjonaliteten i
                <command>devfs</command>.
            </para>

            <para>
	        Dersom du også vil ha mulighet til å benytte NFS til swap eller
		Linux Progress Patch (LPP) må du finne patchene til disse funksjonene.
		Patchene må stemme overens med kjernen du skal bygge. I skrivende
		stund er 2.4.9 siste kjerne med støtte for disse funksjonene.
            </para>

            <para>
	        Vi vil i dette eksempelet benytte kjerneversjon 2.4.9. URL'en til denne
		er
                <filename>ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.9.tar.bz2</filename>
            </para>

            <para>
	        Pakk ut kildekoden i katalogen
                <filename class="directory">/usr/src.</filename>
		Her må du passe litt på, for når du pakker ut vil det lages en
		ny katalog med navnet <filename>linux</filename>. Hvis du allerede
		har denne katalogen med kildekode til kjernen, vil den bli overskrevet. Det
		er nok ikke det du vil... Gi nytt navn til en eventuell
		<filename class="directory">/usr/src/linux</filename>-katalog før
		du pakker ut kildekoden til kjernen.
            </para>

            <para>
	        Kildekode-pakken vi hentet er komprimert med verktøyet
                <command>bzip2</command>. Derfor må vi dekomprimere den før den
		sendes til utpakking med <command>tar</command>. Du kan bruke
		denne kommandoen for å gjøre begge operasjoner:
                <screen>
bunzip2 &#60;linux-2.4.9.tar.bz2 | tar xf - </screen>
		Etter at utpakkingen er ferdig vil du ha en ny katalog,
		<filename class="directory">/usr/src/linux</filename>. Denne inneholder
		hele kildekoden til Linux-kjernen, det såkalte kjernetreet.
		På dette stadiet pleier jeg å gi denne katalogen et nytt, mer
		meningsfylt navn.
                <screen>
mv linux linux-2.4.9 </screen>
		Etter at navneendringen er gjort flytter du deg til den nye
		katalogen:
                <screen>
cd /usr/src/linux-2.4.9 </screen>
            </para>
            <para>
		Vanligvis endrer jeg <filename>Makefile</filename> før jeg starter med
		tilpasningen av den nye kjernen. Nær toppen av fila er det en variabel
		som heter <command>EXTRAVERSION</command>. Jeg gir denne verdien
		<command>ltsp-1</command> slik at kjerneversjonen blir
		<command>2.4.9-ltsp-1</command>. Slik versjonsangivelse gjør det enklere
		å holde orden på de ulike kjernene senere. Toppen av
		<filename>Makefile</filename> skal se slik ut når endringene er gjort:
                <screen>
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 9
EXTRAVERSION = -ltsp-1

KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) </screen>
            </para>
        </sect2>

        <sect2>
            <title>Kjernepatcher</title>
            <para>
	        Etter at kjernetreet er pakket ut vil du kanksje legge inn
		patcher, f.eks. NFS Swap patch og Linux Progress Patch.
		Disse patchene må legges inn FØR du gjør tilpasningen av
		kjernen. En patch er kildekode som inneholder ny eller
		tilleggs-funksjonalitet.
            </para>
            <sect3>
                <title>NFS Swap patch</title>
                <para>
		    Denne patchen legger til muligheten for en arbeidsstasjon
		    å benytte en swapfil som fysisk befinner seg på en
		    annen maskin med en aktiv NFS-tjener. Det er best å ha så
		    mye minne i en arbeidsstasjon at den ikke trenger å benytte
		    seg av swap-mekanismen. Men dette er ikke alltid mulig, særlig
		    i gamle maskiner. Da kan muligheten for å benytte swap over
		    NFS gjøre det mulig å ta i bruk en ellers ubrukelig maskin.
                </para>
                <para>
		    Hvis den aktuelle katalogen er
		    <filename class="directory">/usr/src/linux-2.4.9</filename>
		    og patchen ligger i <filename class="directory">/usr/src</filename>
		    kan du gjøre følgende for å sjekke patchen:
                    <screen>
patch -p1 --dry-run &#60;../linux-2.4.9-nfs-swap.diff </screen>
		    Dette vil sjekke om det ville gått greit å legge patchen inn
		    i kjernetreet. Hvis kommandoen ikke ga noen feilmeldinger kan
		    du kjøre den uten parameteren <command>--dry-run</command>
                    option.
                    <screen>
patch -p1 &#60;../linux-2.4.9-nfs-swap.diff </screen>
                </para>
            </sect3>
            <sect3>
                <title>Linux Progress Patch (LPP)</title>
                <para>
		    Linux Progress Patch lar deg vise et grafisk skjermbilde
		    under oppstart-prosessen. De tekstlinjene som vanligvis
		    vises på skjermen under oppstart blir sendt til en annen
		    virtuell skjerm, og den grafiske skjermen vises i stedet.
		    Spesielle instruksjoner gjør at man kan vise fram en
		    framdriftsstolpe for å angi hvor langt oppstartsprosessen
		    er kommet.
                </para>
                <para>
		    Du kan sjekke LPP på samme måte som med NFS Swap med
		    denne kommandoen:
                    <screen>
patch -p1 --dry-run &#60;../lpp-2.4.9 </screen>
		    Hvis du ikke får noen feilmelding kan du legge inn
		    patchen med:
                    <screen>
patch -p1 &#60;../lpp-2.4.9 </screen>
                </para>
            </sect3>
        </sect2>

        <sect2>
            <title>Tilpasning av kjernen</title>
            <para>
	        Du kan nå bruke et av de spesielle programmene beregnet på
		tilpasning av Linux-kjernen. Disse gir ulik form for
		interaktivitet og kan startes med en av de følgende kommandoer:
                <itemizedlist>
                    <listitem>
                        <para>make xconfig</para>
                        <para>
			    Dette vil starte X Window-versjonen av
			    tilpasningsprogrammet for Linux-kjernen
                        </para>
                    </listitem>
                    <listitem>
                        <para>make menuconfig</para>
                        <para>
			    Dette starter en tekstbasert versjon av
			    tilpasningsprogrammet for Linux-kjernen.
                        </para>
                    </listitem>
                    <listitem>
                        <para>make config</para>
                        <para>
                            Dette starter en enkel linje-for-linje-versjon av
			    tilpasningsprogrammet for Linux-kjernen.
                        </para>
                    </listitem>
                </itemizedlist>
            </para>

            <sect3>
                <title>Kjernetilpasninger ved bruk av initrd</title>
                <para>
		    Tilpasning av kjernen for bruk av initrd forutsetter
		    at følgende parametre er satt:
                    <itemizedlist>

                        <listitem>
                            <para>
                                File systems -> /dev filesystem support
                            </para>
                            <para>
                                Filsystemet /dev må være tilgjengelig. Dette
				styres i avsnittet 'File systems'. IKKE kryss
				av for 'Automatically mount at boot'. Monteringen
				foretas av skriptet
				<command>/linuxrc</command>
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                Block devices -> RAM disk support
                            </para>
                            <para>
			        LTSP arbeidsstasjoner forutsetter at kjernen
				har støtte for en RAM-disk. Dette styres i
				avsnittet 'Block devices'.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                Block devices -> Initial RAM disk (initrd)
                                support
                            </para>
                            <para>
			        Dette valget må også krysses av.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                Processor type and features -> Processor family
                            </para>
                            <para>
			        Du må passe på at kjernen du lager vil kunne
				brukes på prosessoren i arbeidsstasjonen. Dette
				styrer du i avsnittet
                                'Processor type and features'. Du bør også
				skru av støtte for SMP (symmetrisk multiprosessering)
				med mindre du faktisk har flere prosessorer i
				arbeidsstasjonen.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                File systems -> Network file systems -> NFS
                                Client support
                            </para>
                            <para>
			        Arbeidsstasjonen vil montere sitt rot filsystem
				via NFS, så det er nødvendig med støtte for NFS
				i arbeidsstasjonens kjerne.
                            </para>
                        </listitem>
                    </itemizedlist>
		    Det skulle være alle de nødvendige valgene. I tillegg kan du
		    skru av mange andre funksjoner for å redusere størrelsen
		    på kjernen.
                </para>
            </sect3>

            <sect3>
                <title>Tilpasning av kjerne som ikke skal bruke initrd</title>
                <para>
		    Tilpasning av en kjerne for bruk uten initrd er litt
		    annerledes.
                    <itemizedlist>
                        <listitem>
                            <para>
                                Block devices -> RAM disk support
                            </para>
                            <para>
			        LTSP arbeidsstasjoner trenger støtte
				for RAM-disk.
                            </para>
                        </listitem>

                        <listitem>
                            <para>
                                Block devices -> Initial RAM disk (initrd)
                                support
                            </para>
                            <para>
			        Denne må skrus av.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                Networking options -> IP:kernel level
                                autoconfiguration
                            </para>
                            <para>
			        Denne må være tilgjengelig, så kryss av her.
				Kjernen vil automatisk sette opp Ethernet
				nettverks-enheten eth0, basert på parametre
				gitt på kjernens kommandolinje.
                            </para>
                            <para>
			        Det er ikke nødvendig å oppgi parametre for
				DHCP, BOOTP eller RARP siden Etherboot allerede
				har gjort en DHCP- eller BOOTP-forespørsel og
				har den nødvendige informasjonen. IP-parametrene
				legges inn som nødvendig på kjernens kommandolinje
				og sparer kjernen for jobben med å spørre selv.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
			 	Network device support -> Ethernet (10 or
                                100Mbit)
                            </para>
                            <para>
			     	Når ikke initrd benyttes må det velges en driver
				som passer til nettverkskortet. Driveren MÅ være
				bygget inn i kjernen siden nettverkskortet må
				virke før rot filsystemet kan monteres og
				kjernemoduler er tilgjengelig. Dette er en en
				viktig del av hvordan en kjerne med og uten en initrd
				virker.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                File systems -> /dev filesystem support
                            </para>
                            <para>
			    	Fra og med LTSP versjon 2.09pre2 trengs støtte for
                                <command>devfs</command>
				uansett om initrd benyttes eller ikke.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                File systems -> Automatically mount at boot
                            </para>
                            <para>
			      	Dersom initrd IKKE benyttes må /dev-filsystemet
				monteres av kjernen som del av oppstartsprosessen.
				Så kryss av for 'Y' her.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                File systems -> Network file systems -> NFS
                                Client support
                            </para>
                            <para>
			    	Siden arbeidsstasjonen skal montere rot filsystemet
				sitt ved hjelp av NFS er det nødvendig med støtte
				for NFS-klienter.
                            </para>
                        </listitem>
                    </itemizedlist>
                </para>
            </sect3>
        </sect2>

        <sect2>
            <title>Bygging av kjernen</title>

            <para>
	    	For å gjøre ting enklere er en kopi av
                <filename>.config</filename>
		inkludert i ltsp_initrd_kit-pakken. Denne kopien kan
		legges inn i katalogen
		<filename>/usr/src/linux-2.4.9</filename> og brukes
		som utgangspunkt for ditt eget kjerne-oppsett.
            </para>

            <para>
	    	Når du er ferdig med å velge (og velge vekk) kjerne-opsjoner
		må kjernen bygges. Dette utføres med disse kommandoene:
                <screen>
make dep
make clean
make bzImage
make modules
make modules_install </screen>
		Du kan henge dem etter hverandre slik:
                <screen>
make dep &amp;&amp; make clean &amp;&amp; make bzImage &amp;&amp; make modules &amp;&amp; make modules_install </screen>
                Den doble ampersand'en (&amp;) angir at kommandoen foran
		må fullføres uten feil for at den neste skal kunne utføres.
		Hvis den andre utføres uten feil også, vil den tredje startes,
		osv.
            </para>
            <para>
	    	Når kjernen er ferdig bygget vil den kunne finnes som filen
                <filename class="directory">/usr/src/linux-2.4.9/arch/i386/boot/bzImage</filename>.
            </para>
        </sect2>

        <sect2>
            <title>Merking av kjernen for Etherboot</title>
            <para>
	    	For at Etherboot skal kunne håndtere en Linux-kjerne må denne
		behandles spesielt. Denne prosessen kalles å "merke" kjernen,
		og vil legge inn ekstra kode som utføres før kjernen overtar
		kontrollen over maskinen ved oppstart. Verktøyet som benyttes
		for denne merkingen kalles '<command>mknbi-linux</command>'.
            </para>
            <para>
	      	ltsp_initrd_kit inneholder skall-scriptet
                <command>buildk</command>, og dette har alle de
		nødvendige besvergelsene som trengs for å forberede
		kjernen til oppstart over nettverket.
            </para>
        </sect2>
    </sect1>
</chapter>

<!--
<chapter>
    <title>Advanced Topic: Making bootroms</title>
    <para>
        Burning eproms with Etherboot code
    </para>
</chapter>
-->

<!--
<chapter>
    <title>Advanced Topic: Display Managers</title>
    <para>
        Burning eproms with Etherboot code
    </para>
</chapter>
-->

<!--
<chapter>
    <title>Advanced Topic: Font Server</title>
    <para>
        Burning eproms with Etherboot code
    </para>
</chapter>
-->

<!--
<chapter>
    <title>Advanced Topic: Configuring a Chooser</title>
    <para>
        Burning eproms with Etherboot code
    </para>

</chapter>
-->

<!--
<chapter>
    <title>Advanced Topic: Local Applications</title>
    <para>
        Burning eproms with Etherboot code
    </para>
</chapter>
-->

<!--
<chapter>
    <title>Advanced Topic: Accessing local peripherals</title>
    <para>
        Burning eproms with Etherboot code
    </para>
</chapter>
-->

<chapter>
    <title>Innhold i lts.conf</title>
    <para>
    	Da LTSP ble laget var ett av kriteriene at det skulle være mulig å
	håndtere varierende typer maskinvare for arbeidsstasjonene. Den
	kombinasjonen av prosessor, nettverks- og skjermkort som finnes
	i de arbeidsstasjonene du installerer i dag vil ikke være tilgjengelig
	om tre måneder når neste bolk med tynne klienter skal installeres.
    </para>
    <para>
    	Derfor har vi sørget for at det skal være mulig å angi et oppsett
	for hver enkelt arbeidsstasjon. Oppsett-filen er
        <filename>lts.conf</filename> og den finnes i katalogen
        <filename class="directory">/opt/ltsp/i386/etc</filename>.
    </para>

    <para>
    	Formatet i lts.conf tillater en blokk med standard parametre
	og andre blokker med individuelle oppsett for hver arbeidsstasjon.
	Hvis alle maskinene du benytter som tynne klienter er like kan
	du greie deg med en enkelt '[Default]' blokk som angir alle
	nødvendige parametre.
    </para>

    <sect1>
        <title>Eksempel på lts.conf</title>
        <para>
            Dette er et eksempel på hvordan lts.conf kan se ut:
            <screen>
[Default]
        SERVER             = 192.168.0.254
        X_MOUSE_PROTOCOL   = "PS/2"
        X_MOUSE_DEVICE     = "/dev/psaux"
        X_MOUSE_RESOLUTION = 400
        X_MOUSE_BUTTONS    = 3
        USE_XFS            = N
        RUNLEVEL           = 5

[ws001]
        XSERVER            = auto
        X_MOUSE_PROTOCOL   = "Microsoft"
        X_MOUSE_DEVICE     = "/dev/ttyS1"
        X_MOUSE_RESOLUTION = 50
        X_MOUSE_BUTTONS    = 3
        X_MOUSE_BAUD       = 1200

[ws002]
        XSERVER            = XF86_Mach64

[ws003]
        RUNLEVEL           = 3 </screen>
        </para>
    </sect1>

    <sect1>
        <title>Tilgjengelige parametre i lts.conf</title>
        <sect2>
            <title>Generelle parametre</title>
            <variablelist>

                <varlistentry>
                    <term><command>Kommentarer</command></term>
                    <listitem>
                        <para>
                            Kommentarer starter med en skigard '#' og
			    fortsetter til slutten av linjen.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>LTSP_BASEDIR</command></term>
                    <listitem>
                        <para>
			    Angir hvor LTSP sitt rot filsystem kan finnes.
			    Standard verdi er
                            <filename>/opt/ltsp</filename>
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>SERVER</command></term>
                    <listitem>
                        <para>
			    Angir hvilken maskin som benyttes i parametrene
			    XDM_SERVER, TELNET_HOST, XFS_SERVER og SYSLOG_HOST,
			    hvis disse ikke angis eksplisitt. Hvis installasjonen
			    har en maskin som benyttes for alle funksjonene kan
			    du legge inn denne her og hoppe over de andre server-
			    parametrene. Standard verdi er
                            <command>192.168.0.254</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>SYSLOG_HOST</command></term>
                    <listitem>
                        <para>
			    Hvis du ønsker å sende logger til en annen maskin
			    enn standard-maskinen kan denne andre maskinen
			    angis her. Hvis denne paramteren ikke er angitt
			    vil verdien i 'SERVER' benyttes.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>NFS_SERVER</command></term>
                    <listitem>
                        <para>
			    Angir IP-adressen til NFS-tjeneren som benyttes
			    når katalogen <filename>/home</filename> skal
			    monteres. Standard verdi er innholdet i
                            <command>SERVER</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>USE_NFS_SWAP</command></term>
                    <listitem>
                        <para>
			    Angi <command>Y</command> hvis det ønskelig
			    å benytte swap over NFS.
			    Standard verdi er
                            <command>N</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>SWAPFILE_SIZE</command></term>
                    <listitem>
                        <para>
                            Med denne parameteren kontrolleres
			    størrelsen på swap-filen. Standard verdi er
			    <command>64MB</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>SWAP_SERVER</command></term>
                    <listitem>
                        <para>
			    Swap-filen kan ligge på hvilken som helst maskin
			    på nettverket som kan håndtere den. Angi IP-adressen
			    til denne maskinen. Standard verdi er innholdet
			    av <command>NFS_SERVER</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>NFS_SWAPDIR</command></term>
                    <listitem>
                        <para>
                            Katalogen på tjeneren som eksporteres med
			    NFS. Standard verdi er
                            <filename>/var/opt/ltsp/swapfiles</filename>.
			    Sørg for at denne katalogen er satt opp i
			    <filename>/etc/exports</filename>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>TELNET_HOST</command></term>
                    <listitem>
                        <para>
                            Hvis arbeidsstasjonen skal benytte et tegnbasert
			    grensesnitt vil innholdet av denne parameteren
			    benyttes for å finne maskinen som skal ta i mot
			    TELNET-påloggingen. Standard-verdi er innholdet i
                            <command>SERVER</command>.
                        </para>
                        <para>
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>DNS_SERVER</command></term>
                    <listitem>
                        <para>
			    Brukes for å bygge
			    <filename>/etc/resolv.conf</filename>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>SEARCH_DOMAIN</command></term>
                    <listitem>
                        <para>
                            Brukes for å bygge
			    <filename>/etc/resolv.conf</filename>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>MODULE_01</command> til og med
                          <command>MODULE_10</command></term>
                    <listitem>
                        <para>
                            Opp til ti kjernemoduler kan legges inn ved å
			    benytte disse parametrene. Angi som verdi hele
			    kommandolinjen du ville brukt sammen med
			    <command>insmod</command>. Eksempel:
                            <screen>
MODULE_01   = uart401.o
MODULE_02   = sb.o io=0x220 irq=5 dma=1
MODULE_03   = opl3.o </screen>
                        </para>

                        <para>
                            Hvis verdien av denne parameteren er et
			    absoloutt filnavn vil kommandoen
			    <command>insmod</command> bli brukt til å
			    installere modulen. Ellers vil
                            <command>modprobe</command> bli benyttet.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>RAMDISK_SIZE</command></term>
                    <listitem>
                        <para>
                            Når arbeidsstasjonen starter opp lager den en
			    ramdisk og monterer den i katalogen /tmp. Du kan
			    kontrollere størrelsen på dette filsystemet med
			    denne parameteren. Angi verdien i Kbytes
			    (1024 bytes). For en ramdisk på 1 megabyte bruk
			    <command>RAMDISK_SIZE = 1024</command>
                        </para>
                        <para>
                            Hvis du endrer størrelsen på ramdisken her må
			    du også endre størrelsen på ramdisken i kjernen.
			    Dette kan bygges inn, eller, hvis du bruker
			    Etherboot eller Netboot, angis når du merker kjernen
			    med mknbi-linux.
                        </para>
                        <para>
			    Standard verdi er 1024 ( 1 MB ).
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>RCFILE_01</command> thru
                          <command>RCFILE_10</command></term>
                    <listitem>
                        <para>
			    Ytterligere RC-script kan bli utført av scriptet
			    rc.local. Legg det scriptet du ønsker utført
			    i katalogen /etc/rc.d og angi navnet i en av disse
			    parametrene her.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>SOUND</command></term>
                    <listitem>
                        <para>
			    Hvis lydpakken til LTSP er installert må du
			    angi <command>Y</command> her. Da vil
			    scriptet <command>rc.sound</command>
			    bli utført og lydkortet og annen programvare
			    nødvendig for å få lyd til å virke bli
			    satt opp. Standard verdi er <command>N</command>.
                        </para>
                    </listitem>
                </varlistentry>

            </variablelist>
        </sect2>

        <sect2>
            <title>X-Window parametre</title>
            <variablelist>
                <varlistentry>
                    <term><command>XDM_SERVER</command></term>
                    <listitem>
                        <para>
			    Hvis du ønsker å benytte en annen maskin enn
			    standard-tjeneren til å vise fram XDM innloggins-
			    bildet kan du angi denne her.
			    Standard verdi er innholdet i 'SERVER'.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>XSERVER</command></term>
                    <listitem>
                        <para>
			    Angir hvilken X-tjener arbeidsstasjonen skal benytte.
			    For PCI og AGP skjermkort er denne parameteren ikke
			    nødvendig, siden scriptet rc.local søker etter
			    slike kort og tilordner den riktige driveren. For
			    å vise at denne funksjonen skal benyttes kan det være
			    greit å sette verdien til <command>auto</command>.
                        </para>

                        <para>
			    For ISA skjermkort, eller for å tvinge inn en
			    spesiell driver, kan du angi en verdi her. Bruk
			    navnet på driveren.
                        </para>
                        <para>
			    Hvis verdien begynner med <command>XF86_</command>
			    vil XFree86 3.3.6 benyttes. I motsatt fall brukes
			    XFree86 4.1.x.
			    Standard verdi er
                            <command>auto</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_MODE_0</command> til
                          <command>X_MODE_2</command></term>
                    <listitem>
                        <para>
			    Opp til tre Modelines eller oppløsninger kan settes
			    opp for arbeidsstasjonen. Denne parameteren kan ta
			    to ulike typer verdier. Enten angis en oppløsning
			    eller en komplett Modeline.
                            <programlisting width=80>
X_MODE_0 = 800x600

   eller

X_MODE_0 = 800x600 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync
                            </programlisting>
                        </para>
                        <para>
			    Hvis ingen verdi er angitt for X_MODE_? vil de
			    innebygde Modelines bli benyttet sammen med
			    oppløsningene 1024x768, 800x600 og 640x480.
                        </para>
                        <para>
			    Hvis det er angitt verdier for en eller flere av
			    X_MODE_? vil disse verdiene overstyre de innebygde
 			    standard-verdiene
                        </para>

                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_MOUSE_PROTOCOL</command></term>
                    <listitem>
                        <para>
			    Verdier som stemmer med XFree86 Pointer Protocol
			    kan benyttes her. Typiske verdier er "PS/2" og
			    "Microsoft". Standard verdi er
                            <command>"PS/2"</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_MOUSE_DEVICE</command></term>
                    <listitem>
                        <para>
			    Dette er porten musen er koblet til. Hvis det er
			    en seriell mus må dette reflektere en seriellport
			    , f. eks.
                            <command>/dev/ttyS0</command> eller
                            <command>/dev/ttyS1</command>.  Hvis det er en PS/2 			    type mus vil verdien typisk være
                            <command>/dev/psaux</command>.
			    Standard verdi er
                            <command>/dev/psaux</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_MOUSE_RESOLUTION</command></term>
                    <listitem>
                        <para>
			    Her skal det angis en verdi som benyttes for
                            'Resolution' for musen i
                            <command>XF86Config</command>-filen. En typisk verdi
			    kan være <command>50</command> for en seriell-mus
			    og <command>400</command> for en PS/2-mus.
			    Standard verdi er
                            <command>400</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_BUTTONS</command></term>
                    <listitem>
                        <para>
			    Verdien her forteller systemet hvor mange knapper
			    musen har. Vanligvis er dette <command>2</command>
			    eller <command>3</command>.
			    Standard verdi er
			    <command>3</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_MOUSE_EMULATE3BTN</command></term>
                    <listitem>
                        <para>
			    Benytt denne parameteren for å angi om X-serveren skal
			    behandle en mus med to knapper som om den hadde tre.
			    Dette gjør den ved å se et samtidig klikk på begge
			    knappene som et klikk på den midtre knappen.
			    Standard verdi er <command>N</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_MOUSE_BAUD</command></term>
                    <listitem>
                        <para>
			    Dette definerer baud-raten for serielle mus.
			    Standard verdi er <command>1200</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_COLOR_DEPTH</command></term>
                    <listitem>
                        <para>
			    Antallet bits som benyttes for fargedybden. Verdier
			    her skal være <command>8</command>,
                            <command>15</command>, <command>16</command>,
                            <command>24</command> eller <command>32</command>.
			    8 bits gir 256 farger, 16 gir 65 536 farger,
			    24 gir 16 millioner og 32 bits gir 4,2 milliarder
			    farger.
			    Standard verdi er <command>16</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>USE_XFS</command></term>
                    <listitem>
                        <para>
			    Du kan velge å benytte en X Font Server (XFS)
			    eller lese fontene fra filsystemet montert via
			    NFS. XFS er en enkel måte å ha fontene samlet
			    på ett sted, men det har vært problemer med å
			    håndtere mer enn 40 arbeidsstasjoner.
			    Bruk enten
                            <command>Y</command> eller <command>N</command>
			    som verdier.
			    Standard verdi er <command>N</command>.
			    Hvis du ønsker å kjøre en font-tjener kan du angi
			    hvilken maskin denne kjører på ved å benytte
			    parameteren <command>XFS_SERVER</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>XFS_SERVER</command></term>
                    <listitem>
                        <para>
			    Hvis du har en XFS-tjener som leverer fonter kan
			    du angi hvilken maskin dette er ved å legge inn
			    IP-adresse eller maskinnavn i denne parameteren.
			    Hvis det ikke angis noen verdi her vil verdien
			    angitt for <command>SERVER</command> benyttes.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_HORZSYNC</command></term>
                    <listitem>
                        <para>
			    Angir <command>HorizSync</command>-parameteren
			    som benyttes av XFree86.
			    Standard verdi er
                            <command>"31-62"</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_VERTREFRESH</command></term>
                    <listitem>
                        <para>
			    Angir <command>VertSync</command>-parameteren
			    som benyttes av XFree86.
			    Standard verdi er
                            <command>"55-90"</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>XF86CONFIG_FILE</command></term>
                    <listitem>
                        <para>
			    Hvis du ønsker å bygge opp en komplett
                            XF86Config-fil selv, kan du legge denne i katalogen
			    <command>/opt/ltsp/i386/etc</command>.
			    Navnet på filen oppgis som verdi her. F.eks.
                            <screen>
XF86CONFIG_FILE = XF86Config.ws004 </screen>
                        </para>
                    </listitem>
                </varlistentry>
            </variablelist>
        </sect2>

        <sect2>
            <title>Parametre for berørings-skjermer</title>
            <variablelist>
                <varlistentry>
                    <term><command>USE_TOUCH</command></term>
                    <listitem>
                        <para>
			    Hvis du kobler en berørings-skjerm til arbeidsstasjonen
			    kan du benytte verdien <command>Y</command>.
			    I så fall vil de øvrige variablene under kunne
			    ta hånd om spesifikke sider ved oppsettet av slike
			    enheter. Standard verdi er <command>N</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_TOUCH_DEVICE</command></term>
                    <listitem>
                        <para>
			    En berørings-skjern virker som en mus og snakker
			    vanligvis med arbeidsstasjonen gjennom en
			    seriell-port. Du kan angi hvilken seriellport dette er
			    med denne verdien, f.eks.
			    <command>/dev/ttyS0</command>. Det er ingen
			    standard verdi her.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_TOUCH_MINX</command></term>
                    <listitem>
                        <para>
			    Kalibrering av en EloTouch-skjerm.
			    Standard verdi er <command>433</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_TOUCH_MAXX</command></term>
                    <listitem>
                        <para>
			    Kalibrering av en EloTouch-skjerm.
			    Standard verdi er <command>3588</command>.
                            </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_TOUCH_MINY</command></term>
                    <listitem>
                        <para>
                            Kalibrering av en EloTouch-skjerm.
                            Standard verdi er <command>569</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_TOUCH_MAXY</command></term>
                    <listitem>
                        <para>
                            Kalibrering av en EloTouch-skjerm.
                            Standard verdi er <command>3526</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_TOUCH_UNDELAY</command></term>
                    <listitem>
                        <para>
                            Kalibrering av en EloTouch-skjerm.
                            Standard verdi er <command>10</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>X_TOUCH_RPTDELAY</command></term>
                    <listitem>
                        <para>
                            Kalibrering av en EloTouch-skjerm.
                            Standard verdi er <command>10</command>.
                        </para>
                    </listitem>
                </varlistentry>
            </variablelist>
        </sect2>

        <sect2>
            <title>Parametre for lokale programmer</title>
            <variablelist>
                <varlistentry>
                    <term><command>LOCAL_APPS</command></term>
                    <listitem>
                        <para>
			    Hvis du vil kunne kjøre programmer lokalt på
			    arbeidsstasjonen setter du denne variabelen
			    til <command>Y</command>. Det er flere andre 
			    ting som må gjøres på sentralmaskinen for å få
			    lokale programmer til å fungere. Se i avnsittet
			    om 'Lokale programmer' i LTSP-manualen for å
			    finne mer informasjon om hvordan dette gjøres.
			    Standard verdi er <command>N</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>NIS_DOMAIN</command></term>
                    <listitem>
                        <para>
			    Hvis du velger å bruke lokale programmer må du ha
			    en NIS-tjener på nettverket. Variabelen
			    NIS_DOMAIN brukes til å spesifisere NIS
			    domene-navnet. Dette må stemme overens med det
			    domene-navnet som er brukt på NIS-tjeneren.
			    Dette er IKKE det samme som et Internett-domene.
			    Standard verdi er <command>ltsp</command>.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>NIS_SERVER</command></term>
                    <listitem>
                        <para>
			    Angi IP-adressen til NIS-tjeneren hvis du ikke
			    vil benytte kringkasting for å finne den.
                        </para>
                    </listitem>
                </varlistentry>
            </variablelist>
        </sect2>

        <sect2>
            <title>Parametre for tastatur</title>
            <para>
	        Alle støttefilene for tastatur er nå tatt med i
		/opt/ltsp/i386-hierarkiet. Å sette opp internasjonale tastatur er
		redusert til å sette opp XFree86. Flere parametre er
		tilgjengelige for å gjøre dette mulig.
            </para>
            <para>
		Verdiene for parameterene er de samme som finnes i
		dokumentasjonen for XFree86. Gyldige verdier for
		XFree86 er også gyldige for LTSP.
            </para>
            <para>
	        Vi vil gjerne ta med i dokumentasjonen hvilke verdier som
		er gyldige for ulike typer internasjonale tastatur. Dersom
		du har informasjon om dette ber vi deg gi denne videre til
		utviklergruppen for LTSP. Alle bidrag tas i mot med takk.
            </para>
            <variablelist>
                <varlistentry>
                    <term><command>XkbTypes</command></term>
                    <listitem>
                        <para>
			    Standard verdi er ordet
			    '<command>default</command>'.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>XkbCompat</command></term>
                    <listitem>
                        <para>
			    Standard verdi er ordet
                            '<command>default</command>'.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>XkbSymbols</command></term>
                    <listitem>
                        <para>
                            Standard verdi er
			    '<command>us(pc101)</command>'.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>XkbModel</command></term>
                    <listitem>
                        <para>
                            Standard verdi er
                            '<command>pc101</command>'.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>XkbLayout</command></term>
                    <listitem>
                        <para>
                            Standard verdi er
			    '<command>us</command>'. Bruk
			    '<command>no</command>' for norske tastatur.

                        </para>
                    </listitem>
                </varlistentry>
            </variablelist>
        </sect2>

        <sect2>
            <title>Parametere for bruk av skrivere</title>
            <para>
	        Opp til tre skrivere kan kobles til hver arbeidsstasjon. En
		kombinasjon av skrivere med parallell- og seriell tilkobling
		kan settes opp ved å benytte de følgende parameterene i
		oppsettfilen <command>lts.conf</command>.
            </para>

            <variablelist>
                <varlistentry>
                    <term><command>PRINTER_0_DEVICE</command></term>
                    <listitem>
                        <para>
			    Enhetsnavnet for den første skriveren. Verdier som
                            <command>/dev/lp0</command>,
                            <command>/dev/ttyS0</command> eller
                            <command>/dev/ttyS1</command> kan benytttes.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_0_TYPE</command></term>
                    <listitem>
                        <para>
			    Typen skriver. Tillatte verdier er
                            '<command>P</command>' for parallell
                            og '<command>S</command>' for seriell.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_0_PORT</command></term>
                    <listitem>
                        <para>
                            TCP/IP-porten som skal benyttes på arbeidsstasjonen.
			    Standard verdi er '<command>9100</command>'.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_0_SPEED</command></term>
                    <listitem>
                        <para>
			    Hvis skriveren har seriell-tilkobling kan
			    baud-raten med denne verdien.
			    Standard verdi er
                            '<command>9600</command>'.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_0_FLOWCTRL</command></term>
                    <listitem>
                        <para>
			    Flyt-kontrollen for serielle skrivere kan
			    settes her. Benytt '<command>S</command>' for
                            kontroll via programvare (XON/XOFF) eller
			    '<command>H</command>' for kontroll via
			    maskin-vare. Hvis ingenting er spesifisert vil
			    '<command>S</command>' bli benyttet.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_0_PARITY</command></term>
                    <listitem>
                        <para>
			    Pariteten kan defineres for serielle skrivere
			    med denne variabelen. Valgene er
			    '<command>E</command>' (like),
                            '<command>O</command>' (odde) eller
                            '<command>N</command>' (ingen). Dersom ingenting er
			    spesifisert vil
			    '<command>N</command>' bli benyttet.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_0_DATABITS</command></term>
                    <listitem>
                        <para>
			    Antallet databits kan angis. Valgene er
                            '<command>5</command>', '<command>6</command>',
                            '<command>7</command>' og '<command>8</command>'.
                             <command>8</command>' blir brukt som verdi om
			    ingenting er spesifisert.
                        </para>
                    </listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_1_DEVICE</command></term>
                    <listitem><para>Enhetsnavn for skriver nr. 2.</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_1_TYPE</command></term>
                    <listitem><para>Enhetstype for skriver nr. 2.</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_1_PORT</command></term>
                    <listitem><para>TCP/IP-port for skriver nr. 2.</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_1_SPEED</command></term>
                    <listitem><para>Baudrate for for skriver nr. 2.
                            (seriell)</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_1_FLOWCTRL</command></term>
                    <listitem><para>Flyt-kontroll for skriver nr. 2
                            (seriell)</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_1_PARITY</command></term>
                    <listitem><para>Paritet for skriver nr. 2
                             (seriell)</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_1_DATABITS</command></term>
                    <listitem><para>Data-bits for skriver nr. 2
                              (seriell)</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_2_DEVICE</command></term>
                    <listitem><para>Enhetsnavn for skriver nr. 3
                              </para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_2_TYPE</command></term>
                    <listitem><para>Enhetstype for skriver nr. 3.</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_2_PORT</command></term>
                    <listitem><para>TCP/IP-port for skriver nr. 3.</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_2_SPEED</command></term>
                    <listitem><para>Baudrate for for skriver nr. 3.
                            (seriell)</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_2_FLOWCTRL</command></term>
                    <listitem><para>Flyt-kontroll for skriver nr. 3
                            (seriell)</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_2_PARITY</command></term>
                    <listitem><para>Paritet for skriver nr. 3
                             (seriell)</para></listitem>
                </varlistentry>

                <varlistentry>
                    <term><command>PRINTER_2_DATABITS</command></term>
                    <listitem><para>Data-bits for skriver nr. 3
                              (seriell)</para></listitem>
                </varlistentry>
            </variablelist>
        </sect2>
    </sect1>
</chapter>

<chapter>
    <title>Lokale programmer</title>
    <para>
        LTSP gir deg muligheten til å velge mellom å kjøre programmer lokalt
	på arbeidsstasjonen eller sentralt på tjeneren.
    </para>

    <para>
        Den klart enkleste løsningen er å kjøre LTSP med alle programmer på
	tjeneren. Alle programmene benytter tjenerens prosessor og minne,
	men viser skjermbildene sine på arbeidsstasjonens skjerm og benytter
	dens tastatur og mus.
    </para>

    <para>
        Dette er en grunnleggende funksjon i X Window. Arbeidsstasjonen fungerer
	akkurat som en standard X Window terminal.
    </para>

    <para>
        For at en bruker skal kunne kjøre et program på arbeidsstasjonen
	trenger denne å vite forskjellige ting om brukeren, f. eks.:
        <itemizedlist>
            <listitem>
                <para>
                    Brukerens id
                </para>
            </listitem>
            <listitem>
                <para>
                    Hovedgruppen brukeren hører til
                </para>
            </listitem>
            <listitem>
                <para>
                    Brukerens hjemmekatalog
                </para>
            </listitem>
        </itemizedlist>
	LTSP benytter seg av NIS - Network Information Service for å
	gjøre bruker- og gruppeinformasjon tilgjengelig for arbeids-
	stasjonene.
    </para>

    <sect1>
        <title>Fordeler med å kjøre programmer lokalt</title>
        <para>
	    Det er fordeler med å kjøre programmer lokalt på arbeidsstasjonen.
        </para>
        <para>
            <itemizedlist>
                <listitem>
                    <para>
		        Reduserer belastningen på tjeneren. I store nettverk
			med minne-intensive programmer som Netscape, kan det
			gi bedre ytelse å kjøre slike programmer lokalt
			på arbeidsstasjonen. Det forutsetter at arbeidsstasjonen
			er kraftig nok til å håndtere det.
                    </para>
                </listitem>
                <listitem>
                    <para>
		        Løpske programmer vil ikke påvirke andre brukere.
                    </para>
                </listitem>
                <listitem>
                    <para>
		        Støtte for lyd er mye enklere å sette opp når programmet
			som spiller lyden kjører på arbeidsstasjonen.
                    </para>
                </listitem>
            </itemizedlist>
        </para>
    </sect1>

    <sect1>
        <title>Ting å passe på når man setter opp lokale programmer</title>
        <para>
	    Det er mer utfordrende å sette opp programmer som skal
	    kjøres lokalt.
            <itemizedlist>
                <listitem>
                    <para>
		        Større krav til arbeidsstasjonen. Den trenger mer
			minne og en kraftigere prosessor. 64 MB RAM er et
			godt utgangspunkt.
                    </para>
                </listitem>
                <listitem>
                    <para>
		        NIS - for å kunne kjøre programmer på arbeidsstasjonen
			må man kunne identifisere seg, m.a.o. må arbeidsstasjonen
			vite hvem brukeren er. Dette krever en eller annen form for 
			passordautentisering. NIS er valgt som metode for denne
			autentiseringen over nettverket.
                    </para>
                </listitem>
                <listitem>
                    <para>
		        Nye kataloger må eksporteres fra arbeidsstasjonen
			for å kunne monteres via NFS.
                    </para>
                </listitem>
                <listitem>
                    <para>
		 	Tregere oppstart av programmer fordi de må hentes via
			NFS og forårsaker økt nettverksaktivitet. Siden hver
			enkelt kopi av programmet kjører på en egen prosessor
			vil de ikke kunne trekke på Linux' innebygde evne
			til å la de ulike kopiene dele programkode mellom seg.
			Slik deling fører til reduksjon i forbruk av minne og
			gjør at det går raskere å starte opp nye instanser av programmet.
                    </para>
                </listitem>
            </itemizedlist>
        </para>
    </sect1>

    <sect1>
        <title>Oppsett av tjenermaskin for lokale programmer</title>
        <sect2>
            <title>Parametre i lts.conf</title>
            <para>
	        Noen parametre må settes i filen
                <filename>lts.conf</filename>:
                <variablelist>
                  <varlistentry>
                    <term><command>LOCAL_APPS</command></term>
                    <listitem>
                      <para>
		        Denne må settes til <command>Y</command>. Det
			fører til at det følgende skjer under
			oppstart av arbeidsstasjonen:
                        <orderedlist>
                          <listitem>
                            <para>
			      Katalogen <filename>/home</filename>
                              på tjeneren vil monteres via NFS.
                            </para>
                          </listitem>
                          <listitem>
                            <para>
         		      <filename>/var/yp/nicknames</filename>
                              opprettes på arbeidsstasjonen.
                            </para>
                          </listitem>
                          <listitem>
                            <para>
                              <command>portmapper</command>
                              startes på arbeidsstasjonen.
                            </para>
                          </listitem>
                          <listitem>
                            <para>
                              <command>xinetd</command> startes på
			      arbeidsstasjonen.
                            </para>
                          </listitem>
                          <listitem>
                            <para>
			      <filename>/etc/yp.conf</filename>
                              opprettes på arbeidsstasjonen.
                            </para>
                          </listitem>
                          <listitem>
                            <para>
         		      Kommandoen <command>domainname</command>
			      kjøres med verdien av <command>NIS_DOMAIN</command>
                              fra <filename>lts.conf</filename> som parameter.
                            </para>
                          </listitem>
                          <listitem>
                            <para>
			      Kommandoen <command>ypbind</command>
                              kjøres på arbeidsstasjonen.
                            </para>
                          </listitem>
                        </orderedlist>
                      </para>
                    </listitem>
                  </varlistentry>
                  <varlistentry>
                    <term><command>NIS_DOMAIN</command></term>
                    <listitem>
                      <para>
		        For at NIS skal fungere må alle nodene i nettverket
			som skal være assosiert med en spesifikk NIS-tjener
			være medlem av samme NIS-domene. Slike domener må
			ikke forveksles med DNS-domener. Du bruker NIS_DOMAIN
			for angi NIS-domenet arbeidsstasjonen hører til.
                      </para>
                    </listitem>
                  </varlistentry>
                  <varlistentry>
                    <term><command>NIS_SERVER</command></term>
                    <listitem>
                      <para>
		        NIS vil enten prøve å koble seg til en spesifikk NIS
			tjener eller kringkaste en forespørsel på nettverket
			for å finne en slik tjener. Hvis du vil angi en
			spesifikk tjener oppgir du ip-adressen som verdi
			i NIS_SERVER.
                      </para>
                    </listitem>
                  </varlistentry>
                </variablelist>
            </para>
        </sect2>

        <sect2>
            <title>Network Information Service - NIS</title>
            <para>
	        NIS er en klient-tjener type tjeneste. På tjeneren går
		det en daemon som aksepterer forespørsler fra klienter
		(arbeidstasjoner). Denne daemonen kalles
		<command>ypserv</command>.
            </para>
            <para>
                På arbeidsstasjonen går det en prosess som kalles
                <command>ypbind</command>.  Når arbeidsstasjonen trenger informasjon
		om en bruker vil den bruke ypbind for å etablere en forbindelse
		til ypserv på tjeneren.
            </para>
            <para>
	        Hvis NIS allerede er i drift i det nettverket du skal
		innlemme arbeidsstasjonene i, trenger du ikke å sette opp
		ypserv også på LTSP-tjeneren. Det holder å sette inn verdier
		i NIS_DOMAIN og NIS_SERVER som stemmer med det som allerede
		finnes.
            </para>
            <para>
	        Hvis NIS ikke er i bruk i nettverket må du sette opp tjeneren
		til å kjøre tjenesten <command>ypserv</command>.
            </para>
            <para>
                For å lære om hvordan man setter opp en NIS-tjener kan
		du lese
                <emphasis role="strong">The Linux NIS(YP)/NYS/NIS+ HOWTO</emphasis>.
                Denne finner du på http://www.linuxdoc.org/. Se listen over
		referanser i slutten av denne håndboka.
            </para>
        </sect2>
    </sect1>

    <sect1>
        <title>Oppsett av programmer</title>
        <para>
	    For å få et program til å kjøre på arbeidsstasjonen må du legge
	    alle delene på et sted de kan finnes. av arbeidsstasjonen.
        </para>

        <para>
            Med eldre versjoner av LTSP (2.08 og tidligere) ble mange
	    kataloger eksportert fra tjeneren og montert av arbeidsstasjonen.
	    Kataloger som <filename>/bin</filename>,
            <filename>/usr/bin</filename>, <filename>/lib</filename> og
            <filename>/usr</filename> kunne ses av arbeidsstasjonen.
        </para>

        <para>
            Problemet med denne løsningen er at abeidsstasjon og tjener
	    må ha samme arkitektur for å kunne virke. Faktisk kan så små
	    forskjeller som mellom Pentium 2 (i686) og klassisk Pentium
	    (i586) skape problemer. Dette skyldes at det vil være forskjellige
	    biblioteker i bruk på de to arkitekturene.
        </para>

        <para>
	    Derfor er den reneste måten å håndtere dette å ha et komplett
	    sett med kataloger med alle binærer og biblioteker
	    arbeidsstasjonen trenger. Disse er da helt uavhengige av tjenerens
	    binærer og biblioteker.
        </para>

        <para>
	    Oppsett av et program for å kjøre lokalt består i å sørge for at
	    alle de riktige bitene legges på riktig sted i katalogstrukturen.
	    En av pakkene tilgjengelig på LTSPs nettsted er lokal Netscape
	    og denne installerer en rekke filer i katalogen
            <filename>/opt/ltsp/i386/usr/local/netscape</filename>.
	    Ting som java-klasser, hjelpefiler, eksekverbare binærfiler og
	    skript havner der.
        </para>

        <para>
	    Netscape trenger ingen ytterligere system-biblioteker, slik at
	    det ikke er nødvendig å plassere slike i katalogen
	    <filename>/opt/ltsp/i386/lib</filename>.
	    Men mange andre programmer trenger slike tilleggsbiblioteker.
        </para>

        <para>
	    Hvordan avgjør du hvilke biblioteker som er nødvendig? Her kommer
	    kommandoen <command>ldd</command> til nytte.
        </para>
        <para>
	    La oss anta at du ønsker å få et gitt program til å kjøre lokalt.
	    Vi bruker <command>gaim</command> som eksempel.
            <command>gaim</command> er en klient for forskjellige chat-protokoller
	    som brukes til å kommunisere med andre på nettsteder beregnet for
	    dette.
        </para>
        <para>
	    Det første du må gjøre er å finne ut hvor binærfilen
	    <command>gaim</command> er plassert. På Red Hat Linux 7.2
	    er dette katalogen <filename>/usr/bin</filename>.
        </para>
        <para>
	    Når binæren <command>gaim</command> er funnet kan du
	    kjøre <command>ldd</command> mot den:
            <programlisting>
[jam@server /]$ ldd /usr/bin/gaim
        libaudiofile.so.0    => /usr/lib/libaudiofile.so.0 (0x40033000)
        libm.so.6            => /lib/i686/libm.so.6 (0x40051000)
        libnsl.so.1          => /lib/libnsl.so.1 (0x40074000)
        libgnomeui.so.32     => /usr/lib/libgnomeui.so.32 (0x4008a000)
        libart_lgpl.so.2     => /usr/lib/libart_lgpl.so.2 (0x4015d000)
        libgdk_imlib.so.1    => /usr/lib/libgdk_imlib.so.1 (0x4016c000)
        libSM.so.6           => /usr/X11R6/lib/libSM.so.6 (0x40191000)
        libICE.so.6          => /usr/X11R6/lib/libICE.so.6 (0x4019a000)
        libgtk-1.2.so.0      => /usr/lib/libgtk-1.2.so.0 (0x401b1000)
        libdl.so.2           => /lib/libdl.so.2 (0x402df000)
        libgdk-1.2.so.0      => /usr/lib/libgdk-1.2.so.0 (0x402e3000)
        libgmodule-1.2.so.0  => /usr/lib/libgmodule-1.2.so.0 (0x40319000)
        libXi.so.6           => /usr/X11R6/lib/libXi.so.6 (0x4031d000)
        libXext.so.6         => /usr/X11R6/lib/libXext.so.6 (0x40325000)
        libX11.so.6          => /usr/X11R6/lib/libX11.so.6 (0x40333000)
        libgnome.so.32       => /usr/lib/libgnome.so.32 (0x40411000)
        libgnomesupport.so.0 => /usr/lib/libgnomesupport.so.0 (0x40429000)
        libesd.so.0          => /usr/lib/libesd.so.0 (0x4042e000)
        libdb.so.2           => /usr/lib/libdb.so.2 (0x40436000)
        libglib-1.2.so.0     => /usr/lib/libglib-1.2.so.0 (0x40444000)
        libcrypt.so.1        => /lib/libcrypt.so.1 (0x40468000)
        libc.so.6            => /lib/i686/libc.so.6 (0x40495000)
        libz.so.1            => /usr/lib/libz.so.1 (0x405d1000)
        /lib/ld-linux.so.2   => /lib/ld-linux.so.2 (0x40000000) </programlisting>
        </para>
        <para>
	    Eksempelet over viser alle bibliotekene programmet
            <command>gaim</command> er dynamisk linket mot.
        </para>
        <para>
	    De fleste programmer som bruker delte biblioteker er avhengige
	    av den dynamiske bibliotek-lasteren
            <command>ld-linux</command> for å finne og laste de enkelte
	    delte bibliotekene. Noen programmer vil laste disse bibliotekene
	    manuelt med funksjonskallet <command>dlopen()</command>.
	    For slike programmer vil <command>ldd</command> ikke vise hvilke
	    biblioteker som trengs. I slike tilfeller kan kommandoen
	    <command>strace</command> benyttes til å kjøre programmet. I
	    utskriften fra kjøringen vil du kunne finne referanser til kall av
     	    <command>dlopen()</command> der det aktuelle biblioteket er angitt
	    som parameter til kallet.
        </para>
        <para>
	    Når listen over nødvendige biblioteker er klar må disse
	    plasseres på riktig sted i katalogsamlingen til LTSP,
            <filename>/opt/ltsp/i386</filename>.
        </para>

    </sect1>

    <sect1>
        <title>Start av lokale programmer</title>
        <para>
	    I X Window vil programmer typisk kjøre relativt til hvor
	    vindus-håndtereren kjører. Med andre ord, hvis vindushåndtereren går på
	    tjeneren og viser resultatene på arbeidsstasjonen - vil
	    programmer som startes også kjøre på tjeneren og vise sine
	    skjermbilder på arbeidsstasjonen.
        </para>
        <para>
	    I slike tilfeller må man be arbeidsstasjonen selv å kjøre programmet
	    hvis det skal gå lokalt. Dette kan løses ved å benytte kommandoen
	    <command>rsh</command>.
        </para>
        <para>
	    Dette er et eksempel på hvordan man kan få programmet
	    <command>gaim</command> til å kjøres lokalt på arbeidsstasjonen:
            <programlisting>
HOST=`echo $DISPLAY | awk -F: '{ print $1 }'`
rsh ${HOST} /usr/bin/gaim -display ${DISPLAY} </programlisting>
        </para>
        <para>
	    Eksempelet over kan skrives inn i et <command>xterm</command>
	    terminalvindu eller legges inn i et skallskript og utføres ved hjelp
	    av et ikon på arbeidsflaten.
        </para>
        <para>
	    Oppstart av Netscape lokalt kan gjøres på samme måten, men i tillegg
	    må en miljøvariabel settes før programmet startes.
            <programlisting>
HOST=`echo $DISPLAY | awk -F: '{ print $1 }'`
rsh ${HOST} MOZILLA_HOME=/usr/local/netscape \
       /usr/local/netscape/netscape -display ${DISPLAY} </programlisting>
        </para>
    </sect1>

</chapter>

<chapter>
    <title>Eksempler på oppsett</title>
    <para>
        Nesten alle driftsparametre for arbeidsstasjonen kan settes med 
	variable i filen <filename>lts.conf</filename>, som vanligvis er å finne
	i katalogen <filename>/opt/ltsp/i386/etc</filename>.
    </para>
    <sect1>
        <title>Standard 2-knappers seriell mus</title>
        <para>
	    Dette er et eksempel på hvordan man an gir parametre for
	    en seriell mus.
            <screen>
X_MOUSE_PROTOCOL    = "Microsoft"
X_MOUSE_RESOLUTION  = 400
X_MOUSE_DEVICE      = "/dev/ttyS0"
X_MOUSE_BUTTONS     = 2
X_MOUSE_EMULATE3BTN = Y
</screen>
        </para>
    </sect1>

    <sect1>
        <title>PS/2 mus med rulle</title>
         <para>
             Dette er et eksempel på et avsnitt i <filename>lts.conf</filename>
             for en Intellimouse:
             <screen>
 X_MOUSE_PROTOCOL    = "IMPS/2"
 X_MOUSE_DEVICE      = "/dev/psaux"
 X_MOUSE_RESOLUTION  = 400
 X_MOUSE_BUTTONS     = 5
 X_ZAxisMapping      = "4 5"
 </screen>
         </para>
     </sect1>

    <sect1>
        <title>USB-skriver på en ThinkNic</title>
        <para>
	    ThinkNic arbeidsstasjoner har en USB-port som kan benyttes
	    til å koble til en lokal skriver. Dette er et eksempel på
	    verdier og parametre i <filename>lts.conf</filename> for å få dette til å virke:
                        <screen>
MODULE_01           = usb-ohci
MODULE_02           = printer
PRINTER_0_DEVICE    = /dev/usb/lp0
PRINTER_0_TYPE      = S
</screen>
        </para>
    </sect1>

    <sect1>
        <title>Tvungen bruk av en eldre versjon av XFree86 3.3.6 Xserver</title>
        <para>
	    Hvis ikke annet angis blir XFree86 4.1.0 benyttet for å drive 
	    arbeidsstasjonen. 
	    Dersom man ønsker å benytte en eldre XFree86-versjon(3.3.6)
	    må man først installere riktig pakke. Så må man eksplisitt
	    angi i <filename>lts.conf</filename> at denne skal benyttes for
	    den aktuelle arbeidsstasjonen.
	    Dette er et eksempel der SVGA-Xserveren skal brukes:
            <screen>
XSERVER             = XF86_SVGA
</screen>
        </para>
    </sect1>


</chapter>

<chapter>
    <title>Andre kilder til informasjon</title>
    <sect1>
        <title>På Internett</title>
        <para>
            <orderedlist>
                <listitem>
                    <para>
                        LTSPs nettsted&nbsp;&nbsp;
                    </para>
                    <para>
                        <ulink url="http://www.LTSP.org">
                            <citetitle>www.LTSP.org</citetitle>
                        </ulink>
                    </para>
                    <para>
                    </para>
                </listitem>

                <listitem>
                    <para>
                        Diskless-Nodes HOWTO for Linux&nbsp;&nbsp;
                    </para>
                    <para>
                        <ulink url="http://www.linuxdoc.org/HOWTO/Diskless-HOWTO.html">
                            <citetitle>www.linuxdoc.org/HOWTO/Diskless-HOWTO.html</citetitle>
                        </ulink>
                    </para>
                    <para>
                    </para>
                </listitem>

                <listitem>
                    <para>
                        Nettstedet til Etherboot-prosjektet&nbsp;&nbsp;
                    </para>
                    <para>
                        <ulink url="http://etherboot.sourceforge.net">
                            <citetitle>etherboot.sourceforge.net</citetitle>
                        </ulink>
                    </para>
                    <para>
                    </para>
                </listitem>

                <listitem>
                    <para>
                        The Rom-O-Matic site&nbsp;&nbsp;
                    </para>
                    <para>
                        <ulink url="http://www.rom-o-matic.net">
                            <citetitle>www.Rom-O-Matic.net</citetitle>
                        </ulink>
                    </para>
                    <para>
                    </para>
                </listitem>

                <listitem>
                    <para>
                        XFree86-Video-Timings-HOWTO&nbsp;&nbsp;
                    </para>
                    <para>
                        <ulink url="http://www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO.html">
                            <citetitle>www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO.html</citetitle>
                        </ulink>
                    </para>
                    <para>
                    </para>
                </listitem>

		<listitem>
                     <para>
                         XFree86 Mouse Support&nbsp;&nbsp;
                     </para>
                     <para>
                         <ulink url="http://www.xfree86.org/current/mouse.html">
                             <citetitle>www.xfree86.org/current/mouse.html</citetitle>
			 </ulink>
                    </para>
                    <para>
                    </para>
                </listitem>

                <listitem>
                    <para>
                        The Linux NIS(YP)/NYS/NIS+ HOWTO&nbsp;&nbsp;
                    </para>
                    <para>
                        <ulink url="http://www.linuxdoc.org/HOWTO/NIS-HOWTO.html">
                            <citetitle>www.linuxdoc.org/HOWTO/NIS-HOWTO.html</citetitle>
                        </ulink>
                    </para>
                    <para>
                    </para>
                </listitem>


            </orderedlist>
        </para>
    </sect1>

    <sect1>
        <title>Publikasjoner på papir</title>
        <para>
            <orderedlist>
                <listitem>
                    <para>
                        <literalLayout>
Managing NFS and NIS
Hal Stern
O'Reilly &amp; Associates, Inc.
1991
ISBN 0-937175-75-7
                        </literalLayout>
                    </para>
                </listitem>

                <listitem>
                    <para>
                        <literalLayout>
TCP/IP Illustrated, Volume 1
W. Richard Stevens
Addison-Wesley
1994
ISBN 0-201-63346-9
                        </literalLayout>
                    </para>
                </listitem>

                <listitem>
                    <para>
                        <literalLayout>
X Window System Administrator's Guide
Linda Mui and Eric Pearce
O'Reilly &amp; Associates, Inc.
1993
ISBN 0-937175-83-8
(Volume 8  of the The Definitive Guides to the X Window System)
                        </literalLayout>
                    </para>
                </listitem>
            </orderedlist>
        </para>
    </sect1>
</chapter>

</book>
