导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    如何在飞凌嵌入式T113-i开发板的Buildroot中移植MQTT协议?

    飞凌嵌入式专区
    1
    1
    870
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • livpo
      livpo LV 6 最后由 编辑

      在实际的项目开发中,工程师朋友们可能会需要在文件系统中移植一些工具或协议,那么该如何进行移植操作呢?

      我们可以通过添加package包配置的方式在OK113i-S开发板的Buildroot中移植新功能。本篇文章,小编就以在Buildroot移植MQTT协议为例为大家介绍。

      640 (16).png

      配置文件介绍

      首先了解一下在Buildroot中移植功能时涉及到的配置文件。

      查看飞凌嵌入式OK113i-S开发板源码中已有的配置文件,可以看到在路径 buildroot/buildroot-201902/package/mosquitto 里边包括以下几个文件:

      • Config.in
      • mosquitto.mk
      • mosquitto.hash
      • mosquitto.service
      • S50mosquitto

      Config.in

      Config.in文件通过 BR2_PACKAGE_** 作为开关来告知Buildroot需要哪个包参与编译,开关在 buildroot/buildroot-201902/configs/ 下面的 OK113I_linux_defconfig 配置文件中赋值,类似于内核中的Kconfig文件。

      例如:

      package/Config.in中写了调用关系

      source "package/mosquitto/Config.in";
      

      package/mosquitto/Config.in中写了BR2_PACKAGE_MOSQUITTO信息。

      640.png

      demo.mk

      这个文件中声明一些包的信息,比如:指定包的版本、包源码下载链接、存放路径、编译规则、工具链等。编译时会按照这个文件中的下载地址和版本下载源码包到指定路径并进行编译和文件拷贝,相当于Makefile文件。

      例如:mosquitto.mk

      文件开头先写了软件包版本和下载地址,我们在浏览器访问该地址可以找到对应版本的软件包。编译时,如果源码中没有该文件,就会自动下载。

      • mosguitto-1.5.8.tar.gz
      • mosguitto-1.5.8.tar.gz.asc

      除此之外文件中还定义了其他的编译规则,包括文件拷贝路径等内容。

      demo.hash

      这个文件会记录下载的源码包的hash校验码,防止下载的源码包出错。

      demo.service

      此文件是为systemd服务 ,systemd开机后会依据此文件启动demo服务,在demo.mk中会指定此文件的源路径已经安装路径。目前OK113i-S开发板没有使用该服务,因此可以不用管它。

      S50demo

      此文件类是demo.service,是目前OK113i-S开发板在使用的开机服务类型。

      在以上5种文件中Config.in和demo.mk是必须的,其他文件按需配置即可。具体配置内容可参考已有文件或根据实际情况进行书写。Mosquitto已经有写好的配置文件,可以直接用,一般配置文件由项目的维护者或开发者提供,如果自己移植的文件没有配置文件,可以参考已有配置文件写一个。

      执行

      我们需要在buildroot/buildroot-201902中执行

      make OK113I_linux_defconfig
      

      然后执行

      make menuconfig ARCH=arm
      

      在图形配置界面进行配置(如果执行报错,请先安装该指令:sudo apt-get update 和 sudo apt-get install ncurses)。

      进入图形配置界面后输入“/”搜索要配置的功能,如图搜索Mosquitto看到的信息,按提示选“1”可进入目标选项,按“空格”选择后保存并退出。

      640 (1).png

      配置完成后,在当前目录下执行 ./build.sh对文件系统进行编译,编译完成后可查看文件系统中是否已经有对应文件。(注:如果没有网络,则编译时不能自动下载源码包,需要到下载地址手动下载源码包并放到源码包存放路径中。)

      MQTT的测试验证

      修改OK113i-S开发板的 /etc/mosquitto/mosquitto.conf 文件,在#user mosquitto后加一行user root,重启服务或者开发板。也可以杀掉进程并重新执行:

      /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
      

      然后进行测试——

      订阅test主题:

      mosquitto_sub -t test &
      

      发布test主题:

      mosquitto_pub -t test -m "hello world"
      

      能看到返回的 hello world 字样,就说明移植成功了。

      以上就是在飞凌嵌入式OK113i-S开发板的Buildroot中移植MQTT协议的方法,供屏幕前的工程师小伙伴参考。

      640.jpe

      1 条回复 最后回复 回复 引用 分享 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策