<ul id="gu0q4"></ul>
  • <strike id="gu0q4"><abbr id="gu0q4"></abbr></strike>
    <strike id="gu0q4"><menu id="gu0q4"></menu></strike>
    <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
    <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
    • <samp id="gu0q4"></samp>

      技術(shù)貼|如何移植Mosquitto庫原創(chuàng)

      發(fā)布時間:2024-12-12 17:45:06
      移植Mosquitto庫

      Mosquitto是一個開源的MQTT消息代理(broker)軟件,它遵循MQTT協(xié)議,允許設(shè)備之間高效交換消息。作為一個輕量級的消息中間件,Mosquitto支持QoS(服務質(zhì)量)等級,支持發(fā)布/訂閱模式,適用于嵌入式系統(tǒng)和低功耗設(shè)備。其小巧的體積和簡潔的架構(gòu)使其成為許多嵌入式應用的理想選擇,特別是在資源受限的嵌入式開發(fā)板上運行。

      將Mosquitto移植到嵌入式開發(fā)板上,能夠使這些嵌入式設(shè)備具備完整的消息中間件功能。這對于需要進行遠程數(shù)據(jù)交換、設(shè)備控制和實時監(jiān)控的物聯(lián)網(wǎng)項目尤其重要。比如,在智能家居或環(huán)境監(jiān)控系統(tǒng)中,開發(fā)板通過Mosquitto與其他設(shè)備或系統(tǒng)進行通信,可以大大提升系統(tǒng)的靈活性和擴展性。

      下面將和各位小伙伴詳細介紹如何將Mosquitto及其所依賴的OpenSSL、libuuid庫移植到ElfBoard的開發(fā)板,并在開發(fā)板上運行MQTT服務。

      交叉編譯libuuid庫

      1、下載地址
      https://sourceforge.net/projects/libuuid/files/
      2、拷貝源碼到開發(fā)環(huán)境/home/elf/work目錄下解壓
      elf@ubuntu:~/work$ tar zxvf libuuid-1.0.3.tar.gz??
      elf@ubuntu:~/work$ cd libuuid-1.0.3/
      3、創(chuàng)建install文件夾用來存放編譯安裝后的庫
      elf@ubuntu:~/work/libuuid-1.0.3$ mkdir install
      4、執(zhí)行環(huán)境變量
      elf@ubuntu:~/work/openssl-1.0.2g$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
      5、生成Makefile
      elf@ubuntu:~/work/libuuid-1.0.3$ ./configure --host=arm-poky-linux-gnueabi --prefix=$(pwd)/install
      6、編譯
      elf@ubuntu:~/work/libuuid-1.0.3$ make
      7、安裝
      elf@ubuntu:~/work/libuuid-1.0.3$ make install
      8、查看安裝目錄下的文件并打包
      elf@ubuntu:~/work/libuuid-1.0.3$ cd install/??
      elf@ubuntu:~/work/libuuid-1.0.3/install$ ls??
      include? lib??
      elf@ubuntu:~/work/libuuid-1.0.3/install$ tar cvjf libuuid.tar.bz2 *

      交叉編譯OpenSSL庫

      1、下載地址

      https://openssl-library.org/source/old/1.0.2/index.html

      2、拷貝源碼到開發(fā)環(huán)境/home/elf/work目錄下解壓

      elf@ubuntu:~/work$ tar zxvf openssl-1.0.2g.tar.gz

      elf@ubuntu:~/work$ cd openssl-1.0.2g/

      3、創(chuàng)建install文件夾用來存放編譯安裝后的庫

      elf@ubuntu:~/work/openssl-1.0.2g$ mkdir install

      4、生成Makefile

      elf@ubuntu:~/work/openssl-1.0.2g$ ./config no-asm shared --prefix=$(pwd)/install

      5、修改Makefile

      注釋掉第62行;第63行去掉“-m64”

      注釋掉第180行

      6、執(zhí)行環(huán)境變量

      elf@ubuntu:~/work/openssl-1.0.2g$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

      7、編譯

      elf@ubuntu:~/work/openssl-1.0.2g$ make

      8、安裝

      elf@ubuntu:~/work/openssl-1.0.2g$ make install

      9、查看安裝目錄下的文件并打包

      elf@ubuntu:~/work/openssl-1.0.2g$ cd install/??

      elf@ubuntu:~/work/openssl-1.0.2g/install$ ls??

      bin? include? lib? ssl??

      elf@ubuntu:~/work/openssl-1.0.2g/install$ tar cvjf openssl.tar.bz2 *

      交叉編譯Mosquitto庫

      1、下載地址

      https://mosquitto.org/files/source/

      2、拷貝源碼到開發(fā)環(huán)境/home/elf/work目錄下解壓

      elf@ubuntu:~/work/mosquitto-1.5.1$ tar zxvf mosquitto-1.5.1.tar.gz

      elf@ubuntu:~/work/mosquitto-1.5.1$ cd mosquitto-1.5.1/

      3、創(chuàng)建install文件夾用來存放編譯安裝后的庫

      elf@ubuntu:~/work/mosquitto-1.5.1$ mkdir install

      4、執(zhí)行環(huán)境變量

      elf@ubuntu:~/work/mosquitto-1.5.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

      5、編譯

      elf@ubuntu:~/work/mosquitto-1.5.1$ make WITH_SRV=no CFLAGS="-I /home/elf/work/openssl-1.0.2g/install/include -I /home/elf/work/openssl-1.0.2g/install/lib -I /home/elf/work/openssl-1.0.2g/install/include/openssl -I /home/elf/work/libuuid-1.0.3/install/include -I /home/elf/work/libuuid-1.0.3/install/lib" LDFLAGS="-L /home/elf/work/openssl-1.0.2g/install/lib -L /home/elf/work/libuuid-1.0.3/install/lib -lssl -lcrypto -luuid" CROSS_COMPILE=" "

      6、安裝

      elf@ubuntu:~/work/mosquitto-1.5.1$ make DESTDIR=$(pwd)/install install

      7、查看安裝目錄下的文件

      elf@ubuntu:~/work/mosquitto-1.5.1$ cd install??

      elf@ubuntu:~/work/mosquitto-1.5.1/install$ ls??

      etc? usr??

      elf@ubuntu:~/work/mosquitto-1.5.1/install$ tar cvjf mosquitto.tar.bz2 *

      移植到開發(fā)板
      將libuuid.tar.bz2、openssl.tar.bz2、mosquitto.tar.bz2壓縮包通過U盤拷貝到開發(fā)板根目錄下解壓。

      root@ELF1:~# cp /run/media/sda1/libuuid.tar.bz2 /??

      root@ELF1:~# cp /run/media/sda1/openssl.tar.bz2 /??

      root@ELF1:~# cp /run/media/sda1/mosquitto.tar.bz2 /??

      root@ELF1:~# cd /??

      root@ELF1:/# tar mxvf libuuid.tar.bz2??

      root@ELF1:/# tar mxvf openssl.tar.bz2??

      root@ELF1:/# tar mxvf mosquitto.tar.bz2

      將/usr/local/lib、/usr/local/bin、/usr/local/sbin文件夾下所有文件復制到根目錄/lib文件夾下。

      root@ELF1:/# cd usr/local??

      root@ELF1:/usr/local# cp -rf ./lib/* /lib??

      root@ELF1:/usr/local# cp -rf ./bin/* /bin??

      root@ELF1:/usr/local# cp -rf ./sbin/* /bin

      將/etc/mosquitto/文件夾下mosquitto.conf.example文件復制到根目錄/etc下并重命名為mosquitto.conf。

      root@ELF1:/usr/local# cd /etc/mosquitto/??

      root@ELF1:/etc/mosquitto# cp mosquitto.conf.example /etc/mosquitto.conf

      修改/etc/mosquitto.conf文件,在第40行下添加user root。

      保存退出

      測試

      1、打開兩個串口終端,一個串口登錄,一個網(wǎng)口登錄
      2、啟動mosquitto服務

      root@ELF1:~# mosquitto -d -c /etc/mosquitto.conf

      3、一端訂閱test主題

      root@ELF1:~# mosquitto_sub -t test

      4、一端發(fā)布test主題

      root@ELF1:~# mosquitto_pub -t test -m "hello world"

      可以看到訂閱端接收到發(fā)布端的“hello world”消息,測試成功。

      其它推薦:

      推薦閱讀:

      /* 53客服*/ /* 百度統(tǒng)計*/ /* 百度站長*/
      <ul id="gu0q4"></ul>
    • <strike id="gu0q4"><abbr id="gu0q4"></abbr></strike>
      <strike id="gu0q4"><menu id="gu0q4"></menu></strike>
      <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
      <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
      • <samp id="gu0q4"></samp>