编这个有几点要注意,一是交叉编译的工具链,二是安装路径要统一,比如大家都一起安装到ccid下面。三是如果在虚拟机上编,可能会出libusb找不到的问题。而在服务器上,就没有这个问题。本总近一周的血泪啊。
CCID(USB Chip/Smart Card Interface Devices-USB芯片智能卡接口设备)标准是由几大国际级IT企业共同制定的一个标准,它提供了一种智能卡读写设备与主机或其它嵌入式主机实现相互通讯的可能。在cms实际项目中,需要支持ccid及与智能卡通行,完成对数据的处理。
嵌入式Linux系统支持CCID通讯协议的方法:
1、打开网站:http://www.libusb.org/,下载并编译libusb;
2、打开网站:http://alioth.debian.org/projects/pcsclite/,下载并编译ccid以及pcsclite。
编译方法:
a、libusb:
./configure --host=mipsel-linux --prefix=/tango/ccid/ CC="/root/mips-4.3/bin/mips-linux-gnu-gcc -EL" CXX="/root/mips-4.3/bin/mips-linux-gnu-g++ -EL"
make
make install
b、pcsc:
./configure --host=mipsel-linux --prefix=/tango/ccid/ CC="/root/mips-4.3/bin/mips-linux-gnu-gcc -EL" CXX="/root/mips-4.3/bin/mips-linux-gnu-g++ -EL" --enable-libusb LIBUSB_LIBS="-L/tango/ccid/lib/ -lusb-1.0" LIBUSB_CFLAGS="-I/tango/ccid/include/libusb-1.0/" --disable-static --disable-libudev
make
make install
c、ccid:
./configure --host=mipsel-linux --prefix=/tango/ccid/ CC="/root/mips-4.3/bin/mips-linux-gnu-gcc -EL" CXX="/root/mips-4.3/bin/mips-linux-gnu-g++ -EL" --enable-libusb LIBUSB_LIBS="-L/tango/ccid/lib/ -lusb-1.0" LIBUSB_CFLAGS="-I/tango/ccid/include/libusb-1.0/" PCSC_CFLAGS="-I/tango/ccid/include/PCSC/" PCSC_LIBS="-L/tango/ccid/lib/ -lpcsclite" --enable-usbdropdir="/tango/ccid/pcsc/drivers"
make
make install
运行方法:
mount -t usbfs none /proc/bus/usb
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/xxx/ccid/lib
export LD_LIBRARY_PATH
./pcscd &
说明:
1. pcscd是ccid的服务器,必须启动此服务才能进行通信,同时启动此通信,必须进行usb总线的挂在操作。
2. pcscd运行的时候需要libccis。So的支持,其在相应的config.h文件中指定启动驱动的路径,所以为了能正确的执行服务器,必须指定到相应的实际运行环境下libccid。So的地址。
3. 因为ccid驱动路劲指定是编译在库程序中,所以需要指定后重新编译各个库。
4. ccid驱动依赖与libusb及libpcsclite库的支持,所以必须提前编译此两个库,并且在运行的之后必须指定此两个库的连接位置。
总结:通过对ccid程序的交叉编译,以及调试,可以在目标开发板运行,这样对数据处理提供了安全性,保证数据的安全性。在整个cas(条件接受系统)起到至关重要的作用。
本文出自 “zhouhb” 博客,请务必保留此出处http://hongbin0720.blog.51cto.com/3305400/666255