Seriële communicatieRenéLadanVertaald door Overzichtseriële communicatie&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 terminal 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.Na het lezen van dit hoofdstuk weet de lezer:Hoe terminals met een &os;-systeem te verbinden;Hoe een modem te gebruiken om naar computers op afstand
te bellen;Hoe het mogelijk te maken voor gebruikers op afstand om
met een modem op een systeem aan te melden;Hoe een systeem van een seriële console op te
starten.Veronderstelde voorkennis:Weten hoe een nieuwe kernel ingesteld en
geïnstalleerd wordt ();Begrijpen hoe rechten en processen in &unix; werken (
);De beschikking hebben over het technische handboek voor
de hardware (modem of meerpoortige kaart) die gebruikt wordt
met &os;.InleidingVanaf &os; 8.0 zijn de seriële poorten
hernoemd van
/dev/cuadN naar
/dev/cuauN en
van
/dev/ttydN naar
/dev/ttyuN.
&os; 7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.Terminologiebits per secondebpsBits per seconde: de snelheid waarmee gegevens
verstuurd wordenDTEDTEData Terminal Equipment (apparatuur voor
gegevensterminal): bijvoorbeeld een computerDCEDCEData Communications Equipment (apparatuur voor
gegevenscommunicatie): een modemRS-232RS-232C-kabelsEIA standaard voor hardwarematige seriële
communicatieDeze sectie gebruikt niet de term baud
als er over snelheden van gegevenscommunicatie gesproken wordt.
Baud verwijst naar het aantal elektrische toestandsovergangen
dat binnen een tijdsperiode gemaakt mag worden,
bps (bits per seconde) is de
correcte term om te gebruiken (de oude
mopperkonten schijnen zich er niet erg druk over te
maken).Kabels en poortenOm 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.KabelsEr zijn verschillende soorten seriële kabels. De
twee meest voorkomende types in deze context zijn
nulmodem-kabels en standaard (rechte)
RS-232-kabels. De documentatie van de hardware beschrijft
het type kabel dat nodig is.Nulmodem-kabelsnulmodem-kabelEen nulmodem-kabel geeft sommige signalen, zoals
Aardesignaal recht door, maar kruist andere
signalen. Bijvoorbeeld, de
Verzonden Gegevens-pin aan de ene kant gaat
naar de Ontvangen Gegevens-pin aan de andere
kant.Een nulmodem-kabel voor het gebruik met terminals kan
ook zelf worden gemaakt (bijvoorbeeld voor
kwaliteitsdoeleinden). Deze tabel toont de RS-232C signalen en de
pinnummers op een DB-25-aansluiting. De standaard vereist
ook een Aardebescherming 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.
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.Bovenstaande ontwerpen lijken het populairst. In een
andere variatie (uitgelegd in het boek RS-232
Made Easy) worden de volgende verbindingen
gemaakt: SG met SG, TD met RD, RTS en CTS met DCD, DTR met
DSR en vice-versa.Standaard RS-232C-kabelsRS-232C-kabelsEen standaard seriële kabel laat alle
RS-232C-signalen recht door. Dit betekent dat de
Verzonden Gegevens-pin aan de ene kant naar
de Verzonden Gegevens-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.PoortenSerië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;.Soorten poortenEr 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.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.In documentatie die bij hardware zit, staan
specificaties over het soort poort dat gebruikt wordt.
Vaak volstaat ook een visuele inspectie van een
poort.PoortnamenIn &os; wordt elke seriële poort benaderd door een
ingang in de map /dev. Er zijn twee
verschillende soorten ingangen:Inbelpoorten heten
/dev/ttyuN
waarbij N 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.Uitbelpoorten heten
/dev/cuauN.
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.Als er een terminal met de eerste seriële poort
(COM1 in &ms-dos;) verbonden is,
wordt /dev/ttyu0 gebruikt om naar de
terminal te verwijzen. Als een terminal op de tweede
seriële poort is aangesloten (ook bekend als
COM2), dient
/dev/ttyu1 gebruikt te worden,
enzovoort.Kernelinstellingen&os; ondersteunt standaard vier seriële poorten. In
de wereld van &ms-dos; staan ze bekend als
COM1, COM2,
COM3 en COM4.
&os; ondersteunt momenteel domme 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.Bekijk de boodschappen tijdens het opstarten van de kernel
om te zien of de kernel seriële poorten herkent of gebruik
het commando /sbin/dmesg om de
opstartboodschappen van de kernel te herhalen. Kijk in het
bijzonder naar boodschappen die met de tekens
uart beginnen als u &os; 8.0 of nieuwer
gebruikt, of sio voor &os; 7.4 of ouder.Gebruik het volgende commando om alleen de boodschappen
die het woord sio bevatten te zien:&prompt.root; /sbin/dmesg | grep 'uart'
&prompt.root; /sbin/dmesg | grep 'sio'Voor bijvoorbeeld een &os; 7.X
systeem met vier seriële poorten zijn dit de opstartboodschappen van de
kernel die specifiek zijn voor de seriële poorten: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 16550AAls een kernel niet alle seriële poorten herkent, dan
dient waarschijnlijk de kernel aangepast te worden in het
bestand /boot/device.hints. Het is ook
mogelijk regels uit te schakelen of volledig te verwijderen
voor apparaten die niet aanwezig zijn.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.port IO_COM1 is een substitutie voor
port 0x3f8, IO_COM2 is
0x2f8, IO_COM3 is
0x3e8 en IO_COM4 is
0x2e8, 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
geen 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).Speciale apparaatbestandenDe meeste apparaten in de kernel worden benaderd met
speciale apparaatbestanden die in de map
/dev staan. De apparaten
sio worden benaderd met de apparaten
/dev/ttyuN
(inbellen) en
/dev/cuauN
(uitbellen). &os; biedt ook initialisatie-apparaten
(/dev/ttyuN.init
en
/dev/cuauN.init)
en slotapparaten
(/dev/ttyuN.lock
en
/dev/cuadN.lock).
De initialisatie-apparaten worden gebruikt om telkens als een
poort wordt geopend de parameters van de communicatiepoorten te
initialiseren, zoals crtscts voor modems die
gebruik maken van RTS/CTS-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.De seriële poort instellenttyucuauHet apparaat
ttyuN (of
cuauN) 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:&prompt.root; stty -a -f /dev/ttyu1Als 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 initiële
toestand geopend te worden en die instellingen
veranderd te worden. Om bijvoorbeeld de
-modus, 8-bits-communicatie en
-gegevensstroombeheer voor apparaat
ttyu5 standaard aan te zetten:&prompt.root; stty -f /dev/ttyu5.init clocal cs8 ixon ixoffrc-bestandenrc.serialDe systeembrede initialisatie van de seriële apparaten
wordt beheerd in /etc/rc.d/serial. Dit
bestand heeft invloed op de standaardinstellingen van
seriële apparaten.Om te voorkomen dat bepaalde instellingen door een
applicatie worden veranderd, dienen wijzigingen aan het
slottoestand-apparaat te worden aangebracht. Om
bijvoorbeeld de snelheid van ttyu5
vast te zetten op 57600 bps:&prompt.root; stty -f /dev/ttyu5.lock 57600Nu blijft een applicatie die ttyu5
en de snelheid van de poort probeert te veranderen zitten op
57600 bps.Uiteraard dienen de apparaten voor de initiële
toestand en de slottoestand alleen voor het account
root schrijfbaar te zijn.TerminalsSeanKellyBijgedragen door Vanaf &os; 8.0 zijn de seriële poorten
hernoemd van
/dev/cuadN naar
/dev/cuauN en
van
/dev/ttydN naar
/dev/ttyuN.
&os; 7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.terminalsTerminals 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.Types terminals en ze gebruikenDe 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.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
xterm-venster in het X Window-systeem
gedraaid wordt.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.Er zijn drie soorten terminals voor &os;:Domme
terminals;PC's die als terminals
dienen;X-terminals.De overige subsecties beschrijven elk van deze
soorten.Domme terminalsDomme terminals zijn gespecialiseerde stukken hardware
die computers door seriële kabels kunnen verbinden. Ze
worden dom 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.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.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.PC's die als terminal dienenIndien een domme terminal 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 terminal-emulatie software om op
de computer te draaien.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.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;.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:&prompt.root; cu -l serial-port-deviceHierbij is serial-port-device de naam is
van de speciale apparaatnode die gebruikt wordt voor de
seriële poort op het systeem. Deze bestanden heten
/dev/cuauN.Het N gedeelte van de apparaatnaam is het
nummer van de seriële poort.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 COM1
noemt bij &os; meestal /dev/cuau0
genoemd wordt.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
comms/minicom.X-terminalsX-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.X-terminals worden slechts voor de compleetheid
geïntroduceerd. Dit hoofdstuk behandelt echter
niet de installatie, het instellen of
het gebruik van X-terminals.InstellenDeze 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.In staat beschreven dat het proces
init 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
init wordt uitgevoerd is het lezen van het
bestand /etc/ttys en het starten van een
proces getty op de beschikbare terminals.
Het proces getty is verantwoordelijk voor
het lezen van een aanmeldnaam en het starten van het programma
login.Voer volgende stappen als root uit om
terminals voor een &os;-systeem in te stellen:Voeg een regel aan /etc/ttys toe
voor de ingang in de map /dev voor een
seriële poort als deze er nog niet is;Specificeer dat /usr/libexec/getty
uitgevoerd moet worden op de poort en het juiste type
getty van het bestand
/etc/gettytab;Specificeer het standaard terminaltype;Stel de poort in op on;Specificeer of de poort secure dient te
zijn;init dient
/etc/ttys opnieuw te lezen.Als optionele stap kan het wenselijk zijn om een eigen type
getty aan te maken voor stap 2 door
een ingang in /etc/gettytab te maken. Dit
wordt hier niet beschreven. Meer informatie staat in de
hulppagina's &man.gettytab.5; en &man.getty.8;.Een regel aan /etc/ttys
toevoegenHet bestand /etc/ttys bevat alle
poorten op een &os;-systeem waar aanmelden is toegestaan. De
eerste virtuele console ttyv0 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 /dev-regel van de
seriële poort zonder het
/dev-gedeelte
(/dev/ttyv0 wordt bijvoorbeeld
ttyv0).Een standaard &os; installatie bevat een bestand
/etc/ttys met ondersteuning voor de
eerste vier seriële poorten:
ttyu0 tot en met
ttyu3. Indien er aan een van deze
poorten een terminal wordt gekoppeld is het niet nodig om een
regel toe te voegen.Terminalregels aan /etc/ttys
toevoegenStel dat er twee terminals verbonden moeten worden met
een systeem: een Wyse-50 en een oude 286 IBM-PC waarop
Procomm 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
/etc/ttys zien er als volgt
uit:ttyu1 "/usr/libexec getty std.38400" wy50 on insecure
ttyu5 "/usr/libexec/getty std.19200" vt100 on insecureHet eerste veld specificeert normaalgesproken de
naam van het speciale terminalbestand zoals dat in
/dev staat.Het tweede veld bevat het commando dat voor deze
regel uitgevoerd moet worden, meestal is dit
&man.getty.8;. getty initialiseert
en opent een lijn, stelt een snelheid in, vraagt om een
gebruikersnaam en draait daarna het programma
&man.login.1;.Het programma getty accepteert
één (optionele) parameter op de
opdrachtregel, het type
getty. Een type
getty stelt karakteristieken
op een terminallijn in, zoals de bps-snelheid en de
pariteit. Het programma getty leest
deze karakteristieken uit het bestand
/etc/gettytab.Het bestand /etc/gettytab
bevat een hoop regels voor zowel oude als nieuwe
terminallijnen. In bijna alle gevallen werken de
regels die met de tekst std beginnen
voor vast aangesloten terminals. Deze regels negeren
pariteit. Er is een std-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.Zorg er tijdens het instellen van het type
getty in het bestand
/etc/ttys voor dat de
communicatie-instellingen op de terminal ermee
over komen.In bovenstaand voorbeeld gebruikt de Wyse-50 geen
pariteit en maakt deze verbinding met 38400 bps.
De 286 PC gebruikt geen pariteit en maakt
verbinding met 19200 bps.Het derde veld bevat het type terminal dat
normaalgesproken is verbonden met de tty-lijn. Voor
inbelpoorten wordt voor dit veld normaalgesproken
unknown of dialup
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.In bovenstaand voorbeeld gebruikt de Wyse-50 het
echte terminaltype, terwijl de 286 PC die
Procomm draait zo ingesteld
wordt dat deze een VT-100 emuleert.Het vierde veld geeft aan of de poort aan moet
staan. Indien hier on staat, start
init het programma in het tweede
veld, getty, op. Indien hier
off staat wordt
getty niet uitgevoerd en kan er
daarom niet op de poort worden aangemeld.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
root (of iedere andere account met
een gebruikers-id 0) aan te laten melden via deze poort.
Onveilige poorten staan aanmelden door
root 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.Het wordt sterk aangeraden om
insecure zelfs voor terminals achter
gesloten deuren te gebruiken. Het is vrij gemakkelijk
om aan te melden en su te gebruiken
indien rootrechten nodig zijn.init forceren om
/etc/ttys opnieuw te lezenStuur na het maken van de benodigde veranderingen aan het
bestand /etc/ttys een SIGHUP-signaal
(ophangen) naar het proces init om het te
dwingen het instellingenbestand opnieuw te lezen:&prompt.root; kill -HUP 1init is altijd het eerste proces dat
op een systeem gedraaid wordt, daarom heeft het altijd PID
1.Indien alles juist is ingesteld, alle kabels juist zijn
aangesloten en alle terminals aanstaan, draait er op elke
terminal een proces getty en is er een
aanmeldprompt zichtbaar op de terminals.Problemen met een verbinding oplossenZelfs 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.Er verschijnt geen aanmeldpromptControleer 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.Controleer of de kabel stevig verbonden is met zowel de
terminal als de &os; computer en dat de kabel van het juiste
soort is.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.Controleer of er een proces getty
draait dat de terminal bedient. Om bijvoorbeeld een lijst
van draaiende getty-processen te
krijgen:&prompt.root; ps -axww|grep gettyEr zou een regel voor de terminal zichtbaar moeten zijn.
Het volgende scherm geeft bijvoorbeeld weer dat
getty op de tweede seriële poort
ttyu1 draait en de regel
std.38400 in
/etc/gettytab gebruikt:22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyu1Indien er geen proces getty draait,
controleer dan of de poort in /etc/ttys
aan staat. Draai kill -HUP 1 nadat het
bestand ttys is gewijzigd.Indien het proces getty 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
/etc/ttys van
std.38400 in
3wire.38400 te veranderen (draai na het
wijzigen van /etc/ttyskill
-HUP 1). De regel 3wire is
vergelijkbaar met de regel std, maar
negeert hardwarematige handshaking. Het kan nodig zijn om de
baudsnelheid te verlagen of om softwarematig doorvoerbeheer
aan te zetten als 3wire gebruikt wordt, om
overspoelde buffers te voorkomen.Als er rommel in plaats van een aanmeldprompt
verschijntControleer of de terminal en &os; dezelfde bps-snelheid
en pariteit gebruiken. Controleer de
getty-processen op het gebruik van het
juiste type getty. Indien dit niet het
geval is, wijzig dan /etc/ttys en draai
kill -HUP 1.Tekens verschijnen dubbel en/of het wachtwoord
verschijnt tijdens de invoerWijzig de terminal (of de terminalemulatiesoftware) van
half duplex of local echo naar
full duplex.InbeldienstGuyHelmerBijgedragen door SeanKellyToevoegingen door Vanaf &os; 8.0 zijn de seriële poorten
hernoemd van
/dev/cuadN naar
/dev/cuauN en
van
/dev/ttydN naar
/dev/ttyuN.
&os; 7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.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.Externe en interne modemsExterne 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.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.Modems en kabelsmodemBij 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.
SignaalnamenAcroniemenNamenRDReceived Data (ontvangen gegevens)TDTransmitted Data (verzonden gegevens)DTRData Terminal Ready (gegevensterminal
gereed)DSRData Set Ready (gegevensverzameling
gereed)DCDData Carrier Detect (RS-232's detector voor
signaal lijn-ontvangen)SGSignal Ground (signaalaarde)RTSRequest to Send (verzoek om te zenden)CTSClear to Send (gereed om te zenden)
&os; heeft de signalen RTS en
CTS nodig voor doorstroombeheer bij
snelheden van meer dan 2400 bps, het signaal
CD om te bepalen wanneer een oproep
beantwoord of geannuleerd is, en het signaal
DTR 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.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.Overwegingen voor de seriële interface&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.Snel overzichtgettyNet als met terminals zet init een
getty-proces op voor elke seriële poort
die voor inbelverbindingen is ingesteld. Indien bijvoorbeeld
een modem aan /dev/ttyu0 is gekoppeld, kan
het commando ps ax het volgende
weergeven: 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyu0Wanneer een gebruiker naar de modemlijn belt en de modems
verbinding maken, wordt de CD-lijn (Carrier
Detect) door het modem gerapporteerd. De kernel merkt op dat
een draaggolf is gesignaleerd en laat getty
het openen van de poort voltooien. getty
stuurt een prompt login: met de initieel
gespecificeerde lijnsnelheid. getty 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 getty) de lijnsnelheden aan te
passen totdat het redelijke karakters ontvangt./usr/bin/loginNadat een gebruikersnaam is opgegeven voert
getty/usr/bin/login
uit, die het aanmelden voltooit door te vragen naar het
wachtwoord van een gebruiker en daarna de shell van een
gebruiker op te starten.InstellingenbestandenEr zijn drie systeeminstellingenbestanden in de map
/etc die waarschijnlijk gewijzigd moeten
worden om inbellen op een &os;-systeem toe te staan. Het
eerste bestand, /etc/gettytab, bevat
informatie om de daemon /usr/libexec/getty
in te stellen. Het tweede bestand,
/etc/ttys bevat informatie voor
/sbin/init dat vertelt op welke
tty apparaten een proces
getty moet draaien. Als laatste kunnen in
het script /etc/rc.d/serial commando's
geplaatst worden om poorten te initialiseren.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
Emacs, hun methode om het scherm te
tekenen niet aan om hun reactie beter te maken voor langzame
verbindingen.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 kbps) met een modem ervoor dat een modem de
RS-232-interface op 19,2 kbps laat draaien, terwijl
verbindingen op 2400 bps ervoor zorgen dat de
RS-232-interface van een modem op 2400 bps draait. Omdat
getty meldingen over de verbindingssnelheid
van een gegeven modem niet begrijpt, geeft
getty een bericht login: 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 Enter
toets ingedrukt moet worden totdat een herkenbaar prompt
zichtbaar is. Indien de gegevenssnelheden niet overeenkomen,
ziet getty alles wat een gebruiker intypt
als rommel, probeert het op de volgende snelheid
over te gaan en het geeft opnieuw het prompt
login:. 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
vaste-snelheid, maar een gebruiker met een
langzame verbinding zou betere interactiviteit moeten beleven
met programma's die met een volledig scherm werken.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./etc/gettytab/etc/gettytab/etc/gettytab 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.Vaste snelheid instellenIndien 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
/etc/gettytab.Overeenkomstige snelheid instellenIn /etc/gettytab dient een regel
ingesteld te worden om getty informatie
te geven over de snelheden die voor het modem gewenst zijn.
Indien een 2400 bps modem aanwezig is, kan
waarschijnlijk de bestaande regel D2400
gebruikt worden.#
# 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:Indien er een modem voor hogere snelheden aanwezig is,
dient er waarschijnlijk een regel aan
/etc/gettytab toegevoegd te worden.
Hieronder staat een regel die gebruikt kan worden voor een
14,4 kbps modem met een maximale interface-snelheid
van 19,2 kbps:#
# 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:Dit resulteert in 8-bits verbindingen zonder
pariteit.Het bovenstaande voorbeeld begint met een
communicatiesnelheid van 19,2 kbps (voor een
V.32bis-verbinding), daarna doorloopt het 9600 bps
(voor V.32), 2400 bps, 1200 bps, 300 bps en
daarna weer 19,2 kbps. Het doorlopen van de
communicatiesnelheid is met de mogelijkheid
nx= (volgende tabel)
geïmplementeerd. Elk van deze regels gebruikt een
regel tc= (tabel
continuëren) om de rest van de
standaard-instellingen voor een bepaalde
gegevenssnelheid op te pikken.Indien er een 28,8 kbps modem aanwezig is en/of
het gewenst is om voordeel uit de compressie met een
14,4 kbps te halen, is het nodig om hogere
communicatiesnelheden dan 19,2 kbps te gebruiken.
Hieronder staat een voorbeeld van een regel voor
gettytab die begint met
57,6 kbps.#
# 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:Indien een CPU langzaam of een systeem zwaar belast is
en er geen seriële poorten gebaseerd op 16550A
aanwezig zijn, kunnen er siosilo-fouten optreden bij
57,6 kbps./etc/ttys/etc/ttysHet instellen van het bestand
/etc/ttys staat beschreven in . Het instellen van modems is
vergelijkbaar maar er moet een ander argument aan
getty doorgegeven worden en er moet een
ander type terminal doorgegeven te worden. Het algemene
formaat voor zowel vaste snelheid als overeenkomstige
snelheid is:ttyu0 "/usr/libexec/getty xxx" dialup onHet eerste item op bovenstaande regel is het speciale
apparaatbestand. ttyu0 betekent dat
/dev/ttyu0 het bestand is dat door
getty in de gaten wordt gehouden. Het
tweede item,
"/usr/libexec/gettyxxx"
(xxx wordt vervangen door de
initiële mogelijkheden van
gettytab) is het proces dat door
init op het apparaat gedraaid wordt. Het
derde item, dialup, is het standaard
terminaltype. De vierde parameter, on,
geeft aan init aan dat de lijn
operationeel is. Er kan een vijfde parameter zijn,
secure, maar gebruik deze alleen voor
terminals die fysiek veilig zijn (zoals de
systeemconsole).Het standaard terminaltype (dialup in
bovenstaand voorbeeld) mag afhangen van lokale voorkeuren.
Het traditionele standaard terminaltype voor inbellijnen is
dialup, zodat gebruikers hun
aanmeldscripts kunnen aanpassen om op te merken wanneer het
terminal dialup is en automatisch hun
terminaltype kunnen aanpassen. Wellicht is het makkelijker
om vt102 als het standaard terminaltype te
specificeren, aangezien gebruikers gewoon VT102-emulatie op
hun systemen-op-afstand gebruiken.Nadat /etc/ttys gewijzigd is, kan
aan het proces init een signaal
HUP gestuurd worden om het bestand opnieuw
te laten lezen. Gebruik volgende opdracht om het signaal te
versturen:&prompt.root; kill -HUP 1Indien 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 init verstuurd wordt.Vaste snelheid instellenVoor het instellen van een vaste snelheid dient de
regel in ttys een vaste snelheid door
te geven aan getty. Voor een modem met
een vaste poortsnelheid van 19,2 kbps kan de regel in
ttys er als volgt uitzien:ttyu0 "/usr/libexec/getty std.19200" dialup onIndien een modem op een andere gegevenssnelheid is
ingesteld, dient de juiste waarde voor
std.snelheid
in plaats van std.19200 ingesteld te
worden. Gebruik een geldig type dat in
/etc/gettytab vermeld staat.Overeenkomstige snelheid instellenVoor het instellen van een overeenkomstige snelheid
dient de regel in ttys te verwijzen
naar regel met de juiste begin-auto-baud
(sic). Indien bijvoorbeeld de boven voorgestelde regel
voor een modem met een overeenkomstige snelheid die begint
met 19,2 kbps wordt toegevoegd (de regel in
gettytab die het beginpunt
V19200), kan de regel in
ttys er als volgt uitzien:ttyu0 "/usr/libexec/getty V19200" dialup on/etc/rc.d/serialrc-bestandenrc.serialHogesnelheidsmodems, zoals V.32, V.32bis, en V.34 modems,
moeten gebruik maken van hardwarematig
(RTS/CTS) gegevensstroombeheer. Er kunnen
stty-opdrachten aan
/etc/rc.d/serial toegevoegd worden om de
vlag voor hardwarematig gegevensstroombeheer in de kernel van
&os; voor modempoorten in te stellen.Om bijvoorbeeld de termios-vlag
crtscts op de apparaten die de in- en
uitbelapparaten initialiseren op de eerste seriële poort
(COM2) in te stellen, kunnen de
volgende regels aan /etc/rc.d/serial
worden toegevoegd:# Seriële poort initieel instellen
stty -f /dev/ttyu1.init crtscts
stty -f /dev/cuau1.init crtsctsModeminstellingenBij gebruik van een modem waarvan de parameters permanent
in niet-vluchtig RAM ingesteld kunnen worden, is er een
terminalprogramma (zoals Telix onder
&ms-dos; of tip onder &os;) nodig om
parameters in te stellen. Maak een verbinding met een modem met
dezelfde communicatiesnelheid als de initiële snelheid die
door getty gebruikt wordt en stel het
niet-vluchtige RAM van een modem in zodat aan deze voorwaarden
voldaan wordt:CD geldt tijdens
verbindingen;DTR geldt tijdens gebruik; het
loslaten van DTR hangt de verbinding op en stelt het modem
opnieuw in;gegevensstroombeheer door CTS
verzonden;gegevensstroombeheer met XON/XOFF
uitgezet;gegevensstroombeheer door RTS
ontvangen;Stille modus (geen resultaatcodes);Geen opdrachtecho.Kijk in de documentatie van een modem voor de benodigde
opdrachten en/of instellingen van DIP-schakelaars.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:ATZ
AT&C1;&D2&H1&I0&R2&WIn deze fase kunnen ook andere modeminstellingen aangepast
worden, zoals of het V.42bis en/of MNP5 compressie wordt
gebruiken.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:Schakelaar 1: UP: DTR NormalSchakelaar 2: N/A (Verbal Result Codes/Numeric Result
Codes)Schakelaar 3: UP: Suppress Result CodesSchakelaar 4: DOWN: Geen echo, offline
opdrachtenSchakelaar 5: UP: Auto AnswerSchakelaar 6: UP: Carrier Detect NormalSchakelaar 7: UP: Load NVRAM DefaultsSchakelaar 8: N/A (Smart Mode/Dumb Mode)Schakel resultaatcodes voor alle inbelmodems uit of
onderdruk ze om problemen te voorkomen die kunnen optreden als
getty abusievelijk een prompt
login: 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 getty
en het modem leiden.Vaste snelheid instellenStel 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:ATZ
AT&B1&WOvereenkomstige snelheid instellenStel 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:ATZ
AT&B2&WDe modeminstellingen controlerenDe 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 ATI5 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 ATZ gevolgd door
ATI4.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.Problemen oplossenHier volgen wat stappen die gevolgd kunnen worden om een
inbelmodem op een systeem te controleren.Een &os;-systeem controlerenVerbind een modem met een &os;-systeem, start het systeem
op en kijk, indien het modem lampjes bevat die de toestand
aangeven, of de DTR-indicator oplicht
als het prompt login: op de systeemconsole
verschijnt. Als het oplicht zou dit betekenen dat &os;
een getty-proces heeft gestart op de
juiste communicatiepoort en wacht op het modem om een gesprek
aan te nemen.Geef als de DTR-indicator niet
oplicht, na aanmelden op de console, de opdracht ps
ax om te zien of &os; probeert een
getty-proces op de juiste poort te
draaien. Er dienen tussen de weergegeven processen regels
zoals de onderstaande te verschijnen: 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyu0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyu1Er kan ook iets als het volgende verschijnen: 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyu0Als het modem nog geen gesprek heeft aangenomen, betekent
dit dat getty het openen van de
communicatiepoort voltooid heeft. Dit kan duiden op een
probleem met de bekabeling of op een verkeerd ingesteld modem
omdat getty niet in staat zou moeten zijn
om de communicatiepoort te openen totdat
CD (kiestoon) door het modem is
bevestigd.Indien er geen enkel getty-proces
verschijnt dat wacht op het openen van de gewenste poort
ttyuN,
controleer dan de regels in /etc/ttys op
vergissingen. Controleer ook het logboekbestand
/var/log/messages om te zien of er
logboekberichten van init of
getty met betrekking tot problemen zijn.
Indien er problemen zijn, controleer dan nogmaals de
instellingenbestanden /etc/ttys en
/etc/gettytab, alsook de betreffende
speciale apparaatbestanden /dev/ttyuN,
op vergissingen, ontbrekende regels of ontbrekende speciale
apparaatbestanden.Proberen om in te bellenProbeer 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
Enter te drukken. Probeer, indien er na een
tijd nog geen prompt login: verschijnt, een
BREAK 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
AT&B1 op een &usrobotics; &sportster;
modem).Controleer, indien er nog steeds geen prompt
login: verschijnt, nogmaals
/etc/gettytab en controleer of:De initiële specificatie die in
/etc/ttys voor de lijn staat
overeenkomt met een naam van een specificatie in
/etc/gettytab;Elke regel nx= overeenkomt met een
naam van een andere specificatie in
gettytab;Elke regel tc= overeenkomt met een
naam van een andere specificatie in
gettytab.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 DTR bevestigd
is. Controleer, indien het modem juist ingesteld lijkt te
zijn, of de DTR-lijn bevestigd is door de
indicatielampjes van het modem te controleren (indien die
aanwezig zijn).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.UitbeldienstVanaf &os; 8.0 zijn de seriële poorten
hernoemd van
/dev/cuadN naar
/dev/cuauN en
van
/dev/ttydN naar
/dev/ttyuN.
&os; 7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.uitbeldienstDe 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.Dit is nuttig bij het aanmelden op een BBS.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.Een gewone Hayes-modem wordt niet ondersteund, wat
nu?In feite is de hulppagina voor tip
verouderd. Er is al een generiek belprogramma voor Hayes
ingebouwd. Gebruik at=hayes in het bestand
/etc/remote.Het stuurprogramma voor Hayes is niet slim genoeg om enkele
geavanceerde eigenschappen van nieuwere modems te herkennen.
Berichten als BUSY (in gesprek),
NO DIALTONE (geen kiestoon) of
CONNECT 115200 (verbinden 115200) verwarren
het stuurprogramma. Schakel deze berichten uit bij gebruik van
tip (door middel van
ATX0&W).Verder is de beltimeout voor tip 60
seconden. Het modem dient een lagere waarde te gebruiken om te
voorkomen dat tip denkt dat er een probleem
met de communicatie is. Probeer
ATS7=45&W.Hoe deze AT-commando's in te geven?/etc/remoteMaak een zogenaamde directe regel in het
bestand /etc/remote aan. Als het modem
bijvoorbeeld aan de eerste seriële poort,
/dev/cuau0, is gekoppeld, voeg dan de
volgende regel toe:cuau0:dv=/dev/cuau0:br#19200:pa=noneGebruik voor de mogelijkheid br de
hoogst ondersteunde snelheid van het modem in bps. Typ hierna
tip cuau0 om een verbinding met het modem te
maken.Als alternatief kan cu als
root met het volgende commando gebruikt
worden:&prompt.root; cu
-llijn
-ssnelheidDe waarde lijn is de
seriële poort (bijvoorbeeld
/dev/cuau0) en
snelheid is de snelheid
(bijvoorbeeld 57600). Als alle
AT-commando's zijn ingevoerd, voer dan ~. in
om het programma te verlaten.Het teken @ voor de optie pn werkt
niet!Het teken @ in de
telefoonnummermogelijkheid vertelt tip om in
/etc/phones naar een telefoonnummer te
kijken. Maar het teken @ is ook een speciaal
teken in specificatiebestanden als
/etc/remote. Gebruik een backslash om
hieraan te ontsnappen:pn=\@Hoe een telefoonnummer op de opdrachtregel te
draaien?Voeg een zogenaamde generieke regel aan
het bestand /etc/remote toe.
Bijvoorbeeld: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:Hierna zijn onder andere de volgende mogelijkheden
beschikbaar:&prompt.root; tip -115200 5551234Indien cu boven tip
geprefereerd wordt, dient een generieke regel voor
cu gebruikt te worden:cu115200|Gebruik cu om elk nummer met 115200bps te bellen:\
:dv=/dev/cuau1:br#57600:at=hayes:pa=none:du:Voer in:&prompt.root; cu 5551234 -s 115200Dient de bps-snelheid telkens ingevoerd te worden?Voeg een regel toe voor tip1200 of
cu1200, maar gebruik een bps-snelheid die
geschikt is voor de br-mogelijkheid. tip
meent dat 1200 bps een goede standaardwaarde is, hierdoor
zoekt het naar een regel tip1200. Uiteraard
hoeft 1200 bps niet gebruikt te worden.Een aantal hosts met een terminalserver benaderenOm niet iedere keer te hoeven wachten totdat er verbinding
is en CONNECT host
in te typen, kan de mogelijkheid cm van
tip gebruikt worden. Als voorbeeld bieden
de onderstaande regels in /etc/remote de
mogelijkheid om tip pain of tip
muffin in te typen om met de hosts
pain of muffin te verbinden,
en tip deep13 om naar de terminalserver te
gaan: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:Kan tip meer dan één lijn voor elke site
proberen?Dit is een vaak een probleem als een universiteit een
handvol modemlijnen en enkele duizenden studenten heeft die ze
proberen te gebruiken.Voeg een regel voor de universiteit toe in
/etc/remote en gebruik
@ voor de mogelijkheid
pn:grote-universiteit:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuau3:br#9600:at=courier:du:pa=none:Voeg hierna de telefoonnummers voor de universiteit toe aan
/etc/phones:grote-universiteit 5551111
grote-universiteit 5551112
grote-universiteit 5551113
grote-universiteit 5551114Het commando tip probeert elk nummer in
de volgorde van de lijst alvorens op te geven. Om de pogingen
te herhalen, kan tip in een while-lus
gedraaid worden.Waarom moet CtrlP
tweemaal worden ingedrukt om CtrlP
éénmaal te versturen?CtrlP
is het standaard forceer-karakter, dat gebruikt
wordt om tip te vertellen dat het volgende
karakter letterlijk genomen dient te worden. Het
forceerkarakter kan met de ontsnapping ~s,
wat stel een variabele in betekent, op elk ander
karakter ingesteld worden.Typ
~sforce=enkel-karakter
in gevolgd door een nieuwe regel.
enkel-karakter is elk enkel
karakter. Indien enkel-karakter
weggelaten wordt, is het forceerkarakter het nulkarakter, wat
door middel van Ctrl2
of Ctrlspatie
verkregen kan worden. Een redelijke standaardwaarde
voor enkel-karakter is ShiftCtrl6,
die slechts op enkele terminalservers gebruikt wordt.Het forceerkarakter kan op elk gewenst karakter ingesteld
worden door het volgende op te nemen in het bestand
$HOME/.tiprc:force=enkel-karakterAlle ingevoerde tekst staat opeens in hoofdletters?Waarschijnlijk is CtrlA
ingedrukt, het raisechar van
tip, dat speciaal voor mensen met een
kapotte caps-lock toets is ontworpen. Gebruik
~s zoals boven is aangegeven en stel de
variabele raisechar 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.Hier volgt een voorbeeld voor het bestand
.tiprc dat perfect is voor gebruikers van
Emacs die Ctrl2
en CtrlA
vaak moeten gebruiken:force=^^
raisechar=^^De ^^ is ShiftCtrl6.Hoe kan met tip bestanden worden
verstuurd?In de communicatie met een ander &unix;-systeem kunnen
bestanden verzonden en ontvangen worden met de commando's
~p (put) en ~t (take).
Deze commando's draaien cat en
echo op een systeem op afstand om bestanden
aan te nemen en te verzenden. De syntaxis is:~plokaal-bestandbestand-op-afstand~tbestand-op-afstandlokaal-bestandEr wordt niet op fouten gecontroleerd, het is dus
verstandig om een ander protocol te gebruiken, zoals
zmodem.Hoe kan zmodem samen met
tip draaien?Start om bestanden te ontvangen het verstuurprogramma aan
de andere kant. Typ daarna ~C rz om ze
lokaal te ontvangen.Start om bestanden te versturen het ontvangprogramma aan de
andere kant. Typ daarna ~C sz
bestanden om ze naar het
systeem aan de andere kant te versturen.Seriële console opzettenKazutakaYOKOTABijgedragen door BillPaulGebaseerd op een document van Vanaf &os; 8.0 zijn de seriële poorten
hernoemd van
/dev/cuadN naar
/dev/cuauN en
van
/dev/ttydN naar
/dev/ttyuN.
&os; 7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.seriële consoleInleiding&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.Zoals beschreven in , 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
(/boot/loader) en draait als de code van
de derde fase.Om de seriële console gereed te maken moeten de code
in het opstartblok, de code van de opstartlader en de kernel
worden ingesteld.De seriële console instellen, korte versieDeze sectie neemt aan dat de standaard opstelling wordt
gebruikt en dat een kort overzicht voor het opzetten van de
seriële console gewenst is.Verbind de seriële kabel met
COM1 en de leidende
terminal;Om alle opstartmeldingen op de seriële console te
zien, dient het volgende commando als supergebruiker
uitgevoerd te worden:&prompt.root; echo 'console="comconsole"' >> /boot/loader.confBewerk /etc/ttys en wijzig
off in on en
dialup in vt100 voor
de regel ttyu0. Indien dit niet
gebeurt is er geen wachtwoord nodig om met de seriële
console te verbinden, wat tot een mogelijk beveiligingslek
leidt;Start het systeem opnieuw op om te zien of de
veranderingen effect hebben.Indien een andere instelling nodig is, is er een
diepgaandere uitleg over instellingen beschikbaar in
.De seriële console instellenBereid een seriële kabel voor.nulmodem-kabelBenodigd zijn een nulmodem-kabel òf een
standaard seriële kabel samen met een
nulmodem-adapter. Zie voor een beschrijving
van seriële kabels.Ontkoppel het toetsenbord.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.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 Toetsenbord faalde en gaan
normaal door met opstarten.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.Stel het toetsenbord in op Niet
geïnstalleerd 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 Niet
geïnstalleerd en het toetsenbord werkt nog
steeds. Kijk, als de bovenstaande optie niet in het BIOS
aanwezig is, naar een optie Halt on Error.
Het instellen van deze optie op All but
keyboard of zelfs op No Errors
zal hetzelfde effect hebben.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 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.Sluit een domme terminal aan op
COM1
(sio0).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
COM1
(sio0) aanwezig is dient deze
geregeld te worden. Op dit moment is er geen manier om een
andere poort dan COM1 voor de
opstartblokken te selecteren, afgezien van deze opnieuw te
compileren. Indien COM1 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
COM1 sowieso beschikbaar is op een
bestands-/reken-/terminalserver. Als
COM1 ècht voor iets anders
nodig is (en het niet mogelijk is om dat op
COM2
(sio1) over te zetten), is het
sowieso al onverstandig om hiermee bezig te zijn.)Controleer of het instellingenbestand van de kernel de
juiste vlaggen ingesteld heeft voor
COM1
(sio0).Relevante vlaggen zijn:0x10Zet 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
samen met deze vlag.0x20Dwingt deze eenheid om de console te zijn (tenzij
er een andere console met hogere prioriteit is),
ongeacht de onderstaande optie .
De vlag 0x20 dient samen met de
vlag gebruikt te worden.0x40Reserveert deze eenheid (in samenwerking met
0x10) 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 Ontwikkelaarshandboek
voor meer informatie over debuggen op afstand.Voorbeeld:device sio0 at isa? port IO_COM1 flags 0x10 irq 4Zie de hulppagina &man.sio.4; voor meer details.Indien de vlaggen niet waren ingesteld, dient
UserConfig gedraaid te worden (op een andere console) of de
kernel opnieuw gecompileerd te worden.Maak boot.config aan in de
hoofdmap van de partitie a van de
opstartschijf.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:Wisselt tussen de interne en de seriële
console. Indien bijvoorbeeld vanaf de interne
(video)console opgestart wordt, kan
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
gebruikt worden om de
opstartlader en de kernel het videoscherm als console
te laten gebruiken.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
. In opstellingen met een dubbele
console worden zowel het videoscherm als de
seriële poort tegelijkertijd console, ongeacht
de toestand van de optie . 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 gespecificeerd is de
enige console.Zorgt ervoor dat het opstartblok naar het
toetsenbord zoekt. Als er geen toetsenbord wordt
gevonden, worden de opties en
automatisch ingesteld.Vanwege ruimtebeperkingen in de huidige versie
van het opstartblok, is de optie
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 . Helaas is er
geen mogelijkheid om dit probleem te
omzeilen.Gebruik om de console automatisch te selecteren
òfwel de optie òfwel de
optie om de seriële console te
activeren.De andere opties beschreven in &man.boot.8; kunnen ook
gebruikt worden.De opties, behalve , worden aan de
opstartlader (/boot/loader
doorgegeven. De opstartlader bepaalt of de interne
videopoort of de seriële poort de console wordt door
enkel naar de toestand van de optie te
kijken. Dit betekent dat als de optie ,
maar niet de optie in
/boot.config gespecificeerd wordt, de
seriële poort alleen tijdens het opstartblok als
console gebruikt kan worden, de opstartlader gebruikt het
interne videoscherm als console.Start de machine op.Als &os; gestart wordt, tonen de opstartblokken de
inhoud van /boot.config op de
console. Bijvoorbeeld:/boot.config: -P
Keyboard: noDe tweede regel verschijnt alleen als
in /boot.config
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
/boot.config.OptiesBericht gaat naargeeninterne consoleseriële consoleseriële en interne consolesseriële en interne consoles, toetsenbord aanweziginterne console, toetsenbord afwezigseriële consoleNa 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.Om het opstartproces te onderbreken, kan op elke andere
toets dan Enter gedrukt worden. De
opstartblokken vragen dan om verdere actie. Er verschijnt
iets als het volgende:>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Controleer of de bovenstaande boodschap naar de
seriële of interne console of beide gaat, naar gelang
de opties in /boot.config. Indien de
boodschap op de juiste console verschijnt kan op
Enter gedrukt worden om het opstartproces
voort te zetten.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
in en druk op Enter of
Return (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.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 .SamenvattingHieronder volgt een samenvatting van de verschillende
instellingen die in deze sectie en de uiteindelijk gekozen
console beschreven zijn.Geval 1: vlaggen ingesteld op 0x10 voor
siodevice sio0 at isa? port IO_COM1 flags 0x10 irq 4Opties in /boot.configConsole tijdens de opstartblokkenConsole tijdens de opstartladerConsole in kernelnietsinterninterninternserieelserieelserieelserieel en interninterninternserieel en internserieelserieel, toetsenbord aanweziginterninternintern, toetsenbord afwezigserieel en internserieelserieelGeval 2: vlaggen ingesteld op 0x30 voor
siodevice sio0 at isa? port IO_COM1 flags 0x30 irq 4Opties in /boot.configConsole tijdens de opstartblokkenConsole tijdens de opstartladerConsole in kernelnietsinterninternserieelserieelserieelserieelserieel en interninternserieelserieel en internserieelserieel, toetsenbord aanweziginterninternserieel, toetsenbord afwezigserieel en internserieelserieelTips voor de seriële consoleEen hogere snelheid voor de seriële poort
instellenStandaard 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:Hercompileer de opstart blokken met
BOOT_COMCONSOLE_SPEED ingesteld op de
nieuwe console snelheid. Zie
voor gedetailleerde instructies over het bouwen en
installeren van nieuwe opstartblokken.Als de seriële poort anders is gespecificeerd dan
met 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:options CONSPEED=19200Gebruik de opstartoptie van de
kernel. De optie kan worden
toegevoegd aan het bestand
/boot.config. Zie de handleiding
&man.boot.8; voor een beschrijving over hoe opties kunnen
worden toegevoegd aan /boot.conf, en
welke opties ondersteund worden.Zet de comconsole_speed optie in
het /boot/loader.conf bestand.Deze optie is ervan afhankelijk dat de
console, boot_serial
en boot_multicons ingesteld staan in
/boot/loader.conf. Een voorbeeld
van hoe comconsole_speed gebruikt kan
worden om de console snelheid aan te passen:boot_multicons="YES"
boot_serial="YES"
console_speed="115200"
console="comconsole,vidconsole"Een andere seriële poort dan
sio0 voor de console
gebruikenHet gebruik van een andere poort dan
sio 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:De broncode van de kernel moet beschikbaar zijn.
Zie ;Bewerk /etc/make.conf en stel
BOOT_COMCONSOLE_PORT in op het adres
van de te gebruiken poort (0x3F8, 0x2F8, 0x3E8 of 0x2E8).
Alleen sio0 tot en met
sio3
(COM1 tot en met
COM4) zijn te gebruiken.
Seriële kaarten met meerdere poorten werken niet.
Interrupts instellen is niet nodig;Maak een aangepast kernelinstellingenbestand aan en
voeg de juiste vlaggen toe voor de te gebruiken
seriële poort. Als bijvoorbeeld
sio1
(COM2) de console moet
worden:device sio1 at isa? port IO_COM2 flags 0x10 irq 3Alternatief:device sio1 at isa? port IO_COM2 flags 0x30 irq 3Stel de consolevlaggen voor de andere seriële
poorten niet in;Hercompileer en installeer de opstartblokken en de
opstartlader:&prompt.root; cd /sys/boot
&prompt.root; make clean
&prompt.root; make
&prompt.root; make installHerbouw en installeer de kernel;Schrijf de opstartblokken met &man.disklabel.8; naar
de opstartschijf en start met de nieuwe kernel op.De debugger DDB gebruiken via de seriële
verbindingAls 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:options BREAK_TO_DEBUGGER
options DDBEen aanmeldprompt op de seriële console
krijgenHoewel dit niet nodig is, kan het gewenst zijn om een
aanmeldprompt 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.Open het bestand /etc/ttys met een
tekstverwerker en zoek de volgende regels: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 securettyu0 tot en met
ttyu3 komen overeen met
COM1 tot en met
COM4. Wijzig off
in on voor de gewenste poort. Als de
snelheid van de seriële poort is gewijzigd, wijzig dan
std.9600 zodat het met de huidige
instelling overeenkomt, bijvoorbeeld
std.19200.Het kan ook wenselijk zijn om het terminaltype te
wijzigen van unknown naar het eigenlijke
type van de seriële terminal.Voer kill -HUP 1 uit na het wijzigen
van het bestand om de wijzigingen actief te maken.De console vanuit de opstartlader veranderenDe 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.De seriële console instellenHet is mogelijk om de opstartlader en de kernel gebruik te
laten maken van de seriële console door slechts
één regel naar
/boot/loader.conf te schrijven:console="comconsole"Dit heeft effect ongeacht de instellingen in het
opstartblok die in de vorige sectie zijn besproken.Het is verstandig om bovenstaande regel de eerste regel
van /boot/loader.conf te maken om de
opstartboodschappen zo vroeg mogelijk op de seriële
console te kunnen zien.Evenzo kan de interne videoconsole worden gespecificeerd
met:console="vidconsole"Indien de omgevingsvariabele console van
de opstartlader niet ingesteld wordt, gebruikt de
opstartlader, en vervolgens de kernel, de console die door de
optie in het opstartblok wordt
aangegeven.De console kan worden gespecificeerd in
/boot/looader.conf.local of in
/boot/loader.conf.Zie &man.loader.conf.5; voor meer informatie.Momenteel heeft de opstartlader een optie die gelijk is
aan de optie 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.Een andere seriële poort dan
sio voor de console
gebruikenCompileer de opstartlader opnieuw om een andere
seriële poort dan sio voor de
seriële console te gebruiken. Volg de procedure zoals
beschreven in .ValkuilenDe 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
graphics adapter in de CMOS-instellingen te
wijzigen in Not installed.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.