如何在飛凌嵌入式T113-i開發(fā)板的Buildroot中移植MQTT協(xié)議?

原創(chuàng) 2024-01-29 14:41:00 t113 全志t113 t113i移植MQTT協(xié)議

飛凌嵌入式OK113i-S開發(fā)板上市一段時(shí)間以來收獲了很多關(guān)注,也成為了許多客戶項(xiàng)目選型的優(yōu)質(zhì)之選。在實(shí)際的項(xiàng)目開發(fā)中,工程師朋友們可能會(huì)需要在文件系統(tǒng)中移植一些工具或協(xié)議,那么該如何進(jìn)行移植操作呢?我們可以通過添加package包配置的方式在OK113i-S開發(fā)板的Buildroot中移植新功能。本篇文章,小編就以在Buildroot移植MQTT協(xié)議為例為大家介紹。

Part 1 配置文件介紹

首先了解一下在Buildroot中移植功能時(shí)涉及到的配置文件。

查看飛凌嵌入式OK113i-S開發(fā)板源碼中已有的配置文件,可以看到在路徑 buildroot/buildroot-201902/package/mosquitto 里邊包括以下幾個(gè)文件:

Config.in

mosquitto.mk

mosquitto.hash

mosquitto.service

S50mosquitto

① Config.in

Config.in文件通過 BR2_PACKAGE_** 作為開關(guān)來告知Buildroot需要哪個(gè)包參與編譯,開關(guān)在 buildroot/buildroot-201902/configs/ 下面的 OK113I_linux_defconfig 配置文件中賦值,類似于內(nèi)核中的Kconfig文件。

例如:

package/Config.in中寫了調(diào)用關(guān)系

source "package/mosquitto/Config.in";

package/mosquitto/Config.in中寫了

BR2_PACKAGE_MOSQUITTO信息。 


② demo.mk

這個(gè)文件中聲明一些包的信息,比如:指定包的版本、包源碼下載鏈接、存放路徑、編譯規(guī)則、工具鏈等。編譯時(shí)會(huì)按照這個(gè)文件中的下載地址和版本下載源碼包到指定路徑并進(jìn)行編譯和文件拷貝,相當(dāng)于Makefile文件。

例如:mosquitto.mk

文件開頭先寫了軟件包版本和下載地址,我們?cè)跒g覽器訪問該地址可以找到對(duì)應(yīng)版本的軟件包。編譯時(shí),如果源碼中沒有該文件,就會(huì)自動(dòng)下載。

mosguitto-1.5.8.tar.gz

mosguitto-1.5.8.tar.gz.asc

除此之外文件中還定義了其他的編譯規(guī)則,包括文件拷貝路徑等內(nèi)容。

③ demo.hash

這個(gè)文件會(huì)記錄下載的源碼包的hash校驗(yàn)碼,防止下載的源碼包出錯(cuò)。

④ demo.service

此文件是為systemd服務(wù) ,systemd開機(jī)后會(huì)依據(jù)此文件啟動(dòng)demo服務(wù),在demo.mk中會(huì)指定此文件的源路徑已經(jīng)安裝路徑。目前OK113i-S開發(fā)板沒有使用該服務(wù),因此可以不用管它。

⑤ S50demo

此文件類是demo.service,是目前OK113i-S開發(fā)板在使用的開機(jī)服務(wù)類型。


在以上5種文件中Config.in和demo.mk是必須的,其他文件按需配置即可。具體配置內(nèi)容可參考已有文件或根據(jù)實(shí)際情況進(jìn)行書寫。Mosquitto已經(jīng)有寫好的配置文件,可以直接用,一般配置文件由項(xiàng)目的維護(hù)者或開發(fā)者提供,如果自己移植的文件沒有配置文件,可以參考已有配置文件寫一個(gè)。

Part 2  執(zhí)行

我們需要在buildroot/buildroot-201902中執(zhí)行

make OK113I_linux_defconfig

然后執(zhí)行make menuconfig ARCH=arm

在圖形配置界面進(jìn)行配置(如果執(zhí)行報(bào)錯(cuò),請(qǐng)先安裝該指令:sudo apt-get update 和 sudo apt-get install ncurses)。

進(jìn)入圖形配置界面后輸入“/”搜索要配置的功能,如圖搜索Mosquitto看到的信息,按提示選“1”可進(jìn)入目標(biāo)選項(xiàng),按“空格”選擇后保存并退出。

配置完成后,在當(dāng)前目錄下執(zhí)行 ./build.sh對(duì)文件系統(tǒng)進(jìn)行編譯,編譯完成后可查看文件系統(tǒng)中是否已經(jīng)有對(duì)應(yīng)文件。(注:如果沒有網(wǎng)絡(luò),則編譯時(shí)不能自動(dòng)下載源碼包,需要到下載地址手動(dòng)下載源碼包并放到源碼包存放路徑中。)

Part3  MQTT的測(cè)試驗(yàn)證

修改OK113i-S開發(fā)板的 /etc/mosquitto/mosquitto.conf 文件,在#user mosquitto后加一行user root,重啟服務(wù)或者開發(fā)板。也可以殺掉進(jìn)程并重新執(zhí)行:

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

然后進(jìn)行測(cè)試——

訂閱test主題:

mosquitto_sub -t test &

發(fā)布test主題:

mosquitto_pub -t test -m "hello world"

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



相關(guān)產(chǎn)品 >

  • FET113i-S核心板

    全志T113處理器設(shè)計(jì)全國(guó)產(chǎn)化工業(yè)級(jí)核心板, 飛凌T113-i核心板采用全志T113-i處理器設(shè)計(jì),高性價(jià)比 T113-i是全志科技推出的高性能工業(yè)控制處理器T113系列。T113-i 主頻1.2GHz,集成雙核Cortex-A7 CPU、64位玄鐵C906 RISC-V CPU和HiFi4 DSP,提供高效的計(jì)算能力;T113-i核心板整板采用工業(yè)級(jí)國(guó)產(chǎn)元器件,是工業(yè)、電力、交通等關(guān)鍵領(lǐng)域?qū)崿F(xiàn)國(guó)產(chǎn)化降本的優(yōu)質(zhì)之選。T113性能參數(shù)及功能規(guī)格參數(shù)詳解見參數(shù)表。推薦飛凌FET113i核心板

    了解詳情
    FET113i-S核心板
  • OK113i-S開發(fā)板

    全志T113處理器系列開發(fā)板,T113開發(fā)板是飛凌嵌入式基于全志T113-i處理器設(shè)計(jì)的一款工業(yè)核心板。T113開發(fā)板物料采用全國(guó)產(chǎn)工業(yè)級(jí)元器件,全志T113 開發(fā)板功能完善、性價(jià)比高、資料豐富。T113系列推薦飛凌T113-i開發(fā)板,Linux系統(tǒng),雙核CortexA7,64位玄鐵C906 RISC-V CPU和HiFi4 DSP,是國(guó)產(chǎn)化降本的優(yōu)質(zhì)選擇。

    了解詳情
    OK113i-S開發(fā)板

推薦閱讀 換一批 換一批