瑞芯微RK3588S Android12 REE 指纹代码移植(1)--Kernel移植
一概述RK3588S Android12 SDK源码中kernel 版本为kernel-5.10使用的是gf3626指纹模组。使用ree 进行spi 通讯。指纹模组供电电压3.3V SPI通讯电压1.8V 最高通讯速率24M。以此记录移植过程。二移植代码到kernel中移植前先把代码建仓备份使用git init 建仓 touch .gitignore 创建忽略加仓规则忽略编译产出文件加仓。 最后git add 加仓 git commit 提交。# # 编译产物# *.o *.a *.so *.so.* *.dylib *.dll *.exe *.ko *.out *.elf *.bin *.hex *.map# # Android# out/ *.img *.dtb *.dtbo *.ko *.vdex *.odex *.oat *.art .jack-server/ .jack/# # Build 目录# build/ _build/ cmake-build-*/ .idea/ *.iml# # 临时文件# *~ *.swp *.swo .DS_Store Thumbs.db *.log1在kernel-5.10/drivers/input 中建立一个文件夹方入指纹代码。digiproP510:~/RK3588S/android12-rkr14.1-rk3588/kernel-5.10/drivers/input$ mkdir gf3626digiproP510:~/RK3588S/android12-rkr14.1-rk3588/kernel-5.10/drivers/input$lsgameport keyboard misc sensors tablet gf3626 joystick Makefile remotectl serio touchscreen Kconfig mouse rmi42修改当前目录的Makefile 把gf3626 文件夹加入编译digiproP510:~/RK3588S/android12-rkr14.1-rk3588/kernel-5.10/drivers/input$ vim Makefileobj-ygf3626/3, 进入gf3626 驱动文件夹编写Makefile 将驱动文件加入编译。digiproP510:~/RK3588S/android12-rkr14.1-rk3588/kernel-5.10/drivers/input/gf3626$ lsgf_common.c gf_common.h gf_common.o gf_platform.c gf_spi_access.c gf_spi_access.h Kconfig MakefiledigiproP510:~/RK3588S/android12-rkr14.1-rk3588/kernel-5.10/drivers/input/gf3626$vim Makefileobj-ygf_common.o gf_spi_access.o gf_platform.o4在DTSI中添设置spi 设备对应的管脚 以及 中断 和 复位脚的设定。从开发板外接是GPIO脚看只有SPI0_M2可用DTSI 添加内容如下compatible 需要与kernel 里面的compatible 相同 不然无法加载probe。 电源使用3.3V长供电因此暂时不用测试电源脚。digiproP510:~/RK3588S/android12-rkr14.1-rk3588$ vim kernel-5.10/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dtsispi0{statusokay;#address-cells 1;#size-cells 0;pinctrl-namesdefault;pinctrl-0spi0m2_cs0spi0m2_pins;//设定SPI 相关引脚 num-cs1;goodix_fp0{compatiblerockchip,fingerprint;reg0;//chipselect0:cs01:cs1 spi-max-frequency24000000;//spi output clock interrupt-parentgpio3;interruptsRK_PD4 IRQ_TYPE_EDGE_FALLING;irq-gpiosgpio3 RK_PD4 IRQ_TYPE_EDGE_FALLING;reset-gpiosgpio3 RK_PD2 GPIO_ACTIVE_LOW;};};5修改kernel 的 compatible 以及 中断 和 复位脚的名字 与 DTSI 一致//compatible static const struct of_device_id gf_of_match[]{{.compatiblerockchip,fingerprint,},{},};/*INT REST pins reference.*/intgf_get_gpio_dts_info(structgf_device*gf_dev){intrc0;//get reset resourcegf_dev-reset_gpioof_get_named_gpio(gf_dev-spi-dev.of_node,reset-gpios,0);if(!gpio_is_valid(gf_dev-reset_gpio)){gf_debug(ERR_LOG,%s, of_get_named_gpio RESET GPIO is invalid.\n,__func__);return-1;}rcgpio_request(gf_dev-reset_gpio,reset-gpios);if(rc){gf_debug(ERR_LOG,%s, Failed to request RESET GPIO. rc %d\n,__func__,rc);return-1;}gpio_direction_output(gf_dev-reset_gpio,1);//get irq resourecegf_dev-irq_gpioof_get_named_gpio(gf_dev-spi-dev.of_node,irq-gpios,0);gf_debug(DEBUG_LOG,%s, gf:irq-gpios :%d\n,__func__,gf_dev-irq_gpio);if(!gpio_is_valid(gf_dev-irq_gpio)){gf_debug(ERR_LOG,%s, IRQ GPIO is invalid.\n,__func__);return-1;}rcgpio_request(gf_dev-irq_gpio,irq-gpios);if(rc){gf_debug(ERR_LOG,%s, Failed to request IRQ GPIO. rc %d\n,__func__,rc);return-1;}gpio_direction_input(gf_dev-irq_gpio);return0;}6关于 驱动注册函数还是使用 spi设备总线驱动注册函数 spi_register_driver 注册。staticstructspi_drivergf_spi_driver{.driver{.nameGF_DEV_NAME,.busspi_bus_type,.ownerTHIS_MODULE,#ifdefCONFIG_OF.of_match_tablegf_of_match,#endif},.probegf_probe,.removegf_remove,};staticint__initgf_init(void){intstatus0;FUNC_ENTRY();statusspi_register_driver(gf_spi_driver);if(status0){gf_debug(ERR_LOG,%s, Failed to register SPI driver.\n,__func__);return-EINVAL;}FUNC_EXIT();returnstatus;}7 修改access_ok函数老版本的kernel 的 access_ok 函数有三个参数 kernel-5.10 这个版本的access_ok 只有两个参数 需要修改 。 不然会编译报错。//修改前retval!access_ok(VERIFY_WRITE,(void__user*)arg,_IOC_SIZE(cmd));//修改后retval!access_ok((void__user*)arg,_IOC_SIZE(cmd));8编译验证。编译完成后 烧录boot 重开机后dev下 指纹驱动设备节点goodix_fp 已生成。rk3588s_lubancat_4_mipi600p:/dev# ls goo*goodix_fpprobe 函数中有加spi 读取 ID 的代码。 获取到期望的数值。chip id 0x7, 0xa0, 0x0, 0x25。[10:37:33.169][2.984206][T1][gf]gf_init,1300,enter[10:37:33.169][2.984245][T1][gf]gf_probe,991,enter[10:37:33.169][2.984250][T1][gf]gf_probe,Setting gf device configuration[10:37:33.169][2.984275][T1][gf]gf_get_gpio_dts_info,gf:irq-gpios:124[10:37:33.169][2.984309][T1][gf]gf_probe,major235,minor0[10:37:33.169][2.984366][T1][gf]gf_probe,device create success.[10:37:33.169][2.984372][T1][gf]gf_probe,Success create sysfs file.[10:37:33.169][2.984416][T1]input:gf-keys as/devices/virtual/input/input2[10:37:33.169][2.984539][T1][gf]gf_probe irq thread request success![10:37:33.169][2.984545][T1][gf]gf_disable_irq disable interrupt![10:37:33.169][2.984558][T1][gf][gf_netlink_init]:netlink create success[10:37:33.169][2.984768][T1][gf]gf_probe,chip id0x7,0xa0,0x0,0x25[10:37:33.169][2.984772][T1][gf]gf_probe probe finished[10:37:33.169][2.984776][T1]version V1.2.02[10:37:33.169][2.984780][T1][gf]gf_probe,1173,exit[10:37:33.169][2.984801][T1][gf]gf_init,1308,exit9kernel 驱动移植本该完成了但在阅读开发板资料时 发现开发板使用通讯电压为3.3V 而指纹模块通讯电压是1.8V 现在通讯速率1M 勉强还能读到。 一旦20M 通讯速率时可能会出错。 但是开发板已经将通讯电压固定成3.3V 无法改成1.8V 因此需要通过电压转换模块来将电压改成1.8V。 待收到电压转换模块后再做处理。10kernel 移植完成之后接下来需要移植上层 详情请见 瑞芯微RK3588S Android12 REE 指纹代码移植2–Hal 移植

