国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

項目實戰(zhàn)-廣域網(wǎng)智能家居-把mosquitto移植到arm上

發(fā)布時間:2020-12-30 13:39    發(fā)布者:就是塔塔

Mosquitto庫依賴libuuid和openssl庫,所以我們在交叉編譯Mosquitto之前需要先交叉編譯他所需要的依賴庫,這里作者已經(jīng)把需要的源碼都下載好了,大家可以在這個文檔的目錄下找到。不建議大家下載和我不一致的版本,可能會出問題。

mqtt源碼下載頁:


1. 交叉編譯uuid庫

    我們把uuid的源碼拷貝到Ubuntu,作者是拷貝拷貝到了/home/topeet/mqtt下面,如下圖所示:

輸入以下命令,解壓源碼并進入解壓生成的文件夾:

tar -vxf libuuid-1.0.3.tar.gz

如下圖所示:

然后我們在/opt/下創(chuàng)建一個名為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目錄下

配置編譯參數(shù)

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 :生成動態(tài)連接庫。

no-asm: 是在交叉編譯過程中不使用匯編代碼代碼加速編譯過程,原因是它的匯編代碼是對arm格式不支持的

如果Makefile中有 -m32和-m64 就刪掉 -m32和-m64,但是我的Makefile中沒有,就沒管這個。

如下圖所示:

修改openss文件夾下的Makefile里面的編譯器參數(shù)如下

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的文件夾

3.交叉編譯mosquitto

解壓壓縮包進進入解壓后的目錄

tar -vxf mosquitto-1.5.tar.gz

cd mosquitto-1.5

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

編譯源碼

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就已經(jīng)交叉編譯完成了

4.把mosquitto移植到開發(fā)板

在Ubuntu的/home/topeet/下創(chuàng)建一個mqtt-arm的文件夾,如下圖所示:

我們進入我們安裝的mosquitto-1.5目錄下,作者這里是安裝在了/opt/mosquitto-arm下,如下圖所示:

我們把當前路徑下的/etc/mosquitto/下的mosquitto.conf.example文件拷貝到我們在/home/topeet/下創(chuàng)建一個mqtt-arm的文件夾,命令如下:

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

如下圖所示

然后我們返回到mosquitto的安裝目錄,我們進到安裝目錄下mosquitto-1.5/usr/local/bin下面,如下圖所示:

我們把這個目錄下所有文件拷貝到我們在/home/topeet/下創(chuàng)建一個mqtt-arm的文件夾,命令如下:

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

如下圖所示:

然后我們返回到mosquitto的安裝目錄,我們進到安裝目錄下mosquitto-1.5/usr/local/sbin下面,如下圖所示:

我們把這個目錄下的mosquitto二進制文件拷貝到我們在/home/topeet/下創(chuàng)建一個mqtt-arm的文件夾,命令如下:

然后我們返回到mosquitto的安裝目錄,把libuuid-1.0.3  mosquitto-1.5  openssl這個三個文件夾全部拷貝到我們在/home/topeet/下創(chuàng)建一個mqtt-arm的文件夾,命令如下:

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

如下圖所示:

然后我們返回到/home/topeet/下面,使用tar命令打包我們創(chuàng)建的mqtt-arm文件,命令如下:

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

如下圖所示:

我們把這個壓縮包拷貝到開發(fā)板的根目錄,這里以4412開發(fā)板為例,其他開發(fā)板操作一致

我們解壓這個壓縮包,并進入到解壓生成的目錄,如下圖所示:


我們把開發(fā)板當前目錄下libuuid-1.0.3/ mosquitto-1.5/ openssl/三個文件下的lib下的庫全部放到開發(fā)板的/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   

如下圖所示:

然后我們把剩下的幾個文件全部放在開發(fā)板的/bin目錄下,命令如下:

mv mosquitto mosquitto_*  /bin   

如下圖所示:

然后我們返回到開發(fā)板的根目錄,刪掉我們 mqtt-arm.tar.gz的壓縮包和解壓生成的mqtt-arm文件夾就可以了。

5.測試是否移植成功

以開發(fā)板作為服務器,Ubuntu開倆個終端作為訂閱者和發(fā)布者進行測試

1,我們打開/etc下面的mosquitto.conf文件, 修改里面的第40行為 user root 并取消注釋。如下圖所示:

2.使用以下命令啟動開發(fā)板的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.在文檔的第一步,我們就已經(jīng)在Ubuntu上安裝了mosquitto,所示我們直接打開一個終端,訂閱主題,命令如下:

mosquitto_sub -h 192.168.3.28 -t "mqtt" -v

其中參數(shù)-h是指定要連接的MQTT服務器,這里的192.168.3.28為開發(fā)板的IP,大家要根據(jù)自己的IP來設置,-t訂閱主題,此處為mqtt,所以主題為mqtt,-v打印更多的調(diào)試信息。

如下圖所示:

5.在Ubuntu上打開另一個終端(注意這里又打開了一個終端),發(fā)布主題,命令如下:

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

其中參數(shù)-h是指定要連接的MQTT服務器,這里的192.168.3.28為開發(fā)板的IP,大家要根據(jù)自己的IP來設置,-t訂閱主題,此處為mqtt,-m指定消息內(nèi)容,這里發(fā)送的是

Hello MQTT。

如下圖所示:

通信成功以后,我們會在另一個終端看到我們通過開發(fā)板作為mqtt服務器轉發(fā)來的Hello MQTT

信息,如下圖所示:



本文地址:http://m.qingdxww.cn/thread-752542-1-1.html     【打印本頁】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內(nèi)容、版權和其它問題,我們將根據(jù)著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿(mào)澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 蜜柚影视免费版在线视频观看 | 久久久精品一区二区三区 | 91精品国产自产在线观看高清 | 亚洲社区在线 | 国内精品91最新在线观看 | 国产一级在线 | 成人午夜兔费观看网站 | 欧美视频高清在线观看 | 台湾xxx18 | 朋友的母亲在线播放 | 欧美人与动交片免费播放 | 精品一区二区三区在线观看 | 动漫精品一区二区3d | 久久国产一区二区 | 91免费资源网站入口 | 五月婷婷激情综合网 | 国产yw855.c免费观看网站 | 成年人在线观看网站 | 国产盗摄一区二区欧美精品 | 免费一级毛片清高播放 | 色国产在线观看 | 久久66热re国产毛片基地 | a在线免费| 日本黄色网址免费 | 91桃色在线 | 亚洲国产精品久久精品成人 | 欧美综合视频在线观看 | 9丨超久久 | 国产精品久久一区一区 | 韩国精品福利一区二区 | 色综合天天综合网站中国 | 99热精品久久 | 成年人在线观看免费视频 | 亚洲欧美日韩在线一区二区三区 | 青青草国产97免久久费观看 | 天天干天天射天天操 | 91精选视频| 欧美日韩一区二区在线视频播放 | 欧美成人精品手机在线观看 | 动作动漫在线观看免费网站 | 一区二区三区四区国产精品 |