开始学习
i.MX8 运行 EMQX
内核配置
EMQX 和 Docker 的运行依赖一些内核组件,因此需要先配置好相关内核子系统及其功能特性。
Device Drivers --->
[*] Network device support --->
<*> Virtual ethernet pair device
Docker 方式安装
1. 下载 emqx 镜像
在 https://github.com/emqx/emqx/releases 中找到需要的 emqx 镜像,并下载。例如 emqx-docker-4.3.5-alpine-arm64v8.zip。
wget https://github.com/emqx/emqx/releases/download/v4.3.5/emqx-docker-4.3.5-alpine-amd64.zip
2. 解压 emqx 镜像
root@imx8mqevk:~# unzip emqx-docker-4.3.5-alpine-arm64v8.zip
Archive: emqx-docker-4.3.5-alpine-arm64v8.zip
inflating: emqx-docker-4.3.5-alpine-arm64v8
3. 加载 emqx 镜像
root@imx8mqevk:~# docker load < emqx-docker-4.3.5-alpine-arm64v8
3fbe34a1663b: Loading layer [==================================================>] 5.593MB/5.593MB
4bf095312e12: Loading layer [==================================================>] 6.309MB/6.309MB
d2bebade616c: Loading layer [==================================================>] 69.03MB/69.03MB
417818d6f46b: Loading layer [==================================================>] 9.728kB/9.728kB
f919dd0259b5: Loading layer [==================================================>] 7.652MB/7.652MB
fe8eff798431: Loading layer [==================================================>] 12.8kB/12.8kB
ccfe25d9e769: Loading layer [==================================================>] 69.03MB/69.03MB
Loaded image: emqx/emqx:4.3.5-alpine-arm64v8
4. 启动 emqx 容器
docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:4.3.5-alpine-arm64v8
为了方便起见,可以以自动删除容器的方式启动:
docker run -it --rm -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:4.3.5-alpine-arm64v8
启动成功,查看 emqx 容器的状态:
docker ps
5. 浏览器访问
浏览器输入:http://192.168.31.150:18083
输入账号密码(默认账号为 admin
,默认密码为 public
)即可进入 EMQX 后台。
Yocto 方式安装
在 OpenEmbedded Layer Index 搜索 emqx 相关的 recipes。
切换到 Yocto 工程的 sources 目录,执行下列命令拉取 meta-erlang 层(此处使用 zeus 分支)。
git clone https://github.com/joaohf/meta-erlang -b zeus
构建 emqx
bitbake emqx
如果需要添加到文件系统,则修改 bblayers.conf 和 local.conf 配置文件,添加 layer 和 recipe 信息,之后重新构建。