相关新闻

如何在Linux系统上完美支持100+打印机:foo2zjs开源驱动完整指南

如何在Linux系统上完美支持100+打印机:foo2zjs开源驱动完整指南

如何在Linux系统上完美支持100打印机:foo2zjs开源驱动完整指南 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs foo2zjs是一个强大的开源打印…

2026/7/31 17:52:04 阅读更多 →
2026年服装企业管理升级:从设计到成衣,ERP如何打通研产供销全链路?

2026年服装企业管理升级:从设计到成衣,ERP如何打通研产供销全链路?

2026年,服装行业“小单快反”模式已从尝试走向主流。面对消费者多变的需求和剧烈波动的市场,传统“大批量备货、长周期生产”的模式风险越来越高。许多服装企业,特别是主打时装、礼服、牛仔等品类的品牌,正面临一个新课题&#xf…

2026/7/31 17:52:03 阅读更多 →
分形时间认知理论中豪斯多夫维数D_t≈1.261的黄金比例构造深度研究

分形时间认知理论中豪斯多夫维数D_t≈1.261的黄金比例构造深度研究

分形时间认知理论中豪斯多夫维数D_t≈1.261的黄金比例构造深度研究 作者:方见华 单位:世毫九实验室 摘要 该维数并非经验拟合的几何巧合,而是世毫九SH9原创分形时间认知理论下,认知准晶体结构、递归对抗动力学与黄金比例内禀标度性…

