# begpiod **Repository Path**: motoedy/begpiod ## Basic Information - **Project Name**: begpiod - **Description**: FunKey OS 的 gpio 按键守护进程 - **Primary Language**: Unknown - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-08-12 - **Last Updated**: 2024-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README begpiod 用来替代 FunKey-OS 中的 fkgpiod 包,去掉了 IO扩展芯片 `pcal6416a` 的依赖,改为将按键直接连接到 V3S 的GPIO上。 > 保留或移除原版的 `fkgpiod` 均可,`fkgpiod` 和 `begpiod` 同时做为守护进程启动,也不会有冲突,都可以工作。 基本执行方法: `begpiod `,如果没有提供 config 文件路径,则会读取 `/mnt/begpiod.conf` 文件做为配置。 > 可以在命令行直接启动,用于测试按键和配置文件。 做为 FunKey package 编译到系统以后 (编译方式见后文),会做为守护进程,随 linux 启动。支持以下命令服务命令: ``` /etc/init.d/S11begpiod start /etc/init.d/S11begpiod stop /etc/init.d/S11begpiod status ``` 配置文件的格式兼容 `fkgpiod.conf`,但增加了 `GPIO` 规则: * 设置 gpio 做为按键输入引脚的格式: ``` GPIO AS KEY [PULLUP|PULLDOWN] ``` * 设置 gpio 做为输出引脚: ``` GPIO OUT [1|0] ``` 示例: ``` CLEAR GPIO 152 AS KEY KEY_U PULLUP GPIO 192 AS KEY KEY_R PULLDOWN GPIO 193 AS KEY KEY_L PULLUP GPIO 194 AS KEY KEY_D PULLUP GPIO 195 AS KEY KEY_A PULLUP GPIO 196 AS KEY KEY_B PULLUP GPIO 128 AS KEY KEY_X PULLUP GPIO 129 AS KEY KEY_Y PULLUP GPIO 130 AS KEY KEY_N PULLUP GPIO 131 AS KEY KEY_M PULLUP ``` ### 全志 sunxi 系列芯片 gpio 对应的编号: ```C #define SUNXI_PA_BASE 0 #define SUNXI_PB_BASE 32 #define SUNXI_PC_BASE 64 #define SUNXI_PD_BASE 96 #define SUNXI_PE_BASE 128 #define SUNXI_PF_BASE 160 #define SUNXI_PG_BASE 192 #define SUNXI_PH_BASE 224 #define SUNXI_PI_BASE 256 #define SUNXI_PJ_BASE 288 #define SUNXI_PK_BASE 320 #define SUNXI_PL_BASE 352 #define SUNXI_PM_BASE 384 #define SUNXI_PN_BASE 416 #define SUNXI_PO_BASE 448 #define AXP_PIN_BASE 1024 ``` > 例如 `PE24` 的编号就是 SUNXI_PE_BASE + 24 , 为 152 ### 将 begpiod 做为 package 加入到 FunKey 里 (从源码编译) 1. 将 package 目录复制到 FunKey-OS/FunKey 内 2. 在 `FunKey-OS/FunKey/Config.in` 文件末尾添加: ``` source "$BR2_EXTERNAL_FUNKEY_PATH/package/begpiod/Config.in" ``` 3. 在 `FunKey-OS/FunKey/output`目录内执行 `make menuconfig` ,搜索并去选中 `begpiod` 4. 执行 `make begpiod` 编译 package 5. 在 `FunKey-OS` 编译打包整个系统 `make sdk all` 6. 重新烧录镜像 > `bin` 有编译好的 `begpiod` 文件 (但不保证是最新的) 。