miércoles, 13 de octubre de 2021

Iomega Zip 100 MB Puerto Paralelo

En 1994 la empresa Iomega (ahora LenovoEMC) lanzo al mercado las unidades Zip, un sistema de almacenamiento en discos magnéticos extraíbles similar a los disquetes de 3,5" pero con mayor capacidad y velocidad de lectura/escritura. Los primeros dispositivos utilizaban discos de 100 MB, posteriores versiones alcanzaron capacidades de 250 y 750 MB. Se crearon unidades externas e internas con diferentes métodos de conexión al ordenador: SCSI, IDE, puerto paralelo, FireWire y USB.

El incremento de tamaño de los discos duros y el surgimiento de las grabadoras de CD/DVD hicieron que dejaran de usarse las unidades Zip. Pensando en un tema para un artículo sobre la historia de los sistemas de almacenamiento me acordé de esta tecnología y pude comprar por poco dinero una unidad Iomega Zip 100 MB con conexión por puerto paralelo y un disco de 100 MB.

Los discos Zip de 100 MB son similares a los disquetes de 3,5" pero con algo más de superficie y aproximadamente el doble de grosor. La relación capacidad/tamaño es mucho mayor. Al igual que los disquetes, tienen una protección de metal que la unidad desplaza para acceder al disco magnético. En el centro por la parte inferior también tienen una pieza de metal circular para hacer girar el disco. Los discos tienen una pegatina en la que se puede escribir un título o descripción breve del contenido del disco.





Los discos se almacenaban en cajas de plástico similares a las de los CD/DVD. La caja tenía una cartulina visible desde el exterior en la que poder escribir una descripción amplia del contenido del disco.


Al ser los disquetes de menor tamaño que los discos Zip era posible introducirlos por error en una unidad Zip. Si al introducir un disquete la unidad Zip se pusiera en funcionamiento podrían sufrir daños la unidad y el disquete. Para evitar esto los discos Zip tienen por la parte de abajo, en la esquina superior izquierda, una pieza reflectante que utiliza la unidad Zip para reconocer los discos Zip.

La unidad Zip tiene en la parte frontal la ranura para la introducción de los discos igual que las disqueteras. En el lado derecho hay un pulsador que indica a la unidad que expulse el disco, pero este no es expulsado mientras se encuentre en uso por el ordenador. Es un sistema más versátil que el botón de expulsión de las disqueteras, que expulsa de forma mecánica el disquete aunque esté en uso, pero tiene la desventaja de que no se puede extraer el disco con la unidad Zip apagada.

Las unidades CD/DVD funcionan de igual forma pero tienen un pequeño agujero por donde introducir algo delgado como la punta de un clip para expulsar el disco de forma mecánica aunque la unidad esté apagada.

Encima del botón de expulsión se encuentran dos luces indicadoras de estado. La primera, de color verde, indica que la unidad está encendida. La segunda, de color ámbar, se enciende cuando la unidad está activa leyendo/escribiendo o al introducir/expulsar un disco.

En la parte de arriba de la unidad hay una ventana de plástico trasparente a través de la cual se puede ver la etiqueta del disco para poder saber que disco se ha introducido. En la ventana también hay un esquema de los dos pasos a seguir para introducir un disco: 1) Esperar que brille la luz de encendido. 2) Introducir el disco por la ranura con la etiqueta hacia atrás.


Por la parte de abajo la unidad tiene cuatro patas de goma para su soporte. En uno de los lados también tiene patas de goma para poder colocar la unidad de forma vertical. En el lado de las patas de goma también se encuentra el conector para el adaptador de corriente. La unidad no dispone de interruptor de encendido/apagado. Para apagarla es necesario desconectar el adaptador de la unidad o de la corriente eléctrica. Una buena opción es conectar el adaptador de corriente a una regleta con interruptor.


El adaptador de corriente que venía con la unidad no es el original, es uno compatible que suministra los 5 V/1 A necesarios. El enchufe tiene formato BS 1363, para conectarlo a la red eléctrica utilice un adaptador a Schuko. El conector a la unidad Zip no es acodado, por lo que sobresale demasiado y no permite colocar la unidad de forma vertical.

