Il 31 luglio 2012 15:08, Michele Pedrolli <michele.pedrolli@xxxxxxxxx> ha scritto: > 2012/7/31 Roberto Resoli <roberto.resoli@xxxxxxxxx>: > >> Azzardo: forse in realtà i lettori sono effettivamente diversi, ma >> "vestiti" allo stesso modo. > > Io non credo che i lettori siano diversi. Credo piuttosto che > l'installazione di libacr38u abbia riavviato in qualche caso il pcscd > forzando la rilettura del driver corretto (cioè sempre il libccid). > > Come indicato in [1] il lettore > ACS ACR 38U-CCID (072f:90cc) deve utilizzare libccid, mentre il lettore > ACS ACR38U (072F:9000) deve utilizzare libacr38u > > Da un rapido lsusb risulta che il mio Smarty sia un 072f:90cc. Provate > con i vostri. Il mio non è uno smarty, ma pare identico al tuo: ID 072f:90cc Advanced Card Systems, Ltd ACR38 SmartCard Reader Io ho installati (su Ubuntu 12.04 amd64) sia libacr38 che libccid; Nota generale: Ogni driver di smartcard installa in /usr/lib/pcsc/drivers/ una propria directory di configurazione, con estensione ".bundle"; libacr38u -> ACR38UDriver.bundle libccid -> ifd-ccid.bundle Nella directory .bundle sono contenute metainformazioni (file Contents/Info.plist) sull'hardware supportato (con relative stringe descrittive riportate da pcsc) e anche il driver vero e proprio (libreria in file Contents/Linux). Ho quindi provato a rimuovere il driver libacr38 come segue: 1) Rimozione del pacchetto compresi i file di configurazione: sudo aptitude purge libacr38u 2) Uccisione delle istanze correnti (eventuali) di pcscd: killall pcscd 3) Riconfigurazione di libccid sudo dpkg-reconfigure libccid 4) Rimozione e reinserimento del lettore dalla porta usb. A questo punto pcsc ritorna: opensc-tool --list-readers $ opensc-tool --list-readers # Detected readers (pcsc) Nr. Card Features Name 0 No ACS ACR 38U-CCID 00 00 Confermando che il lettore è gestito dal driver ccid. Purtroppo ho dimenticato di far girare il comando *prima* della rimozione di libacr38u, per vedere se la stringa identificativa fosse diversa. Sospetto però che il driver attivo fosse sempre libccid, che tra l'altro è una dipendenza di pcscd: $ apt-cache rdepends libccid libccid Reverse Depends: libccid:i386 libusb-0.1-4:i386 |pcscd libusb-0.1-4 Quindi non c'è nemmeno modo di rimuoverlo senza rimuovere anche pcscd. Giusto per avere un altro riscontro, ho rimosso manualmente il bundle di libccid, e reinstallato libacr38u, ripetendo la procedura vista sopra, questa volta per libacr38u. Non sono riuscito in alcun modo ad attivare il driver. === Nota finale: le nuove verioni di pcscd non funzionano come demoni, ma vengono attivate solo su richiesta (un po'come i demoni di rete attivati da tcpwrapper): http://ludovicrousseau.blogspot.it/2010/09/pcscd-auto-start.html In ogni caso questa funzione si può disabilitare, e si attiva solo se non c'è già un processo pcscd in funzione per quel lettore: è possibile quindi tracciare il funzionamento di pcsc con il consueto: sudo pcscd -a -f -d rob rob -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx