lunes, 23 de noviembre de 2009

Actualizar Software del Router 3com 5232 desde Linux

Nuevamente los saludo con una solución a un problema por el que me quedé encerrado en la oficina por tres días.
Resulta que tenía que actualizar el software de mi router 3com modelo 5232 3C13751 puesto que la versión del software con el que me lo entregaron no es compatible con una tarjeta de red ethernet adicional que compre recientemente. Toda la documentación existente tiene los pasos a seguir, pero con el Hyperterminal de Windows.
Con este documento pienso contarles todos los pasos necesario, que se debe hacer y que no hacer para poder realizar esta operación en tan solo 2 horas y no tres días.

Requerimientos previos.

Primero se requiere el cable serial RS-232 de comunicación. Este cable viene con el equipo, por lo que no entraré en detalles de su configuración. Ahora bien, en la actualidad ninguna computadora viene con y puerto serial RS-232, pero si los servidores. También se que existen unos convertidores de USB a RS-232. En mi caso, conecté el cable a mi servidor Linux, ya que ambos están en el site.
Para la comunicación se debe tener instalado el software ckermit y el rzsz. Ambos deben estar disponibles en su CD de distribución. También tengo instalado el scure shell (ssh) para poder trabajar desde cualquier equipo conectado de manera segura.
Por último el software que se va a instalar en el router, el cual hay que bajarlo de la página de 3com.
Con esta configuración bien se podría hacer dicha actualización durante la tarde/noche desde la comodidad de mi casa (tenemos dos salidas a internet, una con el router y la otra con un ADSL; en México se conoce como Prodigy Infinitum de Telmex).

Comunicación.

Vamos a probar que la comunicación entre la computadora y router se realice correctamente. Para eso se requiere el ckermit. Desde una consola de Linux ejecutamos el programa de comunicación.
>kermit
C-Kermit 8.0.211, 10 Apr 2004, for Linux
Copyright (C) 1985, 2004,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/rodolfo/) C-Kermit>


Para configurar la comunicación se corren los siguientes comandos:
C-Kermit>set modem type none
C-Kermit>set line /dev/ttyS0
C-Kermit>set speed 9600
C-Kermit>set flow-control none
C-Kermit>set carrier-watch off


En la segunda línea, /dev/ttyS0 es el dispositivo serial COM1. En caso de que utilicen un puerto USB, deben investigar cual sería el dispositivo que deben utilizar. Al momento de realizar la conexión al router, el prompt cambiará y veremos el nombre que se le asignó al equipo.
C-Kermit>connect
Connecting to /dev/ttyS0, speed 9600
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------

%Nov 21 23:04:57:946 2009 IMIPE SHELL/5/LOGIN: Console login from con0

De esta forma ya se ha establecido la comunicación y lo que estamos viendo el la consola de router.

Preparar el router.

Ahora vamos a ver los archivos que están almacenados. Si se ejecuta el comando “dir” se deben ver al menos dos archivos. El primero es el software que vamos a actualizar y el segundo es la configuración del equipo. En algunos casos existe un tercer archivo, lo cual significaría que el equipo ya tiene alguna actualización o que tiene un software de respaldo.
dir
Directory of flash:/
1 -rw- 12781056 Nov 22 2009 04:21:28 main.bin
2 -rw- 2483 Nov 11 2009 16:55:12 config.cfg
31877 KB total (19387 KB free)


Si aparecen tres archivos, se debe borrar el tercero para dejar espacio y poder subir nuestra actualización. Nunca borren los archivos main.bin ni config.cfg, ya que si llegamos a perder alguno de ellos, estaremos en grabes aprietos. Para borrar el archivo utilicen el comando “del /unreserved archivo.bin”. Después de aceptar las advertencias, se empezará a borrar el archivo y el proceso es algo tardado.

Subir actualización.

Ya que se ha borrado el archivo, hay que reiniciar el router para poder subir la actualización. Con el comando “reboot” se reinicia el equipo. Presione Crtl+B e introduzca la contraseña para entrar al menú principal del equipo.
Starting at 0x1c00000...
********************************************
* *
* 3Com Router Boot Rom, V9.21 *
* *
********************************************
Copyright (c) 2004-2005 3Com Corporation and its licensors
All rights reserved