En la parte de atrás se encuentran dos conectores DB-25. El conector macho con la inscripción "zip" es para conectar la unidad al puerto paralelo del ordenador. El conector hembra con el dibujo de una impresora se utiliza para conectar una impresora al ordenador a través de la unidad Zip. Los ordenadores solo tenían un puerto paralelo comúnmente usado para conectar la impresora. Al utilizar el puerto paralelo para conectar la unidad Zip era necesario ofrecer una forma de conectar la impresora a la vez que la unidad Zip. En la parte de abajo de la unidad hay dibujado un esquema de conexión.

La conexión de la unidad con el puerto paralelo se realiza mediante un cable con un conector DB-25 macho en un extremo y un conector DB-25 hembra en el otro. Como el cable y los conectores son bastante pesados hay un tornillo a cada lado de los conectores para fijarlos firmemente a la unidad y el ordenador. Los tornillos tienen una cabeza de plástico para poder apretarlos con la mano sin necesidad de usar destornillador.


Internamente la unidad Zip es un disco SCSI con un adaptador a puerto paralelo. El sistema operativo debe tener un controlador que realice la comunicación SCSI con la unidad Zip a través del puerto paralelo siguiendo el protocolo definido por el fabricante de la unidad. En Linux esta tarea la realizan los módulos del kernel ppa e imm dependiendo del tipo de unidad. También necesitaremos algún programa como jaZip que nos permita enviar ordenes a la unidad Zip. En las últimas versiones de las distribuciones de Linux es posible que estos módulos y programas no estén compilados, por lo que tendremos que compilarlos o usar una versión antigua como por ejemplo Debian Lenny.

Para utilizar la unidad Iomega Zip 100 MB con conexión por puerto paralelo es necesario cargar el módulo ppa mediante el programa modprobe o añadir el módulo al archivo /etc/modules para que se cargue automáticamente al iniciar el sistema.

# modprobe ppa

# vi /etc/modules

ppa

Con el comando dmesg podemos ver como se carga el módulo y detecta la unidad Zip como un disco SCSI. Si utilizamos una distribución antigua hay que tener en cuenta que anteriormente se utilizaban dispositivos /dev/hdx para los discos IDE y /dev/sdx para los discos SCSI. En la actualidad se utilizan dispositivos /dev/sdx para todo tipo de discos. En un ordenador con solo un disco IDE y Debian Lenny, al disco IDE se le asigna el dispositivo /dev/hda y a la unidad Zip /dev/sda. En una distribución actual se asignaría /dev/sda al disco IDE y /dev/sdb a la unidad Zip.

# dmesg

[  400.615534] ppa: Version 2.07 (for Linux 2.4.x)
[  400.691401] ppa: Found device at ID 6, Attempting to use EPP 32 bit
[  400.693699] ppa: Found device at ID 6, Attempting to use SPP
[  400.694127] ppa: Communication established with ID 6 using SPP
[  400.699228] scsi1 : Iomega VPI0 (ppa) interface
[  400.796150] scsi 1:0:6:0: Direct-Access     IOMEGA   ZIP 100          J.03 PQ: 0 ANSI: 2
[  400.892141] sd 1:0:6:0: [sda] 196608 512-byte hardware sectors (101 MB)
[  400.900158] sd 1:0:6:0: [sda] Write Protect is off
[  400.900169] sd 1:0:6:0: [sda] Mode Sense: 25 00 00 08
[  400.912163] sd 1:0:6:0: [sda] Cache data unavailable
[  400.912174] sd 1:0:6:0: [sda] Assuming drive cache: write through
[  400.932157] sd 1:0:6:0: [sda] 196608 512-byte hardware sectors (101 MB)
[  400.940654] sd 1:0:6:0: [sda] Write Protect is off
[  400.940666] sd 1:0:6:0: [sda] Mode Sense: 25 00 00 08
[  400.952325] sd 1:0:6:0: [sda] Cache data unavailable
[  400.952336] sd 1:0:6:0: [sda] Assuming drive cache: write through
[  400.952401]  sda: sda4
[  401.048600] sd 1:0:6:0: [sda] Attached SCSI removable disk

