1 ElfBoard技术贴|如何移植Mosquitto库-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ElfBoard技术贴|如何移植Mosquitto库

ElfBoard 2024-12-13 15:34 次阅读

Mosquitto是一个开源的MQTT消息代理(broker)软件,它遵循MQTT协议,允许设备之间高效交换消息。作为一个轻量级的消息中间件,Mosquitto支持QoS(服务质量)等级,支持发布/订阅模式,适用于嵌入式系统和低功耗设备。其小巧的体积和简洁的架构使其成为许多嵌入式应用的理想选择,特别是在资源受限的嵌入式开发板上运行。

将Mosquitto移植到嵌入式开发板上,能够使这些嵌入式设备具备完整的消息中间件功能。这对于需要进行远程数据交换、设备控制和实时监控的物联网项目尤其重要。比如,在智能家居或环境监控系统中,开发板通过Mosquitto与其他设备或系统进行通信,可以大大提升系统的灵活性和扩展性。

下面将和各位小伙伴详细介绍如何将Mosquitto及其所依赖的OpenSSL、libuuid库移植到ElfBoard的开发板,并在开发板上运行MQTT服务。

交叉编译libuuid库

1、下载地址https://sourceforge.net/projects/libuuid/files/

2、拷贝源码到开发环境/home/elf/work目录下解压

elf@ubuntu:~/work$ tar zxvf libuuid-1.0.3.tar.gz elf@ubuntu:~/work$ cd libuuid-1.0.3/

3、创建install文件夹用来存放编译安装后的库

elf@ubuntu:~/work/libuuid-1.0.3$ mkdir install

4、执行环境变量

elf@ubuntu:~/work/openssl-1.0.2g$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

5、生成Makefile

elf@ubuntu:~/work/libuuid-1.0.3$ ./configure --host=arm-poky-linux-gnueabi --prefix=$(pwd)/install

6、编译

elf@ubuntu:~/work/libuuid-1.0.3$ make

7、安装

elf@ubuntu:~/work/libuuid-1.0.3$ make install

8、查看安装目录下的文件并打包

elf@ubuntu:~/work/libuuid-1.0.3$ cd install/ elf@ubuntu:~/work/libuuid-1.0.3/install$ ls include lib elf@ubuntu:~/work/libuuid-1.0.3/install$ tar cvjf libuuid.tar.bz2 *

交叉编译OpenSSL库

1、下载地址:https://openssl-library.org/source/old/1.0.2/index.html

2、拷贝源码到开发环境/home/elf/work目录下解压

elf@ubuntu:~/work$ tar zxvf openssl-1.0.2g.tar.gz elf@ubuntu:~/work$ cd openssl-1.0.2g/

3、创建install文件夹用来存放编译安装后的库

elf@ubuntu:~/work/openssl-1.0.2g$ mkdir install

4、生成Makefile

elf@ubuntu:~/work/openssl-1.0.2g$ ./config no-asm shared --prefix=$(pwd)/install

5、修改Makefile

注释掉第62行;第63行去掉“-m64”

wKgZPGdb4dSAAaxKAAE4pivdWV8890.png

注释掉第180行

wKgZPGdb4dyAbwYtAAEGb3084Pg727.png

6、执行环境变量

elf@ubuntu:~/work/openssl-1.0.2g$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

7、编译

elf@ubuntu:~/work/openssl-1.0.2g$ make

8、安装

elf@ubuntu:~/work/openssl-1.0.2g$ make install

9、查看安装目录下的文件并打包

elf@ubuntu:~/work/openssl-1.0.2g$ cd install/ elf@ubuntu:~/work/openssl-1.0.2g/install$ ls bin include lib ssl elf@ubuntu:~/work/openssl-1.0.2g/install$ tar cvjf openssl.tar.bz2 *

交叉编译Mosquitto库

1、下载地址:https://mosquitto.org/files/source/

2、拷贝源码到开发环境/home/elf/work目录下解压

elf@ubuntu:~/work/mosquitto-1.5.1$ tar zxvf mosquitto-1.5.1.tar.gz elf@ubuntu:~/work/mosquitto-1.5.1$ cd mosquitto-1.5.1/

3、创建install文件夹用来存放编译安装后的库

elf@ubuntu:~/work/mosquitto-1.5.1$ mkdir install

4、执行环境变量

elf@ubuntu:~/work/mosquitto-1.5.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

5、编译

elf@ubuntu:~/work/mosquitto-1.5.1$ make WITH_SRV=no CFLAGS="-I /home/elf/work/openssl-1.0.2g/install/include -I /home/elf/work/openssl-1.0.2g/install/lib -I /home/elf/work/openssl-1.0.2g/install/include/openssl -I /home/elf/work/libuuid-1.0.3/install/include -I /home/elf/work/libuuid-1.0.3/install/lib" LDFLAGS="-L /home/elf/work/openssl-1.0.2g/install/lib -L /home/elf/work/libuuid-1.0.3/install/lib -lssl -lcrypto -luuid" CROSS_COMPILE=" "

6、安装

elf@ubuntu:~/work/mosquitto-1.5.1$ make DESTDIR=$(pwd)/install install

7、查看安装目录下的文件

elf@ubuntu:~/work/mosquitto-1.5.1$ cd install elf@ubuntu:~/work/mosquitto-1.5.1/install$ ls etc usr elf@ubuntu:~/work/mosquitto-1.5.1/install$ tar cvjf mosquitto.tar.bz2 *

移植到开发板

将libuuid.tar.bz2、openssl.tar.bz2、mosquitto.tar.bz2压缩包通过U盘拷贝到开发板根目录下解压。

