ブログ

AIoT G2: mosquittoのバージョンを最新版(1.4.12)に上げてみる

at_takuya.sasaki
2017年7月10日 9時42分

Armadillo-IoT G2に標準でインストールされているmosquittoのバージョンは1.3.5になります。 これを、2017.07.02時点で最新の1.4.12に上げてみました。

1. ATDE5のビルド済のディレクトリ配下のmosquittoに移動

今回はすでに一度以下の手順でユーザーランド/カーネルをビルドしていると仮定します。
11. ビルド手順

また各ソースコードは、/home/atmark/workの下に展開している仮定しています。

atmark@atde5:~/work/atmark-dist$ cd user/mosquitto/

2. 最新のmosquittoのソースコードを入手

ATDE5がインターネットに接続している必要があります。 もしインターネット接続が不可の場合は、以下のサイトからソースコードのアーカイブをダウンロードしてください。
https://github.com/eclipse/mosquitto

atmark@atde5:~/work/atmark-dist/user/mosquitto$ git clone https://github.com/eclipse/mosquitto

3. ディレクトリ名を変更

atmark@atde5:~/work/atmark-dist/user/mosquitto$ mv mosquitto mosquitto-1.4.12

4. Makefileの差し替え

/home/atmark/work/atmark-dist/user/mosquitto/Makefileの内容を、以下の内容に書き換えてください。

#SRC_DIR = mosquitto-1.3.4
SRC_DIR = mosquitto-1.4.12
 
AR=ar
CC=gcc
CXX=g++
 
all: build
 
build: $(SRC_DIR)/Makefile
    make -C $(SRC_DIR) 
 
romfs: build
    echo "atmark" | sudo -S cp $(SRC_DIR)/lib/libmosquitto.so.1 /usr/arm-linux-gnueabihf/lib/
    $(ROMFSINST) -e CONFIG_USER_MOSQUITTO_MOSQUITTO_CLIENT $(SRC_DIR)/client/mosquitto_pub /usr/bin/mosquitto_pub
    $(ROMFSINST) -e CONFIG_USER_MOSQUITTO_MOSQUITTO_CLIENT $(SRC_DIR)/client/mosquitto_sub /usr/bin/mosquitto_sub
 
clean:
    make -C $(SRC_DIR) clean

4.ディレクトリを移動します

atmark@atde5:~/work/atmark-dist/user/mosquitto$ cd ../..

5. 一度romfsディレクトリを削除してからmakeします

atmark@atde5:~/work/atmark-dist$ rm -rf romfs/
atmark@atde5:~/work/atmark-dist$ make

6. イメージの書き換え

あとは新しく生成された images配下の romfs.img.gzをArmadilllo-IoTに書き込んでください。

7. mosquittoのバージョンは Armadillo上でhelp コマンドを使って参照可能です。

[root@armadillo-iotg (ttymxc1) ~]# mosquitto_pub --help
mosquitto_pub is a simple mqtt client that will publish a message on a single topic and exit.
mosquitto_pub version 1.4.12 running on libmosquitto 1.4.12.
[root@armadillo-iotg (ttymxc1) ~]# mosquitto_sub --help
mosquitto_sub is a simple mqtt client that will subscribe to a single topic and print all messages it receives.
mosquitto_sub version 1.4.12 running on libmosquitto 1.4.12.

以上