Vanaf FreeBSD 8.0 zijn de seriële poorten
hernoemd van
/dev/cuad
naar
N
/dev/cuau
en
van
N
/dev/ttyd
naar
N
/dev/ttyu
.
FreeBSD 7.X gebruikers moeten de documentatie aanpassen naar
deze wijzigingen.N
FreeBSD 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 FreeBSD willen installeren op machines die geen toetsenbord of beeldscherm hebben en voor ontwikkelaars die de kernel of apparaatstuurprogramma's willen debuggen.
Zoals beschreven in Hoofdstuk 13, Het FreeBSD opstartproces, gebruikt FreeBSD
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 FreeBSD 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.
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.
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:
#
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 Paragraaf 27.6.3, “De seriële console instellen”.
Bereid een seriële kabel voor.
Benodigd zijn een nulmodem-kabel òf een standaard seriële kabel samen met een nulmodem-adapter. Zie Paragraaf 27.2.2, “Kabels en poorten” 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 PS/2®-muis heeft, is het goed mogelijk dat naast het toetsenbord ook de muis losgekoppeld moet worden. Dit komt doordat PS/2®-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 FreeBSD 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:
0x10
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
-h
samen met deze vlag.
0x20
Dwingt deze eenheid om de console te zijn (tenzij
er een andere console met hogere prioriteit is),
ongeacht de onderstaande optie -h
.
De vlag 0x20
dient samen met de
vlag 0x10
gebruikt te worden.
0x40
Reserveert 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:
Zie de hulppagina 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:
-h
Wisselt tussen de interne en de seriële
console. Indien bijvoorbeeld vanaf de interne
(video)console opgestart wordt, kan
-h
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
-h
gebruikt worden om de
opstartlader en de kernel het videoscherm als console
te laten gebruiken.
-D
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
-h
. In opstellingen met een dubbele
console worden zowel het videoscherm als de
seriële poort tegelijkertijd console, ongeacht
de toestand van de optie -h
. 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 -h
gespecificeerd is de
enige console.
-P
Zorgt ervoor dat het opstartblok naar het
toetsenbord zoekt. Als er geen toetsenbord wordt
gevonden, worden de opties -D
en
-h
automatisch ingesteld.
Vanwege ruimtebeperkingen in de huidige versie
van het opstartblok, is de optie
-P
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 -P
. Helaas is er
geen mogelijkheid om dit probleem te
omzeilen.
Gebruik om de console automatisch te selecteren
òfwel de optie -P
òfwel de
optie -h
om de seriële console te
activeren.
De andere opties beschreven in boot(8) kunnen ook gebruikt worden.
De opties, behalve -P
, 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 -h
te
kijken. Dit betekent dat als de optie -D
,
maar niet de optie -h
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 FreeBSD gestart wordt, tonen de opstartblokken de
inhoud van /boot.config
op de
console. Bijvoorbeeld:
De tweede regel verschijnt alleen als
-P
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
.
Opties | Bericht gaat naar |
---|---|
geen | interne console |
-h | seriële console |
-D | seriële en interne consoles |
-Dh | seriële en interne consoles |
-P , toetsenbord aanwezig | interne console |
-P , toetsenbord afwezig | seriële console |
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.
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:
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
-h
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 Paragraaf 27.6.6, “De console vanuit de opstartlader veranderen”.
Hieronder volgt een samenvatting van de verschillende instellingen die in deze sectie en de uiteindelijk gekozen console beschreven zijn.
Opties in /boot.config | Console tijdens de opstartblokken | Console tijdens de opstartlader | Console in kernel |
---|---|---|---|
niets | intern | intern | intern |
-h | serieel | serieel | serieel |
-D | serieel en intern | intern | intern |
-Dh | serieel en intern | serieel | serieel |
-P , toetsenbord aanwezig | intern | intern | intern |
-P , toetsenbord afwezig | serieel en intern | serieel | serieel |
Opties in /boot.config | Console tijdens de opstartblokken | Console tijdens de opstartlader | Console in kernel |
---|---|---|---|
niets | intern | intern | serieel |
-h | serieel | serieel | serieel |
-D | serieel en intern | intern | serieel |
-Dh | serieel en intern | serieel | serieel |
-P , toetsenbord aanwezig | intern | intern | serieel |
-P , toetsenbord afwezig | serieel en intern | serieel | serieel |
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:
Hercompileer de opstart blokken met
BOOT_COMCONSOLE_SPEED
ingesteld op de
nieuwe console snelheid. Zie Paragraaf 27.6.5.2, “Een andere seriële poort dan
sio0
voor de console
gebruiken”
voor gedetailleerde instructies over het bouwen en
installeren van nieuwe opstartblokken.
Als de seriële poort anders is gespecificeerd dan
met -h
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:
Gebruik de -S
opstartoptie van de
kernel. De optie -S
kan worden
toegevoegd aan het bestand
/boot.config
. Zie de handleiding
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:
Het 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 Hoofdstuk 25, FreeBSD updaten en upgraden;
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:
Alternatief:
Stel de consolevlaggen voor de andere seriële poorten niet in;
Hercompileer en installeer de opstartblokken en de opstartlader:
#
cd /sys/boot
#
make clean
#
make
#
make install
Herbouw en installeer de kernel;
Schrijf de opstartblokken met disklabel(8) naar de opstartschijf en start met de nieuwe kernel op.
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:
Hoewel 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
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 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.
Het 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:
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:
Indien de omgevingsvariabele console
van
de opstartlader niet ingesteld wordt, gebruikt de
opstartlader, en vervolgens de kernel, de console die door de
optie -h
in het opstartblok wordt
aangegeven.
De console kan worden gespecificeerd in
/boot/looader.conf.local
of in
/boot/loader.conf
.
Zie loader.conf(5) voor meer informatie.
Momenteel heeft de opstartlader een optie die gelijk is
aan de optie -P
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.
Compileer de opstartlader opnieuw om een andere
seriële poort dan sio
voor de
seriële console te gebruiken. Volg de procedure zoals
beschreven in Paragraaf 27.6.5.2, “Een andere seriële poort dan
sio0
voor de console
gebruiken”.
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 “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.