tag 标签: Torizon

相关博文
  • 热度 3
    2022-4-2 12:05
    1097 次阅读|
    0 个评论
    B y Toradex 胡珊逢 Torizon 系统的其中一个特色是以容器形式开发应用程序。 Toradex 提供了丰富的基础 docker 镜像加速客户应用开发,这包括 Qt5 。本文将介绍如何往 docker 镜像添加中文字体,并在 Qt 图形界面应用程序显示。 Torizon 的容器是基于 debian 构建,因此可以从丰富的 debian 软件源受益,用户能够通过 apt 命令安装任何支持 Arm 处理器的软件。有些字体文件也可以通过这种方法安装。例如支持中文的开源字体文泉驿。 在 Torizon 中创建一个 debian 容器,并 启动 bash 工具。 ------------------------------------------------- $ docker run -it --rm torizon/debian:$CT_TAG_DEBIAN /bin/bash ------------------------------------------------- 然后通过 apt 命令安装文泉驿字体,最后字体文件会出现在 /usr/share/fonts/truetype/ 目录下。 ------------------------------------------------- root@acd322ec8e84:/# apt update root@acd322ec8e84:/# apt install fonts-wqy-microhei root@acd322ec8e84:/usr/share/fonts/truetype/wqy# ls wqy-microhei.ttc ------------------------------------------------- 对于用户界面设计来讲,为了提升交互体验,通常会使用特定的字体,而这些字体 可能 无法通过 apt 命令从 debian 软件源安装。这时候就需要手动导入字体文件。下面将介绍这一过程。演示的 Qt5 应用程序将使用 小米字体 ,这是一个可以免费商用的字体。 根据 这里 的说明创建一个 QML C/C++ 工程,然后简单修改 Torizon Extension 自动生成的 cpp 和 qml 文件,增加中文显示内容。当然也可以直接将 该示例工程 导入后使用 ,或者对照修改。 Torizon Extension 提供 丰富的功能 令用户可以定制所需的 docker 容器。 application.buildfiles 可以在构建容器的时候 使用 COPY 或者 ADD 命令添加文件。将需要添加的文件复制到工程目录下的 appconfig_0 文件夹中。这里我们使用 MiSans-Regular.ttf 文件 , 并将其重命名为 MiSans.ttf 。 在 buildfiles 中配置 COPY MiSans.ttf /usr/share/fonts/ttf/ 该 Qt 演示程序中我们使用了 qtquick-controls2 组件,因此在 extrapackages 中将其添加进来。 qml-module-qtquick2 qml-module-qtquick-window2 qml-module-qtquick-controls2 然后依次执行 Terminal → Run Task → build_debug 编译 Qt 应用。 最后按 F5 开启调试。最后在显示器可以看到运行的 Qt 程序。 总结 在 Torizon 的 Qt 应用容器中使用中文字体,对于 Qt 代码来是透明,也无需修改代码。用户只要将字体文件通过 Torizon Extension 导入到容器内即可。
  • 热度 3
    2021-12-14 15:13
    1701 次阅读|
    0 个评论
    B y Toradex 胡珊逢 Torizon 是一种基于容器形式开发应用的操作系统。这不仅是指用户的应用在容器里面运行,应用的编译和调试也是需要借助容器。为了便于用户开发, Toradex 推出的 V isual Studio Code/ V isual Studio T orizon Extension 能够完成后台的容器配置,便于用户使用。本文将介绍 T orizon Extension 后台实现的流程,从而帮助用户更好地调试应用程序。 总体来讲,开发语言可以分为两类,一种需要编译后在目标设备上运行,例如 C/ C++ 、 Qt 等 ,另外一种是可以直接解释运行,如 Python 。这里我们以需要编译的开发语言 C /C++ 为例进行说明。对于传统的嵌入式 L inux C /C++ 应用开发,首先要在开发电脑上安装交叉编译工具或者包含交叉编译工具的 SDK ,然后编写应用代码,用编译工具进行交叉编译,最后把编译好的二进制文件部署到目标设备上进行调试,常见的工具如 GDB 。 Torizon 的总体流程也是如此,但最大的区别是交叉编译工具的安装、编译和调试并不需要用户手动运行相关指令,而是 T orizon Extension 会在开发电脑上自动创建一个 SDK 容器,里面包含所需的交叉编译工具和头文件等,用户的代码在容器里面进行编译并通过 GDB 调试。由于采用的是容器形式,因此 Torizon 的开发电脑可以是 L inux ,也可以是 Windows 系统, Windows 需要安装 WSL 。 构建 SDK 容器 当用户在 V isual Studio Code/ V isual Studio 上安装了 T orizon Extension 之后,总体情况如下。在开发电脑和计算机模块上都将运行 Docker 。 T orizon Extension 会根据用户代码类型,如 C / C++ 、 . Net 自动生成合适的 SDK 容器。用户代码文件通过 T orizon Extension 在 SDK 容器中使用合适的编译工具进行编译。然后 T orizon Extension 再生成一个可以部署到计算机模块上运行的 release 或者 debug 版本容器。对于 debug 版本容器, T orizon Extension 通过 SDK 容器对其进行调试,如使用 GDB 工具。 下面我们将使用 V isual Studio Code 创建一个单 C 文件的 Hello World 工程,完成编译、调试和部署流程,并介绍这背后 T orizon Extension 是如何生成 SDK 容器、目标设备的 release / debug 版本容器以及如何执行编译、调试和部署任务。 首先在 V isual Studio Code 中创建一个 C/C++ 项目,选择 arm64v8-debian-no-ssh_bullseys 平台。 创建完毕后,点击 V isual Studio Code 中 Terminal → New Terminal , 点击右边 Torizon IDE backend process 标签 。在这个终端中会输出 SDK 容器构建时后台日志。 当 SDK 容器构建成功后,可以在开发电脑的终端上输入下面命令,查看正在运行的容器。 -------------------------------------- $ docker container ls -------------------------------------- 这里名为 keen_yalow 即为 Torizon Extension 生成的 SDK 容器。使用下面命令进入 SDK 容器,在容器的 /workspaces/HelloWorld 位置可以看到 Hello World 项目文件,包括 C 文件等。 -------------------------------------- $ docker exec -it keen_yalow bash root@dell-5400:/# cd /workspaces/HelloWorld/ root@dell-5400:/workspaces/HelloWorld# ls HelloWorld.c appconfig_0 -------------------------------------- 除了开发电脑的终端里使用 docker 命令进入 SDK 容器外,还可以在 Visual Studio Code 中 Terminal → New Terminal 新建一个 bash 终端直接进入 SDK 容器,同样也可以看到项目文件。 这些项目文件同样也位于 Visual Studio Code 的文件浏览器中,用户可以直接对其进行修改。 在开发电脑的终端中使用下面命令,看到 SDK 容器中 /workspaces/HelloWorld 目录实际上 bind 到开发电脑上创建项目时选择的保存目录。 -------------------------------------- $ docker inspect keen_yalow -------------------------------------- 回到 Visual Studio Code 中打开的终端中,可以看到 S DK 容器中已经安装了 aarch64-linux-gnu-gcc 等交叉编译工具。这是 Torizon Extension 在创建 SDK 容器时自动安装的工具。用户无需手动安装。 那么 Torizon Extension 是如何构建该 SDK 容器呢?得益于 Torizon Extension 的开源 ,我们可以一窥其中究竟。在一开始使用 V isual Studio Code 创建一个 C/C++ 项目,我们选择了 arm64v8-debian-no-ssh_bullseys 平台, T orizon Extension 则使用 对应的模板文件 。其中的 sdk.dockerfile 就是用于生成 SDK 容器的 docker file 文件,以及 config.yaml 配置文件。 sdk.dockerfile 中的 FROM #%platform.sdkbaseimage%# 指定 SDK 容器构建的基础容器镜像, sdkbaseimage 的配置位于 config.yaml 文件,即使用 torizon/debian:2-bullseye 。 -------------------------------------- baseimage: common: - "torizon/debian" - "2-bullseye" -------------------------------------- 然后通过 apt-get 命令继续安装其他调试所需的软件,如 gdb-multiarch 等。在 sdk.dockerfile 中还有一些其他参数,如 #%application.sdkpreinstallcommands%# ,这就允许用户使用 dockerfile 文件编写语法在构建 SDK 容器时能够添加其他的软件和第三方库文件,甚至修改 SDK 容器本身的配置,如 更改 de bian 下载源 。这些具体的参数可以参考 这里 。当然用户并不需要直接修改这里的配置文件,在 V isual Studio Code 的 T orizon Extension 插件中可以十分方便地进行更改。 至此,我们已经阐释了 T orizon Extension 是如果构建 SDK 容器。用到的工具大致和传统嵌入式 L inux 开发类似,只是这操作都由 T orizon Extension 在容器内完成,并为用户提供灵活的配置功能。上述过程总体如下图。 接下我们将看看编译是如何完成的。 应用程序编译 点击 Ter build_debug 即开始编译 Debug 版本的应用编译。编译的时候在 V isual Studio Code 可以看到下面输出日志。 在 SDK 容器中实际上执行了 aarch64-linux-gnu-gcc -g HelloWorld.c -o HelloWord 命令对 C 进行编译。本文创建项目是选了单个 C 文件的项目类型,所以编译时仅使用 HelloWorld.c 。 进入 SDK 容器的 /workspaces/HelloWorld 目录,我们可以看到编译生成的二进制可执行文件 HelloWorld 。它是针对 ARM aa rch64 处理器进行交叉编译的。 之所以能够完成上述编译任务,是由于在创建项目时, Torizon Extension 自动生成了 V isual Studio Code 配置文件 tasks.json 。这里定义了 build_debug 任务具体执行的命令参数。用户因此只需要像上面提到的步骤,点击 build_debug 即可开始编译。 编译总体过程如下图。 完成编译后,接下来就是开始调试。 应用程序调试 在编译完成后点击 F 5 开始调试用于程序。在 Torizon 上应用是以容器形式运行的,调试过程实际上将应用打包成一个可以在目标设备上运行的容器,并在容器里面启动调试工具。所以在按 F5 之后, Torizon Extension 会开始构建一个包含应用的新容器。 当容器构建完毕并部署到目标设备后在 V isual Studio Code 会进入单步调试界面。 此时我们查看设备上的的镜像 Images 和容器 Containers 会发现一个 debug 版本的 helloworld 镜像和一个正在运行的 debug 版本的 helloworld 容器。这些就是刚才按 F 5 开始调试时, Torizon Extension 自动部署过来的。 目标设备上的容器和开发电脑上的 SDK 容器之间通过 gdb 实现调试功能。使用 SSH 登录目标设备,运行下面命令查看正在运行的容器信息。 -------------------------------------- $ docker container ls -------------------------------------- 目标设备上 0.0.0.0 :3 2768 映射到容器内部的 6502 端口。 查看容器 ID 并进入容器。通过 ps 命令列出容器中所有运行的进程。这里可以看到有个 gdbserver 进程正在运行并监听 6502 端口。通过该进程,连接开发电脑上 SDK 容器中的 gdb 客户端从而实现 Visual Studio Code 的调试功能。 同样在开发电脑查看 SDK 容器内运行的进程,其中另一个是 gdb-multiarch 就是 gdb 客户端。 那么现在我们将揭示 Tor izon Extension 是如何为目标设备构建 debug 版本容器,以及在 VS Code 中是如何启动调试任务的。我们回到 Tor izon Extension 的开源项目中的 arm64v8-debian-no-ssh_bullseye 模板。其中 debug.dockerfile 就是用于生成 debug 版本容器的文件。 首先, FROM --platform=#%platform.architecture%# #%platform.baseimage%# 指定了 debug 版本容器使用的基础镜像,对应在 config.yaml 中配置属性参数。 EXPOSE 6502 指定 gbdserver 监听端口。接下来 apt -get 命令安装 gdbserver 。这期间还可以通过 #%application.extrapackages%# 来安装第三方软件和库文件,这些具体的参数可以参考 这里 。最后设置 debug 版本容器启动时运行的命令, CMD stdbuf -oL -eL gdbserver 0.0.0.0:6502 /#%application.appname%#/#%application.exename%# #%application.appargs%# 。这里看到启动 gdbserver ,并可以接收执行应用程序的参数。最终通过该容器即可在目标设备上启动一个 debug 版本容器,并在容器内使用 gdbserver 与 VS C ode 连接,调试用户应用程序。 仔细的你可能发现, debug.dockerfile 中并没有将编译好的应用二进制文件包含进来。使用 SSH 登录目标设备,运行下面命令查看正在运行的容器的详细信息。 ec85215a7553 为正在运行的 debug 版本容器 ID 。 -------------------------------------- $ docker container inspect ec85215a7553 -------------------------------------- Torizon 系统的 /home/torizon/HelloWorld 目录被映射到 debug 版本容器的 /HelloWorld 目录。 T orizon Extensio n 通过 rsync 将开发电脑上编译好的二进制文件 HelloWorld 复制到目标设备上默认用户 toriozn 的用户目录下 /home/torizon/HelloWorld 。因此在上面的截图中我们能够看到 debug 版本容器中 gdbserver 其指向的应用路径位于 /HelloWorld/HelloWorld 。之所以不将二进制应用直接放入容器的原因是,在调试期间用户应用代码可能会经常做修改,采用这样的方式只需要重新编译应用代码本身,而不必重新构建和部署整个 debug 版本容器。重新编译生成的二进制文件可以重新映射到原来的容器,这样的设计能够极大提高了调试效率。 在 Visual Studio Code 上按 F 5 启动调试时,该任务是在 launch.json 文件中配置的。这里指定 g db 作为调试器,具体为 gdbmultiarch 。详细说明可以参考 VS Code Configuring C/C++ debugging 。 调试总体过程如下。 最终应用部署 当完成应用调试后,通常生成一个 release 版本最终发布容器。在上面的 debug 版本容器虽然已经包含了用户开发的应用,但也包含了 gdbserver 等额外的工具,并且应用通过 gdbserver 启动。这样的容器显然不适合用于最终的发布。因此我们需要在 VS Code 依次点击 Torizon: Deploy release container 生成一个包含用户应用的最终发布版本容器。 进行上面步骤前,在 Torizon Extension 插件中我们先删除之前已经部署和运行的 de bug 版本镜像和容器。 然后完成上述构建并部署 发布版本容器。在开发电脑的终端上使用 docker images 可以查看到生成的发布版本容器。相比于 debug 版本容器,由于不再安装部分软件,因此发布版本容器体积也会小一些。 部署完毕后,在目标设备上也可以看到这个 发布版本容器。 如果你已经看到这里,恭喜,你已经了解 Torizon Extension 后台运行的大部分过程。现在只剩下发布版本容器是如何构建的。这部分则相对简单些。继续回到 Tor izon Extension 的开源项目中的 arm64v8-debian-no-ssh_bullseye 模板。其中 release.dockerfile 就是用于生成发布版本容器的文件。发布版本容器使用的基础镜像和 debug 版本一样, FROM --platform=#%platform.architecture%# #%platform.baseimage%# ,但不再使用 apt-get 安装 gdbserver 等工具。用户指定的第三方软件和库通过 "#%application.extrapackages%#" 仍可以安装。 COPY work/#%application.appname%# /#%application.appname%# 将之前编译好的二进制应用文件复制到容器中。最后设置容器启动时运行的命令 CMD /#%application.appname%#/#%application.exename%# #%application.appargs%# 。这里我们看到发布版本容器已经不再像 debug.dockerfile 使用 gdbserver 启动应用,而是直接执行用户的应用。这是发布版本容器和 debug 版本容器最大的不同。 当通过 VS Code 运行发布版本容器后,在 Torizon Extension 界面中可以看到该容器相关信息。由于演示代码中执行完 printf 函数后程序会直接退出,因此这里看到的容器是停止状态。在下方容器信息窗口中,默认运行的程序是 /HelloWorld/HelloWorld ,即上通过 release.dockerfile 生成容器时所添加的二进制文件。 构建和部署发布版本容器总体过程如下。 总结 Torizon Extension 简化了在嵌入式系统上使用容器进行应用开发,在代码编写、调试、部署各个阶段都提供了丰富的功能,采用容器形式的开发方式也有别于传统嵌入式 L inux ,希望通过本文的介绍能够使您了解 Torizon Extension 背后的任务流程,从而更好地使用 Torizon 。当然 Torizon Extension 的功能也远不止如此。
  • 热度 14
    2021-12-8 15:06
    1511 次阅读|
    0 个评论
    B y Toradex 胡珊逢 T orizon 的使用和开发都需要依赖外部网络。最常用到的两个源是 docker hub 和 debian.org 。文章将介绍如何配置开发电脑和 Torizon ,从而使用国内的站点加速下载过程。 Docker D ocker Hub 并没有位于国内的镜像站点,通常采用国内第三方提供的 registry mirror 进行下载,例如 DaoCloud 镜像站 和 阿里云镜像加速器 。 D aoCould 提供公共的链接 http://f1361db2.m.daocloud.io , 阿里云需要注册账户并生成唯一的链接地址,例如 https://xxxxxxx.mirror.aliyuncs.com 。在 W indows 和 L inux 配置 Docker 的 registry mirror 的方法略有不同。 l Windows 依次点击 在右边的文本框配置 registry mirror 。依次填入 DaoCloud 镜像站和阿里云镜像加速器的链接,填写一个或者多个都可以。多个链接之间用逗号分隔。完成后点击 Apply & Restart 。 l L inux D aoCloud 运行下面命令即可。 ------------------------------------ $ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io ------------------------------------ 阿里云镜像加速器 ------------------------------------ $ sudo mkdir -p /etc/docker $ sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": } EOF $ sudo systemctl daemon-reload $ sudo systemctl restart docker ------------------------------------ https://xxxxxxx.mirror.aliyuncs.com 替换为实际的链接。多个链接之间用逗号分隔。 配置完成后在命令行中输入 docker info 可以查看 registry mirror 。 ------------------------------------ $ docker info Client: Debug Mode: false …… Registry Mirrors: http://f1361db2.m.daocloud.io/ https://xxxxxxx.mirror.aliyuncs.com/ …… ------------------------------------ Torizon 安装在开发板上的 T orizon 中如果直接使用 docker 命令也会从 Docker Hu b 上下载容器镜像文件。 S SH 或者调试串口登录 Torizon ,通过下面命令添加 registry mirror 。 ------------------------------------ $ sudo systemctl edit docker.service ExecStart= ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375 --registry-mirror=http://f1361db2.m.daocloud.io --registry-mirror=https://xxxxxxx.mirror.aliyuncs.com ------------------------------------ systemctl edit 会调用 nano 编辑文件。添加完 --registry-mirror 后按 Ctrl+o ,回车键, C trl+x 退出保存。最后 sudo reboot 重启。 重启后在命令行中输入 docker info 可以查看 registry mirror 。 ------------------------------------ $ docker info Client: Debug Mode: false …… Registry Mirrors: http://f1361db2.m.daocloud.io/ https://xxxxxxx.mirror.aliyuncs.com/ …… ------------------------------------ T orizon Extension 在 VS / VS Code 中创建项目后, T orizon Extension 会自动创建所需的容器,并在其中安装必要的软件。默认情况下从 deb.debian.org 站点下载。如果遇到下载缓慢或者无法下载,可以关闭 VS / VS Code , Close Window ,然后重新打开项目文件夹。在 T orizon Extension 配置界面设置 preinstallcommands 和 sdkpreinstallcommands 两个属性。点击相应属性右边的铅笔图标,在上方弹出的文本框中填入下面的内容。 ------------------------------------ RUN sed -i 's%http://deb.debian.org%https://mirrors.tuna.tsinghua.edu.cn%g' /etc/apt/sources.list && sed -i 's%http://security.debian.org%https://mirrors.tuna.tsinghua.edu.cn%g' /etc/apt/sources.list ------------------------------------ 这里采用清华大学的 Debian 镜像,国内还有其他镜像如 163 、阿里、腾讯、中科大等,可以根据所在网络情况酌情选择。将上面 https://mirrors.tuna.tsinghua.edu.cn 替换为对应链接即可。 按 F 1 ,选择 Torizon:Rebuild SDK and reload in container 重新生成 SDK 容器。 ​
  • 热度 10
    2021-10-15 15:24
    2226 次阅读|
    0 个评论
    B y Toradex 胡珊逢 Torizon 是 Toradex 面向行业应用推出的一款基于 Linux 的全新 的开源 操作系统。其旨在简化嵌入式系统开发的难度,同时引入现代软件开发、维护理念,提供更加可靠且易于使用的互联、在线功能。 Torizon 为嵌入式设备实现了一套崭新的开发和使用方法。本文接下来将介绍 Torizon 的特色功能,以及相比于传统的 Linux 系统在使用上的差异。 Torizon 由 TorizonCore OS 和 Torizon Platform 两大部分组成。 TorizonCore OS 是安装在 Toradex 计算机模块上的操作系统。 Torizon Platform 是 Toradex 维护 的 在线平台,其能够于 TorizonCore OS 建立网络连接,为运行 TorizonCore OS 的计算机模块提供诸多在线功能,例如 OTA 更新、集群设备管理、远程监控等。 TorizonCore OS 底层采用了 Linux ,支持常用的 Linux 命令工具。该系统一个显著特点是支持容器 docker 。如下图所示, TorizonCore 包含了 Linux 内核、容器运行环境、以及 OTA 等其他服务。用户的应用运行在容器之中,而非直接访问 Linux 文件系统。多个容器可以独立运行。 容器是一种标准化的软件单元。一个容器集合了用户应用本身,以及该应用运行所依赖的软件如第三方库文件,配置文件和数据文件等。容器中的软件独立于操作系统,可以视为操作系统的虚拟化。因此容器可以非常容易地迁移到其他硬件平台上。 对 Docker 容器的支持,使得用户可以利用 Docker H ub 上丰富的现成容器,例如 Qt 、 Debian 、 Ubuntu 、 .Net 、 Python 等。从而不再需要进行复杂的交叉编译。同时容器技术具有非常高效的版本管理功能,用户应用的升级和回滚都可以从中受益。例如在传统 Linux BSP 上从 Qt 5.12 升级到 Qt5.15 , 用户需要重新编译 Qt 源码或者 使用 Yocto P roject 重构 整个 BSP 。而在 TorizonCore OS 上下载一个 Qt5.15 的容器即可。也无需担心操作系统其他软件的版本是否兼容。 由于采用了容器的方式运行用户软件 , TorizonCore OS 本身一个非常精简的最小功能系统。用户不在其上面直接安装软件或者部署编译好的应用。除了系统配置目录如 /etc , TorizonCore OS 的大部分文件系统都不允许用户直接修改 , 如 /usr 、 /lib 等目录下的文件。 用户需要创建一个容器,在容器安装所需的软件以及编译好的应用程序。然后启动容器,由容器中的应用程序实现相关业务功能。 TorizonCore OS 的文件系统由 OSTree 管理。这是一种类似 git 工作模式的文件管理系统,由其实现对每个系统文件的添加、删除、恢复等功能。同时 OSTree 也是实现 OTA 更新的基础。 传统的嵌入式设备在第一批设备出厂后,通常软件和硬件都不再会发生变化。而对于现代软件开发来说,借助 CI (持续集成)、 CD (持续开发)等模式,即使在设备交付后,仍能够提供软件更新,修复未知的问题或者增加新功能,从而提升用户使用体验。位于云端的 Torizon Platform 则为 TorizonCore OS 提供 OTA 更新、集群设备管理和远程监控功能 , 更多实用的功能也会即将上线。 OTA 更新 允许嵌入式设备远程更新其软件 , 无需直接接触设备就 通过 更新软件修复问题、部署新业务或者打补丁。具有 OTA 功能的设备通常对该功能具有较高的要求。更新出错、网络中断或者更新期间意外断电都可能导致设备无法正常工作。所以 OTA 需要能够在更新出错 时 能够自动回滚到最后一个可正常运行的软件状态。 Torizon OTA 采用高可靠的 Aktualizr 客户端 , 默认已经集成在 TorizonCore OS 。凭借 OSTree 实现了软件版本回滚功能。相对于 A/B 分区整体更新方式 , Torizon OTA 采用的是差分更新 , 即只更新发生更改的文件。有效得提高了更新速度,并减少数据下载量。这对使用 4G/5G 上网的设备显得尤为重要。 用户可以将自己的 BSP 上传到 Torizon Platform 对特定的设备进行更新,也可以使用 Toradex 发布的 BSP 令设备保持最新的软件状态。同时也 单独 可以对设备上的容器进行更新,而非整个 BSP 。 Torizon Platform 的 集群设备管理 能够更加高效地对大量设备进行维护。实现批量设备的重启、 安装 特定的更新等。 远程监控 能够远程查看设备的运行状态,例如 CPU 负荷、内存占用、网络使用、 正在 运行进程和重要 的 异常日志等。这些信息可以被发送到 Torizon Platform ,给用户提供可视化监控数据。远程监控基于 Fluent Bit 实现。这是一个开源的日志处理和转发器。用户可以使用丰富的插件来采集更多的数据,包括温度、内核日志等。除了监控设备运行状态外,这些数据也有助于修复现场遇到的问题。 远程访问是即将上线的另一个功能。这可以令您接管设备,简化客户支持或者问题排查。 对于开发人员, Toradex 提供相应的插件支持使用 Visual Studio/Visual Studio Code 开发 Torizon 。用户可以自由选择 Windows 、 Linux 或者 Mac 作为开发主机。 Torizon 扩展插件提供对 Visual Studio Code 完善的支持。扩展插件可以便捷地管理容器和在设备上 在线 调试 , 使您可以通过很少的几次点击就完成从 Visual Studio Code 完成应用部署。甚至直接将开发好的容器上传到 Torizon Platform 进行远程部署。 Visual Studio/Visual Studio Code 中我们也提供包括 C/C++ 、 Python 、 .NET Core 甚至是 Qt 开发的工程模板。 令用户在嵌入式设备上方便地使用主流开发语言。 上面是对 Torizon 系统从设备端 TorizonCore OS , 到云端的 Torizon P latform 以及开发工具的简要介绍。如果您像更全面而深入的了解 Torizon ,请阅读 这里 。