![SCardEstablishContext:服务不可用](https://linux22.com/image/1413350/SCardEstablishContext%EF%BC%9A%E6%9C%8D%E5%8A%A1%E4%B8%8D%E5%8F%AF%E7%94%A8.png)
我安装了以下软件包:
- 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.service
和pcscd.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
。