05 --- 移植mosquitto到arm平台

1、 安装交叉编译工具(树莓派)

我这里移植的平台是树莓派,交叉编译工具的安装请点击这里,其他arm平台的请自行百度安装相应平台的交叉编译工具,这里不做讲解

2、准备好三个源码包

  1. openssl
    下载地址: https://github.com/openssl/openssl
  2. libuuid
    下载地址:https://sourceforge.net/projects/libuuid/
  3. mosquitto
    下载地址:https://mosquitto.org/
    将三个安装包放在 mqtt_for_raspberry 目录下
    在这里插入图片描述

3、编译安装openssl

  1. 进入 openssl-1.1.1a 目录

  2. 配置安装位置 (安装前先建立一个openssl-1.1.1a_install文件夹)
    ./config no-asm -shared --prefix=/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install

  3. 修改Makefile 对于这个版本的openssl修改这两个地方就行
    PLATFORM=arm
    CROSS_COMPILE=arm-linux-gnueabihf-

  4. make
    在这里插入图片描述
    解决办法 去掉Makefile 里面的 -m64
    在这里插入图片描述

  5. makeinstall
    出现以下文件及安装成功
    . 在这里插入图片描述

4、编译安装libuuid(生成唯一识别码)

  1. mkdir libuuid-1.0.3_install 在mqtt_for_raspberry下创建该文件夹
  2. 配置安装路径及编译工具
    ./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc --prefix=/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/libuuid-1.0.3_install
  3. export DESTDIR= 取消环境变量
  4. make
  5. make install
    生成以下文件即编译安装成功
    在这里插入图片描述

5、 编译安装mosquitto

  1. mkdir mosquitto-1.6.9_install
  2. vi config.mk 修改配置文件
    CC=arm-linux-gnueabihf-gcc
    CXX=arm-linux-gnueabihf-g++
    在这里插入图片描述
CFLAGS:=-I/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install/include -I/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/libuuid-1.0.3_install/include
LDFLAGS=-L/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install/lib -lm -ldl -lssl -lcrypto -L/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/libuuid-1.0.3_instal/lib -luuid -lrt

在这里插入图片描述

LIB_LIBS:=
PASSWD_LIBS:=
BROKER_LIBS = -L/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install/lib -lm -ldl -lssl -lcrypto -L/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/libuuid-1.0.3_instal/lib -luuid 
PASSWD_LIBS = -L/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install/lib -lssl -lcrypto
LIB_LIBS = /home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install/lib -lssl -lcrypto

在这里插入图片描述

BROKER_LIBS = -L/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install/lib -lm -ldl -lssl -lcrypto -L/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/libuuid-1.0.3_instal/lib -luuid 
PASSWD_LIBS = -L/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install/lib -lssl -lcrypto`
LIB_LIBS = /home/guyao/desktop/mqtt_study/mqtt_for_raspberry/openssl-1.1.1a_install/lib -lssl -lcrypto

在这里插入图片描述
3. 配置环境变量
export DESTDIR=/home/guyao/desktop/mqtt_study/mqtt_for_raspberry/mosquitto-1.6.9_install
4. make
5. make install
在这里插入图片描述

6、将编译生成的uuid、openssl、mosquitto库移植

Ubuntu挂载文件夹

1、ubuntu 安装NFS(默认是没有安装的)同时会有两个软件包nfs-common和portmap被安装上
sudo apt-get install nfs-kernel-server
2、修改NFS配置文件
vi /etc/exports
/home/guyao/desktop/mqtt_study/ 192.168.0.*(rw,sync,no_root_squash)
前面的路径为挂载的文件夹路径
ip192.168.0.* — 允许访问的网段,
也可以是ip地址、主机名(能够被服务器解析)、
*(所有人都能访问)
(rw,sync,no_root_squash,no_subtree_check)
rw:读/写权限
sync:数据同步写入内存和硬盘
no_root_squash:服务器允许远程系统以root特权存取该目录
no_subtree_check:关闭子树检查
其他选项可以通过man exports查阅man文档
3、启动服务

  • sudo service portmap restart 重启portmapper(端口映射)服务
  • sudo service nfs-kernel-server restart重启NFS服务
  • showmount -e 查看服务是否启动
    在这里插入图片描述
    表明已成功挂载一个目录

树莓派使用nfs服务

1、安装nsf服务
sudo apt-get install nfs-common
2、创建要挂载的目录
sudo mkdir /mnt/nfs_shared_client
3、挂载创建的目录 连接Ubuntu
mount -t nfs -o nolock 192.168.0.111:/home/guyao/desktop/mqtt_study /mnt/nfs_shared_client
4、然后就能成功访问Ubuntu所挂载的文件夹的文件啦
在这里插入图片描述

搬运三大库

mosquitto的搬运

1、首先在 /usr 目录下建立 mqtt 文件夹
cp xxx/mqtt_install /usr/mqtt -arf
但是我们尽量要节省我们开发板的内存 只搬运有用的文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210413225540531.png

注意:一定要加 -arf 因为存在链接文件,如果没有 -a 将会将软链接文件拷贝成实体文件 将失去原有的效果

openssl的搬运

1、建立ssl文件夹 sudo mkdir ssl
2、开始搬运
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210413230649753.png

uuid的搬运

在 /usr 建立uuid文件夹
sudo cp /mnt/nfs_shared_client/mqtt_for_raspberry/libuuid-1.0.3_install/lib . -arf

*可以删除拷过来的头文件和静态库以节省空间

7、移植成功后配置开发板环境变量

1、vi /etc/profile
添加以下内容:

#mqtt start
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/ssl/lib
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/uuid/lib
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/mqtt/lib
export PATH=$PATH:/usr/ssl/bin
export PATH=$PATH:/usr/mqtt/bin
export PATH=$PATH:/usr/mqtt/sbin
#mqtt end 

2、source /etc/profile 使其配置生效

8、测试

在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值