Testing memory...OK!
256M bytes SDRAM
32768k bytes flash memory
Hardware Version is MTR 1.0
CPLD Version is CPLD 1.0

Press Ctrl-B to enter Boot Menu
Please input Bootrom password:

Boot Menu:
1: Download application program with XMODEM
2: Download application program with NET
3: Set application file type
4: Display applications in Flash
5: Clear application super password
6: Reset console authentication
7: Start up and ignore configuration
8: Enter debugging environment
9: Boot Rom Operation Menu
a: Do not check the version of the software
b: Exit and reboot
Enter your choice(1-b):


Seleccione la opción 1 para subir el archivo. Aparecerá un segundo menú, donde por obvia razón seleccionaremos la velocidad de descarga más rápida.
Please choose your download speed:
1: 9600 bps
2: 19200 bps
3: 38400 bps
4: 57600 bps
5: 115200 bps
6: Exit to Main Menu
Enter your choice(1-6): 5

Download speed is 115200 bps. Change the terminal's speed to 115200 bps,
and select XMODEM protocol. Press key when ready.


Al llegar a este punto, se tendrá la sensación que la comunicación se ha bloqueado y que no pasa nada si presionamos cualquier tecla. Esto es por que el router ha cambiado la velocidad de transmisión y la computadora sigue a la velocidad de 9600 bps, por lo que tenemos que cambiar la velocidad de la computadora.
Presione Ctrl + \ y luego C para regresar a la consola del kermit. Cierre la conexión, cambie la velocidad y envíe el archivo con el protocolo XMODEM.
C-Kermit>hangup
C-Kermit>set speed 115200
/dev/ttyS0, 115200 bps
C-Kermit>send /protocol:xmodem r5y03_14vp03.bin


Con esto el envío debe de empezar. Es importante que el programa rzsz esté instalado en el Linux, ya que éste es el que contiene el protocolo XMODEM. Una vez que esperó pacientemente y admiró como se incrementaba la cantidad de paquetes enviados (el proceso tarda alrededor de 40 minutos) aparecerá el esperado mensaje de que se completó el envío. Hay que conectarse nuevamente a la consola del router para continuar con el proceso. Nos aparecerá otró menú, donde se debe indicar que tipo de archivo se esta subiendo, por lo que hay que seleccionar la opción 1 para indicar que este va a ser el archivo principal. Cambien el nombre para que dejemos el archivo main.bin intacto.
Transfer complete
C-Kermit>connect
Connecting to /dev/ttyS0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------

Please select file to be saved as
1. Main application file
2. Backup application file
3. Secure application file
4. Cancel downloading
Enter your choice(1-4): 1

Note: File will be saved as [flash:/main.bin],press to accept,
or assign another file name-> r5y03_14vp03.bin
Creating the file: flash:/r5y03_14vp03.bin
Write data to flash...

Please wait, it may take a long time!
##################################################################################################

Please use 9600 bps.Press key to reboot the system .


En este punto hay que hacer lo mismo para cambiar nuevamente la velocidad de transmisión a 9600. Presionen Crtl + \ y luego C. Al conectarse nuevamente al router, verán que se ha reiniciado.
(Back at Nautilus)
----------------------------------------------------
C-Kermit>hangup
C-Kermit>set speed 9600
/dev/ttyS0, 9600 bps
C-Kermit>connect


Listo, hemos llegado felizmente al final del proceso. Espero les sirva este documento y cualquier comentario estoy para servirles.
Que la fuerza los acompañe...

1 comentario:

  1. muy bien ing.. al menos ya voy saliendo poco a poco de mi duda, jeje.. ando checando cosas del router.. tengo la duda hacerca de la segunda línea
    set line /dev/ttySO ?? sobre el puerto COM1 o USB ya que en este momento esta conectado con puerto USB. porque quiero entra a la configuración pues la vdd solo quiero hechar un vistazo al
    config.cfg y averiguar que tenemos ahi.

    ResponderEliminar