移植 MQTT broker mosquitto 到 omapl138

2017-12-26

概述

本次移植使用创龙的 TL138-EVM 开发板,基于 TI 的 MCSDK 开发环境。具体上位机系统为 Ubuntu 12.04-32bit,软件环境基于创龙的用户手册搭建。

为了移植后在 138 上运行的 web 服务也能使用 mosquitto,所以编译构建时要开启其 libwebsocket 功能支持。所以这里移植就总共分三步走。交叉编译 libwebsocket,交叉编译 mosquitto,移植编译结果到目标文件系统。

交叉编译 libwebsocket

准备工作

官网下载源码包:https://libwebsockets.org/

构建过程需要比 Ubuntu 的 apt-get 方式安装的更高版本的 cmake 工具,可以参考这里进行安装:https://askubuntu.com/questions/610291/how-to-install-cmake-3-2-on-ubuntu-14-04

编译过程

上述修改 cmake 文件中的三个变量的参考:

set(CROSS_PATH /home/jack/omapl138/ti/mcsdk_1_01_00_02/linux-devkit/sysroots/i686-arago-linux/usr )

set(CMAKE_FIND_ROOT_PATH "${CROSS_PATH}" "/home/jack/omapl138/ti/mcsdk_1_01_00_02/linux-devkit/sysroots/armv5te-3.3-oe-linux-gnueabi")

set(CMAKE_INSTALL_PREFIX "/home/jack/project/sinoyue-138/mosquitto/libwebsockets-master/build/websockets-lib/")

交叉编译 mosquitto

准备工作

官网下载源码包:http://mosquitto.org/download/

编译过程

上述修改 config.mk 的示例如下:

ifeq ($(WITH_WEBSOCKETS),yes)
    BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_WEBSOCKETS -I/home/jack/project/sinoyue-138/mosquitto/libwebsockets-master/build/include
    BROKER_LIBS:=$(BROKER_LIBS) -lwebsockets -L/home/jack/project/sinoyue-138/mosquitto/libwebsockets-master/build/lib
endif

安装到 138 文件系统

安装 libwebsocket

安装 mosquitto

简单试验

在三个不同终端中依次执行以下操作:

发布之后即可看到订阅的终端收到发布的消息。

至此,大功告成!

2017-12-26