溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么把mosquitto移植到arm上

發(fā)布時間:2022-01-12 15:23:47 來源:億速云 閱讀:401 作者:iii 欄目:互聯(lián)網(wǎng)科技

本文小編為大家詳細(xì)介紹“怎么把mosquitto移植到arm上”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“怎么把mosquitto移植到arm上”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

1. 交叉編譯uuid庫

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

怎么把mosquitto移植到arm上

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

tar -vxf libuuid-1.0.3.tar.gz

如下圖所示:

怎么把mosquitto移植到arm上

然后我們在/opt/下創(chuàng)建一個名為mosquitto-arm的文件夾,命令如下:

mkdir -p /opt/mosquitto-arm

如下圖所示:

怎么把mosquitto移植到arm上

配置源碼,我們在解壓生成的uuid庫的文件夾輸入以下命令:

./configure --prefix=/opt/mosquitto-arm/libuuid-1.0.3 CC=arm-none-linux-gnueabi-gcc --host=arm-linux

如下圖所示:

怎么把mosquitto移植到arm上

最后,編譯并安裝,命令如下:

make

make install

編譯并安裝成功后會在我們設(shè)置/opt/mosquitto-arm下得到一個libuuid的文件夾

怎么把mosquitto移植到arm上

2. 交叉編譯openssl庫

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

tar -vxf openssl-1.0.2g.tar.gz

cd openssl-1.0.2g

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

怎么把mosquitto移植到arm上

配置編譯參數(shù)

setarch i386 ./config no-asm shared --prefix=/opt/mosquitto-arm/openssl/

setarch i386:聲明生成的是32位CPU,如果是64位CPU則去除該部分

 --prefix :指定make install后生成目錄的路徑,不修改此項則默認(rèn)為OPENSSLDIR目錄(/usr/local/ssl)。

shared :生成動態(tài)連接庫。

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

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

如下圖所示:

怎么把mosquitto移植到arm上

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

如下圖所示:

怎么把mosquitto移植到arm上

編譯并安裝

make

make install

編譯并安裝成功后會在我們設(shè)置/opt/mosquitto-arm下得到一個openssl的文件夾

怎么把mosquitto移植到arm上

編譯源碼

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指定的庫和頭文件的路徑修改成自己對應(yīng)安裝uuid和openssl庫的路徑,否則編譯不過去。

如下圖所示:

怎么把mosquitto移植到arm上

編譯成功如下圖所示:

怎么把mosquitto移植到arm上

安裝,命令如下

make DESTDIR=/opt/mosquitto-arm/mosquitto-1.5 install

編譯并安裝成功后會在我們設(shè)置/opt/mosquitto-arm下得到一個mosquitto-1.5的文件夾

至此,我們mosquitto就已經(jīng)交叉編譯完成了

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

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

怎么把mosquitto移植到arm上

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

怎么把mosquitto移植到arm上

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

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

 如下圖所示

怎么把mosquitto移植到arm上

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

怎么把mosquitto移植到arm上

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

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

如下圖所示:

怎么把mosquitto移植到arm上

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

怎么把mosquitto移植到arm上

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

怎么把mosquitto移植到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

 如下圖所示:

怎么把mosquitto移植到arm上

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

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

如下圖所示:

怎么把mosquitto移植到arm上

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

怎么把mosquitto移植到arm上

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

怎么把mosquitto移植到arm上

我們把開發(fā)板當(dāng)前目錄下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移植到arm上

我們把當(dāng)前目錄下mosquitto.conf.example復(fù)制一個和他一模一樣名為mosquitto.conf的文件放在/etc下面,命令如下:

cp mosquitto.conf.example   /etc/mosquitto.conf    

如下圖所示:

怎么把mosquitto移植到arm上

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

 mv mosquitto mosquitto_*  /bin   

如下圖所示:

怎么把mosquitto移植到arm上

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

5.測試是否移植成功

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

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

怎么把mosquitto移植到arm上

2.使用以下命令啟動開發(fā)板的mosquitto服務(wù)

 mosquitto -d -c /etc/mosquitto.conf

如下圖所示:

怎么把mosquitto移植到arm上

查詢是否啟動成功,命令如下:

 ps -ef |grep  mosquitto

如果成功入下圖所示:

怎么把mosquitto移植到arm上

3.使用ping命令ping一下自己的Ubuntu,這里一定要ping通,否則下面的步驟不成功,命令如下,IP為自己Ubuntu的ip

ping 192.168.3.34 -c 3

成功ping通如下圖所示:

怎么把mosquitto移植到arm上

4.在文檔的第一步,我們就已經(jīng)在Ubuntu上安裝了mosquitto,所示我們直接打開一個終端,訂閱主題,命令如下:

mosquitto_sub -h 192.168.3.28 -t "mqtt" -v

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

如下圖所示:

怎么把mosquitto移植到arm上

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

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

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

Hello MQTT。

如下圖所示:

怎么把mosquitto移植到arm上

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

信息,如下圖所示:

怎么把mosquitto移植到arm上

讀到這里,這篇“怎么把mosquitto移植到arm上”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI