Linux下pc/sc接口的实现


运行环境:

内核版本:2.6.23.1-42.fc8
OS:Fedora8、RedHat9
平台:PC
实现步骤:

1、安装libusb(版本0.1.12)。默认生成在/usr/local/lib目录下。

2、安装pcsc-lite,它是独立于设备的API,基于pc/sc规范,可以通过这些接口访问智能卡。在此用的版本为pcsc-lite-1.4.99,安装步骤

./configure(配置编译环境)
Make(编译生成libpcsclite.a和libpcsclite.so)
Make install
Make生成的.a和.so文件默认在/usr/local/lib下, 运行file *,可以看到:

3、检查/usr/lib/pcsc/目录下是否有读卡器驱动,若没有,安装驱动ccid(此版本为1.3.6)。默认生成在/usr/local/pcsc目录下

4、安装完成后,可以运行src/目录下的testpcsc程序测试PC-linux平台下与智能卡是否可以通讯。注意要先启动pcscd 程序,然后再运行./testpcsc。

编译测试程序如果出错,则须将/usr/locate/lib 加入到/etc/ld.so.conf文件中,别忘了ldconfig.

测试程序运行正确如图:


5、将该测试程序移植到arm-linux平台下,需用交叉编译工具重新编译:

CC=arm-linux-gcc /configure –host=arm-linux –disable-libusb(配置编译环境)
Make(编译生成libpcsclite.a和libpcsclite.so)
Make install
CC是定义编译工具,默认为gcc, 在此要保证你的系统中装有arm-linux-gcc交叉编译环境;--host定义编译程序的运行平台,默认为PC-linux,在此我们要在arm下运行,所以改为arm-linux;由于系统中没有libusb故用disable.若有此库可不写。

编译生成pcsclite的动态库(.so)和静态库(.a)同样在/usr/local/lib下可以找到,此时运行命令file *,可以看到:

附:
PCSC卡在linux下的驱动(PCSC-Lite, CCID driver):http://pcsclite.alioth.debian.org/
libusb库下载地址:http://libusb.wiki.sourceforge.net/

相关内容