Treiber für USB-Kartenleser neu laden ohne Neustart?

Ich habe einen USB-Kartenleser, den ich für Online-Banking (Handelsbanken, Schweden) verwende. Hin und wieder funktioniert der Treiber für diesen Kartenleser nicht mehr und zwingt mich, den Computer neu zu starten. Die unterbrochene Verbindung zwischen dem Treiber und den Kartenlesern wird auf mehrere Arten angezeigt:

  1. Wenn ich den Kartenleser an meinen Computer anschließe, sollten nach erfolgreicher Initialisierung einige Grafiken auf dem Display des Kartenlesers erscheinen. Diese Grafiken werden nie angezeigt

  2. Wenn ich die Verwaltungsanwendung starte, heißt es, dass der Kartenleser nicht verbunden ist

Ich habe mir die Dateien angesehen, die der Treiber im Installer installiert. Es installiert die folgenden Dateien:

/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

Beim Versuch, die einzige obige Binärdatei auszuführen, gibt /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/MacOS/shbecr die folgende Fehlermeldung zurück:

-bash: /usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/MacOS/shbecr: Binärdatei kann nicht ausgeführt werden

Datei auf dieser Binärdatei zurück

/usr/libexec/SmartCardServices/drivers/shbecr.bundle/Contents/MacOS/shbecr: Mach-O Fat-Datei mit 2 Architekturen: [ : Mach-O ppc_7400 Bundle ] [ I386: Mach-O i386 Bundle ]

Ich kann den Kartenleser in USB Prober sehen

-------------------------------------------
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
-------------------------------------------

Das ist seit ungefähr zehn Jahren so und auf 5 oder mehr Macs, die ich in dieser Zeit besessen habe. Ich habe es satt und frage mich, ob es eine Möglichkeit gibt, den Treiber für den Kartenleser neu zu starten/USB-Anschlüsse zurückzusetzen oder ähnliches, ohne den Computer jedes Mal neu zu starten?

Siehe developer.apple.com/library/mac/#documentation/Darwin/Reference/… & developer.apple.com/library/mac/#documentation/Darwin/Reference/… – jetzt müssen Sie nur noch den richtigen Kext finden, wenn es sich um eine Kernel-Erweiterung handelt. Alles andere würde nur erfordern, dass das Gerät getrennt und wieder verbunden wird. AFAIK als Entwickler.. :)
Danke für deine Antwort. Ich kenne kext(un)load, aber wie ich in der Frage geschrieben habe, installiert das Installationsprogramm kein kext, sondern nur eine Art Binärdatei in /usr/libexec. Vielleicht gibt es in Mac OS X ein Smartcard-Leser-Subsystem, das ausgelöst wird, wenn etwas, das sich als Kartenleser identifiziert, an den USB-Anschluss angeschlossen wird? Würde mich über weitere Kommentare und Ideen freuen.

Antworten (1)

Ich habe einige Fortschritte gemacht und eine Teilantwort auf meine Frage lautet, dass nicht der Treiber ausfällt, sondern der Smartcard-Daemon von Apple. Starten Sie es neu

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

hat mein Problem bisher immer gelöst.

Wie haben Sie den Prozess "pcscd" gefunden? Meine USB-Maus funktioniert nicht mehr und ich denke, es ist der gleiche Grund.
pcscd scheint in neueren Versionen des Betriebssystems durch etwas anderes ersetzt worden zu sein. Es gibt etwas namens com.apple.ctkpcscd, das interessant sein könnte. Google es!