¿Recargar el controlador para el lector de tarjetas USB sin reiniciar?

Tengo un lector de tarjetas USB que uso para la banca en línea (Handelsbanken, Suecia). Muy a menudo, el controlador de este lector de tarjetas deja de funcionar y me obliga a reiniciar la computadora. La conexión rota entre el controlador y los lectores de tarjetas se indica de varias maneras:

  1. Cuando conecto el lector de tarjetas a mi computadora, deberían aparecer algunos gráficos en la pantalla del lector de tarjetas después de una inicialización exitosa. Estos gráficos nunca se muestran

  2. Cuando lanzo la aplicación administrativa me dice que el lector de tarjetas no está conectado

He mirado los archivos que instala el controlador en el instalador. Instala los siguientes archivos:

/private/var/db/receipts/com.todos.shbecr.shbecr.pkg.bom /private/var/db/receipts/com.todos.shbecr.shbecr.pkg.plist /usr/libexec/SmartCardServices/drivers/shbecr .bundle /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/Info.plist /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/MacOS /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/MacOS/shbecr /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/Resources /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/Resources /English.lproj /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/Resources/English.lproj/InfoPlist.strings

Intentando ejecutar el único archivo binario anterior, /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/MacOS/shbecr devuelve el siguiente mensaje de error:

-bash: /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/MacOS/shbecr: no se puede ejecutar el archivo binario

archivo en este archivo binario devuelve

/usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/MacOS/shbecr: Mach-O fat file con 2 arquitecturas: [ : paquete Mach-O ppc_7400 ] [ I386: paquete Mach-O i386 ]

Puedo ver el lector de tarjetas en USB Prober

-------------------------------------------
Full Speed device @ 4 (0xFD120000): .............................................   Vendor-specific device: "Handelsbanken card reader"
    Port Information:   0x1018
           Not Captive
           External Device
           Connected
           Enabled
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (unconfigured):   3
    Device Descriptor   
        Descriptor Version Number:   0x0110
        Device Class:   255   (Vendor-specific)
        Device Subclass:   255   (Vendor-specific)
        Device Protocol:   255
        Device MaxPacketSize:   8
        Device VendorID/ProductID:   0x0B0C/0x003F   (Todos Data System AB)
        Device Version Number:   0x0000
        Number of Configurations:   1
        Manufacturer String:   1 "Todos Data System AB"
        Product String:   2 "Handelsbanken card reader"
        Serial Number String:   0 (none)
    Current configuration:   0 (unconfigured)
    Configuration Descriptor   
        Length (and contents):   32
            Raw Descriptor (hex)    0000: 09 02 20 00 01 01 00 80  32 09 04 00 00 02 FF FF  
            Raw Descriptor (hex)    0010: FF 04 07 05 81 02 40 00  00 07 05 02 02 40 00 00  
            Unknown Descriptor   0020: 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0x80 (bus-powered)
        MaxPower:   100 ma
        Interface #0 - Vendor-specific ..............................................   "MCI_OSR_0205"
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   255   (Vendor-specific)
            Interface Subclass;   255   (Vendor-specific)
            Interface Protocol:   255
            Endpoint 0x81 - Bulk Input   
                Address:   0x81  (IN)
                Attributes:   0x02  (Bulk no synchronization data endpoint)
                Max Packet Size:   64
                Polling Interval:   0 ms
            Endpoint 0x02 - Bulk Output   
                Address:   0x02  (OUT)
                Attributes:   0x02  (Bulk no synchronization data endpoint)
                Max Packet Size:   64
                Polling Interval:   0 ms
-------------------------------------------

Ha sido así durante diez años más o menos y en 5 o más Mac: he tenido durante este período. Estoy harto de eso y me pregunto si hay una manera de reiniciar el controlador para el lector de tarjetas/restablecer puertos USB o similar que pueda hacer sin reiniciar la computadora cada vez.

Consulte developer.apple.com/library/mac/#documentation/Darwin/Reference/… & developer.apple.com/library/mac/#documentation/Darwin/Reference/… — ahora solo tiene que encontrar el kext correcto, si es una extensión del kernel. Todo lo demás solo requeriría que el dispositivo se desconecte y se vuelva a conectar. AFAIK como desarrollador .. :)
Gracias por tu respuesta. Sé acerca de kext(un)load pero como escribí en la pregunta, el instalador no instala un kext, solo algún tipo de binario en/usr/libexec. ¿Tal vez hay un subsistema de lector de tarjetas inteligentes en Mac OS X que se activa cuando algo que se identifica como un lector de tarjetas está conectado al puerto USB? Agradecería más comentarios e ideas.

Respuestas (1)

He hecho algunos progresos y una respuesta parcial a mi pregunta es que no es el controlador el que falla, sino el daemon de la tarjeta inteligente de Apple. reiniciarlo

sudo killall pcscd
sudo /usr/sbin/pcscd -fda

hasta ahora ha resuelto mi problema cada vez.

¿Cómo encontraste el proceso "pcscd". Mi mouse USB deja de funcionar y supongo que es la misma razón.
pcscd parece haber sido reemplazado por algo más en las versiones más nuevas del sistema operativo. Hay algo llamado com.apple.ctkpcscd que podría ser interesante. ¡Buscalo en Google!