El puerto USB

 

El puerto USB (Universal Serial Bus) es una interfaz de comunicaciones de datos digitales especialmente diseñada para la conexión de periféricos a un ordenador. Entre sus especificaciones se incluyeron múltiples características orientadas a simplificar la conexión de dispositivos al ordenador como la alimentación a través del propio puerto con soporte para dispositivos con un consumo de energía mínimo (lo que permite el uso de concentradores sin alimentación propia), la conexión y desconexión en caliente y una velocidad de transmisión más que suficiente para la mayoría de los dispositivos externos (mejorada a lo largo de sus distintas versiones).

 


Los lectores de tarjetas USB son los más comunes y sencillos de instalar. Los lectores de tarjetas USB presentes en el mercado se encuentran bajo múltiples formas:

 

 

Prerrequisitos de los lectores de tarjetas inteligentes USB

Antes de iniciar cualquier instalación de un lector de tarjetas inteligentes USB (y antes de conectarlo al sistema) es necesario instalar el subsistema de soporte de lectores de tarjetas inteligentes de GNU/Linux y OpenSolaris: PC/SC.

Este subsistema, en una instalación típica de GNU/Linux u OpenSolaris, se compone únicamente de tres paquetes instalables: libpcsclite1, pcscd y pcsc-tools.

Un ejemplo de instalación de estos paquetes mediante la utilidad aptitude de GNU/Linux sería la siguiente:

$ sudo aptitude install libpcsclite1
$ sudo aptitude install pcscd
$ sudo aptitude install pcsc-tools

 

Tras instalar PC/SC, podemos proceder a la instalación de los propios controladores del lector de tarjetas USB. La gran mayoría de los lectores de tarjetas USB siguen la normativa estándar CCID, por lo que no es necesario buscar un controlador específico para cada marca y modelo de lector, son que este controlador CCID soportará todos los modelos compatibles.

El controlador CCID de lectores de tarjetas inteligentes en bus USB se encuentra en un único paquete instalable de Linux / OpenSolaris: libccid. Es importante resaltar aquí, que en algunos sistemas es necesario tener conectado el lector USB al ordenador mientras se instala el controlador USB.

El controlador CCID de lectores de tarjetas inteligentes en bus USB se encuentra en un único paquete instalable de GNU/Linux / OpenSolaris: libccid. Dicho paquete se selecciona automáticamente para su instalación cuando se selecciona el paquete pcscd, al ser una dependencia de este. Es importante resaltar aquí, que en algunos sistemas antiguos es necesario tener conectado el lector USB al ordenador mientras se instala el controlador USB.

Un ejemplo de instalación de estos paquetes mediante la utilidad aptitude de Linux sería la siguiente:

$ sudo aptitude install libccid

 

Una vez finalizada la instalación de los controladores nuestro lector está preparado para ser utilizado (es conveniente reiniciar antes el equipo).

 

Resolución de problemas comunes

 

¿Cómo puedo comprobar si mi lector de tarjetas inteligentes está correctamente instalado?

Es posible comprobar la correcta instalación del lector de tarjeta inteligente mediante la utilidad pcsc_scan del paquete pcsc-tools. El procedimiento a realizar es:

$ pcsc_scan



La salida típica en consola debe ser muy similar a la siguiente (en este caso teniendo una tarjeta inteligente compatible ISO 7816-4 insertada en el lector):


PC/SC device scanner
V 1.4.9 (c) 2001-2006, Ludovic Rousseau 
Compiled with PC/SC lite version: 1.4.2
Scanning present readers
0: cherry ST1044U 00 00 Wed Oct 1 15:58:46 2008 Reader 0: cherry ST1044U 00 00 Card state: Card inserted, ATR: 3B 79 94 00 00 59 01 01 0E 01 00 01 02 A9



En la salida del comando (de la cual se han omitido las líneas finales) se interpretan dos aspectos importantes:



He instalado correctamente tanto PC/SC como el controlador CCID pero mi lector USB no es detectado por pcsc_scan ¿Qué puedo hacer?



Posiblemente su lector de tarjetas soporte CCID pero no esté pre-configurado como un dispositivo reconocido. Para obligar al controlador CCID a reconocerlo deberemos ejecutar primeramente el comando “lsusb” para obtener la información del dispositivo.

$ lsusb –v

 

Este comando devolverá la información detallada de los puertos USB y de los dispositivos conectados a ellos. Deberemos localizar la información referente al lector de tarjetas y anotar sus identificadores de vendedor y producto asignados (VendorID y ProductID).

 

El controlador CCID almacena la información de los dispositivos reconocidos en el fichero info.plist del directorio usr/lib/pcsc/drivers/ifd-ccid.bundle/contents/. Para que reconozca nuestro lector introduciremos sus datos en este fichero.

 

El fichero info.plist es un fichero XML que almacena 3 datos principales de cada uno de los dispositivos reconocidos por el controlador:

 

Podemos introducir la información de nuestro dispositivo tal y como se aprecia por las entradas en negrita del siguiente ejemplo, en donde los datos VendorID y ProductID son los que ya se encontraron mediante lsusb y el FriendlyName es el nombre que queramos asignarle al dispositivo.

 

ifdManufacturerString
OpenCT Project (www.opensc-project.org/openct/)
ifdProductString
PC/SC Lite IFD wrapper for OpenCT
ifdCapabilities
0x00000000
ifdProtocolSupport
0x00000001
ifdVersionNumber
0x00000001

ifdVendorID
0x0973
0x0529
0x0529
0x0529
0x072f
0x104f
0x076B

ifdProductID
0x0001
 0x050c
0x0514
0x0600
 0x90d0
 0x0004
0X050C

ifdFriendlyName
Axalto/Schlumberger/Gemalo egate token
Aladdin eToken PRO
Aladdin eToken PRO
 Aladdin eToken PRO 64
Pertosmart Card Reader
WB Electronics Inifinty USB Ulimited
OMNIKEY CARDMAN 3121

 

Tras esto, se debe reiniciar la máquina para que se apliquen los cambios realizados. Una vez reiniciada, se puede ejecutar el comando pcsc_scan para comprobar si se detecta el dispositivo.

 

En caso de seguir sin detectarse el dispositivo, se puede determinar que el lector USB no es CCID. En este caso, se recomienda consultar en la Web del fabricante si dispone de controladores e instrucciones de instalación particulares para este dispositivo.

 

Mi lector no se instala correctamente en OpenSolaris ¿Hay alguna instrucción adicional para este sistema operativo?

 

Sí. El controlador PC/SC que se distribuye ya instalado en OpenSolaris comúnmente presenta problemas. Es recomendable en estos casos instalar el controlador PC/SC de Sun Microsystems para Solaris. Podemos descargar este controlador desde la página Web:

 

https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=PCSC-Lite-1.1-SP-G-F@CDS-CDS_SMI

 

Para realizar la descarga es necesario registrarse previamente en la Web de Sun Microsystems.

Mi lector de tarjetas inteligentes solo soporta el formato físico tipo SIM ¿Puedo usar mi DNIe en él?

 

No, no es posible.

Mi lector de tarjetas inteligentes requiere conexión interna (no posee un conector USB estándar) ¿Cómo lo conecto?

 

Siga las instrucciones del fabricante de su lector de tarjetas y del fabricante de su ordenador personal.