El ordenador al que conecté la unidad Zip tiene un puente sur VIA VT82C686B que incluye un controlador de puerto paralelo que puede funcionar en modo SPP (Standard Parallel Port) o en los modos EPP (Enhanced Parallel Port) y ECP (Enhanced Capability Port) que permiten más velocidad.

En la carga del módulo ppa se puede ver como primero intenta realizar la comunicación usando EPP y al no poder utiliza SPP. Para utilizar EPP es necesario configurar el puerto paralelo en el BIOS para usar este modo. Una vez configurado podemos iniciar otra vez el ordenador y veremos como el módulo usa el modo EPP.

# dmesg

[  148.435691] ppa: Version 2.07 (for Linux 2.4.x)
[  148.511568] ppa: Found device at ID 6, Attempting to use EPP 32 bit
[  148.512072] ppa: Communication established with ID 6 using EPP 32 bit
[  148.517112] scsi1 : Iomega VPI0 (ppa) interface
[  148.612165] scsi 1:0:6:0: Direct-Access     IOMEGA   ZIP 100          J.03 PQ: 0 ANSI: 2
[  148.708154] sd 1:0:6:0: [sda] 196608 512-byte hardware sectors (101 MB)
[  148.716171] sd 1:0:6:0: [sda] Write Protect is off
[  148.716181] sd 1:0:6:0: [sda] Mode Sense: 25 00 00 08
[  148.728176] sd 1:0:6:0: [sda] Cache data unavailable
[  148.728185] sd 1:0:6:0: [sda] Assuming drive cache: write through
[  148.748172] sd 1:0:6:0: [sda] 196608 512-byte hardware sectors (101 MB)
[  148.756767] sd 1:0:6:0: [sda] Write Protect is off
[  148.756792] sd 1:0:6:0: [sda] Mode Sense: 25 00 00 08
[  148.768424] sd 1:0:6:0: [sda] Cache data unavailable
[  148.768434] sd 1:0:6:0: [sda] Assuming drive cache: write through
[  148.768500]  sda: sda4
[  148.860558] sd 1:0:6:0: [sda] Attached SCSI removable disk

Si hacemos un test de velocidad con hdparm antes y después de configurar el puerto en modo EPP podremos comprobar como la velocidad es bastante superior usando EPP.

SPP
---

# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:    2 MB in 16.58 seconds = 123.54 kB/sec

EPP
---

# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:    2 MB in  3.55 seconds = 577.10 kB/sec

Con los archivos de /proc/scsi y los comandos lsscsi y sginfo podemos inspeccionar más información de los dispositivos SCSI como la unidad Zip. sginfo se encuentra dentro del paquete sg3-utils.

# cat /proc/scsi/scsi

Attached devices:
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: IOMEGA   Model: ZIP 100          Rev: J.03
  Type:   Direct-Access                    ANSI  SCSI revision: 02


# cat /proc/scsi/ppa/0 

Version : 2.07 (for Linux 2.4.x)
Parport : parport0
Mode    : EPP 32 bit


# lsscsi

[0:0:6:0]    disk    IOMEGA   ZIP 100          J.03  /dev/sda


# sginfo -a /dev/sda

INQUIRY response (cmd: 0x12)
----------------------------
Device Type                0
Vendor:                    IOMEGA  
Product:                   ZIP 100         
Revision level:            J.03

Los discos Zip permiten ser particionados como cualquier disco duro. De fabrica venían con una sola partición, la número 4, que ocupaba todo el disco y estaba formateada con el sistema de archivos FAT16. Con cualquier programa de particionado como fdisk podemos particionar el disco como deseemos.

# fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 100 MB, 100663296 bytes
64 heads, 32 sectors/track, 96 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x888f014e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          96       98288   83  Linux

Command (m for help):

Después de particionar podemos formatear las particiones con cualquier sistema de archivos que necesitemos, por ejemplo podemos usar Ext2, un sistema de archivos sin journaling que deje más espacio para guardar archivos.

# mkfs.ext2 /dev/sda1

mke2fs 1.41.3 (12-Oct-2008)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=1024 (bitácora=0)
Tamaño del fragmento=1024 (bitácora=0)
24576 nodos-i, 98288 bloques
4914 bloques (5.00%) reservados para el superusuario
Primer bloque de datos=1
Número máximo de bloques del sistema de ficheros=67371008
12 bloque de grupos
8192 bloques por grupo, 8192 fragmentos por grupo
2048 nodos-i por grupo
Respaldo del superbloque guardado en los bloques: 
	8193, 24577, 40961, 57345, 73729

Escribiendo las tablas de nodos-i: hecho                           
Escribiendo superbloques y la información contable del sistema de ficheros: hecho

Una vez formateado podemos montar y desmontar el sistema de archivos con los comandos mount y umount.

# mount /dev/sda1 /mnt/
# umount /mnt

Los disquetes tienen un agujero en una esquina que se puede tapar o destapar con una pestaña para desactivar o activar la protección contra escritura. En los discos Zip la protección contra escritura es por software. Iomega proveía el programa necesario para activarla y desactivarla. En Linux se puede utilizar el programa jaZip, que además permite montar, desmontar y expulsar el disco. Lo que no permite es activar/desactivar la protección por contraseña. La comunicación entre el programa y la unidad Zip se realiza median llamadas de sistema con comandos SCSI específicos de la unidad.

jaZip permite administrar varios dispositivos que hay que configurar en el archivo /etc/jazip.conf. Por cada dispositivo se añade una línea con la dirección del dispositivo y un directorio de montaje. El programa monta la primera partición que encuentra en el dispositivo en el directorio indicado, no permite administrar varias particiones. jaZip también puede controlar unidades Iomega Jaz.

# Configuration file for jaZip
#
# Raw Device         Mount Point         Read but ignored
  /dev/sda           /zip                auto    auto    0 0

El archivo de configuración se puede crear manualmente o con el programa de configuración jazipconfig. Durante la configuración se pueden crear los directorios de montaje.

# jazipconfig 

There are currently no entries in /etc/jazip.conf.

Zip devices detected on the system:

  1:  Device /dev/sda

There are no Jaz devices detected on the system.

Available commands:
 (a)dd an entry listed from detected devices.
 (c)reate an entry from scratch.
 (q)uit without saving.
 (e)xit and save changes.
                           ? a

What mount point? (e.g. /zip) /zip
--------------------------------------------
These are the entries currently selected for /etc/jazip.conf:

  1:   Device /dev/sda   Mount point /zip

There are no other Zip devices detected on the system.

There are no Jaz devices detected on the system.

Available commands:
 (d)elete an entry from /etc/jazip.conf
 (c)reate an entry from scratch.
 (q)uit without saving.
 (e)xit and save changes.
                           ? e

Mount point /zip does not exist. Create it? (y/n) [y]:  
Creating /etc/jazip.conf

Una vez configurado se puede ejecutar el programa pasándole como parámetro el dispositivo que se quiere administrar. Si no se le indica ningún dispositivo elige el primero del archivo de configuración. El programa tiene seis botones con las siguientes funciones: estado de disco, montar, desmontar, expulsar, activar protección y desactivar protección.

Así son las unidades Zip y su uso en Linux. En el futuro espero conseguir algún otro modelo: 250 MB, conexión IDE/SCSI, etc. También me quedan pendientes otros tipos de discos extraíbles como Iomega Jaz o Superdisk. Puedes seguir leyendo sobre sistemas de almacenamiento extraíbles en el artículo Grabadora LTO-2 HP StorageWorks Ultrium 460.

No hay comentarios:

Publicar un comentario