linux-nfc neard 编译、安装与运行

项目github地址:

https://github.com/linux-nfc/neard

git clone地址:

https://github.com/linux-nfc/neard.git

1.安装依赖库

clone完源码切换到目录neard里。这个项目需要依赖一下库:

    - GCC compiler

    - D-Bus library

    - GLib library

    - Netlink (libnl) library, version 1 or 2.

可以使用项目自带脚本安装或者单独安装。

1.1脚本安装

项目安装必要库的脚本在目录ci下,比如ubuntu系统可以使用ubuntu.sh

1.2单独安装

单独安装方式如下:

sudo apt-get install libdbus-1-dev libglib2.0-dev libnl-3-dev libnl-genl-3-dev

安装完成后使用dpkg查看库的版本,比如查看glib的版本:

dpkg -l|grep glib

其他自动编译的工具如果之前没安装过也需要安装:

apt-get install autoconf autoconf-archive automake libtool pkg-config make

2.生成编译脚本并编译和安装

目前这个项目里面的configure和Makefile都要重新生成的。生成方式如下:

1.运行

aclocal

目的是为了生成aclocal.m4这个文件。

2.运行

autoheader
autoconf

不运行autoheader可能报错:

configure.ac:7: error: required file 'config.h.in' not found 

3.运行

libtoolize --automake --copy --debug --force
automake --add-missing

不运行libtoolize的话,直接运行automake可能会报错。

4.运行

./configure --prefix=/usr

如果报错找不到glib:

首先确定安装成功了,但是有时候安装成功pkg-config还是会找不到,这可能是因为系统里面有多个pkgconfig文件夹,pkg寻找库的时候是根据这个文件夹下的.pc文件查找的,正常需要把所有pkgconfig文件夹的路径添加到PKG_CONFIG_PATH这个环境变量里,这样pkg才会使用所有pkgconfig文件夹下的.pc文件,但是安装glib的时候把glib的.pc文件放在了一个新建的pkgconfig文件夹而没把它添加进pkg查找路径,这时候需要在目录/usr下查找glib-2.0.pc这个文件,一般是在一个名字叫pkgconfig的文件夹下,终端执行:

export  PKG_CONFIG_PATH="/usr/local/lib/pkgconfig":$PKG_CONFIG_PATH

注意PKG_CONFIG_PATH后面跟的路径是上面找到的路径

如果报错找不到Netlink library,则根据上文安装。

当./configure运行不再出错时,可以进行make了,然后使用make install安装。

make
sudo make install

安装到系统里。

这里介绍主要的几个文件:

neard

生成的可执行程序,默认安装到/usr/libexec/nfc/

org.neard.conf

neard使用dbus的conf文件,如果dbus守护进程找不到这个文件,neard在申请使用dbus的时候会拒绝导致报错。默认安装到/usr/etc/dbus-1/system.d/

neard.service

neard的服务文件,默认安装到/lib/systemd/system

neard相关头文件

默认安装到/usr/include/near,使用neard守护进程写应用的时候需要包含这些头文件

3.运行

正常neard是作为系统守护进程一直在后台运行的,所以neard的启动是通过service启动的,当然也可以命令行启动。注意,neard默认安装在/usr/libexec/nfc/目录下的,如果这个目录没有加进PATH里面,命令行是找不到neard这个命令的。

使用以下指令使能nead这个服务:

sudo systemctl enable neard.service

再使用以下指令启动neard守护进程:

sudo systemctl start neard.service

如果报错比如:

使用以下指令查看错误原因:

sudo systemctl status neard.service

笔者这里的错误原因如下:

这主要是因为dbus的配置里面没有关于neard的配置,其实还是文件没放对地方。dbus的配置文件一般都在/etc/dbus-1/system.d/目录下,里面有很多.conf文件,里面如果没有neard相关的conf文件就会报错。默认neard的conf文件会安装到 /usr/etc/dbus-1/system.d/下面,只需要把它copy到刚才的文件夹下就可以了。然后再次启动service即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412269.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何搭建Z-blog网站并结合内网穿透实现无公网ip访问本地站点

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕…

