创龙小识堂 | 专题片-2:如何移植 MQTT Broker Mosquitto 到 OMAP-L138 - 创龙小识堂 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3224|回复: 0

创龙小识堂 | 专题片-2:如何移植 MQTT Broker Mosquitto 到 OMAP-L138

[复制链接]

61

主题

61

帖子

677

积分

创龙

Rank: 8Rank: 8

积分
677
发表于 2018-1-18 14:44:33 | 显示全部楼层 |阅读模式
(。・∀・)ノ゙嗨,又到了我们每周一课的时间了。。。
先回顾上一周专题片-1:MQTT简介及设计原则
        今天小编Jane继续为大家分享技术类型专题片-2:如何移植 MQTT Broker Mosquitto 到 OMAP-L138 。不一样的干货,喜欢的记得转载或留言哦*^-^*

MQTT 专题
如何移植 MQTT Broker Mosquitto 到 OMAP-L138

概述

        本次移植使用创龙TL138-EVM开发板,基于 TI 的 MCSDK 开发环境。具体上位机系统为 Ubuntu 12.04-32bit,软件环境基于创龙的用户手册搭建。
        为了移植后在创龙TL138-EVM开发板上运行的 web 服务也能使用 mosquitto,所以编译构建时要开启其 libwebsocket 功能支持。所以这里移植就总共分三步走。交叉编译 libwebsocket,交叉编译 mosquitto,移植编译结果到目标文件系统。

一、交叉编译 Libwebsocket

1、准备工作
● 官网下载源码包: https://libwebsockets.org/
● 构建过程需要比 Ubuntu 的 apt-get 方式安装的更高版本的 cmake 工具,可以参考这里进行安装:https://askubuntu.com/questions/ ... 3-2-on-ubuntu-14-04

2、编译过程
● 进入解压后的源码包 cd libwebsockets-master
● 创建 build 目录。mkdir build
● 编辑交叉编译 cmake 文件。vim ../cross-arm-linux-gnueabihf.cmake
● 修改文件中的路径变量,指向 MCSDK对应位置。 CROSS_PATH, CMAKE_FIND_ROOT_PATH, CMAKE_INSTALL_PREFIX
● source MCSDK 开发环境。source /home/jack/omapl138/ti/mcsdk_1_01_00_02/linux-devkit/environment-setup
● 执行 cmake。cmake  ..  -DCMAKE_INSTALL_PREFIXATH=/usr  -DCMAKE_TOOLCHAIN_FILE=../cross-arm-linux-gnueabihf.cmake  -DLWS_WITHOUT_EXTENSIONS=1  -DLWS_WITH_SSL=0
● 编译并提取生成的文件。make && make install 。生成的文件提取到 websockets-lib 目录。

上述修改 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

1、准备工作
● 官网下载源码包:http://mosquitto.org/download/

2、 编译过程
● 解压并进入源码包。 cd mosquitto-1.4.14
● 编辑 config.mk 配置前面交叉编译出来的 libwebsocket 的头文件和库的路径。
● source MCSDK 开发环境。source /home/jack/omapl138/ti/mcsdk_1_01_00_02/linux-devkit/environment-setup
● 编译。make WITH_SRV=no WITH_WEBSOCKETS=yes WITH_TLS=no CROSS_COMPILE=arm-arago-linux-gnueabi- CC=gcc CXX=g++ AR=ar
● 提取生成的文件。mkdir build  &&  make install DESTDIR=/home/jack/project/sinoyue-138/mosquitto/mosquitto-1.4.14/build

上述修改 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


三、安装到 TL138-EVM开发板 文件系统

1、安装 libwebsocket
● 把生成的 websockets-lib 传输到 138 文件系统。
● 安装。cp -r websockets-lib /usr
● sync

2、安装 mosquitto
● 把生成 build 文件夹传输到 138 文件系统。
● 安装配置文件。cp -r ./build/etc /
● 安装头文件和库文件等。 cp -r ./build/usr/local /usr
● sync


四、简 单 试 验

在三个不同终端中依次执行以下操作:
● 启动 broker。mosquitto
● 订阅。mosquitto_sub -t 'test/topic' -v
● 发布。mosquitto_pub -t 'test/topic' -m 'hello world'
发布之后即可看到订阅的终端收到发布的消息。
至此,大功告成!



        本系列文章将由浅入深学习 MQTT。
       小编Jane,今天就先为大家讲解到这里。后续更加精彩!下节课堂分享:如何移植 MQTT client paho 到 OMAP-L138。敬请留意。

本文来源于:广州创龙-Jack Liao 原创



想更多地了解广州创龙,欢迎与我们联系:

销售邮箱:sales@tronlong.com
技术邮箱:support@tronlong.com
创龙总机:020-8998-6280
技术热线:020-3893-9734
创龙官网:www.tronlong.com
技术论坛:www.51ele.net
线上商城:https://tronlong.taobao.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-3-29 23:33 , Processed in 0.037066 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表