【麒麟在线讲堂】优麒麟生物特征认证系统-03驱动开发

发布时间:2020-09-25 16:28:12 点击次数:159

前几期分别介绍了优麒麟生物特征认证子系统的结构、支持的设备、使用方法,本期及后续将介绍如何在优麒麟上开发生物特征认证的驱动,并将其嵌入到系统的认证授权中去。开发一个生物特征认证的驱动,首要的就是开发环境的搭建,本期就来介绍下如何获取源码、如何构建开发环境、如何配置驱动。

01

概述

前几期分别介绍了优麒麟生物特征认证子系统的结构、支持的设备、使用方法,本期及后续将介绍如何在优麒麟上开发生物特征认证的驱动,并将其嵌入到系统的认证授权中去。

开发一个生物特征认证的驱动,首要的就是开发环境的搭建,本期就来介绍下如何获取源码、如何构建开发环境、如何配置驱动。
02

发环境准备
2.1 获取生物特征认证框架服务
2.1.1 从源码获取

1. 下载源码:

方法一:通过 git 命令下载。

$ git clone https://github.com/ukui/biometric-authentication/

方法二:登录https://github.com/ukui/biometric-authentication/页面,点击下载即可,如图1所示。
图1 Github网页
2. 简单编译:

$ ./autogen.sh        # 运行 autogen.sh,生成 configure 脚本

$ ./configure --disable-dependency-tracking  # 运行 configure 脚本,检查系统配置

$ make        # 运行 make 命令,执行代码的编译操作

3. 完整参数编译:

$ sudo apt install biometric-auth biometric-utils ukui-polkit ukui-biometric-manager libpam-biometric

$ ./autogen.sh         # 生成 configure 脚本

$ ./configure --build=x86_64-linux-gnu \       # 设置完整参数

   --prefix=/usr \

   --includedir=\${prefix}/include \

   --mandir=\${prefix}/share/man \

   --infodir=\${prefix}/share/info \

   --sysconfdir=/etc \

   --localstatedir=/var \

   --disable-silent-rules \

   --libdir=\${prefix}/lib/x86_64-linux-gnu \

   --libexecdir=\${prefix}/lib/x86_64-linux-gnu \

   --disable-dependency-tracking \

   --enable-static \

   --enable-shared \

   --with-bio-db-dir=/var/lib/biometric-auth/ \

   --with-bio-db-name=biometric.db \

   --with-bio-config-dir=/etc/biometric-auth/ \

   --with-bio-driver-dir=/usr/lib/biometric-authentication/drivers \

   --with-bio-extra-dir=/usr/lib/biometric-authentication/drivers/extra \

   --libexecdir=\${prefix}/lib/biometric-authentication

$ make        # 执行编译

4. 安装:

$ make install        # 安装编译生成的文件

2.1.2 从软件源中获取(推荐)

1. 添加UKUI软件源(通过优麒麟官网下载安装的用户,可跳过此步)

sudo echo "deb http://archive.ubuntukylin.com/ukui focal main" > /etc/apt/sources.list.d/ukui.list

2. 更新软件源:

sudo apt update

3. 安装框架服务及开发包:

$ sudo apt install biometric-auth biometric-utils libbiometric-dev

自此,开发环境就已经配置完毕,下面介绍如何放置一个驱动,如何配置一个驱动。
03

驱动路径及配置

3.1 驱动目录结构

框架服务及驱动的目录结构如下面的示例:
/usr/lib/biometric-authentication/
├── biometric-authenticationd
├── discover-tools
└── drivers
    ├── extra
    │   ├── frt610
    │   │   ├── libFPScanAPI.so
    │   │   └── libfrt610.so
    │   └── ft9348-extra.so
    ├──frt610.so
    └──uru4000.so
其中:
  • biometric-authenticationd,二进制文件,框架服务的本体。

  • discover-tools/,目录,用于放置设备检测工具。

  • drivers/,目录,用于放置驱动.so文件。

  • drivers/extra/,目录,驱动所依赖的其他库文件,可以是多个驱动公用的公共库,也可以是需要保密的第三方库文件。(例如这里的libfrt610.so就是公共库文件,libFPScanAPI.so就是闭源算法库)

  • frt610.so、uru4000.so,二进制库,驱动本体。

如上所述,驱动文件默认放置在以下路径中:

/usr/lib/biometric-authentication/drivers/

3.2 配置方式

框架服务的配置文件路径:
/etc/biometric-auth/biometric-drivers.conf
配置文件格式:

[驱动名]

Enable=true                   #是否启用驱动,必填

Driver=/path/to/driver/so      #驱动文件路径,必填

Key=Value                    #其他配置项,选填,例如串口驱动使用Path键指定串口的设备节点

例如,frt610驱动的配置方式如下:

[frt610]

Enable=true

Driver=/usr/lib/biometric-authentication/drivers/frt610.so

SecurityLevel=3

Threshold=47

再例如,uru4000驱动的配置:

[uru4000]

Enable=true

Driver=/usr/lib/biometric-authentication/drivers/uru4000.so

AESKey=/etc/biometric-auth/key/community-multidevice-aes.key

3.3 配置文件修改工具

生物特征认证框架服务提供一个工具用于修改配置文件,命令为:biometric-config-tool,用法如下:

用法:

    biometric-config-tool [选项...]内建指令

 

帮助选项:

    -h,--help       显示帮助选项

 

内建指令:

    add-driver            添加驱动

    remove-driver      移除驱动

    enable-driver       启用驱动

    disable-driver      禁用驱动

    set-key                设置驱动的键值

    remove-key         移除驱动的键值

其中:

添加驱动:add-driver


用法:

biometric-config-tool add-driver [选项...] 驱动名 驱动文件路径

 可选选项:

  -f,--force       出现同名驱动时,强制覆盖

  -d,--disable     只添加而不启用驱动

移除驱动:remove-driver


用法:

biometric-config-tool remove-driver [选项...] 驱动1 [驱动2 ...]

 可选选项:

  -i,--ignore     忽略不存在的驱动

启用驱动:enable-driver


用法:

biometric-config-tool enable-driver [选项...] 驱动1 [驱动2 ...]

 可选选项:

  -i,--ignore     忽略不存在的驱动

禁用驱动:disable-driver


用法:

biometric-config-tool disable-driver [选项...] 驱动1 [驱动2 ...]

 可选选项:

  -i,--ignore     忽略不存在的驱动

设置驱动键值:set-key


用法:

biometric-config-tool set-key [选项...] 驱动名 键名 键值

 可选选项:

  -f,--force      强制覆盖已存在的键

  -i,--ignore     如果键已存在,则忽略设置

移除驱动键值:remove-key


用法:

biometric-config-tool remove-key [选项...] 驱动名 键名

 可选选项:

  -i, --ignore    忽略不存在的驱动

以上就是对优麒麟生物特征认证系统驱动开发的介绍,后续将为大家带来更多优麒麟相关技术文章,敬请期待。