doc/nl_NL.ISO8859-1/books/handbook/serialcomms/chapter.xml
2013-07-03 17:35:46 +00:00

3333 lines
111 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!--
The FreeBSD Dutch Documentation Project
$FreeBSD$
%SOURCE% en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml
%SRCID% 40783
-->
<chapter id="serialcomms">
<chapterinfo>
<authorgroup>
<author>
<firstname>René</firstname>
<surname>Ladan</surname>
<contrib>Vertaald door </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>Seriële communicatie</title>
<sect1 id="serial-synopsis">
<title>Overzicht</title>
<indexterm><primary>seriële communicatie</primary></indexterm>
<para>&unix; heeft altijd ondersteuning geboden voor seriële
communicatie. Het is een feit dat de allereerste &unix;-machines
afhankelijk waren van seriële kabels voor gebruikersinvoer
en -uitvoer. De dingen zijn flink veranderd sinds de tijd dat de
gemiddelde <quote>terminal</quote> uit een 10-tekens-per-seconde
seriële printer en een toetsenbord bestond. Dit hoofdstuk
beschrijft enkele manieren waarop &os; gebruik maakt van
seriële communicatie.</para>
<para>Na het lezen van dit hoofdstuk weet de lezer:</para>
<itemizedlist>
<listitem>
<para>Hoe terminals met een &os;-systeem te verbinden;</para>
</listitem>
<listitem>
<para>Hoe een modem te gebruiken om naar computers op afstand
te bellen;</para>
</listitem>
<listitem>
<para>Hoe het mogelijk te maken voor gebruikers op afstand om
met een modem op een systeem aan te melden;</para>
</listitem>
<listitem>
<para>Hoe een systeem van een seriële console op te
starten.</para>
</listitem>
</itemizedlist>
<para>Veronderstelde voorkennis:</para>
<itemizedlist>
<listitem>
<para>Weten hoe een nieuwe kernel ingesteld en
geïnstalleerd wordt (<xref linkend="kernelconfig"/>);</para>
</listitem>
<listitem>
<para>Begrijpen hoe rechten en processen in &unix; werken (
<xref linkend="basics"/>);</para>
</listitem>
<listitem>
<para>De beschikking hebben over het technische handboek voor
de hardware (modem of meerpoortige kaart) die gebruikt wordt
met &os;.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="serial">
<title>Inleiding</title>
<warning>
<para>Vanaf &os; 8.0 zijn de seriële poorten
hernoemd van
<filename>/dev/cuad<replaceable>N</replaceable></filename> naar
<filename>/dev/cuau<replaceable>N</replaceable></filename> en
van
<filename>/dev/ttyd<replaceable>N</replaceable></filename> naar
<filename>/dev/ttyu<replaceable>N</replaceable></filename>.
&os;&nbsp;7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.</para>
</warning>
<sect2 id="serial-terminology">
<title>Terminologie</title>
<variablelist>
<indexterm><primary>bits per seconde</primary></indexterm>
<varlistentry>
<term>bps</term>
<listitem>
<para>Bits per seconde: de snelheid waarmee gegevens
verstuurd worden</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DTE</term>
<listitem>
<indexterm><primary>DTE</primary></indexterm>
<para>Data Terminal Equipment (apparatuur voor
gegevensterminal): bijvoorbeeld een computer</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DCE</term>
<listitem>
<indexterm><primary>DCE</primary></indexterm>
<para>Data Communications Equipment (apparatuur voor
gegevenscommunicatie): een modem</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RS-232</term>
<listitem>
<indexterm><primary>RS-232C-kabels</primary></indexterm>
<para>EIA standaard voor hardwarematige seriële
communicatie</para>
</listitem>
</varlistentry>
</variablelist>
<para>Deze sectie gebruikt niet de term <quote>baud</quote>
als er over snelheden van gegevenscommunicatie gesproken wordt.
Baud verwijst naar het aantal elektrische toestandsovergangen
dat binnen een tijdsperiode gemaakt mag worden,
<quote>bps</quote> (bits per seconde) is de
<emphasis>correcte</emphasis> term om te gebruiken (de oude
mopperkonten schijnen zich er niet erg druk over te
maken).</para>
</sect2>
<sect2 id="serial-cables-ports">
<title>Kabels en poorten</title>
<para>Om een modem of terminal met een &os;-systeem te verbinden,
dienen een seriële poort op een computer en een kabel om
verbinding te maken met een serieel apparaat aanwezig te zijn.
Indien kennis over hardware en de benodigde kabel reeds
aanwezig is, kan deze sectie veilig worden overgeslagen.</para>
<sect3 id="term-cables">
<title>Kabels</title>
<para>Er zijn verschillende soorten seriële kabels. De
twee meest voorkomende types in deze context zijn
nulmodem-kabels en standaard (<quote>rechte</quote>)
RS-232-kabels. De documentatie van de hardware beschrijft
het type kabel dat nodig is.</para>
<sect4 id="term-cables-null">
<title>Nulmodem-kabels</title>
<indexterm><primary>nulmodem-kabel</primary></indexterm>
<para>Een nulmodem-kabel geeft sommige signalen, zoals
<quote>Aardesignaal</quote> recht door, maar kruist andere
signalen. Bijvoorbeeld, de
<quote>Verzonden Gegevens</quote>-pin aan de ene kant gaat
naar de <quote>Ontvangen Gegevens</quote>-pin aan de andere
kant.</para>
<para>Een nulmodem-kabel voor het gebruik met terminals kan
ook zelf worden gemaakt (bijvoorbeeld voor
kwaliteitsdoeleinden). Deze tabel toont de RS-232C <link
linkend="serialcomms-signal-names">signalen</link> en de
pinnummers op een DB-25-aansluiting. De standaard vereist
ook een <emphasis>Aardebescherming</emphasis> rechte lijn
van pin 1 naar pin 1, maar deze wordt vaak weggelaten.
Sommige terminals werken goed met slechts pin 2, 3 en 7,
terwijl andere instellingen eisen die afwijken van die in
de onderstaande voorbeelden.</para>
<table frame="none" pgwide="1">
<title>DB-25 naar DB-25 nulmodem-kabel</title>
<tgroup cols="5">
<thead>
<row>
<entry align="left">Signaal</entry>
<entry align="left">Pin #</entry>
<entry></entry>
<entry align="left">Pin #</entry>
<entry align="left">Signaal</entry>
</row>
</thead>
<tbody>
<row>
<entry>SG</entry>
<entry>7</entry>
<entry>verbonden met</entry>
<entry>7</entry>
<entry>SG</entry>
</row>
<row>
<entry>TD</entry>
<entry>2</entry>
<entry>verbonden met</entry>
<entry>3</entry>
<entry>RD</entry>
</row>
<row>
<entry>RD</entry>
<entry>3</entry>
<entry>verbonden met</entry>
<entry>2</entry>
<entry>TD</entry>
</row>
<row>
<entry>RTS</entry>
<entry>4</entry>
<entry>verbonden met</entry>
<entry>5</entry>
<entry>CTS</entry>
</row>
<row>
<entry>CTS</entry>
<entry>5</entry>
<entry>verbonden met</entry>
<entry>4</entry>
<entry>RTS</entry>
</row>
<row>
<entry>DTR</entry>
<entry>20</entry>
<entry>verbonden met</entry>
<entry>6</entry>
<entry>DSR</entry>
</row>
<row>
<entry>DTR</entry>
<entry>20</entry>
<entry>verbonden met</entry>
<entry>8</entry>
<entry>DCD</entry>
</row>
</tbody>
</tgroup>
</table>
<para>In de onderstaande tabellen volgen twee schema's die
momenteel meer gebruikelijk zijn:</para>
<table frame="none" pgwide="1">
<title>DB-9 naar DB-9 nulmodem-kabel</title>
<tgroup cols="5">
<thead>
<row>
<entry align="left">Signaal</entry>
<entry align="left">Pin #</entry>
<entry></entry>
<entry align="left">Pin #</entry>
<entry align="left">Signaal</entry>
</row>
</thead>
<tbody>
<row>
<entry>RD</entry>
<entry>2</entry>
<entry>verbonden met</entry>
<entry>3</entry>
<entry>TD</entry>
</row>
<row>
<entry>TD</entry>
<entry>3</entry>
<entry>verbonden met</entry>
<entry>2</entry>
<entry>RD</entry>
</row>
<row>
<entry>DTR</entry>
<entry>4</entry>
<entry>verbonden met</entry>
<entry>6</entry>
<entry>DSR</entry>
</row>
<row>
<entry>DTR</entry>
<entry>4</entry>
<entry>verbonden met</entry>
<entry>1</entry>
<entry>DCD</entry>
</row>
<row>
<entry>SG</entry>
<entry>5</entry>
<entry>verbonden met</entry>
<entry>5</entry>
<entry>SG</entry>
</row>
<row>
<entry>DSR</entry>
<entry>6</entry>
<entry>verbonden met</entry>
<entry>4</entry>
<entry>DTR</entry>
</row>
<row>
<entry>DCD</entry>
<entry>1</entry>
<entry>verbonden met</entry>
<entry>4</entry>
<entry>DTR</entry>
</row>
<row>
<entry>RTS</entry>
<entry>7</entry>
<entry>verbonden met</entry>
<entry>8</entry>
<entry>CTS</entry>
</row>
<row>
<entry>CTS</entry>
<entry>8</entry>
<entry>verbonden met</entry>
<entry>7</entry>
<entry>RTS</entry>
</row>
</tbody>
</tgroup>
</table>
<table frame="none" pgwide="1">
<title>DB-9 naar DB-25 nulmodem-kabel</title>
<tgroup cols="5">
<thead>
<row>
<entry align="left">Signaal</entry>
<entry align="left">Pin #</entry>
<entry></entry>
<entry align="left">Pin #</entry>
<entry align="left">Signaal</entry>
</row>
</thead>
<tbody>
<row>
<entry>RD</entry>
<entry>2</entry>
<entry>verbonden met</entry>
<entry>2</entry>
<entry>TD</entry>
</row>
<row>
<entry>TD</entry>
<entry>3</entry>
<entry>verbonden met</entry>
<entry>3</entry>
<entry>RD</entry>
</row>
<row>
<entry>DTR</entry>
<entry>4</entry>
<entry>verbonden met</entry>
<entry>6</entry>
<entry>DSR</entry>
</row>
<row>
<entry>DTR</entry>
<entry>4</entry>
<entry>verbonden met</entry>
<entry>8</entry>
<entry>DCD</entry>
</row>
<row>
<entry>SG</entry>
<entry>5</entry>
<entry>verbonden met</entry>
<entry>7</entry>
<entry>SG</entry>
</row>
<row>
<entry>DSR</entry>
<entry>6</entry>
<entry>verbonden met</entry>
<entry>20</entry>
<entry>DTR</entry>
</row>
<row>
<entry>DCD</entry>
<entry>1</entry>
<entry>verbonden met</entry>
<entry>20</entry>
<entry>DTR</entry>
</row>
<row>
<entry>RTS</entry>
<entry>7</entry>
<entry>verbonden met</entry>
<entry>5</entry>
<entry>CTS</entry>
</row>
<row>
<entry>CTS</entry>
<entry>8</entry>
<entry>verbonden met</entry>
<entry>4</entry>
<entry>RTS</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>Als een pin aan het ene eind verbonden is met een
pinnenpaar aan het andere eind, is dit meestal
geïmplementeerd met een korte draad tussen het
pinnenpaar in de stekker en een lange draad naar de
andere, enkele pin.</para>
</note>
<para>Bovenstaande ontwerpen lijken het populairst. In een
andere variatie (uitgelegd in het boek <emphasis>RS-232
Made Easy</emphasis>) worden de volgende verbindingen
gemaakt: SG met SG, TD met RD, RTS en CTS met DCD, DTR met
DSR en vice-versa.</para>
</sect4>
<sect4 id="term-cables-std">
<title>Standaard RS-232C-kabels</title>
<indexterm><primary>RS-232C-kabels</primary></indexterm>
<para>Een standaard seriële kabel laat alle
RS-232C-signalen recht door. Dit betekent dat de
<quote>Verzonden Gegevens</quote>-pin aan de ene kant naar
de <quote>Verzonden Gegevens</quote>-pin aan de andere kant
gaat. Dit type kabel wordt gebruikt om een modem met een
&os;-systeem te verbinden en is ook geschikt voor sommige
terminals.</para>
</sect4>
</sect3>
<sect3 id="term-ports">
<title>Poorten</title>
<para>Seriële poorten zijn apparaten die gebruikt worden
om gegevens te versturen tussen een &os; gastcomputer en een
terminal. Deze sectie beschrijft de bestaande soorten
poorten en hoe deze aangesproken worden in &os;.</para>
<sect4 id="term-portkinds">
<title>Soorten poorten</title>
<para>Er bestaan verschillende soorten seriële poorten.
Controleer of een kabel past op de poorten van een terminal
en een &os;-systeem alvorens deze te kopen of te
maken.</para>
<para>De meeste terminals hebben DB-25-poorten. PC's,
inclusief PC's die &os; draaien, hebben DB-25- of
DB-9-poorten. Indien een meerpoortige seriële kaart
voor een PC beschikbaar is, kan het zijn dat er RJ-12- of
RJ-45-poorten aanwezig zijn.</para>
<para>In documentatie die bij hardware zit, staan
specificaties over het soort poort dat gebruikt wordt.
Vaak volstaat ook een visuele inspectie van een
poort.</para>
</sect4>
<sect4 id="term-portnames">
<title>Poortnamen</title>
<para>In &os; wordt elke seriële poort benaderd door een
ingang in de map <filename>/dev</filename>. Er zijn twee
verschillende soorten ingangen:</para>
<itemizedlist>
<listitem>
<para>Inbelpoorten heten
<filename>/dev/ttyu<replaceable>N</replaceable></filename>
waarbij <replaceable>N</replaceable> het poortnummer
is, beginnend met nul. In het algemeen kunnen
inbelpoorten voor terminals gebruikt worden.
Inbelpoorten stellen de eis dat een seriële kabel
ervoor zorgt dat het data carrier detect (DCD) signaal
correct werkt.</para>
</listitem>
<listitem>
<para>Uitbelpoorten heten
<filename>/dev/cuau<replaceable>N</replaceable></filename>.
In het algemeen worden uitbelpoorten niet voor
terminals maar voor modems gebruikt. Gebruik een
uitbelpoort als een seriële kabel of terminal het
carrier detect-signaal niet ondersteunt.</para>
</listitem>
</itemizedlist>
<para>Als er een terminal met de eerste seriële poort
(<devicename>COM1</devicename> in &ms-dos;) verbonden is,
wordt <filename>/dev/ttyu0</filename> gebruikt om naar de
terminal te verwijzen. Als een terminal op de tweede
seriële poort is aangesloten (ook bekend als
<devicename>COM2</devicename>), dient
<filename>/dev/ttyu1</filename> gebruikt te worden,
enzovoort.</para>
</sect4>
</sect3>
</sect2>
<sect2>
<title>Kernelinstellingen</title>
<para>&os; ondersteunt standaard vier seriële poorten. In
de wereld van &ms-dos; staan ze bekend als
<devicename>COM1</devicename>, <devicename>COM2</devicename>,
<devicename>COM3</devicename> en <devicename>COM4</devicename>.
&os; ondersteunt momenteel <quote>domme</quote> meerpoortige
seriële interfacekaarten, zoals de BocaBoard 1008 en 2016,
alsook intelligentere meerpoortige kaarten van fabrikanten als
Digiboard en Stallion Technologies. De kernel kijkt echter
alleen naar de standaard COM-poorten.</para>
<para>Bekijk de boodschappen tijdens het opstarten van de kernel
om te zien of de kernel seriële poorten herkent of gebruik
het commando <command>/sbin/dmesg</command> om de
opstartboodschappen van de kernel te herhalen. Kijk in het
bijzonder naar boodschappen die met de tekens
<literal>uart</literal> beginnen als u &os;&nbsp;8.0 of nieuwer
gebruikt, of <literal>sio</literal> voor &os;&nbsp;7.4 of ouder.</para>
<tip>
<para>Gebruik het volgende commando om alleen de boodschappen
die het woord <literal>sio</literal> bevatten te zien:</para>
<screen>&prompt.root; <userinput>/sbin/dmesg | grep 'uart'</userinput>
&prompt.root; <userinput>/sbin/dmesg | grep 'sio'</userinput></screen>
</tip>
<para>Voor bijvoorbeeld een &os;&nbsp;7.<replaceable>X</replaceable>
systeem met vier seriële poorten zijn dit de opstartboodschappen van de
kernel die specifiek zijn voor de seriële poorten:</para>
<screen>sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A</screen>
<para>Als een kernel niet alle seriële poorten herkent, dan
dient waarschijnlijk de kernel aangepast te worden in het
bestand <filename>/boot/device.hints</filename>. Het is ook
mogelijk regels uit te schakelen of volledig te verwijderen
voor apparaten die niet aanwezig zijn.</para>
<para>Zie de hulppagina &man.sio.4; voor meer informatie over het
instellen van seriële poorten en meerpoortige kaarten.
Bij gebruik van een instellingenbestand dat eerder voor een
andere versie van &os; werd gebruikt is voorzichtigheid geboden
omdat de apparaatvlaggen en de syntaxis tussen de versies
veranderd zijn.</para>
<note>
<para><literal>port IO_COM1</literal> is een substitutie voor
<literal>port 0x3f8</literal>, <literal>IO_COM2</literal> is
<literal>0x2f8</literal>, <literal>IO_COM3</literal> is
<literal>0x3e8</literal> en <literal>IO_COM4</literal> is
<literal>0x2e8</literal>, welke redelijk algemene
poortadressen zijn voor hun overeenkomstige seriële
poorten. Interrupts 4, 3, 5 en 9 zijn redelijk algemene
interruptlijnen. Reguliere seriële poorten kunnen
<emphasis>geen</emphasis> interrupts delen op ISA-bus-PC's
(meerpoortige kaarten hebben elektronica die alle 16550A's op
een kaart in staat stellen om één of twee
interruptlijnen te delen).</para>
</note>
</sect2>
<sect2>
<title>Speciale apparaatbestanden</title>
<para>De meeste apparaten in de kernel worden benaderd met
<quote>speciale apparaatbestanden</quote> die in de map
<filename>/dev</filename> staan. De apparaten
<devicename>sio</devicename> worden benaderd met de apparaten
<filename>/dev/ttyu<replaceable>N</replaceable></filename>
(inbellen) en
<filename>/dev/cuau<replaceable>N</replaceable></filename>
(uitbellen). &os; biedt ook initialisatie-apparaten
(<filename>/dev/ttyu<replaceable>N</replaceable>.init</filename>
en
<filename>/dev/cuau<replaceable>N</replaceable>.init</filename>)
en slotapparaten
(<filename>/dev/ttyu<replaceable>N</replaceable>.lock</filename>
en
<filename>/dev/cuad<replaceable>N</replaceable>.lock</filename>).
De initialisatie-apparaten worden gebruikt om telkens als een
poort wordt geopend de parameters van de communicatiepoorten te
initialiseren, zoals <literal>crtscts</literal> voor modems die
gebruik maken van <literal>RTS/CTS</literal>-signalering voor
gegevensstroombeheer. De slotapparaten worden gebruikt om
vlaggen op poorten op slot te zetten om te voorkomen dat
gebruikers of programma's bepaalde parameters veranderen. In
de hulppagina's &man.termios.4;, &man.sio.4; en &man.stty.1;
staat informatie over respectievelijk terminalinstellingen,
apparaten op slot zetten en initialiseren en terminalopties
instellen.</para>
</sect2>
<sect2 id="serial-hw-config">
<title>De seriële poort instellen</title>
<indexterm><primary><devicename>ttyu</devicename></primary></indexterm>
<indexterm><primary><devicename>cuau</devicename></primary></indexterm>
<para>Het apparaat
<devicename>ttyu<replaceable>N</replaceable></devicename> (of
<devicename>cuau<replaceable>N</replaceable></devicename>) is
het gebruikelijke apparaat dat geopend dient te worden voor de
applicaties. Wanneer een proces het apparaat opent, heeft het
een standaardverzameling aan terminal I/O-instellingen. Bekijk
deze instellingen met het volgende commando:</para>
<screen>&prompt.root; <userinput>stty -a -f /dev/ttyu1</userinput></screen>
<para>Als de instellingen van dit apparaat veranderd worden,
blijven de instellingen geldig totdat het apparaat gesloten
wordt. Als het heropend wordt, gaat het terug naar de
standaardverzameling. Om de standaardverzameling te
veranderen, dient het apparaat voor de <quote>initiële
toestand</quote> geopend te worden en die instellingen
veranderd te worden. Om bijvoorbeeld de
<option>CLOCAL</option>-modus, 8-bits-communicatie en
<option>XON/XOFF</option>-gegevensstroombeheer voor apparaat
<devicename>ttyu5</devicename> standaard aan te zetten:</para>
<screen>&prompt.root; <userinput>stty -f /dev/ttyu5.init clocal cs8 ixon ixoff</userinput></screen>
<indexterm>
<primary>rc-bestanden</primary>
<secondary><filename>rc.serial</filename></secondary>
</indexterm>
<para>De systeembrede initialisatie van de seriële apparaten
wordt beheerd in <filename>/etc/rc.d/serial</filename>. Dit
bestand heeft invloed op de standaardinstellingen van
seriële apparaten.</para>
<para>Om te voorkomen dat bepaalde instellingen door een
applicatie worden veranderd, dienen wijzigingen aan het
<quote>slottoestand</quote>-apparaat te worden aangebracht. Om
bijvoorbeeld de snelheid van <devicename>ttyu5</devicename>
vast te zetten op 57600&nbsp;bps:</para>
<screen>&prompt.root; <userinput>stty -f /dev/ttyu5.lock 57600</userinput></screen>
<para>Nu blijft een applicatie die <devicename>ttyu5</devicename>
en de snelheid van de poort probeert te veranderen zitten op
57600&nbsp;bps.</para>
<para>Uiteraard dienen de apparaten voor de initiële
toestand en de slottoestand alleen voor het account
<username>root</username> schrijfbaar te zijn.</para>
</sect2>
</sect1>
<sect1 id="term">
<sect1info>
<authorgroup>
<author>
<firstname>Sean</firstname>
<surname>Kelly</surname>
<contrib>Bijgedragen door </contrib>
</author>
<!-- 28 juli 1996 -->
</authorgroup>
</sect1info>
<title>Terminals</title>
<warning>
<para>Vanaf &os; 8.0 zijn de seriële poorten
hernoemd van
<filename>/dev/cuad<replaceable>N</replaceable></filename> naar
<filename>/dev/cuau<replaceable>N</replaceable></filename> en
van
<filename>/dev/ttyd<replaceable>N</replaceable></filename> naar
<filename>/dev/ttyu<replaceable>N</replaceable></filename>.
&os;&nbsp;7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.</para>
</warning>
<indexterm><primary>terminals</primary></indexterm>
<para>Terminals bieden een handige en goedkope manier om een &os;
systeem te benaderen als de console van of een netwerk naar een
computer niet beschikbaar is. Deze sectie beschrijft hoe
terminals met &os; te gebruiken.</para>
<sect2 id="term-uses">
<title>Types terminals en ze gebruiken</title>
<para>De originele &unix;-systemen hadden geen consoles. In
plaats daarvan werd er aangemeld en werden programma's via
terminals gedraaid die verbonden waren met de seriële
poorten van een computer. Het is goed vergelijkbaar met het
gebruik van een modem en terminalsoftware om op een systeem op
afstand in te bellen en werk te doen wat alleen uit tekst
bestaat.</para>
<para>De consoles van hedendaagse PC's kunnen grafische uitvoer
van hoge kwaliteit produceren, maar de mogelijkheid om een
aanmeldsessie op een seriële poort tot stand te brengen
bestaat nog steeds op bijna elk hedendaags &unix;-achtig
systeem. &os; is geen uitzondering. Door gebruik te maken van
een terminal die aangesloten is op een ongebruikte seriële
poort, kan er aangemeld worden en kan bijna elk tekstprogramma
gedraaid worden dat normaalgesproken op de console of in een
<command>xterm</command>-venster in het X Window-systeem
gedraaid wordt.</para>
<para>Een zakelijke gebruiker kan vele terminals aan een
&os;-systeem koppelen en deze op de bureaus van medewerkers
neerzetten. Een thuisgebruiker kan een reservecomputer, zoals
een oudere IBM PC of een &macintosh;, met de terminal verbinden
met een krachtigere computer die &os; draait. Op deze manier
kan wat anders een computer voor een enkele gebruiker zou zijn,
worden veranderd in een krachtig systeem voor meerdere
gebruikers.</para>
<para>Er zijn drie soorten terminals voor &os;:</para>
<itemizedlist>
<listitem>
<para><link linkend="term-dumb">Domme
terminals</link>;</para>
</listitem>
<listitem>
<para><link linkend="term-pcs">PC's die als terminals
dienen</link>;</para>
</listitem>
<listitem>
<para><link linkend="term-x">X-terminals</link>.</para>
</listitem>
</itemizedlist>
<para>De overige subsecties beschrijven elk van deze
soorten.</para>
<sect3 id="term-dumb">
<title>Domme terminals</title>
<para>Domme terminals zijn gespecialiseerde stukken hardware
die computers door seriële kabels kunnen verbinden. Ze
worden <quote>dom</quote> genoemd omdat ze alleen maar tekst
kunnen weergeven, verzenden en ontvangen. Het is niet
mogelijk om programma's op deze terminals te draaien. De
computer waar ze op zijn aangesloten heeft de benodigde
kracht om tekstverwerkers, compilers, e-mail, spellen,
enzovoort te draaien.</para>
<para>Er zijn honderden soorten domme terminals gemaakt door
vele fabrikanten, inclusief de VT-100 van Digital Equipment
Corporation en de WY-75 van Wyse. Bijna elke soort werkt met
&os;. Sommige terminals uit de hoogste klasse kunnen zelfs
grafisch weergeven, maar slechts bepaalde softwarepakketten
kunnen gebruik maken van deze geavanceerde mogelijkheden.</para>
<para>Domme terminals zijn ook populair in werkomgevingen
waarin gebruikers geen toegang tot grafische applicaties
nodig hebben, zoals die door het X Window systeem worden
geleverd.</para>
</sect3>
<sect3 id="term-pcs">
<title>PC's die als terminal dienen</title>
<para>Indien een <link
linkend="term-dumb">domme terminal</link> net genoeg
mogelijkheden heeft om tekst weer te geven, te verzenden en
te ontvangen, dan kan zeker elke reserve-PC een domme
terminal zijn. De enige benodigdheden zijn de juiste kabel
en wat <emphasis>terminal-emulatie</emphasis> software om op
de computer te draaien.</para>
<para>Zo'n opstelling is populair in thuissituaties. Indien
bijvoorbeeld persoon A werkt op de console van een
&os;-systeem, kan persoon B wat alleen-tekst-werk verrichten
op een minder krachtige PC die als terminal met het
&os;-systeem verbonden is.</para>
<para>Er zijn minstens twee applicaties beschikbaar in het
basissysteem van &os; welke gebruikt kunnen worden om te
communiceren door een seriële connectie: &man.cu.1;
en &man.tip.1;.</para>
<para>Om een connectie op te zetten vanaf een systeem dat &os;
draait naar een seriële connectie van een andere machine
kan het volgende gedaan worden:</para>
<screen>&prompt.root; <userinput>cu -l <replaceable>serial-port-device</replaceable></userinput></screen>
<para>Hierbij is <quote>serial-port-device</quote> de naam is
van de speciale apparaatnode die gebruikt wordt voor de
seriële poort op het systeem. Deze bestanden heten
<devicename>/dev/cuau<replaceable>N</replaceable></devicename>.</para>
<para>Het <quote>N</quote> gedeelte van de apparaatnaam is het
nummer van de seriële poort.</para>
<note>
<para>Let op, de apparaatnummers beginnen in &os; bij nul en
niet bij één (zoals ze bijvoorbeeld wel doen
bij &ms-dos; gebaseerde systemen). Dit betekend dat wat
&ms-dos; gebaseerde systemen <devicename>COM1</devicename>
noemt bij &os; meestal <filename>/dev/cuau0</filename>
genoemd wordt.</para>
</note>
<note>
<para>Sommige mensen preferen andere programma's die
beschikbaar zijn via de Ports Collectie. De ports
bevatten een aantal programma's die hetzelfde kunnen
werken als &man.cu.1; en &man.tip.1;, zoals
<filename role="package">comms/minicom</filename>.</para>
</note>
</sect3>
<sect3 id="term-x">
<title>X-terminals</title>
<para>X-terminals behoren tot de meest geavanceerde
terminalsoort die beschikbaar is. In plaats van dat ze
verbinding maken met een seriële poort, maken ze meestal
verbinding met een netwerk zoals Ethernet. In plaats van
dat ze alleen tekstapplicaties weergeven, kunnen ze elke
X-applicatie weergeven.</para>
<para>X-terminals worden slechts voor de compleetheid
geïntroduceerd. Dit hoofdstuk behandelt echter
<emphasis>niet</emphasis> de installatie, het instellen of
het gebruik van X-terminals.</para>
</sect3>
</sect2>
<sect2 id="term-config">
<title>Instellen</title>
<para>Deze sectie beschrijft wat in te stellen op een os;-systeem
om een aanmeldsessie op een terminal mogelijk te maken. De
sectie gaat ervan uit dat er al een kernel is ingesteld met
ondersteuning voor een seriële poort waar de terminal op
is aangesloten en dat deze verbonden is.</para>
<para>In <xref linkend="boot"/> staat beschreven dat het proces
<command>init</command> verantwoordelijk is voor het beheer van
alle processen en voor de initialisatie tijdens het opstarten
van een systeem. Eén van de taken die door
<command>init</command> wordt uitgevoerd is het lezen van het
bestand <filename>/etc/ttys</filename> en het starten van een
proces <command>getty</command> op de beschikbare terminals.
Het proces <command>getty</command> is verantwoordelijk voor
het lezen van een aanmeldnaam en het starten van het programma
<command>login</command>.</para>
<para>Voer volgende stappen als <username>root</username> uit om
terminals voor een &os;-systeem in te stellen:</para>
<procedure>
<step>
<para>Voeg een regel aan <filename>/etc/ttys</filename> toe
voor de ingang in de map <filename>/dev</filename> voor een
seriële poort als deze er nog niet is;</para>
</step>
<step>
<para>Specificeer dat <command>/usr/libexec/getty</command>
uitgevoerd moet worden op de poort en het juiste type
<replaceable>getty</replaceable> van het bestand
<filename>/etc/gettytab</filename>;</para>
</step>
<step>
<para>Specificeer het standaard terminaltype;</para>
</step>
<step>
<para>Stel de poort in op <quote>on</quote>;</para>
</step>
<step>
<para>Specificeer of de poort <quote>secure</quote> dient te
zijn;</para>
</step>
<step>
<para><command>init</command> dient
<filename>/etc/ttys</filename> opnieuw te lezen.</para>
</step>
</procedure>
<para>Als optionele stap kan het wenselijk zijn om een eigen type
<replaceable>getty</replaceable> aan te maken voor stap 2 door
een ingang in <filename>/etc/gettytab</filename> te maken. Dit
wordt hier niet beschreven. Meer informatie staat in de
hulppagina's &man.gettytab.5; en &man.getty.8;.</para>
<sect3 id="term-etcttys">
<title>Een regel aan <filename>/etc/ttys</filename>
toevoegen</title>
<para>Het bestand <filename>/etc/ttys</filename> bevat alle
poorten op een &os;-systeem waar aanmelden is toegestaan. De
eerste virtuele console <devicename>ttyv0</devicename> staat
bijvoorbeeld in dit bestand vermeld. Met deze vermelding kan
er op de console worden aangemeld. Dit bestand bevat ook
vermeldingen voor de andere virtuele consoles, seriële
poorten en pseudo-tty's. Vermeld voor een vast aangesloten
terminal de <filename>/dev</filename>-regel van de
seriële poort zonder het
<filename>/dev</filename>-gedeelte
(<filename>/dev/ttyv0</filename> wordt bijvoorbeeld
<devicename>ttyv0</devicename>).</para>
<para>Een standaard &os; installatie bevat een bestand
<filename>/etc/ttys</filename> met ondersteuning voor de
eerste vier seriële poorten:
<devicename>ttyu0</devicename> tot en met
<devicename>ttyu3</devicename>. Indien er aan een van deze
poorten een terminal wordt gekoppeld is het niet nodig om een
regel toe te voegen.</para>
<example id="ex-etc-ttys">
<title>Terminalregels aan <filename>/etc/ttys</filename>
toevoegen</title>
<para>Stel dat er twee terminals verbonden moeten worden met
een systeem: een Wyse-50 en een oude 286 IBM-PC waarop
<application>Procomm</application> terminalsoftware draait
dat een VT-100 terminal emuleert. De Wyse wordt met de
tweede seriële poort verbonden en de 286 met de zesde
seriële poort (een poort op een meerpoortige
seriële kaart). De overeenkomstige regels in
<filename>/etc/ttys</filename> zien er als volgt
uit:</para>
<programlisting>ttyu1<co
id="co-ttys-line1col1"/> "/usr/libexec getty std.38400"<co
id="co-ttys-line1col2"/> wy50<co
id="co-ttys-line1col3"/> on<co
id="co-ttys-line1col4"/> insecure<co
id="co-ttys-line1col5"/>
ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure</programlisting>
<calloutlist>
<callout arearefs="co-ttys-line1col1">
<para>Het eerste veld specificeert normaalgesproken de
naam van het speciale terminalbestand zoals dat in
<filename>/dev</filename> staat.</para>
</callout>
<callout arearefs="co-ttys-line1col2">
<para>Het tweede veld bevat het commando dat voor deze
regel uitgevoerd moet worden, meestal is dit
&man.getty.8;. <command>getty</command> initialiseert
en opent een lijn, stelt een snelheid in, vraagt om een
gebruikersnaam en draait daarna het programma
&man.login.1;.</para>
<para>Het programma <command>getty</command> accepteert
één (optionele) parameter op de
opdrachtregel, het type
<replaceable>getty</replaceable>. Een type
<replaceable>getty</replaceable> stelt karakteristieken
op een terminallijn in, zoals de bps-snelheid en de
pariteit. Het programma <command>getty</command> leest
deze karakteristieken uit het bestand
<filename>/etc/gettytab</filename>.</para>
<para>Het bestand <filename>/etc/gettytab</filename>
bevat een hoop regels voor zowel oude als nieuwe
terminallijnen. In bijna alle gevallen werken de
regels die met de tekst <literal>std</literal> beginnen
voor vast aangesloten terminals. Deze regels negeren
pariteit. Er is een <literal>std</literal>-regel voor
elke bps-snelheid van 110 tot en met 115200. Uiteraard
kunnen eigen regels aan dit bestand worden toegevoegd.
De hulppagina &man.gettytab.5; biedt meer
informatie.</para>
<para>Zorg er tijdens het instellen van het type
<replaceable>getty</replaceable> in het bestand
<filename>/etc/ttys</filename> voor dat de
communicatie-instellingen op de terminal ermee
over komen.</para>
<para>In bovenstaand voorbeeld gebruikt de Wyse-50 geen
pariteit en maakt deze verbinding met 38400&nbsp;bps.
De 286&nbsp;PC gebruikt geen pariteit en maakt
verbinding met 19200&nbsp;bps.</para>
</callout>
<callout arearefs="co-ttys-line1col3">
<para>Het derde veld bevat het type terminal dat
normaalgesproken is verbonden met de tty-lijn. Voor
inbelpoorten wordt voor dit veld normaalgesproken
<literal>unknown</literal> of <literal>dialup</literal>
gebruikt omdat gebruikers bijna elk type terminal of
software gebruiken om in te bellen. Voor terminals met
een vaste aansluiting verandert het type terminal niet,
dus kan in dit veld een echt terminaltype uit het
databasebestand &man.termcap.5; worden gebruikt.</para>
<para>In bovenstaand voorbeeld gebruikt de Wyse-50 het
echte terminaltype, terwijl de 286 PC die
<application>Procomm</application> draait zo ingesteld
wordt dat deze een VT-100 emuleert.</para>
</callout>
<callout arearefs="co-ttys-line1col4">
<para>Het vierde veld geeft aan of de poort aan moet
staan. Indien hier <literal>on</literal> staat, start
<command>init</command> het programma in het tweede
veld, <command>getty</command>, op. Indien hier
<literal>off</literal> staat wordt
<command>getty</command> niet uitgevoerd en kan er
daarom niet op de poort worden aangemeld.</para>
</callout>
<callout arearefs="co-ttys-line1col5">
<para>Het laatste veld geeft aan of de poort veilig is.
Indien deze poort als veilig is aangemerkt betekent dit
dat er genoeg vertrouwen is om de gebruiker
<username>root</username> (of iedere andere account met
een gebruikers-id 0) aan te laten melden via deze poort.
Onveilige poorten staan aanmelden door
<username>root</username> niet toe. Meld op onveilige
poorten eerst aan een account zonder rechten en gebruik
daarna &man.su.1; of een soortgelijk mechanisme om
rootrechten te verkrijgen.</para>
<para>Het wordt sterk aangeraden om
<quote>insecure</quote> zelfs voor terminals achter
gesloten deuren te gebruiken. Het is vrij gemakkelijk
om aan te melden en <command>su</command> te gebruiken
indien rootrechten nodig zijn.</para>
</callout>
</calloutlist>
</example>
</sect3>
<sect3 id="term-hup">
<title><command>init</command> forceren om
<filename>/etc/ttys</filename> opnieuw te lezen</title>
<para>Stuur na het maken van de benodigde veranderingen aan het
bestand <filename>/etc/ttys</filename> een SIGHUP-signaal
(ophangen) naar het proces <command>init</command> om het te
dwingen het instellingenbestand opnieuw te lezen:</para>
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
<note>
<para><command>init</command> is altijd het eerste proces dat
op een systeem gedraaid wordt, daarom heeft het altijd PID
1.</para>
</note>
<para>Indien alles juist is ingesteld, alle kabels juist zijn
aangesloten en alle terminals aanstaan, draait er op elke
terminal een proces <command>getty</command> en is er een
aanmeldprompt zichtbaar op de terminals.</para>
</sect3>
</sect2>
<sect2 id="term-debug">
<title>Problemen met een verbinding oplossen</title>
<para>Zelfs met de grootste aandacht voor details kan er nog
steeds iets mis gaan met het instellen van een terminal. Hier
is een lijst van symptomen en mogelijke oplossingen.</para>
<sect3>
<title>Er verschijnt geen aanmeldprompt</title>
<para>Controleer of de terminal is aangesloten en aan staat.
Indien het een PC is die als terminal fungeert, controleer of
de terminalemulatiesoftware op de juiste seriële poort
draait.</para>
<para>Controleer of de kabel stevig verbonden is met zowel de
terminal als de &os; computer en dat de kabel van het juiste
soort is.</para>
<para>Controleer of de terminal en &os; dezelfde bps-snelheid
en pariteit gebruiken. Indien de terminal een beeldscherm
is, controleer dan of de video- en helderheidsniveaus zijn
ingesteld. Indien de terminal een printer is, controleer of
er voldoende papier en inkt aanwezig zijn.</para>
<para>Controleer of er een proces <command>getty</command>
draait dat de terminal bedient. Om bijvoorbeeld een lijst
van draaiende <command>getty</command>-processen te
krijgen:</para>
<screen>&prompt.root; <userinput>ps -axww|grep getty</userinput></screen>
<para>Er zou een regel voor de terminal zichtbaar moeten zijn.
Het volgende scherm geeft bijvoorbeeld weer dat
<command>getty</command> op de tweede seriële poort
<devicename>ttyu1</devicename> draait en de regel
<literal>std.38400</literal> in
<filename>/etc/gettytab</filename> gebruikt:</para>
<screen>22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyu1</screen>
<para>Indien er geen proces <command>getty</command> draait,
controleer dan of de poort in <filename>/etc/ttys</filename>
aan staat. Draai <command>kill -HUP 1</command> nadat het
bestand <filename>ttys</filename> is gewijzigd.</para>
<para>Indien het proces <command>getty</command> draait maar de
terminal nog steeds geen aanmeldprompt weergeeft of als het
een prompt weergeeft maar er niet getypt kan worden, kan het
zijn dat de terminal of de kabel hardwarematige handshaking
niet ondersteunt. Probeer om de regel in
<filename>/etc/ttys</filename> van
<literal>std.38400</literal> in
<literal>3wire.38400</literal> te veranderen (draai na het
wijzigen van <filename>/etc/ttys</filename> <command>kill
-HUP 1</command>). De regel <literal>3wire</literal> is
vergelijkbaar met de regel <literal>std</literal>, maar
negeert hardwarematige handshaking. Het kan nodig zijn om de
baudsnelheid te verlagen of om softwarematig doorvoerbeheer
aan te zetten als <literal>3wire</literal> gebruikt wordt, om
overspoelde buffers te voorkomen.</para>
</sect3>
<sect3>
<title>Als er rommel in plaats van een aanmeldprompt
verschijnt</title>
<para>Controleer of de terminal en &os; dezelfde bps-snelheid
en pariteit gebruiken. Controleer de
<command>getty</command>-processen op het gebruik van het
juiste type <command>getty</command>. Indien dit niet het
geval is, wijzig dan <filename>/etc/ttys</filename> en draai
<command>kill -HUP 1</command>.</para>
</sect3>
<sect3>
<title>Tekens verschijnen dubbel en/of het wachtwoord
verschijnt tijdens de invoer</title>
<para>Wijzig de terminal (of de terminalemulatiesoftware) van
<quote>half duplex</quote> of <quote>local echo</quote> naar
<quote>full duplex</quote>.</para>
</sect3>
</sect2>
</sect1>
<sect1 id="dialup">
<sect1info>
<authorgroup>
<author>
<firstname>Guy</firstname>
<surname>Helmer</surname>
<contrib>Bijgedragen door </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Sean</firstname>
<surname>Kelly</surname>
<contrib>Toevoegingen door </contrib>
</author>
</authorgroup>
</sect1info>
<title>Inbeldienst</title>
<warning>
<para>Vanaf &os; 8.0 zijn de seriële poorten
hernoemd van
<filename>/dev/cuad<replaceable>N</replaceable></filename> naar
<filename>/dev/cuau<replaceable>N</replaceable></filename> en
van
<filename>/dev/ttyd<replaceable>N</replaceable></filename> naar
<filename>/dev/ttyu<replaceable>N</replaceable></filename>.
&os;&nbsp;7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.</para>
</warning>
<para>Het instellen van het &os;-systeem voor inbeldiensten is
vrijwel gelijk aan het verbinden van terminals, behalve dat er
met modems in plaats van terminals wordt gewerkt.</para>
<sect2>
<title>Externe en interne modems</title>
<para>Externe modems lijken gemakkelijker voor het inbellen,
omdat externe modems vaak semi-permanent ingesteld kunnen
worden via parameters die in een niet-vluchtig RAM worden
opgeslagen en ze hebben gewoonlijk LED's die de toestand van
belangrijke RS-232-signalen weergeven. Knipperende LED's maken
indruk op bezoekers, maar LED's zijn ook zeer nuttig om te zien
of een modem goed functioneert.</para>
<para>Interne modems hebben vaak geen niet-vluchtig RAM en het
kan dus voorkomen dat de instelmogelijkheden beperkt zijn tot
het instellen van DIP-schakelaars. Als een intern modem al
indicatie-LED's voor signalen heeft, zijn ze moeilijk te zien
in de behuizing van een systeem.</para>
<sect3>
<title>Modems en kabels</title>
<indexterm><primary>modem</primary></indexterm>
<para>Bij gebruik van een extern modem is uiteraard een juiste
kabel nodig. Een standaard RS-232C seriële kabel
moet voldoen zolang alle normale signalen zijn
aangesloten.</para>
<table frame="none" pgwide="1" id="serialcomms-signal-names">
<title>Signaalnamen</title>
<tgroup cols="2">
<thead>
<row>
<entry align="left">Acroniemen</entry>
<entry align="left">Namen</entry>
</row>
</thead>
<tbody>
<row>
<entry><acronym>RD</acronym></entry>
<entry>Received Data (ontvangen gegevens)</entry>
</row>
<row>
<entry><acronym>TD</acronym></entry>
<entry>Transmitted Data (verzonden gegevens)</entry>
</row>
<row>
<entry><acronym>DTR</acronym></entry>
<entry>Data Terminal Ready (gegevensterminal
gereed)</entry>
</row>
<row>
<entry><acronym>DSR</acronym></entry>
<entry>Data Set Ready (gegevensverzameling
gereed)</entry>
</row>
<row>
<entry><acronym>DCD</acronym></entry>
<entry>Data Carrier Detect (RS-232's detector voor
signaal lijn-ontvangen)</entry>
</row>
<row>
<entry><acronym>SG</acronym></entry>
<entry>Signal Ground (signaalaarde)</entry>
</row>
<row>
<entry><acronym>RTS</acronym></entry>
<entry>Request to Send (verzoek om te zenden)</entry>
</row>
<row>
<entry><acronym>CTS</acronym></entry>
<entry>Clear to Send (gereed om te zenden)</entry>
</row>
</tbody>
</tgroup>
</table>
<para>&os; heeft de signalen <acronym>RTS</acronym> en
<acronym>CTS</acronym> nodig voor doorstroombeheer bij
snelheden van meer dan 2400&nbsp;bps, het signaal
<acronym>CD</acronym> om te bepalen wanneer een oproep
beantwoord of geannuleerd is, en het signaal
<acronym>DTR</acronym> om een modem opnieuw in te stellen
nadat een sessie voltooid is. Op sommige kabels ontbreken
sommige benodigde signalen. Dus als zich problemen voordoen,
zoals een aanmeldsessie die niet weggaat nadat de verbinding
verbroken is, kan dit aan de kabel liggen.</para>
<para>Net als andere &unix;-achtige besturingssystemen gebruikt
&os; hardwaresignalen om te bepalen of een oproep beantwoord
of weggedrukt is en om met het modem op te hangen en dit
opnieuw in te stellen na een oproep. &os; vermijdt het
versturen van commando's naar een modem en het bekijken van
de toestand van een modem. Dit kan vreemd lijken als bekend
is hoe modems met PC-gebaseerde prikbordsystemen (BBS)
verbinden.</para>
</sect3>
</sect2>
<sect2>
<title>Overwegingen voor de seriële interface</title>
<para>&os; ondersteunt EIA RS-232C (CCITT V.24)
communicatie-interfaces gebaseerd op NS8250, NS1645, NS16550 en
NS16550A. De 8250- en 16450-apparaten hebben buffers van een
enkel karakter. Het 16550-apparaat biedt een buffer van 16
karakters, wat betere systeemprestaties toestaat. Door fouten
in platte 16550's is het niet mogelijk de buffer van 16
karakters te gebruiken, dus gebruik indien mogelijk 16550A's.
Omdat apparaten met een buffer van een enkel karakter meer werk
door het besturingssysteem vereisen dan apparaten met een
buffer van 16 karakters, ligt de voorkeur bij seriële
interfacekaarten gebaseerd op de 16550A. Indien een systeem
veel actieve seriële poorten heeft of zwaar belast wordt,
zijn kaarten gebaseerd op de 16550A beter voor communicatie met
een lage foutenratio.</para>
</sect2>
<sect2>
<title>Snel overzicht</title>
<indexterm><primary>getty</primary></indexterm>
<para>Net als met terminals zet <command>init</command> een
<command>getty</command>-proces op voor elke seriële poort
die voor inbelverbindingen is ingesteld. Indien bijvoorbeeld
een modem aan <filename>/dev/ttyu0</filename> is gekoppeld, kan
het commando <command>ps ax</command> het volgende
weergeven:</para>
<screen> 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyu0</screen>
<para>Wanneer een gebruiker naar de modemlijn belt en de modems
verbinding maken, wordt de <acronym>CD</acronym>-lijn (Carrier
Detect) door het modem gerapporteerd. De kernel merkt op dat
een draaggolf is gesignaleerd en laat <command>getty</command>
het openen van de poort voltooien. <command>getty</command>
stuurt een prompt <prompt>login:</prompt> met de initieel
gespecificeerde lijnsnelheid. <command>getty</command> bekijkt
of er geldige karakters zijn ontvangen en probeert, in een
typische opstelling, indien het rommel aantreft (waarschijnlijk
omdat de snelheid waarmee het modem verbindt afwijkt van de
snelheid van <command>getty</command>) de lijnsnelheden aan te
passen totdat het redelijke karakters ontvangt.</para>
<indexterm><primary><command>/usr/bin/login</command></primary></indexterm>
<para>Nadat een gebruikersnaam is opgegeven voert
<command>getty</command> <filename>/usr/bin/login</filename>
uit, die het aanmelden voltooit door te vragen naar het
wachtwoord van een gebruiker en daarna de shell van een
gebruiker op te starten.</para>
</sect2>
<sect2>
<title>Instellingenbestanden</title>
<para>Er zijn drie systeeminstellingenbestanden in de map
<filename>/etc</filename> die waarschijnlijk gewijzigd moeten
worden om inbellen op een &os;-systeem toe te staan. Het
eerste bestand, <filename>/etc/gettytab</filename>, bevat
informatie om de daemon <filename>/usr/libexec/getty</filename>
in te stellen. Het tweede bestand,
<filename>/etc/ttys</filename> bevat informatie voor
<filename>/sbin/init</filename> dat vertelt op welke
<filename>tty</filename> apparaten een proces
<command>getty</command> moet draaien. Als laatste kunnen in
het script <filename>/etc/rc.d/serial</filename> commando's
geplaatst worden om poorten te initialiseren.</para>
<para>Er bestaan twee stromingen met betrekking tot inbelmodems
op &unix;. De ene houdt ervan om modems en systemen in te
stellen zodat de lokale computer-naar-modem RS-232-interface
met een vaste snelheid werkt, ongeacht de snelheid waarmee een
gebruiker-op-afstand inbelt. Het voordeel van deze instelling
is dat een gebruiker-op-afstand altijd meteen een aanmeldprompt
van een systeem ziet. Het nadeel is dat een systeem niet weet
wat de werkelijke gegevenssnelheid van een gebruiker is en dus
passen programma's die met een volledig scherm werken, zoals
<application>Emacs</application>, hun methode om het scherm te
tekenen niet aan om hun reactie beter te maken voor langzame
verbindingen.</para>
<para>De andere stroming stelt de RS-232-interface van een modem
zo in dat de snelheid ervan varieert met de verbindingssnelheid
van een gebruiker-op-afstand. Zo zorgen V.32bis-verbindingen
(14,4&nbsp;kbps) met een modem ervoor dat een modem de
RS-232-interface op 19,2&nbsp;kbps laat draaien, terwijl
verbindingen op 2400&nbsp;bps ervoor zorgen dat de
RS-232-interface van een modem op 2400&nbsp;bps draait. Omdat
<command>getty</command> meldingen over de verbindingssnelheid
van een gegeven modem niet begrijpt, geeft
<command>getty</command> een bericht <prompt>login:</prompt> op
een initiële snelheid en kijkt het naar de karakters die
als antwoord terugkomen. Als een gebruiker rommel ziet, wordt
ervan uitgegaan dat deze weet dat de <keycap>Enter</keycap>
toets ingedrukt moet worden totdat een herkenbaar prompt
zichtbaar is. Indien de gegevenssnelheden niet overeenkomen,
ziet <command>getty</command> alles wat een gebruiker intypt
als <quote>rommel</quote>, probeert het op de volgende snelheid
over te gaan en het geeft opnieuw het prompt
<prompt>login:</prompt>. Deze procedure kan ad nauseam
doorgaan, maar normaal gesproken zijn er slechts een stuk of
twee toetsaanslagen nodig voordat een gebruiker een juist
prompt ziet. Het is duidelijk dat deze aanmeldprocedure er
niet zo mooi uitziet als de methode
<quote>vaste-snelheid</quote>, maar een gebruiker met een
langzame verbinding zou betere interactiviteit moeten beleven
met programma's die met een volledig scherm werken.</para>
<para>Deze sectie poogt om neutrale informatie over instellingen
te geven, maar is geneigd om de gegevenssnelheid van het modem
af te laten hangen van de verbindingssnelheid.</para>
<sect3>
<title><filename>/etc/gettytab</filename></title>
<indexterm><primary><filename>/etc/gettytab</filename></primary></indexterm>
<para><filename>/etc/gettytab</filename> is een bestand met
informatie over instellingen voor &man.getty.8; in de stijl
van &man.termcap.5;. In de hulppagina van &man.gettytab.5;
staat de volledige informatie over het formaat van het
bestand en de lijst met mogelijkheden.</para>
<sect4>
<title>Vaste snelheid instellen</title>
<para>Indien de snelheid van een modem om gegevens te
communiceren op een bepaalde waarde wordt vastgezet, is het
waarschijnlijk niet nodig om wijzigingen aan te brengen in
<filename>/etc/gettytab</filename>.</para>
</sect4>
<sect4>
<title>Overeenkomstige snelheid instellen</title>
<para>In <filename>/etc/gettytab</filename> dient een regel
ingesteld te worden om <command>getty</command> informatie
te geven over de snelheden die voor het modem gewenst zijn.
Indien een 2400&nbsp;bps modem aanwezig is, kan
waarschijnlijk de bestaande regel <literal>D2400</literal>
gebruikt worden.</para>
<programlisting>#
# Voor snelle inbelterminals, 2400/1200/300 roterend (er kan met beide kanten begonnen worden)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:</programlisting>
<para>Indien er een modem voor hogere snelheden aanwezig is,
dient er waarschijnlijk een regel aan
<filename>/etc/gettytab</filename> toegevoegd te worden.
Hieronder staat een regel die gebruikt kan worden voor een
14,4&nbsp;kbps modem met een maximale interface-snelheid
van 19,2&nbsp;kbps:</para>
<programlisting>#
# Toevoegingen voor een V.32bis modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:</programlisting>
<para>Dit resulteert in 8-bits verbindingen zonder
pariteit.</para>
<para>Het bovenstaande voorbeeld begint met een
communicatiesnelheid van 19,2&nbsp;kbps (voor een
V.32bis-verbinding), daarna doorloopt het 9600&nbsp;bps
(voor V.32), 2400&nbsp;bps, 1200&nbsp;bps, 300&nbsp;bps en
daarna weer 19,2&nbsp;kbps. Het doorlopen van de
communicatiesnelheid is met de mogelijkheid
<literal>nx=</literal> (<quote>volgende tabel</quote>)
geïmplementeerd. Elk van deze regels gebruikt een
regel <literal>tc=</literal> (<quote>tabel
continuëren</quote>) om de rest van de
<quote>standaard</quote>-instellingen voor een bepaalde
gegevenssnelheid op te pikken.</para>
<para>Indien er een 28,8&nbsp;kbps modem aanwezig is en/of
het gewenst is om voordeel uit de compressie met een
14,4&nbsp;kbps te halen, is het nodig om hogere
communicatiesnelheden dan 19,2&nbsp;kbps te gebruiken.
Hieronder staat een voorbeeld van een regel voor
<filename>gettytab</filename> die begint met
57,6&nbsp;kbps.</para>
<programlisting>#
# Toevoegingen voor een V.32bis of V.34 modem
# beginnend bij 57,6 kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:</programlisting>
<para>Indien een CPU langzaam of een systeem zwaar belast is
en er geen seriële poorten gebaseerd op 16550A
aanwezig zijn, kunnen er <errorname>sio</errorname>
<quote>silo</quote>-fouten optreden bij
57,6&nbsp;kbps.</para>
</sect4>
</sect3>
<sect3 id="dialup-ttys">
<title><filename>/etc/ttys</filename></title>
<indexterm><primary><filename>/etc/ttys</filename></primary></indexterm>
<para>Het instellen van het bestand
<filename>/etc/ttys</filename> staat beschreven in <xref
linkend="ex-etc-ttys"/>. Het instellen van modems is
vergelijkbaar maar er moet een ander argument aan
<command>getty</command> doorgegeven worden en er moet een
ander type terminal doorgegeven te worden. Het algemene
formaat voor zowel vaste snelheid als overeenkomstige
snelheid is:</para>
<programlisting>ttyu0 "/usr/libexec/getty <replaceable>xxx</replaceable>" dialup on</programlisting>
<para>Het eerste item op bovenstaande regel is het speciale
apparaatbestand. <devicename>ttyu0</devicename> betekent dat
<filename>/dev/ttyu0</filename> het bestand is dat door
<command>getty</command> in de gaten wordt gehouden. Het
tweede item,
<literal>"/usr/libexec/getty<replaceable>xxx</replaceable>"</literal>
(<replaceable>xxx</replaceable> wordt vervangen door de
initiële mogelijkheden van
<filename>gettytab</filename>) is het proces dat door
<command>init</command> op het apparaat gedraaid wordt. Het
derde item, <literal>dialup</literal>, is het standaard
terminaltype. De vierde parameter, <literal>on</literal>,
geeft aan <command>init</command> aan dat de lijn
operationeel is. Er kan een vijfde parameter zijn,
<literal>secure</literal>, maar gebruik deze alleen voor
terminals die fysiek veilig zijn (zoals de
systeemconsole).</para>
<para>Het standaard terminaltype (<literal>dialup</literal> in
bovenstaand voorbeeld) mag afhangen van lokale voorkeuren.
Het traditionele standaard terminaltype voor inbellijnen is
<literal>dialup</literal>, zodat gebruikers hun
aanmeldscripts kunnen aanpassen om op te merken wanneer het
terminal <literal>dialup</literal> is en automatisch hun
terminaltype kunnen aanpassen. Wellicht is het makkelijker
om <literal>vt102</literal> als het standaard terminaltype te
specificeren, aangezien gebruikers gewoon VT102-emulatie op
hun systemen-op-afstand gebruiken.</para>
<para>Nadat <filename>/etc/ttys</filename> gewijzigd is, kan
aan het proces <command>init</command> een signaal
<acronym>HUP</acronym> gestuurd worden om het bestand opnieuw
te laten lezen. Gebruik volgende opdracht om het signaal te
versturen:</para>
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
<para>Indien een systeem voor de eerste keer wordt
geïnstalleerd, is het verstandig te wachten totdat een
modem juist ingesteld en verbonden is voordat het signaal
aan <command>init</command> verstuurd wordt.</para>
<sect4>
<title>Vaste snelheid instellen</title>
<para>Voor het instellen van een vaste snelheid dient de
regel in <filename>ttys</filename> een vaste snelheid door
te geven aan <command>getty</command>. Voor een modem met
een vaste poortsnelheid van 19,2&nbsp;kbps kan de regel in
<filename>ttys</filename> er als volgt uitzien:</para>
<programlisting>ttyu0 "/usr/libexec/getty std.19200" dialup on</programlisting>
<para>Indien een modem op een andere gegevenssnelheid is
ingesteld, dient de juiste waarde voor
<literal>std.<replaceable>snelheid</replaceable></literal>
in plaats van <literal>std.19200</literal> ingesteld te
worden. Gebruik een geldig type dat in
<filename>/etc/gettytab</filename> vermeld staat.</para>
</sect4>
<sect4>
<title>Overeenkomstige snelheid instellen</title>
<para>Voor het instellen van een overeenkomstige snelheid
dient de regel in <filename>ttys</filename> te verwijzen
naar regel met de juiste begin-<quote>auto-baud</quote>
(sic). Indien bijvoorbeeld de boven voorgestelde regel
voor een modem met een overeenkomstige snelheid die begint
met 19,2&nbsp;kbps wordt toegevoegd (de regel in
<filename>gettytab</filename> die het beginpunt
<literal>V19200</literal>), kan de regel in
<filename>ttys</filename> er als volgt uitzien:</para>
<programlisting>ttyu0 "/usr/libexec/getty V19200" dialup on</programlisting>
</sect4>
</sect3>
<sect3>
<title><filename>/etc/rc.d/serial</filename></title>
<indexterm>
<primary>rc-bestanden</primary>
<secondary><filename>rc.serial</filename></secondary>
</indexterm>
<para>Hogesnelheidsmodems, zoals V.32, V.32bis, en V.34 modems,
moeten gebruik maken van hardwarematig
(<literal>RTS/CTS</literal>) gegevensstroombeheer. Er kunnen
<command>stty</command>-opdrachten aan
<filename>/etc/rc.d/serial</filename> toegevoegd worden om de
vlag voor hardwarematig gegevensstroombeheer in de kernel van
&os; voor modempoorten in te stellen.</para>
<para>Om bijvoorbeeld de <literal>termios</literal>-vlag
<varname>crtscts</varname> op de apparaten die de in- en
uitbelapparaten initialiseren op de eerste seriële poort
(<devicename>COM2</devicename>) in te stellen, kunnen de
volgende regels aan <filename>/etc/rc.d/serial</filename>
worden toegevoegd:</para>
<programlisting># Seriële poort initieel instellen
stty -f /dev/ttyu1.init crtscts
stty -f /dev/cuau1.init crtscts</programlisting>
</sect3>
</sect2>
<sect2>
<title>Modeminstellingen</title>
<para>Bij gebruik van een modem waarvan de parameters permanent
in niet-vluchtig RAM ingesteld kunnen worden, is er een
terminalprogramma (zoals <application>Telix</application> onder
&ms-dos; of <command>tip</command> onder &os;) nodig om
parameters in te stellen. Maak een verbinding met een modem met
dezelfde communicatiesnelheid als de initiële snelheid die
door <command>getty</command> gebruikt wordt en stel het
niet-vluchtige RAM van een modem in zodat aan deze voorwaarden
voldaan wordt:</para>
<itemizedlist>
<listitem>
<para><acronym>CD</acronym> geldt tijdens
verbindingen;</para>
</listitem>
<listitem>
<para><acronym>DTR</acronym> geldt tijdens gebruik; het
loslaten van DTR hangt de verbinding op en stelt het modem
opnieuw in;</para>
</listitem>
<listitem>
<para>gegevensstroombeheer door <acronym>CTS</acronym>
verzonden;</para>
</listitem>
<listitem>
<para>gegevensstroombeheer met <acronym>XON/XOFF</acronym>
uitgezet;</para>
</listitem>
<listitem>
<para>gegevensstroombeheer door <acronym>RTS</acronym>
ontvangen;</para>
</listitem>
<listitem>
<para>Stille modus (geen resultaatcodes);</para>
</listitem>
<listitem>
<para>Geen opdrachtecho.</para>
</listitem>
</itemizedlist>
<para>Kijk in de documentatie van een modem voor de benodigde
opdrachten en/of instellingen van DIP-schakelaars.</para>
<para>Om de bovenstaande parameters bijvoorbeeld op een
&usrobotics; &sportster; 14.400 extern modem in te stellen,
kunnen de volgende opdrachten aan het modem gegeven
worden:</para>
<programlisting>ATZ
AT&amp;C1;&amp;D2&amp;H1&amp;I0&amp;R2&amp;W</programlisting>
<para>In deze fase kunnen ook andere modeminstellingen aangepast
worden, zoals of het V.42bis en/of MNP5 compressie wordt
gebruiken.</para>
<para>Een &usrobotics;&sportster; 14.400 externe modem heeft ook
enkele DIP-schakelaars die ingesteld moeten worden. Voor
andere modems kunnen deze instellingen wellicht als voorbeeld
dienen:</para>
<itemizedlist>
<listitem>
<para>Schakelaar 1: UP: DTR Normal</para>
</listitem>
<listitem>
<para>Schakelaar 2: N/A (Verbal Result Codes/Numeric Result
Codes)</para>
</listitem>
<listitem>
<para>Schakelaar 3: UP: Suppress Result Codes</para>
</listitem>
<listitem>
<para>Schakelaar 4: DOWN: Geen echo, offline
opdrachten</para>
</listitem>
<listitem>
<para>Schakelaar 5: UP: Auto Answer</para>
</listitem>
<listitem>
<para>Schakelaar 6: UP: Carrier Detect Normal</para>
</listitem>
<listitem>
<para>Schakelaar 7: UP: Load NVRAM Defaults</para>
</listitem>
<listitem>
<para>Schakelaar 8: N/A (Smart Mode/Dumb Mode)</para>
</listitem>
</itemizedlist>
<para>Schakel resultaatcodes voor alle inbelmodems uit of
onderdruk ze om problemen te voorkomen die kunnen optreden als
<command>getty</command> abusievelijk een prompt
<prompt>login:</prompt> geeft aan een modem dat in
opdrachtmodus staat en het modem de opdracht echoot of een
resultaatcode teruggeeft. Deze sequentie kan tot een
uitgebreide, onnozele discussie tussen <command>getty</command>
en het modem leiden.</para>
<sect3>
<title>Vaste snelheid instellen</title>
<para>Stel voor een vaste snelheid een modem zodanig in dat die
een constante gegevenssnelheid naar de computer,
onafhankelijk van de communicatiesnelheid, behoudt. Op een
&usrobotics; &sportster; 14.400 extern modem zetten de
volgende opdrachten de gegevenssnelheid naar de computer vast
op de snelheid die gebruikt werd om de opdrachten te
geven:</para>
<programlisting>ATZ
AT&amp;B1&amp;W</programlisting>
</sect3>
<sect3>
<title>Overeenkomstige snelheid instellen</title>
<para>Stel voor een variabele snelheid een modem zodanig in dat
het de gegevenssnelheid van zijn seriële poort aanpast
aan de snelheid van een binnenkomende oproep. Op een
&usrobotics; &sportster; 14.400 extern modem zetten de
volgende opdrachten de gegevenssnelheid van het modem, die op
fouten gecorrigeerd wordt, vast op de snelheid die gebruikt
werd om de opdrachten te geven, maar staan ze toe dat de
snelheid van de seriële poort varieert voor verbindingen
die niet op fouten gecorrigeerd worden:</para>
<programlisting>ATZ
AT&amp;B2&amp;W</programlisting>
</sect3>
<sect3>
<title>De modeminstellingen controleren</title>
<para>De meeste modems die op hoge snelheid werken, bieden
opdrachten om de huidige werkparameters van een modem in een
min of meer voor mensen leesbare vorm te bekijken. Op het
&usrobotics; &sportster; 14.400 extern modem beeldt de
opdracht <command>ATI5</command> de instellingen af die in
het niet-vluchtige RAM zijn opgeslagen. Gebruik om de
werkelijke werkparameters van een modem te zien (zoals
beïnvloed door de stand van de DIP-schakelaars van een
modem) de opdrachten <command>ATZ</command> gevolgd door
<command>ATI4</command>.</para>
<para>Kijk in de handleiding van een modem als er met een
ander merk modem gewerkt wordt voor het controleren van de
parameters voor het instellen van dat modem.</para>
</sect3>
</sect2>
<sect2>
<title>Problemen oplossen</title>
<para>Hier volgen wat stappen die gevolgd kunnen worden om een
inbelmodem op een systeem te controleren.</para>
<sect3>
<title>Een &os;-systeem controleren</title>
<para>Verbind een modem met een &os;-systeem, start het systeem
op en kijk, indien het modem lampjes bevat die de toestand
aangeven, of de <acronym>DTR</acronym>-indicator oplicht
als het prompt <prompt>login:</prompt> op de systeemconsole
verschijnt. Als het oplicht zou dit betekenen dat &os;
een <command>getty</command>-proces heeft gestart op de
juiste communicatiepoort en wacht op het modem om een gesprek
aan te nemen.</para>
<para>Geef als de <acronym>DTR</acronym>-indicator niet
oplicht, na aanmelden op de console, de opdracht <command>ps
ax</command> om te zien of &os; probeert een
<command>getty</command>-proces op de juiste poort te
draaien. Er dienen tussen de weergegeven processen regels
zoals de onderstaande te verschijnen:</para>
<screen> 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyu0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyu1</screen>
<para>Er kan ook iets als het volgende verschijnen:</para>
<screen> 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyu0</screen>
<para>Als het modem nog geen gesprek heeft aangenomen, betekent
dit dat <command>getty</command> het openen van de
communicatiepoort voltooid heeft. Dit kan duiden op een
probleem met de bekabeling of op een verkeerd ingesteld modem
omdat <command>getty</command> niet in staat zou moeten zijn
om de communicatiepoort te openen totdat
<acronym>CD</acronym> (kiestoon) door het modem is
bevestigd.</para>
<para>Indien er geen enkel <command>getty</command>-proces
verschijnt dat wacht op het openen van de gewenste poort
<devicename>ttyu<replaceable>N</replaceable></devicename>,
controleer dan de regels in <filename>/etc/ttys</filename> op
vergissingen. Controleer ook het logboekbestand
<filename>/var/log/messages</filename> om te zien of er
logboekberichten van <command>init</command> of
<command>getty</command> met betrekking tot problemen zijn.
Indien er problemen zijn, controleer dan nogmaals de
instellingenbestanden <filename>/etc/ttys</filename> en
<filename>/etc/gettytab</filename>, alsook de betreffende
speciale apparaatbestanden <filename>/dev/ttyuN</filename>,
op vergissingen, ontbrekende regels of ontbrekende speciale
apparaatbestanden.</para>
</sect3>
<sect3>
<title>Proberen om in te bellen</title>
<para>Probeer in te bellen op een systeem. Controleer of op het
systeem-op-afstand 8 bits, geen pariteit en 1 stopbit gebruikt
wordt. Probeer, indien er niet meteen een prompt verschijnt
of als er rommel verschijnt, ongeveer eens per seconde op
<keycap>Enter</keycap> te drukken. Probeer, indien er na een
tijd nog geen prompt <prompt>login:</prompt> verschijnt, een
<command>BREAK</command> te versturen. Probeer, indien er een
modem wordt gebruikt dat op hoge snelheid werkt om te bellen,
opnieuw in te bellen nadat de interfacesnelheid van het
bellende modem is vastgezet (bijvoorbeeld via
<command>AT&amp;B1</command> op een &usrobotics; &sportster;
modem).</para>
<para>Controleer, indien er nog steeds geen prompt
<prompt>login:</prompt> verschijnt, nogmaals
<filename>/etc/gettytab</filename> en controleer of:</para>
<itemizedlist>
<listitem>
<para>De initiële specificatie die in
<filename>/etc/ttys</filename> voor de lijn staat
overeenkomt met een naam van een specificatie in
<filename>/etc/gettytab</filename>;</para>
</listitem>
<listitem>
<para>Elke regel <literal>nx=</literal> overeenkomt met een
naam van een andere specificatie in
<filename>gettytab</filename>;</para>
</listitem>
<listitem>
<para>Elke regel <literal>tc=</literal> overeenkomt met een
naam van een andere specificatie in
<filename>gettytab</filename>.</para>
</listitem>
</itemizedlist>
<para>Controleer, indien er gebeld wordt maar het modem op het
&os;-systeem niet reageert, of het modem ingesteld is om de
telefoon te beantwoorden als <acronym>DTR</acronym> bevestigd
is. Controleer, indien het modem juist ingesteld lijkt te
zijn, of de <acronym>DTR</acronym>-lijn bevestigd is door de
indicatielampjes van het modem te controleren (indien die
aanwezig zijn).</para>
<para>Neem een pauze en probeer het later nog eens indien alles
meerdere malen is geprobeerd en het nog steeds niet werkt.
Indien het nog steeds niet werkt, stuur dan een e-mail naar
de &a.questions; met een beschrijving van het modem en het
probleem en de mensen op de lijst zullen proberen te
helpen.</para>
</sect3>
</sect2>
</sect1>
<sect1 id="dialout">
<title>Uitbeldienst</title>
<warning>
<para>Vanaf &os; 8.0 zijn de seriële poorten
hernoemd van
<filename>/dev/cuad<replaceable>N</replaceable></filename> naar
<filename>/dev/cuau<replaceable>N</replaceable></filename> en
van
<filename>/dev/ttyd<replaceable>N</replaceable></filename> naar
<filename>/dev/ttyu<replaceable>N</replaceable></filename>.
&os;&nbsp;7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.</para>
</warning>
<indexterm><primary>uitbeldienst</primary></indexterm>
<para>De volgende tips dienen voor het maken van een verbinding met
een andere computer per modem. Dit is geschikt voor het opzetten
van een terminalsessie met een gast op afstand.</para>
<para>Dit is nuttig bij het aanmelden op een BBS.</para>
<para>Dit soort verbinding kan extreem behulpzaam zijn om een
bestand op het Internet te krijgen indien er problemen zijn met
PPP. Indien FTP ergens voor nodig is en PPP kapot is, kan de
terminalsessie voor FTP gebruikt worden. Vervolgens kan zmodem
gebruikt worden om het naar de machine te verzenden.</para>
<sect2 id="hayes-unsupported">
<title>Een gewone Hayes-modem wordt niet ondersteund, wat
nu?</title>
<para>In feite is de hulppagina voor <command>tip</command>
verouderd. Er is al een generiek belprogramma voor Hayes
ingebouwd. Gebruik <literal>at=hayes</literal> in het bestand
<filename>/etc/remote</filename>.</para>
<para>Het stuurprogramma voor Hayes is niet slim genoeg om enkele
geavanceerde eigenschappen van nieuwere modems te herkennen.
Berichten als <literal>BUSY</literal> (in gesprek),
<literal>NO DIALTONE</literal> (geen kiestoon) of
<literal>CONNECT 115200</literal> (verbinden 115200) verwarren
het stuurprogramma. Schakel deze berichten uit bij gebruik van
<command>tip</command> (door middel van
<command>ATX0&amp;W</command>).</para>
<para>Verder is de beltimeout voor <command>tip</command> 60
seconden. Het modem dient een lagere waarde te gebruiken om te
voorkomen dat <command>tip</command> denkt dat er een probleem
met de communicatie is. Probeer
<command>ATS7=45&amp;W</command>.</para>
</sect2>
<sect2 id="direct-at">
<title>Hoe deze <literal>AT</literal>-commando's in te geven?</title>
<indexterm><primary><filename>/etc/remote</filename></primary></indexterm>
<para>Maak een zogenaamde <quote>directe</quote> regel in het
bestand <filename>/etc/remote</filename> aan. Als het modem
bijvoorbeeld aan de eerste seriële poort,
<filename>/dev/cuau0</filename>, is gekoppeld, voeg dan de
volgende regel toe:</para>
<programlisting>cuau0:dv=/dev/cuau0:br#19200:pa=none</programlisting>
<para>Gebruik voor de mogelijkheid <literal>br</literal> de
hoogst ondersteunde snelheid van het modem in bps. Typ hierna
<command>tip cuau0</command> om een verbinding met het modem te
maken.</para>
<para>Als alternatief kan <command>cu</command> als
<username>root</username> met het volgende commando gebruikt
worden:</para>
<screen>&prompt.root; <userinput>cu
-l<replaceable>lijn</replaceable>
-s<replaceable>snelheid</replaceable></userinput></screen>
<para>De waarde <replaceable>lijn</replaceable> is de
seriële poort (bijvoorbeeld
<filename>/dev/cuau0</filename>) en
<replaceable>snelheid</replaceable> is de snelheid
(bijvoorbeeld <literal>57600</literal>). Als alle
AT-commando's zijn ingevoerd, voer dan <command>~.</command> in
om het programma te verlaten.</para>
</sect2>
<sect2 id="gt-failure">
<title>Het teken <literal>@</literal> voor de optie pn werkt
niet!</title>
<para>Het teken <literal>@</literal> in de
telefoonnummermogelijkheid vertelt <command>tip</command> om in
<filename>/etc/phones</filename> naar een telefoonnummer te
kijken. Maar het teken <literal>@</literal> is ook een speciaal
teken in specificatiebestanden als
<filename>/etc/remote</filename>. Gebruik een backslash om
hieraan te ontsnappen:</para>
<programlisting>pn=\@</programlisting>
</sect2>
<sect2 id="dial-command-line">
<title>Hoe een telefoonnummer op de opdrachtregel te
draaien?</title>
<para>Voeg een zogenaamde <quote>generieke</quote> regel aan
het bestand <filename>/etc/remote</filename> toe.
Bijvoorbeeld:</para>
<programlisting>tip115200|Bel elk telefoonnummer met 115200 bps:\
:dv=/dev/cuau0:br#115200:at=hayes:pa=none:du:
tip57600|Bel elk telefoonnummer met 57600 bps:\
:dv=/dev/cuau0:br#57600:at=hayes:pa=none:du:</programlisting>
<para>Hierna zijn onder andere de volgende mogelijkheden
beschikbaar:</para>
<screen>&prompt.root; <userinput>tip -115200 5551234</userinput></screen>
<para>Indien <command>cu</command> boven <command>tip</command>
geprefereerd wordt, dient een generieke regel voor
<literal>cu</literal> gebruikt te worden:</para>
<programlisting>cu115200|Gebruik cu om elk nummer met 115200bps te bellen:\
:dv=/dev/cuau1:br#57600:at=hayes:pa=none:du:</programlisting>
<para>Voer in:</para>
<screen>&prompt.root; <userinput>cu 5551234 -s 115200</userinput></screen>
</sect2>
<sect2 id="set-bps">
<title>Dient de bps-snelheid telkens ingevoerd te worden?</title>
<para>Voeg een regel toe voor <literal>tip1200</literal> of
<literal>cu1200</literal>, maar gebruik een bps-snelheid die
geschikt is voor de br-mogelijkheid. <command>tip</command>
meent dat 1200&nbsp;bps een goede standaardwaarde is, hierdoor
zoekt het naar een regel <literal>tip1200</literal>. Uiteraard
hoeft 1200&nbsp;bps niet gebruikt te worden.</para>
</sect2>
<sect2 id="terminal-server">
<title>Een aantal hosts met een terminalserver benaderen</title>
<para>Om niet iedere keer te hoeven wachten totdat er verbinding
is en <command>CONNECT <replaceable>host</replaceable></command>
in te typen, kan de mogelijkheid <literal>cm</literal> van
<command>tip</command> gebruikt worden. Als voorbeeld bieden
de onderstaande regels in <filename>/etc/remote</filename> de
mogelijkheid om <command>tip pain</command> of <command>tip
muffin</command> in te typen om met de hosts
<hostid>pain</hostid> of <hostid>muffin</hostid> te verbinden,
en <command>tip deep13</command> om naar de terminalserver te
gaan:</para>
<programlisting>pain|pain.deep13.com|Forresters machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Franks machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminalserver:\
:dv=/dev/cuau2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>
</sect2>
<sect2 id="tip-multiline">
<title>Kan tip meer dan één lijn voor elke site
proberen?</title>
<para>Dit is een vaak een probleem als een universiteit een
handvol modemlijnen en enkele duizenden studenten heeft die ze
proberen te gebruiken.</para>
<para>Voeg een regel voor de universiteit toe in
<filename>/etc/remote</filename> en gebruik
<literal>@</literal> voor de mogelijkheid
<literal>pn</literal>:</para>
<programlisting>grote-universiteit:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuau3:br#9600:at=courier:du:pa=none:</programlisting>
<para>Voeg hierna de telefoonnummers voor de universiteit toe aan
<filename>/etc/phones</filename>:</para>
<programlisting>grote-universiteit 5551111
grote-universiteit 5551112
grote-universiteit 5551113
grote-universiteit 5551114</programlisting>
<para>Het commando <command>tip</command> probeert elk nummer in
de volgorde van de lijst alvorens op te geven. Om de pogingen
te herhalen, kan <command>tip</command> in een while-lus
gedraaid worden.</para>
</sect2>
<sect2 id="multi-controlp">
<title>Waarom moet <keycombo
action="simul"><keycap>Ctrl</keycap><keycap>P</keycap></keycombo>
tweemaal worden ingedrukt om <keycombo
action="simul"><keycap>Ctrl</keycap><keycap>P</keycap></keycombo>
éénmaal te versturen?</title>
<para><keycombo
action="simul"><keycap>Ctrl</keycap><keycap>P</keycap></keycombo>
is het standaard <quote>forceer</quote>-karakter, dat gebruikt
wordt om <command>tip</command> te vertellen dat het volgende
karakter letterlijk genomen dient te worden. Het
forceerkarakter kan met de ontsnapping <command>~s</command>,
wat <quote>stel een variabele in</quote> betekent, op elk ander
karakter ingesteld worden.</para>
<para>Typ
<command>~sforce=<replaceable>enkel-karakter</replaceable></command>
in gevolgd door een nieuwe regel.
<replaceable>enkel-karakter</replaceable> is elk enkel
karakter. Indien <replaceable>enkel-karakter</replaceable>
weggelaten wordt, is het forceerkarakter het nulkarakter, wat
door middel van <keycombo
action="simul"><keycap>Ctrl</keycap><keycap>2</keycap></keycombo>
of <keycombo
action="simul"><keycap>Ctrl</keycap><keycap>spatie</keycap></keycombo>
verkregen kan worden. Een redelijke standaardwaarde
voor <replaceable>enkel-karakter</replaceable> is <keycombo
action="simul"><keycap>Shift</keycap><keycap>Ctrl</keycap><keycap>6</keycap></keycombo>,
die slechts op enkele terminalservers gebruikt wordt.</para>
<para>Het forceerkarakter kan op elk gewenst karakter ingesteld
worden door het volgende op te nemen in het bestand
<filename>&#36;HOME/.tiprc</filename>:</para>
<programlisting>force=<replaceable>enkel-karakter</replaceable></programlisting>
</sect2>
<sect2 id="uppercase">
<title>Alle ingevoerde tekst staat opeens in hoofdletters?</title>
<para>Waarschijnlijk is <keycombo
action="simul"><keycap>Ctrl</keycap><keycap>A</keycap></keycombo>
ingedrukt, het <quote>raisechar</quote> van
<command>tip</command>, dat speciaal voor mensen met een
kapotte caps-lock toets is ontworpen. Gebruik
<command>~s</command> zoals boven is aangegeven en stel de
variabele <literal>raisechar</literal> op iets redelijks in.
Het kan zelfs op hetzelfde als het forceerkarakter worden
ingesteld, indien het onwaarschijnlijk is dat een van deze
mogelijkheden ooit gebruikt wordt.</para>
<para>Hier volgt een voorbeeld voor het bestand
<filename>.tiprc</filename> dat perfect is voor gebruikers van
<application>Emacs</application> die <keycombo
action="simul"><keycap>Ctrl</keycap><keycap>2</keycap></keycombo>
en <keycombo
action="simul"><keycap>Ctrl</keycap><keycap>A</keycap></keycombo>
vaak moeten gebruiken:</para>
<programlisting>force=^^
raisechar=^^</programlisting>
<para>De <literal>^^</literal> is <keycombo
action="simul"><keycap>Shift</keycap><keycap>Ctrl</keycap><keycap>6</keycap></keycombo>.</para>
</sect2>
<sect2 id="tip-filetransfer">
<title>Hoe kan met <command>tip</command> bestanden worden
verstuurd?</title>
<para>In de communicatie met een ander &unix;-systeem kunnen
bestanden verzonden en ontvangen worden met de commando's
<command>~p</command> (put) en <command>~t</command> (take).
Deze commando's draaien <command>cat</command> en
<command>echo</command> op een systeem op afstand om bestanden
aan te nemen en te verzenden. De syntaxis is:</para>
<cmdsynopsis>
<command>~p</command>
<arg choice="plain">lokaal-bestand</arg>
<arg choice="opt">bestand-op-afstand</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>~t</command>
<arg choice="plain">bestand-op-afstand</arg>
<arg choice="opt">lokaal-bestand</arg>
</cmdsynopsis>
<para>Er wordt niet op fouten gecontroleerd, het is dus
verstandig om een ander protocol te gebruiken, zoals
zmodem.</para>
</sect2>
<sect2 id="zmodem-tip">
<title>Hoe kan <application>zmodem</application> samen met
<command>tip</command> draaien?</title>
<para>Start om bestanden te ontvangen het verstuurprogramma aan
de andere kant. Typ daarna <command>~C rz</command> om ze
lokaal te ontvangen.</para>
<para>Start om bestanden te versturen het ontvangprogramma aan de
andere kant. Typ daarna <command>~C sz
<replaceable>bestanden</replaceable></command> om ze naar het
systeem aan de andere kant te versturen.</para>
</sect2>
</sect1>
<sect1 id="serialconsole-setup">
<sect1info>
<authorgroup>
<author>
<firstname>Kazutaka</firstname>
<surname>YOKOTA</surname>
<contrib>Bijgedragen door </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Bill</firstname>
<surname>Paul</surname>
<contrib>Gebaseerd op een document van </contrib>
</author>
</authorgroup>
</sect1info>
<title>Seriële console opzetten</title>
<warning>
<para>Vanaf &os; 8.0 zijn de seriële poorten
hernoemd van
<filename>/dev/cuad<replaceable>N</replaceable></filename> naar
<filename>/dev/cuau<replaceable>N</replaceable></filename> en
van
<filename>/dev/ttyd<replaceable>N</replaceable></filename> naar
<filename>/dev/ttyu<replaceable>N</replaceable></filename>.
&os;&nbsp;7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.</para>
</warning>
<indexterm><primary>seriële console</primary></indexterm>
<sect2 id="serialconsole-intro">
<title>Inleiding</title>
<para>&os; biedt de mogelijkheid om op een systeem op te starten
met slechts een domme terminal en een seriële poort als
console. Dit soort opstellingen is handig voor twee soorten
mensen: voor systeembeheerders die &os; willen installeren op
machines die geen toetsenbord of beeldscherm hebben en voor
ontwikkelaars die de kernel of apparaatstuurprogramma's willen
debuggen.</para>
<para>Zoals beschreven in <xref linkend="boot"/>, gebruikt &os;
drie fasen voor het opstarten. De eerste twee fasen bevinden
zich in de code van het opstartblok dat zich aan het begin van
de opstartslice van &os; op de opstartschijf bevindt. Het
opstartblok laadt vervolgens de opstartlader
(<filename>/boot/loader</filename>) en draait als de code van
de derde fase.</para>
<para>Om de seriële console gereed te maken moeten de code
in het opstartblok, de code van de opstartlader en de kernel
worden ingesteld.</para>
</sect2>
<sect2 id="serialconsole-howto-fast">
<title>De seriële console instellen, korte versie</title>
<para>Deze sectie neemt aan dat de standaard opstelling wordt
gebruikt en dat een kort overzicht voor het opzetten van de
seriële console gewenst is.</para>
<procedure>
<step>
<para>Verbind de seriële kabel met
<devicename>COM1</devicename> en de leidende
terminal;</para>
</step>
<step>
<para>Om alle opstartmeldingen op de seriële console te
zien, dient het volgende commando als supergebruiker
uitgevoerd te worden:</para>
<screen>&prompt.root; echo 'console="comconsole"' &gt;&gt; /boot/loader.conf</screen>
</step>
<step>
<para>Bewerk <filename>/etc/ttys</filename> en wijzig
<literal>off</literal> in <literal>on</literal> en
<literal>dialup</literal> in <literal>vt100</literal> voor
de regel <devicename>ttyu0</devicename>. Indien dit niet
gebeurt is er geen wachtwoord nodig om met de seriële
console te verbinden, wat tot een mogelijk beveiligingslek
leidt;</para>
</step>
<step>
<para>Start het systeem opnieuw op om te zien of de
veranderingen effect hebben.</para>
</step>
</procedure>
<para>Indien een andere instelling nodig is, is er een
diepgaandere uitleg over instellingen beschikbaar in
<xref linkend="serialconsole-howto"/>.</para>
</sect2>
<sect2 id="serialconsole-howto">
<title>De seriële console instellen</title>
<procedure>
<step>
<para>Bereid een seriële kabel voor.</para>
<indexterm><primary>nulmodem-kabel</primary></indexterm>
<para>Benodigd zijn een nulmodem-kabel òf een
standaard seriële kabel samen met een
nulmodem-adapter. Zie <xref
linkend="serial-cables-ports"/> voor een beschrijving
van seriële kabels.</para>
</step>
<step>
<para>Ontkoppel het toetsenbord.</para>
<para>De meeste PC-systemen zoeken naar het toetsenbord
tijdens de Power-On Self-Test (POST) en geven een
foutmelding als het toetsenbord niet is gevonden. Sommige
systemen klagen luid over het ontbreken van een toetsenbord
en gaan niet verder met opstarten totdat het is
aangesloten.</para>
<para>Indien de computer klaagt over de fout, maar desondanks
opstart, is het niet nodig iets speciaals te doen. Sommige
machines waarop Phoenix BIOS is geïnstalleerd melden
enkel <errorname>Toetsenbord faalde</errorname> en gaan
normaal door met opstarten.</para>
<para>Indien de machine weigert zonder toetsenbord op te
starten dient het BIOS ingesteld te worden zodat het deze
fout negeert (als het dit kan). Raadpleeg het handboek van
het moederbord voor verdere aanwijzingen.</para>
<tip>
<para>Stel het toetsenbord in op <quote>Niet
geïnstalleerd</quote> in de BIOS-instellingen. Het
is dan nog steeds mogelijk om het toetsenbord te
gebruiken. Dit zorgt er alleen voor dat het BIOS niet
naar een toetsenbord zoekt tijdens het aanzetten. Het
BIOS dient niet te klagen als het toetsenbord ontbreekt.
Het is mogelijk om het toetsenbord aangesloten te laten,
zelfs als deze vlag is ingesteld op <quote>Niet
geïnstalleerd</quote> en het toetsenbord werkt nog
steeds. Kijk, als de bovenstaande optie niet in het BIOS
aanwezig is, naar een optie <quote>Halt on Error</quote>.
Het instellen van deze optie op <quote>All but
keyboard</quote> of zelfs op <quote>No Errors</quote>
zal hetzelfde effect hebben.</para>
</tip>
<note>
<para>Als een systeem een &ps2;-muis heeft, is het goed
mogelijk dat naast het toetsenbord ook de muis
losgekoppeld moet worden. Dit komt doordat &ps2;-muizen
wat hardware met het toetsenbord delen. Als de muis
aangesloten blijft, kan het zoeken naar het toetsenbord
als resultaat hebben dat het toetsenbord er nog steeds
is. Een Gateway 2000 Pentium 90&nbsp;MHz systeem met een
AMI BIOS schijnt zich op deze manier te gedragen. Over
het algemeen is dit geen probleem aangezien een muis
zonder toetsenbord sowieso weinig nut heeft.</para>
</note>
</step>
<step>
<para>Sluit een domme terminal aan op
<devicename>COM1</devicename>
(<devicename>sio0</devicename>).</para>
<para>Indien er geen domme terminal aanwezig is, kan een oude
PC met een modemprogramma of de seriële poort van een
andere &unix; machine gebruikt worden. Indien er geen
<devicename>COM1</devicename>
(<devicename>sio0</devicename>) aanwezig is dient deze
geregeld te worden. Op dit moment is er geen manier om een
andere poort dan <devicename>COM1</devicename> voor de
opstartblokken te selecteren, afgezien van deze opnieuw te
compileren. Indien <devicename>COM1</devicename> al voor
een ander apparaat gebruikt wordt, verwijder dat apparaat
dan tijdelijk en installeer een nieuw opstartblok en een
nieuwe kernel zodra &os; werkt. Er wordt aangenomen dat
<devicename>COM1</devicename> sowieso beschikbaar is op een
bestands-/reken-/terminalserver. Als
<devicename>COM1</devicename> ècht voor iets anders
nodig is (en het niet mogelijk is om dat op
<devicename>COM2</devicename>
(<devicename>sio1</devicename>) over te zetten), is het
sowieso al onverstandig om hiermee bezig te zijn.)</para>
</step>
<step>
<para>Controleer of het instellingenbestand van de kernel de
juiste vlaggen ingesteld heeft voor
<devicename>COM1</devicename>
(<devicename>sio0</devicename>).</para>
<para>Relevante vlaggen zijn:</para>
<variablelist>
<varlistentry>
<term><literal>0x10</literal></term>
<listitem>
<para>Zet console-ondersteuning voor deze eenheid aan.
De andere consolevlaggen worden genegeerd tenzij deze
is aangezet. Momenteel kan ten hoogste
één eenheid console-ondersteuning
hebben. De eerste (in de volgorde van het
instellingenbestand) waarvan deze vlag is aangezet
heeft de voorkeur. Deze optie zelf maakt de
seriële poort geen console. Stel de volgende
vlag in of gebruik de onderstaande optie
<option>-h</option> samen met deze vlag.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>0x20</literal></term>
<listitem>
<para>Dwingt deze eenheid om de console te zijn (tenzij
er een andere console met hogere prioriteit is),
ongeacht de onderstaande optie <option>-h</option>.
De vlag <literal>0x20</literal> dient samen met de
vlag <option>0x10</option> gebruikt te worden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>0x40</literal></term>
<listitem>
<para>Reserveert deze eenheid (in samenwerking met
<literal>0x10</literal>) en maakt de eenheid
ontoegankelijk voor normale toegang. Deze vlag dient
niet aangezet te worden op de seriële poort van
de eenheid die als seriële console gebruikt gaat
worden. De enige functie van deze vlag is de eenheid
voor het debuggen van de kernel op afstand aan te
merken. Zie het <ulink
url="&url.books.developers-handbook;/index.html">Ontwikkelaarshandboek</ulink>
voor meer informatie over debuggen op afstand.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Voorbeeld:</para>
<programlisting>device sio0 at isa? port IO_COM1 flags 0x10 irq 4</programlisting>
<para>Zie de hulppagina &man.sio.4; voor meer details.</para>
<para>Indien de vlaggen niet waren ingesteld, dient
UserConfig gedraaid te worden (op een andere console) of de
kernel opnieuw gecompileerd te worden.</para>
</step>
<step>
<para>Maak <filename>boot.config</filename> aan in de
hoofdmap van de partitie <literal>a</literal> van de
opstartschijf.</para>
<para>Dit bestand instrueert de code op het opstartblok hoe
het systeem opgestart dient te worden. Om de seriële
console te activeren, zijn één of meer van de
volgende opties nodig. Indien meerdere opties gewenst
zijn, dienen ze allemaal op dezelfde regel te staan:</para>
<variablelist>
<varlistentry>
<term><option>-h</option></term>
<listitem>
<para>Wisselt tussen de interne en de seriële
console. Indien bijvoorbeeld vanaf de interne
(video)console opgestart wordt, kan
<option>-h</option> gebruikt worden om het
console-apparaat van de opstartlader en de kernel om
te leiden naar de seriële console. Indien vanaf
de seriële poort opgestart wordt, kan
<option>-h</option> gebruikt worden om de
opstartlader en de kernel het videoscherm als console
te laten gebruiken.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-D</option></term>
<listitem>
<para>Wisselt tussen opstellingen met een enkele en een
dubbele console. In opstellingen met een enkele
console is de console òfwel de interne console
(videoscherm) òfwel de seriële poort,
afhankelijk van bovenstaande optie
<option>-h</option>. In opstellingen met een dubbele
console worden zowel het videoscherm als de
seriële poort tegelijkertijd console, ongeacht
de toestand van de optie <option>-h</option>. De
opstelling met een dubbele console heeft alleen
effect als het opstartblok draait. Zodra de
opstartlader het overneemt, wordt de console die met
de optie <option>-h</option> gespecificeerd is de
enige console.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-P</option></term>
<listitem>
<para>Zorgt ervoor dat het opstartblok naar het
toetsenbord zoekt. Als er geen toetsenbord wordt
gevonden, worden de opties <option>-D</option> en
<option>-h</option> automatisch ingesteld.</para>
<note>
<para>Vanwege ruimtebeperkingen in de huidige versie
van het opstartblok, is de optie
<option>-P</option> alleen in staat om uitgebreide
toetsenborden te detecteren. Toetsenborden met
minder dan 101 toetsen (en zonder de toetsen F11 en
F12) worden mogelijk niet gedetecteerd.
Toetsenborden op sommige laptops worden vanwege
deze beperking mogelijk niet correct gevonden.
Indien dit het geval is met een systeem, vermijd
dan de optie <option>-P</option>. Helaas is er
geen mogelijkheid om dit probleem te
omzeilen.</para>
</note>
</listitem>
</varlistentry>
</variablelist>
<para>Gebruik om de console automatisch te selecteren
òfwel de optie <option>-P</option> òfwel de
optie <option>-h</option> om de seriële console te
activeren.</para>
<para>De andere opties beschreven in &man.boot.8; kunnen ook
gebruikt worden.</para>
<para>De opties, behalve <option>-P</option>, worden aan de
opstartlader (<filename>/boot/loader</filename>
doorgegeven. De opstartlader bepaalt of de interne
videopoort of de seriële poort de console wordt door
enkel naar de toestand van de optie <option>-h</option> te
kijken. Dit betekent dat als de optie <option>-D</option>,
maar niet de optie <option>-h</option> in
<filename>/boot.config</filename> gespecificeerd wordt, de
seriële poort alleen tijdens het opstartblok als
console gebruikt kan worden, de opstartlader gebruikt het
interne videoscherm als console.</para>
</step>
<step>
<para>Start de machine op.</para>
<para>Als &os; gestart wordt, tonen de opstartblokken de
inhoud van <filename>/boot.config</filename> op de
console. Bijvoorbeeld:</para>
<screen>/boot.config: -P
Keyboard: no</screen>
<para>De tweede regel verschijnt alleen als
<option>-P</option> in <filename>/boot.config</filename>
staat en aangegeven wordt of het toetsenbord aanwezig of
afwezig is. Deze berichten gaan of naar de seriële of
interne console of naar beide, afhankelijk van de optie in
<filename>/boot.config</filename>.</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Opties</entry>
<entry>Bericht gaat naar</entry>
</row>
</thead>
<tbody>
<row>
<entry>geen</entry>
<entry>interne console</entry>
</row>
<row>
<entry><option>-h</option></entry>
<entry>seriële console</entry>
</row>
<row>
<entry><option>-D</option></entry>
<entry>seriële en interne consoles</entry>
</row>
<row>
<entry><option>-Dh</option></entry>
<entry>seriële en interne consoles</entry>
</row>
<row>
<entry><option>-P</option>, toetsenbord aanwezig</entry>
<entry>interne console</entry>
</row>
<row>
<entry><option>-P</option>, toetsenbord afwezig</entry>
<entry>seriële console</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Na de bovenstaande berichten is er een korte pauze
voordat de opstartblokken doorgaan met het laden van de
opstartlader en voordat er verdere berichten op de console
worden afgebeeld. Normaalgesproken hoeven de
opstartblokken niet onderbroken te worden, maar het kan
gedaan worden om er zeker van te zijn dat alles goed is
ingesteld.</para>
<para>Om het opstartproces te onderbreken, kan op elke andere
toets dan <keycap>Enter</keycap> gedrukt worden. De
opstartblokken vragen dan om verdere actie. Er verschijnt
iets als het volgende:</para>
<screen>&gt;&gt; FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:</screen>
<para>Controleer of de bovenstaande boodschap naar de
seriële of interne console of beide gaat, naar gelang
de opties in <filename>/boot.config</filename>. Indien de
boodschap op de juiste console verschijnt kan op
<keycap>Enter</keycap> gedrukt worden om het opstartproces
voort te zetten.</para>
<para>Als de seriële console gewenst is maar de prompt
niet op de seriële terminal verschijnt, is er iets mis
met de instellingen. Voer in de tussentijd
<option>-h</option> in en druk op <keycap>Enter</keycap> of
<keycap>Return</keycap> (indien mogelijk) om aan het
opstartblok (en vervolgens de opstartlader en de kernel) te
vertellen dat de seriële poort console moet worden.
Controleer als het systeem draait wat er verkeerd
ging.</para>
</step>
</procedure>
<para>Nadat de opstartlader is geladen en het derde stadium van
het opstartproces bereikt is, kan er nog steeds gewisseld
worden tussen de interne console en de seriële console
door de juiste omgevingsvariabelen in de opstartlader in te
stellen. Zie <xref linkend="serialconsole-loader"/>.</para>
</sect2>
<sect2 id="serialconsole-summary">
<title>Samenvatting</title>
<para>Hieronder volgt een samenvatting van de verschillende
instellingen die in deze sectie en de uiteindelijk gekozen
console beschreven zijn.</para>
<sect3>
<title>Geval 1: vlaggen ingesteld op 0x10 voor
<devicename>sio</devicename></title>
<programlisting>device sio0 at isa? port IO_COM1 flags 0x10 irq 4</programlisting>
<informaltable frame="none" pgwide="1">
<tgroup cols="4">
<thead>
<row>
<entry align="left">Opties in /boot.config</entry>
<entry align="left">Console tijdens de opstartblokken</entry>
<entry align="left">Console tijdens de opstartlader</entry>
<entry align="left">Console in kernel</entry>
</row>
</thead>
<tbody>
<row>
<entry>niets</entry>
<entry>intern</entry>
<entry>intern</entry>
<entry>intern</entry>
</row>
<row>
<entry><option>-h</option></entry>
<entry>serieel</entry>
<entry>serieel</entry>
<entry>serieel</entry>
</row>
<row>
<entry><option>-D</option></entry>
<entry>serieel en intern</entry>
<entry>intern</entry>
<entry>intern</entry>
</row>
<row>
<entry><option>-Dh</option></entry>
<entry>serieel en intern</entry>
<entry>serieel</entry>
<entry>serieel</entry>
</row>
<row>
<entry><option>-P</option>, toetsenbord aanwezig</entry>
<entry>intern</entry>
<entry>intern</entry>
<entry>intern</entry>
</row>
<row>
<entry><option>-P</option>, toetsenbord afwezig</entry>
<entry>serieel en intern</entry>
<entry>serieel</entry>
<entry>serieel</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
<sect3>
<title>Geval 2: vlaggen ingesteld op 0x30 voor
<devicename>sio</devicename></title>
<programlisting>device sio0 at isa? port IO_COM1 flags 0x30 irq 4</programlisting>
<informaltable frame="none" pgwide="1">
<tgroup cols="4">
<thead>
<row>
<entry>Opties in /boot.config</entry>
<entry>Console tijdens de opstartblokken</entry>
<entry>Console tijdens de opstartlader</entry>
<entry>Console in kernel</entry>
</row>
</thead>
<tbody>
<row>
<entry>niets</entry>
<entry>intern</entry>
<entry>intern</entry>
<entry>serieel</entry>
</row>
<row>
<entry><option>-h</option></entry>
<entry>serieel</entry>
<entry>serieel</entry>
<entry>serieel</entry>
</row>
<row>
<entry><option>-D</option></entry>
<entry>serieel en intern</entry>
<entry>intern</entry>
<entry>serieel</entry>
</row>
<row>
<entry><option>-Dh</option></entry>
<entry>serieel en intern</entry>
<entry>serieel</entry>
<entry>serieel</entry>
</row>
<row>
<entry><option>-P</option>, toetsenbord aanwezig</entry>
<entry>intern</entry>
<entry>intern</entry>
<entry>serieel</entry>
</row>
<row>
<entry><option>-P</option>, toetsenbord afwezig</entry>
<entry>serieel en intern</entry>
<entry>serieel</entry>
<entry>serieel</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect2>
<sect2 id="serialconsole-tips">
<title>Tips voor de seriële console</title>
<sect3>
<title>Een hogere snelheid voor de seriële poort
instellen</title>
<para>Standaard zijn de instellingen van de seriële poort:
9600 baud, 8 bits, geen pariteit, en 1 stopbit. Indien het
wenselijk is om de snelheid te veranderen, zijn de volgened
opties beschikbaar:</para>
<itemizedlist>
<listitem>
<para>Hercompileer de opstart blokken met
<makevar>BOOT_COMCONSOLE_SPEED</makevar> ingesteld op de
nieuwe console snelheid. Zie <xref linkend="serialconsole-com2"/>
voor gedetailleerde instructies over het bouwen en
installeren van nieuwe opstartblokken.</para>
<para>Als de seriële poort anders is gespecificeerd dan
met <option>-h</option> bij het opstarten, of als de
seriële console die gebruikt wordt door de kernel
anders is dan die gebruikt wordt door de opstart blokken,
dan moet de volgende optie aan het kernel instellingen
bestand worden toegevoegd en moet de kernel opnieuw
gecompileerd worden:</para>
<programlisting>options CONSPEED=19200</programlisting>
</listitem>
<listitem>
<para>Gebruik de <option>-S</option> opstartoptie van de
kernel. De optie <option>-S</option> kan worden
toegevoegd aan het bestand
<filename>/boot.config</filename>. Zie de handleiding
&man.boot.8; voor een beschrijving over hoe opties kunnen
worden toegevoegd aan <filename>/boot.conf</filename>, en
welke opties ondersteund worden.</para>
</listitem>
<listitem>
<para>Zet de <varname>comconsole_speed</varname> optie in
het <filename>/boot/loader.conf</filename> bestand.</para>
<para>Deze optie is ervan afhankelijk dat de
<varname>console</varname>, <varname>boot_serial</varname>
en <varname>boot_multicons</varname> ingesteld staan in
<filename>/boot/loader.conf</filename>. Een voorbeeld
van hoe <varname>comconsole_speed</varname> gebruikt kan
worden om de console snelheid aan te passen:</para>
<programlisting>boot_multicons="YES"
boot_serial="YES"
console_speed="115200"
console="comconsole,vidconsole"</programlisting>
</listitem>
</itemizedlist>
</sect3>
<sect3 id="serialconsole-com2">
<title>Een andere seriële poort dan
<devicename>sio0</devicename> voor de console
gebruiken</title>
<para>Het gebruik van een andere poort dan
<devicename>sio</devicename> vergt wat hercompileren. Indien
het gewenst is om een andere seriële poort te gebruiken,
hercompileer dan de opstartblokken, de opstartlader en de
kernel als volgt:</para>
<procedure>
<step>
<para>De broncode van de kernel moet beschikbaar zijn.
Zie <xref linkend="updating-upgrading"/>;</para>
</step>
<step>
<para>Bewerk <filename>/etc/make.conf</filename> en stel
<literal>BOOT_COMCONSOLE_PORT</literal> in op het adres
van de te gebruiken poort (0x3F8, 0x2F8, 0x3E8 of 0x2E8).
Alleen <devicename>sio0</devicename> tot en met
<devicename>sio3</devicename>
(<devicename>COM1</devicename> tot en met
<devicename>COM4</devicename>) zijn te gebruiken.
Seriële kaarten met meerdere poorten werken niet.
Interrupts instellen is niet nodig;</para>
</step>
<step>
<para>Maak een aangepast kernelinstellingenbestand aan en
voeg de juiste vlaggen toe voor de te gebruiken
seriële poort. Als bijvoorbeeld
<devicename>sio1</devicename>
(<devicename>COM2</devicename>) de console moet
worden:</para>
<programlisting>device sio1 at isa? port IO_COM2 flags 0x10 irq 3</programlisting>
<para>Alternatief:</para>
<programlisting>device sio1 at isa? port IO_COM2 flags 0x30 irq 3</programlisting>
<para>Stel de consolevlaggen voor de andere seriële
poorten niet in;</para>
</step>
<step>
<para>Hercompileer en installeer de opstartblokken en de
opstartlader:</para>
<screen>&prompt.root; <userinput>cd /sys/boot</userinput>
&prompt.root; <userinput>make clean</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>make install</userinput></screen>
</step>
<step>
<para>Herbouw en installeer de kernel;</para>
</step>
<step>
<para>Schrijf de opstartblokken met &man.disklabel.8; naar
de opstartschijf en start met de nieuwe kernel op.</para>
</step>
</procedure>
</sect3>
<sect3 id="serialconsole-ddb">
<title>De debugger DDB gebruiken via de seriële
verbinding</title>
<para>Als het wenselijk is om vanuit de seriële console in
de kerneldebugger te vallen - nuttig voor diagnose op
afstand, maar ook gevaarlijk indien een onbedoelde BREAK op
de seriële poort wordt gegenereerd! - compileer de
kernel dan met de volgende opties:</para>
<programlisting>options BREAK_TO_DEBUGGER
options DDB</programlisting>
</sect3>
<sect3>
<title>Een aanmeldprompt op de seriële console
krijgen</title>
<para>Hoewel dit niet nodig is, kan het gewenst zijn om een
<emphasis>aanmeld</emphasis>prompt over de seriële lijn
te krijgen, nu het mogelijk is om opstartboodschappen te zien
en de kerneldebugsessie door de seriële console betreden
kan worden. Hier volgt hoe het te doen.</para>
<para>Open het bestand <filename>/etc/ttys</filename> met een
tekstverwerker en zoek de volgende regels:</para>
<programlisting>ttyu0 "/usr/libexec/getty std.9600" unknown off secure
ttyu1 "/usr/libexec/getty std.9600" unknown off secure
ttyu2 "/usr/libexec/getty std.9600" unknown off secure
ttyu3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
<para><devicename>ttyu0</devicename> tot en met
<devicename>ttyu3</devicename> komen overeen met
<devicename>COM1</devicename> tot en met
<devicename>COM4</devicename>. Wijzig <literal>off</literal>
in <literal>on</literal> voor de gewenste poort. Als de
snelheid van de seriële poort is gewijzigd, wijzig dan
<literal>std.9600</literal> zodat het met de huidige
instelling overeenkomt, bijvoorbeeld
<literal>std.19200</literal>.</para>
<para>Het kan ook wenselijk zijn om het terminaltype te
wijzigen van <literal>unknown</literal> naar het eigenlijke
type van de seriële terminal.</para>
<para>Voer <literal>kill -HUP 1</literal> uit na het wijzigen
van het bestand om de wijzigingen actief te maken.</para>
</sect3>
</sect2>
<sect2 id="serialconsole-loader">
<title>De console vanuit de opstartlader veranderen</title>
<para>De vorige secties beschreven hoe de seriële console
ingesteld kan worden door het instellen van het opstartblok.
Deze sectie toont dat het mogelijk is om de console te
specificeren door het invoeren van enkele opdrachten en
omgevingsvariabelen in de opstartlader. Aangezien de
opstartlader tijdens het derde stadium van het opstartproces
wordt geactiveerd, na het opstartblok, overheersen de
instellingen in de opstartlader de instellingen in het
opstartblok.</para>
<sect3>
<title>De seriële console instellen</title>
<para>Het is mogelijk om de opstartlader en de kernel gebruik te
laten maken van de seriële console door slechts
één regel naar
<filename>/boot/loader.conf</filename> te schrijven:</para>
<programlisting>console="comconsole"</programlisting>
<para>Dit heeft effect ongeacht de instellingen in het
opstartblok die in de vorige sectie zijn besproken.</para>
<para>Het is verstandig om bovenstaande regel de eerste regel
van <filename>/boot/loader.conf</filename> te maken om de
opstartboodschappen zo vroeg mogelijk op de seriële
console te kunnen zien.</para>
<para>Evenzo kan de interne videoconsole worden gespecificeerd
met:</para>
<programlisting>console="vidconsole"</programlisting>
<para>Indien de omgevingsvariabele <envar>console</envar> van
de opstartlader niet ingesteld wordt, gebruikt de
opstartlader, en vervolgens de kernel, de console die door de
optie <option>-h</option> in het opstartblok wordt
aangegeven.</para>
<para>De console kan worden gespecificeerd in
<filename>/boot/looader.conf.local</filename> of in
<filename>/boot/loader.conf</filename>.</para>
<para>Zie &man.loader.conf.5; voor meer informatie.</para>
<note>
<para>Momenteel heeft de opstartlader een optie die gelijk is
aan de optie <option>-P</option> van het opstartblok en is
er geen voorziening om automatisch de interne console en de
seriële console te selecteren afhankelijk van de
aanwezigheid van een toetsenbord.</para>
</note>
</sect3>
<sect3>
<title>Een andere seriële poort dan
<devicename>sio</devicename> voor de console
gebruiken</title>
<para>Compileer de opstartlader opnieuw om een andere
seriële poort dan <devicename>sio</devicename> voor de
seriële console te gebruiken. Volg de procedure zoals
beschreven in <xref linkend="serialconsole-com2"/>.</para>
</sect3>
</sect2>
<sect2 id="serialconsole-caveats">
<title>Valkuilen</title>
<para>De doelstelling van dit stuk is beheerders in staat te
stellen om toegewijde servers te installeren die geen grafische
hardware of aangesloten toetsenborden nodig hebben. Hoewel de
meeste systemen zonder toetsenbord opstarten, zijn er helaas
aardig wat die niet zonder een grafische adapter opstarten.
Machines met een AMI BIOS kunnen ingesteld worden om zonder
grafische adapter op te starten door de instelling
<quote>graphics adapter</quote> in de CMOS-instellingen te
wijzigen in <quote>Not installed</quote>.</para>
<para>De meeste systemen ondersteunen deze optie echter niet en
weigeren om zonder weergavehardware op te starten. Voor deze
machines is het nodig om een of andere grafische kaart in een
systeem te laten (zelfs al is het een aftandse monochrome
kaart) hoewel het niet nodig is om een beeldscherm aan te
sluiten. Ook kan geprobeerd worden om een AMI BIOS te
installeren.</para>
</sect2>
</sect1>
</chapter>