Re: [eside-ghost] Soekris net4801 y conexión serie

Eneko chan enekochan en gmail.com
Dom Abr 29 01:43:49 CEST 2007


Igual el problema esta en las opciones que le pasas a agetty. Hace poco miré
lo de el terminal por el puerto serie y pillando un poco de aquí y otro poco
de allí escribí este texto. Aun no he probado nada por que no tengo un cable
null modem, así es muy probable que alguna cosa esté mal. Fijate en las
opciones de agetty (o tambien getty, mgetty, etc...):


************
* Hardware *
********************************************************************************

Primero hay que tener un cable serie null modem (también llamado cruzado).
El más sencillo de construir es el de 3 hilos, pero el de 7 es mas flexible.

(Nota: Todos los conectores son hembra.)


Null Modem de 3 hilos con control de flujo por software (XON/XOF):

GND---------------------------------------------------GND
RX-------------------------<--------------------------TX
TX------------------------->--------------------------RX

Null Modem de 7 hilos con control de flujo por hardware (RTS/CTS):

GND --------------------------------------------------GND
RX-------------------------<--------------------------TX
TX------------------------->--------------------------RX
RTS------------------------>--------------------------CTS
CTS------------------------<--------------------------RTS
DSR------------------------<--------------------------DTR
DTR------------------------>--------------------------DSR

Patillaje de los conectores DB9 y DB25:

Señal               Patilla en DB9           Patilla en DB25
--------------------------------------------------------------
GND:..................patilla 5................patilla 7
RX:...................patilla 2................patilla 3
TX:...................patilla 3................patilla 2
RTS:..................patilla 7................patilla 4
CTS:..................patilla 8................patilla 5
DSR:..................patilla 6................patilla 6
DTR:..................patilla 4................patilla 20

Cable DB9-DB9:

  5 (GND) -----------------------------------------5 (GND)
  3 (TX)  ------------------->---------------------2 (RX)
  2 (RX)  -------------------<---------------------3 (TX)
  8 (CTS) -------------------<---------------------7 (RTS)
  7 (RTS) ------------------->---------------------8 (CTS)
  6 (DSR) -------------------<---------------------4 (DTR)
  4 (DTR) ------------------->---------------------6 (DSR)
  CHASIS-------------------(malla)------------------CHASIS

Cable DB25-DB25:

  7 (GND) -----------------------------------------7 (GND)
  2 (TX)  ------------------->---------------------3 (RX)
  3 (RX)  -------------------<---------------------2 (TX)
  5 (CTS) -------------------<---------------------4 (RTS)
  4 (RTS) ------------------->---------------------5 (CTS)
  6 (DSR) -------------------<---------------------20 (DTR)
  20 (DTR)------------------->---------------------6 (DSR)
  CHASIS-------------------(malla)-------------------CHASIS

Cable DB9-DB25 o DB25-DB9:

Conector DB9                                    Conector DB25
  7 (GND) -----------------------------------------7 (GND)
  3 (TX)  ------------------->---------------------3 (RX)
  2 (RX)  -------------------<---------------------2 (TX)
  8 (CTS) -------------------<---------------------4 (RTS)
  7 (RTS) ------------------->---------------------5 (CTS)
  6 (DSR) -------------------<---------------------20 (DTR)
  2 (DTR) ------------------->---------------------6 (DSR)
  CHASIS-------------------(malla)-----------------CHASIS


**********************
* Software GNU/Linux *
********************************************************************************

Se debe tener habilitado el terminal por el puerto serie en el kernel. Para
ello
tal vez haga falta recompilar el kernel activando dicha opción dentro del
apartado "Character Devices".

Se debe configurar el fichero /etc/inittab para que establezca la conexion
entre un terminal y el puerto serie. Tan solo hay que añadir una linea para
configurar cada puerto serie que queramos usar (siendo la ttyS0 el COM1,
etc.).

Para el cable de 3 hilos:

T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

Para el cable de 7 hilos:

T0:23:respawn:/sbin/getty -hL ttyS0 9600 vt100

Una vez editado /etc/inittab se puede reiniciar el sistema o ejecutar "init
q" para
forzar la relectura de inittab y ejecutar otra vez el proceso de login.
También existen otras versiones de getty: getty_ps, mgetty y agetty.

Explicación de los campos:

1º- Identificador: Es el nombre del proceso para el terminal.
2º- Runlevels sobre los que se ejecutará el terminal.
3º- Hace que el proceso getty se auto-restaure si por algun motivo muere.
4º- Ejecutable del terminal y sus parámetros.
    -h    -> Activa el control de flujo por hardware (RTS/CTS).
    -L    -> Habilita el uso del terminal en puertos serie que no activan la
             señal de detección de portadora (pin numero 1 en DB9 y 8 en
DB25),
             es decir cuando no se usa con modems.
    ttyS0 -> Indica el puerto serie a usar (0 para COM1, 1 para COM2, etc.).
    9600  -> Velocidad de trabajo en baudios (se recomiendan 9600, 19200 o
38400).
    vt100 -> Estandar utilizado para las secuencias de escape. Otras
posibilidades:
        vt100        vt100 with advanced video
        vt100-nav    vt100 without advanced video option
        vt100-nav-w    vt100 132 cols 14 lines (no advanced video option)
        vt100-s        vt100 for use with top sysline
        vt100-s-bot    vt100 for use with bottom sysline
        vt100-vb    vt100 with advanced video & no beep
        vt100-w        vt100 132 cols with advanced video
        vt100-w-nam    vt100 132 cols with advanced video no automargin
        vt100nam    vt100 no automargins

Una vez hecho esto hay que configurar el gestor de arranque:

En LILO:
--------
Para que el propio LILO aparezca por el puerto serie (el 0 indica la ttyS0):

serial = 0,9600n8

Para configurar el kernel:

image = .....
    append = "console=ttyS0,9600n8"


En GRUB:
--------
GRUB se puede configurar de forma que, dentro de un tiempo de espera
determinado,
el menu de GRUB aparezca por el monitor o por la linea serie:

# Evitar el uso de cualquier "splash image"
#splashimage=(hd0,2)/boot/grub/splash.xpm.gz
# Configura el puerto COM1 a 9600 baudios
serial --unit=0 --speed=9600
# Ahora espera 10 segundos a que se pulse alguna tecla, tanto en la Serial
Line
# (/dev/ttyS0) como en la Monitor Console (/dev/tty0). Si dentro de ese
tiempo
# se pulsa una tecla en alguno de ellos, el menu de GRUB aparecerá en la
misma.
# Sino, pasados los 10 segundos, aparecerá en la primera mencionada (en este
caso
#  "console", es decir Monitor Console).
terminal --timeout=10 console serial

Para configurar el kernel:

title ...
    kernel /vmlinuz-2.6.20.5 root=/dev/hda6 ro console=ttyS0,9600n8

También se pueden indicar múltiples consolas al kernel. Los mensajes del
mismo
aparecerán en todas ellas, pero solo la última será utilizada al abrir
/dev/console.
Es decir solo en la última se permitirá la entrada de teclado y aparecerán
los
mensajes del sistema operativo.

En este caso la consola seria el monitor:

title Linux desde la consola (MONITOR)
    kernel /vmlinuz-2.6.20.5 root=/dev/hda6 ro console=ttyS0,9600n8
console=tty0

Y en este otro la consola seria el puerto serie:

title Linux desde el puerto serie (SERIAL CONSOLE)
    kernel /vmlinuz-2.6.20.5 root=/dev/hda6 ro console=tty0
console=ttyS0,9600n8



-- 
Fotolog: http://www.fotolog.net/ceng
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20070429/1d42cfa8/attachment-0001.htm


Más información sobre la lista de distribución eside-ghost