千家信息网

怎么把mosquitto移植到arm上

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文小编为大家详细介绍"怎么把mosquitto移植到arm上",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么把mosquitto移植到arm上"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
千家信息网最后更新 2026年11月03日怎么把mosquitto移植到arm上

本文小编为大家详细介绍"怎么把mosquitto移植到arm上",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么把mosquitto移植到arm上"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1. 交叉编译uuid库

我们把uuid的源码拷贝到Ubuntu,作者是拷贝拷贝到了/home/topeet/mqtt下面,如下图所示:

输入以下命令,解压源码并进入解压生成的文件夹:

tar -vxf libuuid-1.0.3.tar.gz

如下图所示:

然后我们在/opt/下创建一个名为mosquitto-arm的文件夹,命令如下:

mkdir -p /opt/mosquitto-arm

如下图所示:

配置源码,我们在解压生成的uuid库的文件夹输入以下命令:

./configure --prefix=/opt/mosquitto-arm/libuuid-1.0.3 CC=arm-none-linux-gnueabi-gcc --host=arm-linux

如下图所示:

最后,编译并安装,命令如下:

make

make install

编译并安装成功后会在我们设置/opt/mosquitto-arm下得到一个libuuid的文件夹

2. 交叉编译openssl库

解压压缩包进进入解压后的目录

tar -vxf openssl-1.0.2g.tar.gz

cd openssl-1.0.2g

如下图所示。作者是放在了/home/topeet/mqtt目录下

配置编译参数

setarch i386 ./config no-asm shared --prefix=/opt/mosquitto-arm/openssl/

setarch i386:声明生成的是32位CPU,如果是64位CPU则去除该部分

--prefix :指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)。

shared :生成动态连接库。

no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的

如果Makefile中有 -m32和-m64 就删掉 -m32和-m64,但是我的Makefile中没有,就没管这个。

如下图所示:

修改openss文件夹下的Makefile里面的编译器参数如下

CC= arm-none-linux-gnueabi-gcc

AR= arm-none-linux-gnueabi-ar $(ARFLAGS) r

RANLIB= arm-none-linux-gnueabi-ranlib

NM= arm-none-linux-gnueabi-nm

如下图所示:

编译并安装

make

make install

编译并安装成功后会在我们设置/opt/mosquitto-arm下得到一个openssl的文件夹

编译源码

make WITH_SRV=no CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ CFLAGS="-I /opt/mosquitto-arm/openssl/include -I /opt/mosquitto-arm/libuuid-1.0.3/include -I /opt/mosquitto-arm/openssl/lib -I /opt/mosquit/to-arm/libuuid-1.0.3/lib" LDFLAGS="-L /opt/mosquitto-arm/openssl/lib -L /opt/mosquitto-arm/libuuid-1.0.3/lib -lssl -lcrypto -luuid"

注意,如果大家这里安装uuid和openssl的库的时候路径和我的不一致,要把-I和-L指定的库和头文件的路径修改成自己对应安装uuid和openssl库的路径,否则编译不过去。

如下图所示:

编译成功如下图所示:

安装,命令如下

make DESTDIR=/opt/mosquitto-arm/mosquitto-1.5 install

编译并安装成功后会在我们设置/opt/mosquitto-arm下得到一个mosquitto-1.5的文件夹

至此,我们mosquitto就已经交叉编译完成了

4.把mosquitto移植到开发板

在Ubuntu的/home/topeet/下创建一个mqtt-arm的文件夹,如下图所示:

我们进入我们安装的mosquitto-1.5目录下,作者这里是安装在了/opt/mosquitto-arm下,如下图所示:

我们把当前路径下的/etc/mosquitto/下的mosquitto.conf.example文件拷贝到我们在/home/topeet/下创建一个mqtt-arm的文件夹,命令如下:

cp mosquitto.conf.example /home/topeet/mqtt-arm/

如下图所示

然后我们返回到mosquitto的安装目录,我们进到安装目录下mosquitto-1.5/usr/local/bin下面,如下图所示:

我们把这个目录下所有文件拷贝到我们在/home/topeet/下创建一个mqtt-arm的文件夹,命令如下:

