linux麒麟认证,【麒麟在线讲堂】优麒麟生物特征认证系统-03驱动开发
前幾期分別介紹了優麒麟生物特征認證子系統的結構、支持的設備、使用方法,本期及后續將介紹如何在優麒麟上開發生物特征認證的驅動,并將其嵌入到系統的認證授權中去。開發一個生物特征認證的驅動,首要的就是開發環境的搭建,本期就來介紹下如何獲取源碼、如何構建開發環境、如何配置驅動。
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. 安裝框架服務及開發包:
$ sudoapt 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.key3.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????忽略不存在的驅動
以上就是對優麒麟生物特征認證系統驅動開發的介紹,后續將為大家帶來更多優麒麟相關技術文章,敬請期待。
總結
以上是生活随笔為你收集整理的linux麒麟认证,【麒麟在线讲堂】优麒麟生物特征认证系统-03驱动开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 8.0 一条insert语句
- 下一篇: 使用Epoll 在 Linux 上开发高