• FORSIDE • PORTFOLIE • NYHEDER • OM OS • PRODUKTER • ARTIKLER • KONTAKT • LINKS • 
ROOT > ARTIKLER > LFS LINUX > SERIAL CONSOLE

Opsætning af konsol over serial kabel
ARTIKLER
LFS LINUX
SERIAL CONSOLE

Submit

SiteMap
 

Det sker tit at man ikke lige har en monitor til sin server, eller at man udvikler på et "embedded" system hvor der ikke er et vga kort i. I sådanne tilfælde kan man bruge sin serial/com port som terminal til sit *nix system. I denne lille guide vil vi se på hvordan man gør det på en linux maskine med Grub eller LiLO som bootloader.

Indledning:
Som udgangspunkt er der nolge få ting som skal være til stede for at kunne få sendt sit consol over ttS0/Com port 1. Man skal have support i sin kernel. Kør make menuconfig og kig efter følgende:

Character devices  --->
    <*> Standard/generic (8250/16550 and compatible UARTs) serial support
    [*]   Support for console on serial port
Dette skal bruges for at Grub eller LiLO kan sende sin menu liste til den serielle port og init senere kan køre en terminal i "single user" mode.
Når du har kompilet din kernel kan man begynder at konfigurere sin bootloader til at sende ud til ttyS0.

Bootloader (GRUB/LiLO)
De to mest brugte bootloadere til Linux understøtter serial konsol og kan indstilles til at sende alt info over com porten.

GRUB (GRand Unified Bootloader):
GRUB er en bootloader der efterhånden bliver mere og mere brugt. Den er nem at sætte op og nem at vedligeholde i forhold til LiLO. Proceduren for at få Serielt konsol til at køre er meget simpel. Åben /boot/grub/menu.lst i din favorit editor og tilføj følgende:

###############################################
## Serial/Console setup
###############################################
# --unit is serial com port (COMX) eg. --unit=0 (COM1)
# --speed is baudrate. Typically 9600 or 38400 on terminal.

serial --unit=0 --speed=9600

# Now setup terminal as both Serial Line(/dev/ttyS0) and
# Monitor Console(/dev/tty0) depending upon where you press key
# with in timeout (15 sec) period. Otherwise first entry
# (console(Monitor)=>tty0) is selected here.

terminal --timeout=15  console serial

# In images section below, we are selecting two consoles 
# (Serial(ttyS0) and Monitor(tty0) here. But in case of single user mode, 
# keyboard entry is allowed from last selected console in 'kernel' line below. 
# So we need to setup two different images so that we should be able to 
# login in single usermode from any console depending upon selection at boot time.
# But in both cases  kernel message (not OS message) will go to both consoles.

#Allow Single user mode from Console(Monitor)
title LFS 5.1.1 (Monitor)
        root (hd0,0)
        kernel /boot/vmlinuz-2.4.26 ro root=/dev/hda1 console=ttyS0 console=tty0

#Allow Single user mode from Serial Port(ttyS0).
title LFS 5.1.1 (Serial)
        root (hd0,0)
        kernel /boot/vmlinuz-2.4.26 ro root=/dev/hda1 console=tty0 console=ttyS0

Nu er GRUB sat op til at man kan vælge mellem seriel eller monitor terminal under boot.

LiLO (LInux boot LOader):
LiLO er den mere "oldschool" bootloader. Man bruger den stadig på mange distributioner men GRUB vinder stadigt mere og mere ind.

###############################################
## Serial/Console setup
###############################################
# 0,38400n8 is the port (0), Baudrate (38400), Flow control (n), Bits (8)
# To use serial console on COM1

serial = 0,38400n8

# Tell the kernel to boot with ttyS0 as primary console.
# To switch between ttyS0 (Serial) and tty0 (Monitor) create two
# Items to select from and set the appropriate console="tty0 or ttyS0"
# in the append line of the boot menu item.

append = "console=ttyS0,38400n8"
Nu er lilo.conf indstillet og vi kan nu skrive indstillingerne til MBR med liloconfig eller blot lilo afhængig af dist.

Inittab:
Vi skal fortælle init at vi gerne vil kunne logge ind fra både serial og monitor baseret terminal. Rediger /etc/inittab i din favorit tekst editor og tilføj følgende:

s1:12345:respawn:/sbin/agetty -i -h -L 38400 ttyS0 vt100
Den ovenstående linie fortæller init at den skal starte en login med agetty på /dev/ttyS0 (COM1) med en hastighed på 38400 Baud og en terminal emulering (vt100). -i gør at agetty ikke printer login teksten fra /etc/issue, typisk (Welcome to ....). -h slår hardware flowstyring til og -L tvinger linien til at være "local" for at undgå underligt "carrier detect nonsense"
Gem ændringerne og reboot. Du kan teste det uden reboot ved at køre init q

Det var alt hvad der skulle til, held og lykke.


 
Oprettet: 04-08-2004 - 17:32 - Redigeret: 04-08-2004 - 18:18 - Visninger: 2874 - Load tid: 0.048
Der er: 7 active brugere online.  
JÆGERMARKEN 48 ST TH . DK-5700 Svendborg . +45 62 21 03 05 . cyberdoc[AT]cyberdoc.dk
Powered By SiteSuite v1.1 (PHP)
06-09-2010 11:09