第5章 现代通信网

文章目录 5.1 通信网概述5.1.1 通信网的构成要素5.1.2 通信网的发展演进 5.2 交换与控制5.2.1 交换的基本概念1、电路交换2、报文交换3、分组交换4、3种交换技术的比较 5.2.2 IP交换1、IP交换机的构成2、IP 交换的工作原理 5.2.3 IP多媒体子系统 5.3 传输网 5.1 通信网概述 5.…

Verilog语法——4.Verilog工程模板、相应规范再强调

参考资料 【明德扬_verilog零基础入门语法HDL仿真快速掌握-手把手教你写FPGA/ASIC代码设计流程中的应用】 4. Verilog工程模板、相应规范 4.1 Verilog工程模板 4.1.1 设计模块模板 module module_name(clk,rst_n,//其他信号,举例doutdout };//参数定义parameter …

【测试开发】如何在团队中推广新工具,新技术?

前言 就测试开发工作而言,从阶段划分,可以粗略划分为四个阶段: 识别发现组织团队中的问题分析、制定解决方案实现解决方案赋能落地解决方案 今天我们重点来聊聊,最后一个阶段,赋能落地解决方案过程中的经验和思考。…

如何实现无公网ip远程访问内网本地BUG管理服务【内网穿透】

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

11.云原生分布式数据库之TIDB

云原生专栏大纲 文章目录 为什么使用TIDB后端视角运维视角基础架构视角 TiDB Operator 简介软件版本要求部署tidbTIDB工具helm常用命令TIDB学习推荐资料 为什么使用TIDB 从后端视角、运维视角和基础架构视角来看,使用 TiDB 作为数据库系统可以获得分布式架构、高可…

IDEA 2023.3.2 安装教程

1.下载2023.3.2版本IDEA 链接:https://pan.baidu.com/s/1RkXBLz6qxsd8VxXuvXCEMA?pwd5im6 提取码:5im6 2.安装 3.解压文件,进入,选择方式3 4.将下面文件夹复制到任意位置(不要有中文路径) 5.进入下面文…

快速入门java网络编程基础------Nio

一. NIO 基础 哔哩哔哩黑马程序员 netty实战视频 0.什么是nio? NIO(New I/O)是Java中提供的一种基于通道和缓冲区的I/O(Input/Output)模型。它是相对于传统的IO(InputStream和OutputStream)模型…

物联网孢子捕捉分析仪在农田起到什么作用

TH-BZ03随着科技的飞速发展,物联网技术在农业领域的应用越来越广泛。其中,物联网孢子捕捉分析仪作为一种先进的设备,在农田中发挥着不可或缺的作用。本文将详细介绍物联网孢子捕捉分析仪在农田中的作用。 一、实时监测与预警 物联网孢子捕捉分…

Sam Altman称人类水平的AI即将出现,通用人工智能(AGI)会带来什么改变?

OpenAI 首席执行官 Sam Altman 表示,达到人类水平的人工智能即将出现,但它对世界的影响远没有我们想象的那么大。 他在瑞士达沃斯世界经济论坛上的一次对话中表示:「它(AI)给世界带来的变化比我们想象的要小得多&…

C语言之通过指针操作字符串

下面我们来学习通过指针来灵活操作字符串的方法 判断字符串的长度 我们用对指针的遍历来实现判断字符串的长度 #include <stdio.h> int str_length(const char*s) {int len 0;while(*s)len;return len; } int main() {char str[128];printf("请输入字符&#xff…

低代码开发:解锁数字化转型新维度

在信息化浪潮中&#xff0c;企业正面临着前所未有的挑战与机遇。一方面&#xff0c;市场环境瞬息万变&#xff0c;业务需求迭代频繁&#xff0c;对快速应用开发提出了更高要求&#xff1b;另一方面&#xff0c;传统软件开发模式受限于高成本、长周期等瓶颈&#xff0c;难以满足…