sudo apt-get update sudo apt-get upgrade sudo apt-get install eid-mw sudo apt-get install eid-viewer
On vérifie dans la liste des services si pcscd existe via la commande $ls /etc/init.d Si ce n'est pas le cas, on démarre le service pcscd via la commande
$sudo service pcscd start
Si au redémarrage, le service n’est pas lancé (vérifier avec ps -ax | grep pcscd), on peut faire en sorte qu’il le soit toujours via la commande
$sudo systemctl enable pcscd
Source : tuto sur https://wiki.debian.org/fr/BeID
Installer les paquets
sudo apt-get install opensc opensc-pkcs11 pcscd libccid pcsc-tools
Vérifier que le lecteur fonctionne
pcsc_scan
source : Installing OpenSC PKCS#11 Module in Firefox, Step by Step
Remarque Comme c'est opensc qui est utilisé et pas le soft eid, un message avertit que le soft EID n'est pas installé. Passer outre et se connecter.
Ouvrir un terminal et taper
dpkg --listfiles opensc-pkcs11 | grep /opensc-pkcs11.so | xargs ls -l
Le résultat contient 2 lignes. Copier le contenu de la ligne sans le “→” (qui est un lien symbolique)
Le digipass ne fonctionne pas de façon optimale. Pour le faire fonctionner, il faut le débrancher/rebrancher sur le port usb et jouer avec un script écrit par Manuel Schulte. Après un temps d'inutilisation, le lecteur semble entrer en “veille” et pour le faire à nouveau fonctionner, il faut de nouveau lancer le script.
Le script est au bas de la page. Sauvez-le dans un fichier nommé “pcscd_init.sh”.
Ensuite, branchez votre lecteur de carte. Ouvrez un terminal, mettez-vous dans le répertoire du script et lancez
sudo /bin/bash pcscd_init.sh start -d
Quand vous avez fini, clôturez en lançant :
sudo /bin/bash pcscd_init.sh stop
Si le lecteur s'éteint, il faut le débrancher, le rebrancher et relancer le script.
Script pcscd_init.sh
#!/bin/bash
#
# Restart pcscd daemon in verbose mode and initiate pcsc_scan.
# You might have to unplug/plug the usb card reader!
EXPECTED_ARGS=2
E_BADARGS=65
#
MYSELF=pcscd_init.sh
#
START=/bin/systemctl" start"
STATUS=/bin/systemctl" status"
STOP=/bin/systemctl" stop"
SERVICE=pcscd.service
SOCKET=pcscd.socket
#
RM=/bin/rm
TOUCH=/usr/bin/touch
#
DAEMON=/usr/sbin/pcscd
DEBUG_SEMAPHORE=/var/run/pcscd.debug
SCAN=/usr/bin/pcsc_scan
#
#
USR=$(whoami)
if [ "$USR" != "root" ]
then
echo "You must be root to execute this script, re-run with sudo!"
exit 1
fi
#
# Check argument's number
if [ "$#" -eq "0" ] || [ "$#" -gt "$EXPECTED_ARGS" ]
then
echo " Usage: $(basename $0) <start/status/scan/stop> [-d | --debug]"
echo " -d | --debug: enable debugging, daemon will start in foreground and will log its activity."
exit $E_BADARGS
fi
#
#
DBG="$2"
if [ "$2" == "-d" ] || [ "$2" == "--debug" ]
then
DBG=1
else
DBG=0
fi
#
# Check argument's value
if [ "$1" == "start" ]
then
# Start Daemon
# Stop the daemon if was started
TEST=$(ps -aux | grep -i "[p]cscd")
if ! [ -z "$TEST" ]
then
# Deprecated (upstart)
#service pcscd stop
#
echo "Stopping any running instance first!"
if [ -e "$DEBUG_SEMAPHORE" ]
then
echo "Kill running debug instance..."
$RM -fv $DEBUG_SEMAPHORE
killall pcscd
fi
#
$STOP $SOCKET
$STOP $SERVICE
sleep 1
echo "Done stopping running instance."
fi
#
if [ "$DBG" -eq 1 ]
then
LOGFILE="/tmp/"${MYSELF%.*}.log
echo "Starting pcscd daemon in debug mode and in foreground."
echo "Log file at '$LOGFILE'."
# Remember we are in debug mode, create a semaphore
$TOUCH $DEBUG_SEMAPHORE
# Start daemon in debug mode:
# Restart the daemon in foreround / debug mode but detached!
#$DAEMON -df |& tee $LOGFILE
#
# Restart the daemon using debug start instructions from L.Rousseau's web page:
# LIBCCID_ifdLogLevel=0x000F pcscd --foreground --debug --apdu --color | tee log.txt
LIBCCID_ifdLogLevel=0x000F $DAEMON -df --apdu --color |& tee $LOGFILE
echo "Debug session terminated!"
else
echo "Starting pcscd daemon in background."
$START $SOCKET
$START $SERVICE
echo "Done starting pcscd."
fi
fi
if [ "$1" == "status" ]
then
$STATUS $SOCKET
$STATUS $SERVICE
fi
if [ "$1" == "scan" ]
then
# Start Scanning software
# Stop the app if was started
TEST=$(ps -aux | grep -i "[p]csc_scan")
if ! [ -z "$TEST" ]
then
killall $SCAN
fi
#
# Restart the scanning app.
$SCAN
fi
if [ "$1" == "stop" ]
then
# Stop scanning software.
TEST=$(ps -aux | grep -i "[p]csc_scan")
if ! [ -z "$TEST" ]
then
killall $SCAN
fi
# Stop Daemon.
# Deprecated (upstart)
#service pcscd stop
#
echo "Stopping pcscd daemon!"
if [ -e "$DEBUG_SEMAPHORE" ]
then
echo "Kill running debug instance..."
$RM -fv $DEBUG_SEMAPHORE
killall pcscd
fi
#
$STOP $SOCKET
$STOP $SERVICE
sleep 1
echo "Done stopping pcscd daemon."
#
# Stop other running instances of this script!
TEST=$(ps -aux | grep -i "[p]cscd_init.sh")
if ! [ -z "$TEST" ]
then
killall $MYSELF
fi
fi
exit $?