OpenWrt 的 libnfc 库编译包,用于在 OpenWrt 系统上支持 NFC(近场通信)功能。
本项目为 OpenWrt 提供 libnfc 库和相关工具的编译配置。libnfc 是一个开源的、跨平台的、底层的 NFC SDK 和编程 API,支持多种 NFC 设备和标签操作。
- libnfc 1.8.0 - 核心 NFC 库
- 支持多种驱动:
- PN532 UART
- PN532 SPI
- PN532 I2C
- 支持标签类型:
- MIFARE Classic
- MIFARE Ultralight
- Jewel Topaz
- NFC Forum Tag Type 3/4
- 包含实用工具集
核心库包,提供 NFC 操作的基础功能。
功能:
- 操作 Jewel Topaz 标签
- 操作 MIFARE Classic 和 Ultralight 标签
- 底层 NFC 通信接口
NFC 实用工具集合。
包含工具:
nfc-emulate-forum-tag4- 模拟 NFC Forum Tag Type 4 v2.0(或 v1.0)nfc-jewel- Jewel 标签的导出/恢复工具nfc-list- 列出每个发现设备的第一个目标nfc-mfclassic- MIFARE Classic 操作示例nfc-mfultralight- MIFARE Ultralight 导出/恢复工具nfc-read-forum-tag3- 从 NFC Forum Tag Type 3 提取 NDEF 消息nfc-relay-picc- 使用两个 PN532 设备的中继示例nfc-scan-device- 列出每个可用的 NFC 设备
Onion NFC/RFID 扩展应用程序。
将本项目放置到 OpenWrt SDK 的 package 目录下:
cd /path/to/openwrt-sdk/package
git clone <此仓库URL> libnfc-openwrt配置编译选项:
make menuconfig在菜单中选择:
Libraries->libnfcUtilities->nfc-utilsOnion->Utilities->nfc-exp(可选)
编译:
make package/libnfc-openwrt/compile V=s安装后,配置文件位于 /etc/nfc/libnfc.conf。
allow_autoscan = true
allow_intrusive_scan = false
log_level = 1
device.name = "PN532 via CH341"
device.connstring = "pn532_uart:/dev/ttyUSB7"allow_autoscan- 允许自动扫描设备allow_intrusive_scan- 允许侵入式扫描log_level- 日志级别(0-3)device.name- 设备名称device.connstring- 设备连接字符串
- UART:
pn532_uart:/dev/ttyUSB0 - SPI:
pn532_spi:/dev/spidev0.0 - I2C:
pn532_i2c:/dev/i2c-1
nfc-scan-devicenfc-listnfc-mfclassic r a dump.mfdnfc-mfclassic w a dump.mfdnfc-mfultralight r dump.mfd本包支持基于 PN532 芯片的 NFC 模块,通过以下接口连接:
- UART(串口)
- SPI
- I2C
常见的兼容硬件包括:
- PN532 NFC 模块
- 通过 CH341 USB 转串口连接的 PN532 模块
- libnfc: LGPL-2.1
- OpenWrt 编译包: GPL-2.0
Sebastian Wendel packages@sourceindex.de
- 检查设备是否正确连接
- 确认设备节点存在(如
/dev/ttyUSB0) - 检查
libnfc.conf中的连接字符串是否正确 - 尝试运行
nfc-scan-device -v查看详细信息
确保运行 NFC 工具的用户有权限访问设备节点:
chmod 666 /dev/ttyUSB0修改配置文件中的 log_level 为 3 以获取详细日志:
log_level = 3欢迎提交 Issue 和 Pull Request!