cp ./* /home/topeet/mqtt-arm/

如下图所示:

然后我们返回到mosquitto的安装目录,我们进到安装目录下mosquitto-1.5/usr/local/sbin下面,如下图所示:

我们把这个目录下的mosquitto二进制文件拷贝到我们在/home/topeet/下创建一个mqtt-arm的文件夹,命令如下:

然后我们返回到mosquitto的安装目录,把libuuid-1.0.3 mosquitto-1.5 openssl这个三个文件夹全部拷贝到我们在/home/topeet/下创建一个mqtt-arm的文件夹,命令如下:

cp -rf libuuid-1.0.3/ mosquitto-1.5/ openssl/ /home/topeet/mqtt-arm

如下图所示:

然后我们返回到/home/topeet/下面,使用tar命令打包我们创建的mqtt-arm文件,命令如下:

tar -czf mqtt-arm.tar.gz mqtt-arm/

如下图所示:

我们把这个压缩包拷贝到开发板的根目录,这里以4412开发板为例,其他开发板操作一致

我们解压这个压缩包,并进入到解压生成的目录,如下图所示:

我们把开发板当前目录下libuuid-1.0.3/ mosquitto-1.5/ openssl/三个文件下的lib下的库全部放到开发板的/lib下面,命令如下:

cp -rf libuuid-1.0.3/lib/* mosquitto-1.5/usr/local/lib/* openssl/lib/* /lib/

如下图所示:

我们把当前目录下mosquitto.conf.example复制一个和他一模一样名为mosquitto.conf的文件放在/etc下面,命令如下:

cp mosquitto.conf.example /etc/mosquitto.conf

如下图所示:

然后我们把剩下的几个文件全部放在开发板的/bin目录下,命令如下:

mv mosquitto mosquitto_* /bin

如下图所示:

然后我们返回到开发板的根目录,删掉我们 mqtt-arm.tar.gz的压缩包和解压生成的mqtt-arm文件夹就可以了。

5.测试是否移植成功

以开发板作为服务器,Ubuntu开俩个终端作为订阅者和发布者进行测试

1,我们打开/etc下面的mosquitto.conf文件, 修改里面的第40行为 user root 并取消注释。如下图所示:

2.使用以下命令启动开发板的mosquitto服务

mosquitto -d -c /etc/mosquitto.conf

如下图所示:

查询是否启动成功,命令如下:

ps -ef |grep mosquitto

如果成功入下图所示:

3.使用ping命令ping一下自己的Ubuntu,这里一定要ping通,否则下面的步骤不成功,命令如下,IP为自己Ubuntu的ip

ping 192.168.3.34 -c 3

成功ping通如下图所示:

4.在文档的第一步,我们就已经在Ubuntu上安装了mosquitto,所示我们直接打开一个终端,订阅主题,命令如下:

mosquitto_sub -h 192.168.3.28 -t "mqtt" -v

其中参数-h是指定要连接的MQTT服务器,这里的192.168.3.28为开发板的IP,大家要根据自己的IP来设置,-t订阅主题,此处为mqtt,所以主题为mqtt,-v打印更多的调试信息。

如下图所示:

5.在Ubuntu上打开另一个终端(注意这里又打开了一个终端),发布主题,命令如下:

mosquitto_pub -h 192.168.3.28 -t "mqtt" -m "Hello MQTT"

其中参数-h是指定要连接的MQTT服务器,这里的192.168.3.28为开发板的IP,大家要根据自己的IP来设置,-t订阅主题,此处为mqtt,-m指定消息内容,这里发送的是

Hello MQTT。

如下图所示:

通信成功以后,我们会在另一个终端看到我们通过开发板作为mqtt服务器转发来的Hello MQTT

信息,如下图所示:

读到这里,这篇"怎么把mosquitto移植到arm上"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

文件 命令 目录 编译 文件夹 开发 成功 拷贝 生成 移植 终端 路径 服务 主题 参数 服务器 源码 交叉 订阅 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 南京欣网互联网络科技 天津市摩尔互联网科技 南京欣网互联网络科技有限公司 工业互联网科技新基建 科技制造互联网公司 深圳互联网科技公司 互联网医疗科技 互联网科技公司发展 期待互联网科技 伴你行互联网科技有限公司 甘肃拓世互联网科技有限公司 云创客互联网科技公司 科技互联网的估值 团飞科技与伯堂互联网服务平台 深圳育鹏互联网科技有限公司招聘 洛阳共同富裕互联网科技有限公司 互联网科技创新的路径 世界互联网领先科技成果获奖 互联网科技创新方面的资料 紫鲸互联网科技 贷财互联网科技 新浪科技互联网 互联网科技素材视频竖屏 贵州叶脉互联网科技有限公司所属行业 崇明区互联网教育科技售后服务 中国互联网公司排名锤子科技 南通创西澳互联网科技有限公司 互联网风格科技公司名称 信承诺互联网科技有限公司
0