Categoría: linux

Si tienes un ordenador sin monitor ni teclado, seguramente trabajes con el mediante SSH o Telnet. Pero ¿y si por algún motivo se cae la red y no puedes acceder a el? Para casos de emergencia como este se puede conectar mediante un terminal por el puerto serie.

Hardware necesario:
Lo primero es tener un cable serie null modem. Existen básicamente 2 tipos: con control de flujo por software y con control de flujo por hardware
Null Modem de 3 hilos con control de flujo por software (XON/XOFF):

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

Como configurar un sistema 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, ttyS1 el COM2, etc.).

Para el cable de 3 hilos (control de flujo por software):

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

Para el cable de 7 hilos (control de flujo por hardware):

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

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.
  ttyS0 -> Indica el puerto serie a usar (0 para COM1, 1 para COM2, etc.).
  9600 -> Velocidad de trabajo en baudios (se recomienda no subir de 9600).
  vt100 -> Estandar utilizado para las secuencias de escape.
Una vez hecho esto hay que añadir la siguiente opción al arranque del kernel:
En LILO:

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

Y volver a ejecutar lilo:
# /sbin/lilo

En GRUB:

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

Como configurar un sistema OpenBSD:

Buscar la línea del archivo /etc/ttys:
tty00 "/usr/libexec/getty std.9600" unknown off

Y sustituirla por:

tty00 "/usr/libexec/getty std.9600" vt100 on secure

Esto permite al usuario obtener el control de la máquina después de haber alcanzado el modo multiusuario, es decir, el login.

Para redirigir el proceso de arranque completo al puerto serie basta con crear o editar el archivo /etc/boot.conf para que incluya la línea:
set tty com0

Terminal Cliente:

Una vez configurado el sistema y reiniciado, se puede conectar al ordenador desde otro con el programa minicom o gtkterm en GNU/Linux, o con el hyperterminal en Windows.


#!/bin/bash
complete=`finger @finger.kernel.org | head -2 | tail -1 | awk '{ print $10 }'`
version=`echo $complete | awk -F. '{ print $1 }'`
major=`echo $complete | awk -F. '{ print $2 }'`
wget -c
http://www.kernel.org/pub/linux/kernel/v${version}.${major}/linux-${complete}.tar.gz

Si alguna vez necesitas descargarte una ISO con el Sistema Operativo OpenBSD, te darás cuenta de que en su página web no hay ninguna imagen disponible de forma gratuita. Aun así ponen a tu disposición multitud de FTPs para que puedas descargarte todo lo que hace falta. Para ahorrate los quebraderos de cabeza aquí pongo 2 scripts (para GNU/Linux y Windows) con los que se realiza el proceso automáticamente.

Solo hay que editar los scripts para indicar la versión de OpenBSD, la arquitectura, la unidad de destino, etc. para que se genere la ISO autoarrancable. Estas son las herramientas que hacen falta para que los script funcionen correctamente tanto en GNU/Linux como en Windows:

GNU/Linux:

  • wget.
  • mkisofs.

Windows:

Para ver los script tan solo hay que elegir la plataforma sobre la que se quiere ejecutar:

GNU/Linux

Windows

Esta es una razón más para abandonar definitivamente el lado oscuro de Windows. Para los reacios a pasarse a Gimp o para todos los fans de Photoshop, es una grán noticia saber que ya se está consiguiendo hacer funcionar Adobe Photoshop CS3 en GNU/Linux mediante Wine.

http://jonramvi.wordpress.com/2008/03/11/62/

El dual-boot en mi casa al menos corre peligro :D

Visto en Digg:
http://digg.com/linux_unix/Adobe_Photoshop_CS3_finally_running_in_Wine

El primer paso para poder conectar dos ordenadores por el puerto paralelo es fabricarse un cable LapLink (o comprarlo claro). Para ello son necesarios dos conectores machos DB25 y un cable de al menos 15 hilos. Los hilos deben ir conectados de la siguiente manera:
1 – 1
2 – 15
3 – 13
4 – 12
5 – 10
6 – 11
10 – 5
11 – 6
12 – 4
13 – 3
14 – 14
15 – 2
16 – 16
17 – 17
25 – 25

Una vez hecho el cable es el momento de preparar los 2 sistemas GNU/Linux. Se debe tener el kernel compilado con los modulos parport, parport_pc y plip. El módulo plip quedará en la ruta /lib/modules/version_del_kernel/kernel/drivers/net/plip.ko . Los pasos varian en funcion de la distribución y la versión del kernel que se esté usando.
Descargar el módulo lp:
# rmmod lp
O también:
# modprobe -r lp
Cargar el módulo parport_pc:
# modprobe parport_pc
Comprobar las direcciones de memoria e IRQ del puerto que queremos usar:
# cat /proc/parport/0/hardware
base: 0×378
irq: 7
dma: 3
modes: SPP,ECP,ECPEPP,ECPPS2

O también (el número de base-addr esta en decimal y hay que pasarlo a hexadecimal, 888=0×378):
# cat /proc/sys/dev/parport/parport0/base-addr
888 1912
# cat /proc/sys/dev/parport/parport0/irq
7

Crear los nodos dentro de /dev para los dispositivos plip:
# mknod /dev/plip0 c 6 128
# mknod /dev/plip1 c 6 128

Cargar el módulo plip pasandole los parametros del puerto (o puertos) que queremos usar:
# modprobe plip io=0×378 irq=7

O para varios puertos a la vez:
# modprobe plip io=0×378,0×278 irq=7,5
Ejecutar dmesg para comprobar que dispositivo plip corresponde al puerto:
# dmesg
NET3 PLIP version 2.4-parport gniibe@mri.co.jp
plip0: Parallel port at 0×378, using IRQ 7.

Una vez hecho esto en ambos ordenadores, es el momento de configurar los dispositivos de red, etc. Vamos a suponer que uno de los ordenadores tiene salida a internet y el otro accede a internet mediante el puerto paralelo a través de ese.
En el ordenador con salida a internet:
# ifconfig plip0 192.168.3.1 pointopoint 192.168.3.2
# echo 1 > /proc/sys/net/ipv4/ip_forward
# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

En el otro ordenador:
# ifconfig plip0 192.168.3.2 pointopoint 192.168.3.1
# route add 192.168.3.1 plip0
# route add default gw 192.168.3.1