2026/7/31 17:51:03 阅读更多 →

最新新闻

10分钟攻克Windows启动盘制作难题:WinDiskWriter全平台解决方案实战指南

10分钟攻克Windows启动盘制作难题:WinDiskWriter全平台解决方案实战指南

10分钟攻克Windows启动盘制作难题:WinDiskWriter全平台解决方案实战指南 【免费下载链接】WinDiskWriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UE…

2026/7/31 18:24:16 阅读更多 →
Polymarket Copy Trading Bot风险控制:tiered multipliers功能使用教程

Polymarket Copy Trading Bot风险控制:tiered multipliers功能使用教程

Polymarket Copy Trading Bot风险控制:tiered multipliers功能使用教程 【免费下载链接】polymarket-copy-bot-ts A tool for packing and unpacking BigWorld compressed data sections from/to plain XML 项目地址: https://gitcode.com/gh_mirrors/tp/polymark…

2026/7/31 18:24:16 阅读更多 →
Argos Translate开源离线翻译架构实战指南:为什么选择它作为企业级翻译解决方案

Argos Translate开源离线翻译架构实战指南:为什么选择它作为企业级翻译解决方案

Argos Translate开源离线翻译架构实战指南:为什么选择它作为企业级翻译解决方案 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate 你是否在…

2026/7/31 18:24:16 阅读更多 →
hashi-up高级技巧:跨平台编译与Raspberry Pi部署全攻略

hashi-up高级技巧:跨平台编译与Raspberry Pi部署全攻略

hashi-up高级技巧&#xff1a;跨平台编译与Raspberry Pi部署全攻略 【免费下载链接】hashi-up bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute 项目地址: https://gitcode.com/gh_mirrors/ha/hashi-up hashi-up是一款轻量级工具&#xff0c;可在任…

2026/7/31 18:24:16 阅读更多 →
DamaiHelper:5分钟快速上手的演唱会门票自动化抢票神器

DamaiHelper:5分钟快速上手的演唱会门票自动化抢票神器

DamaiHelper&#xff1a;5分钟快速上手的演唱会门票自动化抢票神器 【免费下载链接】damaihelper 支持大麦网&#xff0c;淘票票、缤玩岛等多个平台&#xff0c;演唱会演出抢票脚本 项目地址: https://gitcode.com/gh_mirrors/dam/damaihelper 还在为抢不到周杰伦、五月…

2026/7/31 18:24:16 阅读更多 →
IP-Adapter-FaceID:基于人脸身份嵌入的稳定扩散增强技术深度解析

IP-Adapter-FaceID:基于人脸身份嵌入的稳定扩散增强技术深度解析

IP-Adapter-FaceID&#xff1a;基于人脸身份嵌入的稳定扩散增强技术深度解析 【免费下载链接】IP-Adapter-FaceID 项目地址: https://ai.gitcode.com/hf_mirrors/h94/IP-Adapter-FaceID 在AI图像生成领域&#xff0c;保持人脸身份一致性一直是技术难点。传统方法往往在…

2026/7/31 18:23:16 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制&#xff0c;分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件&#xff0c;物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB&#xff08;云原生数据库&#xff09;采用物理复制&#xff0c;在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown&#xff1a;3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前&#xff0c;游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据&#xff0c;中国AI游戏云市场规模已达18.6亿元&#xff1b;同时&#xff0c;游戏研发环节AI渗透率高达86%&#xff0c;生成式AI内容普及率超过50%。面对庞大的市场&#xff0c;游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