pcscd debug output on Mac OS X
In my previous article "pcscd debug output" comments Koen asked about the same information but for Mac OS X.
pcscd start on Mac OS X
On Mac OS X pcscd is not started on system boot (as it used to be the case on GNU/Linux distributions) nor using the autostart feature (as it should be the case for pcsc-lite > 1.6.0). On Mac OS X the pcscd daemon is launched when a USB smart card reader is connected to the system. It is the job of securityd.securityd
The securityd manpage is short and not very information for our problem. In particular the command line options are not documented in the manpage. But the options are available from the command line itself:$ securityd -h securityd: illegal option -- h Usage: securityd [-dwX] [-a authConfigFile] Authorization configuration file [-c tokencache] smartcard token cache directory [-e equivDatabase] path to code equivalence database [-N serviceName] MACH service name [-s off|on|conservative|aggressive] smartcard operation level [-t maxthreads] [-T threadTimeout] server thread control
The important option here is
-s
. If you want to disable the automatic launch of pcscd you need to start securityd with -s off
. But you do not start securityd
yourself. securityd
is started by another daemon: launchd
.launchd
Thelaunchd
configuration file for securityd
is /System/Library/LaunchDaemons/com.apple.securityd.plist
.You need to edit it and add the two colored lines:
<array>
<string>/usr/sbin/securityd</string>
<string>-i</string>
<string>-s</string>
<string>off</string>
</array>
You then need to restart
launchd
. The easiest way it to reboot the computer.See also this mail from the apple-cdsa mailing list.
pcscd manual start on Mac OS X
After that change you can start pcscd manually in a terminal. No other pcscd process will be started when a smart card reader is connected.The same arguments as on GNU/Linux can be used:
pcscd --foreground --debug --apdu