Reviviendo PC’s «obsoletas», (según para que)

Desde hace algún tiempo quería instalar un sistema operativo tipo Unix en 2 PC’s antiguas que tenía por ahi sin usar; ya sea alguna distribución de GNU/Linux o algún BSD (FreeBSD, NetBSD, etc.). Después de varios días de pruebas e investigación, logré dicho propósito.

Equipo 1

PC con procesador AMD 386SX a 40Mhz, sin FPU (coprocesador matemático), 4MB de memoria RAM, de los cuales el motherboard toma los 640K de memoria base. El motherboard tiene 2 bancos de memoria de 2 slots cada uno (utliza SIMMS de 30 pins) y soporta un máximo de 16MB de RAM. Floppy de 3.5″ 1.44MB y CD-ROM SCSI conectado a tarjeta de sonido Pro Audio 16.

Equipo 2

PC con procesador Cyrix 486DLC a 40Mhz, con FPU y también 4MB de memoria RAM, este motherboard tiene 2 bancos de 4 slots cada uno, también utiliza SIMMS de 30 pins y soporta un máximo de 32MB de RAM. Floppy de 3.5″ 1.44MB y no tiene CD-ROM.

Antecedentes

De alguna forma, la mayoría de la información que encontré en internet no satisfacía mis requerimientos.

Mucha información de distribuciones GNU/Linux para «equipos antiguos» o «con pocos recursos» se refería a PC’s Pentium I con 128MB de RAM o a equipos mas recientes, si bien el Pentium I no es el procesador más potente en este año 2009, hay muchas distribuciones GNU/Linux con las que ese equipo puede funcionar de manera bastante aceptable; pero para una 386SX las opciones disminuyen considerablemente.

Las opciones mas viables eran distribuciones del tipo DSL (Damm Small Linux), Gray Cat Linux, BasicLinux, MuLinux, etc., pero yo no quería un livecd, ni una distribución que funcionara en RAM, en un loop, desde floppy o instalada sobre DOS, ni cosas por el estilo, sino un sistema operativo que se instalara en disco duro, que arrancara desde ahi y utilizara su partición swap, etc., es decir, una instalación «normal». No me importaba que fuera sólo consola, sin las X (el ambiente gráfico).

Recopilando hardware faltante para llevar a cabo la misión

Ninguno de los Bios de los 2 motherboards trae la opción para arrancar desde CD. Asi que tenía que ser una instalación por red, desde luego otra opción era instalar conectando otra PC por el puerto serial y desde ahi hacer la instalación, o poner el disco duro en una PC «moderna», instalar ahi y regresar el disco, pero eso para mi es tanto como evitar el desafío, y de paso perderse la diversión.

También me di cuenta que con menos de 4MB de RAM reales (recuerden que comenté que de esos 4MB, el motherboard toma 640K para la memoria base), era practicamente imposible instalar un sistema operativo tipo Unix que no estuviera «tan» desactualizado; así que compré por internet 2 tarjetas de red ISA Ethernet 10baseT usadas y un lote de módulos de memoria en donde venían SIMMS de 30 pins de 1MB y de 4MB, también incluía unos SIMMS de 72 pins y uno que otro DIMM de 168 pins.

Tenía varios discos duros antiguos de los cuales seleccione para la 386SX uno de 630MB y uno de poco mas de 200MB; para la 486DLC elegi uno de 2GB (varios Motherboards antiguos tienen un Bios que no reconoce discos de mas de 2GB, y algunos otros no reconocen discos de mas de 500MB).

Finalmente la 386SX quedó con 16MB de RAM

386sx_screen

y la 486DLC con 32MB

486dlc_screen

Las pruebas

Las tarjetas de red que consegui son una 3com modelo 3C509B-TPO y una AT/LANTIC con chip DP83905AVQ, que es un clon de las tarjetas NE2000.

Ninguna de estas tarjetas es configurable via jumpers, sólo se pueden configurar mediante un programa hecho por el respectivo fabricante. Bueno, la AT/LANTIC tiene una entrada para un jumper, si pones el jumper en dicha entrada, la tarjeta queda configurada en la dirección io=0x300, irq=3; de lo contratio, tomará la io e irq que se le haya configurado mediante el software mencionado.

FreeBSD quitó el soporte para el procesador 80386 desde la versión 5.0 (http://www.freebsd.org/releases/5.0R/relnotes-i386.html), así que tenia que probar con una versión anterior. La documentación de FreeBSD versión 4.11 dice que funciona en una PC con procesador 80386 y que el programa de instalación requiere 16MB de RAM así que probé instalarlo en la 386SX, todo funcionó aparentemente bien hasta que terminada la instalación llegó el momento de reiniciar la Pc, ya con FreeBSD 4.11 instalado. En un momento del arranque, empezó a enviar el siguiente mensaje n veces

microuptime() went backwards (44525.3954411 -> 44524.563978)

microuptime() went backwards (57425.4282241 -> 57424.766121)

microuptime() went backwards (57425.4282241 -> 57424.845844)

Los números antes y después del símbolo «>» cambiaban en cada renglón, pero parecía haberse ciclado.

Busqué en internet información al respecto y encontré varios post de otros usuarios reportando lo mismo, a algunos no les pasaba al momento de reincicar la máquina, sino depués, a otros les enviaba el mensaje esporádicamente, etc. pero nunca encontré un post en donde se dijera como solucionarlo, al parecer era un problema en el kernel de algunas versiones de FreeBSD que se presentaba en algunos equipos.

NetBSD por su parte, incluyó la leyenda «Removed support for 80386 level CPUs»  en el anuncio de su versión 5.0 (http://netbsd.org/releases/formal-5/NetBSD-5.0.html) por lo que probé con la versión 4.0.1. A pesar de que en la documentación dice textualmente:

«NetBSD 4.0.1 runs on ISA (AT-Bus), EISA, MCA, PCI, and VL-bus systems with 386-family processors, with or without math coprocessors. The minimal configuration is said to require 4 MB of RAM and 50 MB of disk space, though we do not know of anyone running with a system quite this minimal today»

Probé con sólo 8MB de RAM en la 386SX pero la máquina se reiniciaba después de insertar el segundo floppy, agregué los otros 8MB y probé con 16MB de RAM pero sucedio lo mismo.

Probé entónces con la versión 3.1.1 y esta si logré instalarla

NetBSD_3_1_1Pero, lo que me descepcionó fue que como podrán comprobar en el sitio http://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/NetBSD-3.1.1/i386/ no se encuentran los packages o el arbol de ports, sólo están los paquetes del kernel y los sets básicos, asi que no es posible instalarle programas ya compilados (los packages) ni bajar los fuente de los programas para esa versión para compilarlos. Lo que hice fue bajar de http://ftp.netbsd.org/pub/NetBSD/packages/distfiles/ unos fuente para compilarlos y ver si era viable o no, ya que por la capacidad de la máquina, la compilación iba a tardar bastante, además de que esos fuente no dice si son independientes de la versión, lo más probable es que sean para la versión current (en este caso la 5.0.1) por lo que probablemente no funciarían en esta versión 3.1.1

Empece por compilar el mc (midnight comander) y al ejecutar el ./configure, encontró que no pudo descargar unas dependencias, me parece que una versión de glibc que requería.

Traté entónces con el paquete bash, el ./configure si terminó de ejecutarse correctamente después de varias horas por lo que pase a la compilación con el respectivo make install clean, pero tuve que darle Ctrl-C porque ya llevaba 10 horas compilando y no terminaba. La conclusión es que aunque se pudo instalar, debido a que no existen los packages, la instalación de programas compilando los fuentes no es viable por el tiempo que se lleva.

En verdad no le veo mucho sentido a tener un sitio de archivo de NetBSD, si no van a archivar los packages y el arbol de ports de todas las versiones, FreeBSD y Debian si lo tienen (como debe de ser).

Intenté otras distribuciones como Slackware, Feather, etc. pero ninguna funcionó (no voy a aburrirlos con los detalles de los errores que marcaban).

La distribución GNU/Linux (que cumpliera los requisitos que mencioné al principio del post) con la que logré hacer funcionar la 386SX fue Debian 3.0 (Woody).

debian_3_0

A la 486DLC logré instalarle NetBSD 4.0.1 pero funcionaba extremadamente lento, además de que debido a la política de NetBSD de no guardar los packages de versiones archivadas, una vez que archiven esta versión, no habrá forma «viable» de instalarle programas a esta PC, y como eso definitivamente para mi es inaceptable, opté por FreeBSD.

Probé instalar FreeBSD 5.0 en la 486DLC y funcionó

FreeBSD_5_0

Pude instalar los packages de mc, bash, sudo y nano sin problemas y sin esperar horas y horas.

Desde luego no crean que los primeros intentos por instalar los sistemas operativos con que finalmente quedaron las máquinas funcionaron a la primera, tuve problemas para configurar las tarjetas de red tanto en Debian como en FreeBSD, ya sea porque entraba en conflicto el irq que tenian programado con el irq de algún otro dispositivo como el puerto serial, etc. Estuve cambiando la configuración de las tarjetas, cambiando las tarjetas de una máquina a otra e indicando a la hora de la instalación que cargara el driver correspondiente especificando las direcciones io, etc.

Con FreeBSD sucedió algo curioso, en 2 ocasiones al estar instalando, una con la tajeta de red 3com y otra con la AT/LANTIC al llegar al punto en donde debería empezar a descargar los paquetes, se quedaba «trabado» al intentar logearse al servidor ftp ftp://ftp-archive.freebsd.org/, intenté utilizando un mirror, específicamente el servidor ftp://ftp.ru.freebsd.org/ y funcionó bastante bien, de hecho se descargo rápido (para ser con una tarjeta de red a 10Mbps).

Además de buscar información en internet cada vez que algo no funcionaba con la instalación, entré varias veces a canales de IRC de NetBSD, FreeBSD, Debian, etc. Encontré algunas personas que me proporcionaron información que me ayudó a resolver el problema, otras sugerencias no resultaron efectivas pero igualmente agradezco a aquellas personas que intentaron ayudarme. Desafortunadamente también encontré mucha gente ignorante, y lamentablemente fue en todos los canales de IRC a los que entré, que lejos de ayudar, hacia comentarios ridículos como «Actualmente puedes comprar una Pentium con mucha mas RAM por x cantidad», o «Eso es una pérdida de tiempo». Aún cuando comenté que desde luego que cuento con una PC con mejores características que esas máquinas, pero el atractivo del proyecto era por un lado el reto que implicaba, y por otro, demostrar que PC’s como esas sirven «perfectamente» para desarrollar aplicaciones simples en C, o usando C y ncurses, o C++, etc.

Una 386 o 486 con un sistema operativo tipo Unix puede funcionar como servidor de archivos (desde luego no con una carga excesiva), servidor de impresión y muchos otros usos mas. Por ejemplo, pienso hacer pruebas con la 486DLC para ver si puede funcionar como thin client utilizando LTSP, de acuerdo a las especificaciones mínimas descritas en http://wiki.ltsp.org/twiki/bin/view/Ltsp/LTSPTerminal parece que si.

En fin, probablemente quienes no programaron (por lo menos el «hola mundo») antes de 1990, no vean el atractivo que tienen este tipo de proyectos, y digo probablemente porqe habrá quienes no necesiten mayor explicación para ver lo interesante que son.

Pero la cuestión es muy simple, si yo no lo entiendo, se me hace muy complicado porque no se usar una PC si no tiene ambiente gráfico, mis conocimientos en la materia son muy pocos , o simplemente no me interesa, pues no opino y me quedo callado antes de decir tonterías con las que únicamente logro que las otras personas en el canal se den cuenta de que además de ignorante soy un intolerante.

Les presento a Frank (la 386SX)

386sx_full

y a Frank2 (la 486DLC).

486dlc_full

Los nombres son alusivos a Frankenstain desde luego :).

En las 2 PC tomé el tiempo que pasa desde que se prende la PC hasta que pide el login y estos son los resultados.

La 386SX con 16MB de RAM y Debian 3.0 tarda 3 minutos

La 486DLC con 32MB de RAM y FreeBSD 5.0 tarda 12 minutos

Esto no quiere decir que Debian 3.0 sea mejor que FreeBSD 5.0 ya que están instalados en hardware diferente y el tiempo de arranque sólo nos dice eso, «el tiempo de arranque» y nada mas, sólo quise ponerlo como mero dato informativo.

Y sin hacer caso a los comentarios de aquellos ignorantes e intolerantes que no son dignos representantes de la comunidad de usuarios y desarrolladores de software libre, mucho menos de la comunidad informática, les comento que tengo una PC con procesador 80286 y 4MB de RAM en la que pienso instalar FreeDOS. Tengo también unos motherboards 8088 con 512K de RAM creo, pero tendría que desarmar la 286 para utilizar tarjeta controladora, de video, etc.

Etiquetas: , ,

11 respuestas to “Reviviendo PC’s «obsoletas», (según para que)”

  1. eliascisneros Says:

    Hola,

    Muy interesante lo que lograste hacer, donde trabajo hay un grupo importante de equipos (PII y PIII) que serán sustituidos por una tecnología mas nueva, me gustaría hacer algunas pruebas de clientes delgados para ver si algunos los logramos reactivar en vez de enviarlos a la chatarra. ¿Has oido de de VirtualGL?, te dejo la ruta http://www.virtualgl.org/.

    Luego te comento que tal.

    Excelente artículo.

    • rtmex Says:

      Hola Elias

      No había escuchado sobre VirtualGL, voy a checar la ruta que pusiste.

      Creo que las PC PII y PIII que mencionas funcionarían como thin clients sin problemas con TCOS, que es parecido al LTSP pero al parecer es menos complicado de configurar, aunque requiere mas recursos que el LTSP (Pentium a 100 o 133Mhz y 32 o 64MB RAM), te dejo la ruta http://www.tcosproject.org/

      Saludos y gracias por tus comentarios

  2. Alhio Says:

    Excelente!!, hay alguna similitud afin, pues soy abogado, y linuxero desde el 98, nos soy experto y todavia me considero novato, y esa inquietud fué la que me inició a este sistema, te felicito pues tu narativa hizo que la sientiera mía, jejejejejeje Que tengas un muy buen día, de Matamoros, Tamaulipas México el saludo. =o)

  3. cioran Says:

    saludos, buen viaje, muy buena expresión, yo estoy en similar aventura pero no tan retadora, muyutil me resulta, puescainaba haca netbsd pero tomare frebsd, gracias

  4. Ruben oliva Says:

    muy buen post, estoi experimentando y eh experimentado en las mismas areas, años atras habia hecho lo suyo com un cirix dlc486 40mhz 8mb de ram con freebsd 4.4, picobsd basado en freebsd 2.2 y netbsd 2 y un hdd de 4.3 gb ahora estoi probando otros sistemas en un 486compaq presario cds724 con 52mb en ram y 4.3 gb lo hize correr con openwrt backfire 10.03 con kernel linux 2.6.32 pero tuve que dejarlo al no tener soporte de hardware isa el openwrt x un lado y x otro si bien eh compilado sistemas completo no tenia soporte dentro del source la verdad al ejecutar al menos el kernel 2.6.32 lo hacia muy rapido cosa que me asombro para ser un 486 amd de 66mhz en fin la otra alternativa es coyote linux con kernel 2.4.18 creo y quedaria convertido en router pero lamentablemente no arranca sin teclado conectado sino hubiera sido un bonito router, en otra oportunidad hize varios routers con equipos acer 486 dx4 a 100mhz y entre 12 y 16mb de ram con coyote linux y floppys o hdd de 80 a 100 megas para darles una utilidad y estuvieron años funcionando en fin todo el hardware entre pentiums 1 de 100 mhz 32 en ram se pueden convertir en routers o terminales graficas con arranque desde usb, desde hace un tiempo descubri un loader que permite arrancar desde usb en equipos sin soporte y puedes arrancar un sistema operativo completo desde usb, es facil empotrar un pendrive para iniciar los equipos y la mayoria de las motheboards desde los pentium 1 en adelante traen controladora usb integrado aunque que conectar las salidas y el loader se integra en la bios como modulo con eso se puede dar mas tiempo de vida aa hardware considerado obsoleto y dado de baja pero que se puede convertir en oro como equipos de redes…

    • rtmex Says:

      Gracias por tus comentario Ruben

      Efectivamente como tu comentas, prácticamente cualquier Pentium I, con 128MB de RAM (incluso menos) puede realizar bastantes funciones, y como cliente ligero de una máquina más potente funcionaría perfecto.

      Saludos

  5. Gabriel Says:

    Exelente trabajo, siempre he pensado que hasta una XT puede hacer el trabajo de un flamante pVI, no me refiero a los grandes graficos, y efectos espectaculares, si no al trabajo util que a final de cuentas, es el motivo de su existencia.
    me toco vivir en la epoca de los 8 bits, 1 MHZ y 16Kb RAM, ya haciamos aplicaciones utiles, desde bases de datos, hojas electronicas, asi que un 386 estaria muy sobrado para el trabajo.
    Te recomendaria, si puedes, optimizar el kernel, el tiempo de arranque puede mejorar, y lo mas importante, buscar aplicaciones interesantes que pueda ejecutar a una velocidad aceptable,en modo texto estaria super, aunque el 386 tiene suficiente potencia para manejar un modo grafico ligero,
    Actualmente los programas modernos son ineficientes, utilizan muchos recursos para hacer algo sencillo, Ya te imaginaras el verdadero potencial que tienen estas maquinas que muchos consideran obsoletas.
    suerte

  6. angel garcia Says:

    deceo hacer una pregunta ,tengo una maquina antigua y esta tiene una cpu 486 sx 2 o algo asi ,tiene una tarjeta grafica hercules monocromática ,(dice hercules residen en el arranque ) y tengo problemas con el monitor ya que no tengo rremplazo ,compre una tarjeta grafica a color para este mismo pc,lo que no se si es llegar y cambiarla y la cpu lo reconocerá automáticamente o tendría que cargarle algún driver especial ,note que solo tiene mas largo el conector y este ocuparía todo el largo de la ranura ya que la hercules ocupa un tramo menor la ranura tiene una división la tarjeta vga ocuparía la totalidad de esta ranura ,
    angelmarino77@hotmail.com

Replica a rtmex Cancelar la respuesta