SCardEstablishContext:服务不可用

SCardEstablishContext:服务不可用

我安装了以下软件包:

  • libusb-dev
  • libusb++-0.1-4c2
  • 库库
  • 电脑
  • libpcsclite1
  • libpcsclite-dev
  • 项目清单
  • libpcsc-perl
  • pcsc 工具

但是当我发送 pcsc_scan 命令时我收到了以下输出:

root@bt:/# pcsc_scan
PC/SC device scanner
V 1.4.16 (c) 2001-2009, Ludovic Rousseau <[email protected]>
Compiled with PC/SC lite version: 1.5.3
SCardEstablishContext: Service not available.
root@bt:/#

为什么?

笔记:我使用 BackTrack5

答案1

看起来你的 pcscd 没有运行(服务 pcscd 启动)。

答案2

Quickstrace pcsc_scan透露它试图打开一个不存在的文件/var/run/pcscd/pcscd.comm

stat("/var/run/pcscd/pcscd.comm", 0x7fff315e9dc0) = -1 ENOENT (No such file or directory)
....
SCardEstablishContext: Service not available.
...
exit_group(-1)                          = ?
+++ exited with 255 +++

但实际上它并不存在:

$ ls /var/run/pcscd/pcscd.comm
ls: cannot access '/var/run/pcscd/pcscd.comm': No such file or directory

这是因为 pcscd 有两个部分:pcscd.servicepcscd.socket,其中后者对丢失的文件负有责任。因此,正确的解决方案是:

sudo systemctl restart pcscd.socket

演示:

$ ls /var/run/pcscd/pcscd.comm
ls: cannot access '/var/run/pcscd/pcscd.comm': No such file or directory
$ sudo systemctl restart pcscd.socket
$ ls /var/run/pcscd/pcscd.comm
/var/run/pcscd/pcscd.comm

现在您可以好好享受您的了pcsc_scan

相关内容