root@ELF1:~# cp /run/media/sda1/libuuid.tar.bz2 / root@ELF1:~# cp /run/media/sda1/openssl.tar.bz2 / root@ELF1:~# cp /run/media/sda1/mosquitto.tar.bz2 / root@ELF1:~# cd / root@ELF1:/# tar mxvf libuuid.tar.bz2 root@ELF1:/# tar mxvf openssl.tar.bz2 root@ELF1:/# tar mxvf mosquitto.tar.bz2

将/usr/local/lib、/usr/local/bin、/usr/local/sbin文件夹下所有文件复制到根目录/lib文件夹下。

root@ELF1:/# cd usr/local/ root@ELF1:/usr/local# cp -rf ./lib/* /lib root@ELF1:/usr/local# cp -rf ./bin/* /bin root@ELF1:/usr/local# cp -rf ./sbin/* /bin

将/etc/mosquitto/文件夹下mosquitto.conf.example文件复制到根目录/etc下并重命名为mosquitto.conf。

root@ELF1:/usr/local# cd /etc/mosquitto/ root@ELF1:/etc/mosquitto# cp mosquitto.conf.example /etc/mosquitto.conf

修改/etc/mosquitto.conf文件,在第40行下添加user root。

wKgZPGdb4tSACnktAAC3IN1mR4c401.png

保存退出

测试

1、打开两个串口终端,一个串口登录,一个网口登录

2、启动mosquitto服务

root@ELF1:~# mosquitto -d -c /etc/mosquitto.conf

3、一端订阅test主题

root@ELF1:~# mosquitto_sub -t test

4、一端发布test主题

root@ELF1:~# mosquitto_pub -t test -m "hello world"

wKgZO2db4yuAAuCkAAA8Hdlg9uo969.png

可以看到订阅端接收到发布端的“hello world”消息,测试成功。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6034

    文章

    44554

    浏览量

    634539
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304756
  • 开发板
    +关注

    关注

    25

    文章

    5032

    浏览量

    97369
  • mosquitto
    +关注

    关注

    0

    文章

    5

    浏览量

    2931
收藏 人收藏

    评论

    相关推荐

    Mosquitto安装步骤

    1、安装依赖yum -y install gcc gcc-c++ openssl-devel c-ares-devel libuuid-devel wget cmake2、为mosquitto增加
    发表于 07-16 06:10

    迅为i.MX6开发板mqtt 移植教程(一)

    会收到我们的发布的信息 Hello MQTT,如下图所示: 三.移植 mosquitto 到开发板 mqtt 源码下载页: https://mosquitto.org/files/source
    发表于 03-06 16:47

    iTOP-4412开发板-mqtt移植教程(二)

    ,其他开发板操作一致我们解压这个压缩包,并进入到解压生成的目录,如下图所示:我们把开发板当前目录下 libuuid-1.0.3/ mosquitto-1.5/ openssl/三个文件下的 lib 下的
    发表于 07-16 14:35

    项目实战-广域网智能家居-把mosquitto移植到arm上

    Mosquitto依赖libuuid和openssl,所以我们在交叉编译Mosquitto之前需要先交叉编译他所需要的依赖,这里作者已
    发表于 12-30 13:44

    如何把mosquitto移植到arm上

    项目实战-广域网智能家居-把mosquitto移植到arm上
    发表于 01-08 06:51

    mosquitto的使用方法

      1、mosquitto简介  mosquitto是一款开源的MQTT消息代理(服务器)软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在
    发表于 01-19 15:58

    mosquitto在ARM嵌入式平台的移植方法

    MQTT 基础概念Broker(服务端, 代理者)---- 使用PC(192.168.100.33:1883)机 运行mosquitto程序即可Subscriber(客户端-订阅者)---- 192.168.100.35 嵌入式板子APublisher(客户端-发布者)...
    发表于 12-14 08:20

    mosquitto的几个版本

    几个版本的mosquitto的安装软件,windows下可使用
    发表于 10-29 11:24 0次下载

    ARM官方DSP移植

    ARM官方DSP移植,详细源代码提供参考
    发表于 11-23 15:59 16次下载

    STM32移植过程详解以固件

    STM32 固件移植的方法及简单介绍。。
    发表于 12-17 13:54 18次下载

    STM32固件在MDK下移植

    STM32固件在MDK下移植,简介使用及开发移植相关应用
    发表于 05-09 11:57 3次下载

    OpenHarmony技术论坛:OpenHarmony移植技术分享

    《OpenHarmony Tech Day·技术日》 技术论坛 OpenHarmony移植技术分享 OpenHarmony移植工作有三大部分
    的头像 发表于 04-25 16:53 2801次阅读
    OpenHarmony<b class='flag-5'>技术</b>论坛:OpenHarmony<b class='flag-5'>移植</b><b class='flag-5'>技术</b>分享

    ElfBoard学习笔记分享

    ElfBoard精心构筑的嵌入式技术应用社群“自创一派”共创社,已成立了半月有余。在这段时间里,每位共创官无论是对产品应用理念的碰撞,还是对嵌入式技术问题的探讨,都在社群里尽情展示着自己的专业见解
    的头像 发表于 01-06 16:56 438次阅读
    <b class='flag-5'>ElfBoard</b>学习笔记分享

    项目分享|基于ElfBoard的远程监测系统

    技术领域的专业素养。值得一提的是,社群内部已经涌现出许多富有创意的产品设计理念与技术解决方案,今天就跟大家分享一名共创官完成的项目报告“基于ElfBoard的远程监测系
    的头像 发表于 01-17 11:14 574次阅读
    项目分享|基于<b class='flag-5'>ElfBoard</b>的远程监测系统

    elfboard配置交叉编译

    elfboard开发板上手
    的头像 发表于 05-26 11:17 278次阅读