跳转至

密码卡SDK之LINUX交叉编译及部署指南V1.0

介绍派科信安PCIE密码卡SDK交叉编译及部署过程。

适用范围

此手册适用于派科信安的如下PCIE密码卡:

  • C系列:C1、C11

适用于派科信安的如下Mini PCIE密码卡:

  • M10、M10U
  • M11、M11U

适用于派科信安的如下USB密码卡:

  • U11

一、SDK下载与lib库匹配

​ 从网盘下载SDK及lib库。

​ 网盘链接:https://pan.baidu.com/s/1jK-122sn5ljpO_TCxAVmOA提取码:pkxa

系列 SDK位置 最新版本
M10/M10U 科信安密码卡文档、驱动-A系列、M系列、C系列、U系列/M10系列、C1系列/Linux驱动及例程 V1.1
C1 科信安密码卡文档、驱动-A系列、M系列、C系列、U系列/M10系列、C1系列/Linux驱动及例程 V1.1
M11/M11U 派科信安密码卡文档、驱动-A系列、M系列、C系列、U系列/A11系列、M11系列、U11系列、C11系列 V1.3
U11 派科信安密码卡文档、驱动-A系列、M系列、C系列、U系列/A11系列、M11系列、U11系列、C11系列 V1.3
C11 派科信安密码卡文档、驱动-A系列、M系列、C系列、U系列/A11系列、M11系列、U11系列、C11系列 V1.3

​ 下载的SDK名称为piico_ccmu_driver_x86_64_vX.X-rXXXX.tar.gz。该SDK目标平台为x86_64,使用GNU libc库。

​ 如果目标平台与SDK环境一致,解压后直接进行编译工作。

tar -xzvf piico_ccmu_driver_x86_64_vX.X-rXXXX.tar.gz

​ 如果目标平台非x86_64,如ARM、MIPS等平台,或者交叉编译器使用的libc库非GNU库,需:

​ 第一步、对于交叉编译器使用GNU libc需同时下载“非X86平台密码卡so动态库文件vX.X"目录下对应的目标平台库,如ARM64平台对应lib_aarch64。如果没有对应的目标平台库,请提供交叉编译环境联系厂商技术支持编译。对于交叉编译器使用非GNU libc库,如ulibc,请提供交叉编译环境联系厂商技术支持编译。

​ 第二步、将目录下的so文件替换成目标平台库目录下的so文件,然后进行编译工作。

二、驱动编译

​ 前提:准备好交叉编译环境和编译好的内核源码目录,使用交叉编译环境应当与编译内核的环境一致。设置PATH环境变量,使交叉编译gcc可直接访问。

export PATH=<path_to_crosscompiler>:$PATH

为交叉编器二进制程序所在目录。

​ 进入目录,修改Makefile。

​ 原文件内容:

obj-m       := piico_ccmu.o
piico_ccmu-objs := piico_mini.o 

KERNELDIR = /lib/modules/$(shell uname -r)/build
PWD = $(shell pwd)

default:
    $(MAKE) -C   $(KERNELDIR) M=$(PWD) modules

​ 修改为:

obj-m       := piico_ccmu.o
piico_ccmu-objs := piico_mini.o 

KERNELDIR = <path_to_kernel_src>
PWD = $(shell pwd)

default:
    $(MAKE) CROSS_COMPILE=<corss_compile-prefix> ARCH=<cpu_arch> -C   $(KERNELDIR) M=$(PWD) modules

​ 其中:

为内核源码目录,该目录包含内核Makefile、Module.symvers等文件

为交叉编译前缀,如aarch64-linux-gnu-。

为目标平台,如arm64

​ 在执行make后,会生成目标机驱动文件piico_ccmu.ko。

三、示例及工具编译

​ 前提:准备好交叉编译环境,设置好PATH环境变量。

​ 进入目录和目录(如果有的话),按以下命令交叉编译,得到目标机二进制程序。

make CC=<corss_compile-prefix>gcc

为交叉编译前缀,如aarch64-linux-gnu-。

四、部署

Step1:驱动安装

​ 驱动文件piico_ccmu.ko拷入目标机。然后执行insmod命令安装驱动。

insmod piico_ccmu.ko

​ 由于驱动不会随系统加载,建议把如下内容加入开机启动脚本。

    insmod piico_ccmu.ko

    sleep 1s

    if [ -c /dev/PiicoMiNi0 ]; then \
        chmod go+rw /dev/PiicoMiNi0; \
    fi; \

    if [ -c /dev/PiicoMiNi1 ]; then \
        chmod go+rw /dev/PiicoMiNi1; \
    fi; \

    if [ -c /dev/PiicoMiNi2 ]; then \
        chmod go+rw /dev/PiicoMiNi2; \
    fi; \

    if [ -c /dev/PiicoMiNi3 ]; then \
        chmod go+rw /dev/PiicoMiNi3; \
    fi; \

​ 该脚本加载驱动并设置密码卡设备文件为非root用户可读写。

Step2:lib安装

​ 将目录下的libpiico_ccmu.so拷入目标机/lib目录下。

Step3:二进制工具和示例安装(按需)

​ 将需要的示例和工具程序如piicoTooWP从目录和目录(如果有的话)拷入目标机。赋予执行权限即可在目标机运行。