PCSC-LITE使用及移植总结

PS:随便学习,随便转载~闻道有先后,术业有专攻  !瞧不起这篇博主:http://blog.csdn.net/wenjunfen/article/details/5025861?reload感觉此人太坐坐了~。

    PCSC-Lite应该是Personal Computer/Smart Card lite的缩写。

PCSC-Lite 以后简称PCSC是为智能卡提供驱动和开发的linxu精简版。本文主要总结工作中Linux下使用并移植PCSC的过程和遇到的问题,仅供后来者参考讨论。

1.Linux下PCSC的使用

      PCSC包含pcsc-lite和CCID,其中pcsc-lite包含一个pcscd daemon( 守护进程)和一个被调用的库(libpcsclite.so),CCID 是基于用户空间的ccid driver.另外,pcsclite 是在libusb基础开发的。因此系统需要安装libusb。

Pcsc-lite 和CCID官网站点:http://www.musclecard.com/middle.html

Libus 的官方站点:http://www.libusb.org

如果使用的是Ubuntu/Debian系统,也可以用synaptic安装这些软件包。

本文按照源码包进行安装。

                                      PCSC-LITE使用及移植总结_第1张图片

系统:Ubuntu 12.04  内核 uname –r 3.11.0-15

包文件:

           

首先安装libusb,版本号安装pcsc-lite 要求1.0版本以上,采用最新版。(安装包可以用直接拖拽放进虚拟机,具体google)

    安装libusb

    解压:tar jxvf(-jxvf) libusb-*.*.*.tar.bz2

    进入解压后目录执行./configure >log_config

                                      make> log_make

                                      makeinstall >log_make_install

    在重定位的log文件里可以看到配置的默认信息和make生产的库以及安装到的目录。也可进行自己配置具体可以查看./configure –help 我理解就是把对应的.h 拷贝到系统能搜索到的文件。动态库文件.so 放到可以搜索的文件(环境变量设置)。pcsc-lite 安装

    linux 下安装同理,和1类似:

    解压:tar jxvf(-jxvf) pcsc-lite-*.*.*.tar.bz2

    进入解压后目录执行./configure >log_config

                                       make > log_make

                                       makeinstall >log_make_install

    这次只是多了一个pcscd的守护进程被生成。

    具体信息查看log文件。

    ccid 安装

    解压:tar jxvf(-jxvf) pcsc-lite-*.*.*.tar.bz2

    进入解压后目录执行./configure >log_config

                                       make> log_make

                                       makeinstall >log_make_install

这次只是生成里pcsc的一个文件目录,里面有驱动和Info.plist。具体生成过程查看configure和log信息。

首先lsusb查看usb设备,在插入USB读卡器,虚拟机需要点击设备选择虚拟usb 设备选中自己的插入设备,在lsusb 这时有了我们的设备。此时运行pcscd –f –d 具体参数意义查看 pcscd –h。查看pcscd守护进行是否正常运行和退出。这时关闭pcscd进程并打开。运行ccid解压下的example 内的scontrol文件。如果能正确识别SIM卡着环境搭建完成。

    Sim卡的APUD交互是上层的应用调用了,具体操作可以在研究。现在已经实现读取sim卡的ICCID和手机号码薄。

2.移植到嵌入式开发环境

    系统信息:

    IT的AM335X开发板。 移植了uboot 和 内核 内核版本3.2.0。

    首先在虚拟机搭建嵌入式开发环境采用源码中的am335xcross安装包,具体要找和自己cpu 对应的交叉编译工具。

    安装参考解压后的Readme。

    如果在Terminal下输入arm-  加Tab几下有相对于的命令则安装交叉工具完成,就是把交叉编译的bin加入到环境变量。

    流程:

    由于是交叉编译所以要指定编译后安装到的文件目录用prefix。

     libusb 安装:

    ./configure  CC=arm-****-linux-gnueabi-gcc --host=arm-****-linxu prefix=/usr/ccid/

    make

    make install

    pcsc安装:

    ./configure  CC=arm-****-linux-gnueabi-gcc --host=arm-****-linux--prefix=/usr/ccid/ --enable-libusb LIBUSB_LIBS="-L/usr/ccid/lib/ -lusb-1.0"LIBUSB_CFLAGS="-I/us/ccid/include/libusb-1.0/" --enable-static

    make

    make install

    ccid 安装:

    ./configure CC=arm-****-linux-gnueabi-gcc --host=arm-****-linux--prefix=/usr/ccid/ --enable-libusb LIBUSB_LIBS="-L/usr/ccid/lib –lusb-1.0"LIBUSB_CFLAGS="-I/usr/ccid/include/libusb-1.0/" PCSC_CFLAGS="-I/usr/ccid/include/PCSC/"PCSC_LIBS="/usr/ccid/lib/ -lpcsclite "--enable-usbdropdir="/usr/ccid/pcsc/drivers/"

    make

    make install

    到此为止交叉编译完成。需要把生成的ccid 文件拷贝到开发板对应的/usr 下。

    并把库文件加入到环境变量。

    运行pcscd : ./usr/ccid/sbin/pcscd –f –d 查看。

    正常读取驱动,这在关闭开启这个守护进程。

    将虚拟机下的ccid源文件下的example生成的scontrol拷贝到开发板,运行。注意:调试时一定要lsusb查看是否有读卡器插入。首先pcscd 以debug模式开启,查看服务的驱动是否在对呀目录。

 

你可能感兴趣的:(工作相关)