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

項目實戰-廣域網智能家居-把mosquitto移植到arm上

發布時間:2020-12-30 13:39    發布者:就是塔塔

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

mqtt源碼下載頁:


1. 交叉編譯uuid庫

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

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

tar -vxf libuuid-1.0.3.tar.gz

如下圖所示:

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

配置編譯參數

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 :生成動態連接庫。

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

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

如下圖所示:

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

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就已經交叉編譯完成了

4.把mosquitto移植到開發板

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

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

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

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

如下圖所示

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

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

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

如下圖所示:

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

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

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

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

如下圖所示:

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

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

如下圖所示:

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

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


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

如下圖所示:

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

mv mosquitto mosquitto_*  /bin   

如下圖所示:

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

5.測試是否移植成功

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

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

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

mosquitto_sub -h 192.168.3.28 -t "mqtt" -v

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

如下圖所示:

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

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

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

Hello MQTT。

如下圖所示:

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

信息,如下圖所示:



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

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

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本精品a在线 | 五月天国产精品 | 国产白色视频在线观看w | 黄 色 免 费 网站在线观看 | 日韩在线播放全免费 | 日韩欧美在线观看视频 | 亚洲国产精品线观看不卡 | 九九热网 | 操哭你视频| 日韩精品午夜视频一区二区三区 | 亚洲人成亚洲精品 | 紫黑色的巨大又粗又硬视频 | 色噜噜色偷偷 | 国产欧美一区二区精品性色 | 欧美日韩视频 | 国产精品一区二区不卡的视频 | 窝窝社区精品免费视频 | 91香蕉国产亚洲一二三区 | 国产成人精品亚洲 | 播放毛片| 日韩专区在线播放 | 日本高清免费中文字幕不卡 | 高清一级毛片一本到免费观看 | 五月天天爱 | 一区二区视频免费观看 | 99久久中文字幕伊人 | 亚洲精品国产精品国自产 | 欧美精品网址 | 免费精品国产福利片 | 激情播放器 | 成人黄页网站 | 在线观看日韩一区 | 亚洲大尺度视频 | 国产欧美一区二区三区精品 | 在线观看国产一区二三区 | 国产一区二区精品尤物 | 国产成人91高清精品免费 | 黄视频免费网站 | 国产uv1区二区三区 国产tv在线观看 | 四虎影视最新网站在线播放 | 日韩中文字幕在线亚洲一区 |