边缘计算机EC900系列
(适用于Debian10,IEOS V2.0.0及以上版本)
本手册中描述的软件是根据许可协议提供的,只能按照该协议的条款使用。
InHand标志是映翰通网络的注册商标。
本公司保留对此手册更改的权利,产品后续相关变更时,恕不另行通知。对于任何因安装、使用不当而导致的直接、间接、有意或无意的损坏及隐患概不负责。
本用户手册适用于基于Arm架构的边缘计算机EC900系列,并涵盖整套适用于所有支持型号的说明。在参考这些章节之前,请确认您计算机型号的硬件规格是否支持所涵盖的功能/设置。
在本章中,我们将介绍基于Arm结构的边缘计算机EC900系列的硬件安装说明。
下面的章节以EC942系列举例,描述了EC942系列的外部连接器和引脚分配的应用。
正面板
EC942有2个RJ45以太网口,支持10M/100M/1000M自适应速率。
绿灯:LINK指示灯,对端设备是1000M接口时长亮,对端设备是10/100M接口时长灭。
EC942支持两路串口,支持RS-232或RS-485或RS-422通讯,软件可配置。
|
|
|
|
|
|
|
|
|
|
|
EC942具有1路CAN总线接口,支持CAN 2.0A/B标准。它兼容CAN FD,最高速率可达5Mbps。
4 路数字量输入 DI, “1”:闭合干接点状态“0”:断开 湿接点状态“1”:+10~+30V/-30 ~ -10VDC 湿接点状态“0”: 0 ~ +3V/-3 ~ 0V |
||
EC942 有12个LED灯,分别对电源及系统运行状态进行指示。
当系统正常启动后,STATUS闪烁,如果系统启动阶段发生异常导致系统启动失败;或者恢复出厂操作尚未完成时,STATUS长灭。 |
||
SIM1卡指示灯,选中则常亮 |
||
除了L1,L2,L3信号灯的组合来指示蜂窝信号强度,还有一组LED组合来标识恢复出厂的过程。
|
||
|
||
|
||
|
EC942提供API接口,用户可以调用API接口检测可编程按键的状态,然后实现自己的按键逻辑。
EC942支持12~48V直流输入
EC942支持2个SIM卡插槽,SIM卡需要在断电状态下安装,将SIM卡按压插入卡槽即可。
EC942有一个MircoSD卡的卡槽,SD不支持热插拔,需要在断电情况下插拔。插入SD卡,给设备上电后,系统会自动挂载所有的分区。
有一个复位按钮用于系统恢复出厂。参考《恢复出厂设置》进行操作。
EC942配有一个开关机按键用于开关机。
EC942共有5个天线接口,不同型号标配的天线数量不同,将天线拧入相应的天线接口完成天线安装。
4G LTE主天线/5G天线 |
|
4G LTE分集接收天线/5G天线 |
|
拨码开关控制着485总线的上拉、下拉电阻,可以选择上下拉电阻以提升485总线带载设备数量。
EC942支持mSata硬盘,出厂默认不配带mSata硬盘,如果用户有大容量的存储需求,需要自购mSata硬盘,也可咨询映翰通进行mSATA的购买。
在本章中,我们将介绍基于Arm结构的边缘计算机EC900的基础配置。
您需要一台计算机,用于连接到EC900并登录到命令行界面。可以通过以太网网线的方式连接。
EC900设备出厂默认创建了root,但是登录被禁用。如果需要使用root用户,请手动修改系统配置,输入sudo -s 切换至root用户。用户edge在sudo组中,所以您可以在edge用户下使用sudo来执行系统级命令。有关其他细节,请参阅第5章中的sudo机制部分。
当出现command not found时,输入sudo -s切换至root用户或使用sudo命令来操作。
出于安全考虑,我们建议您禁用默认的用户账户,并创建您自己的用户帐户。
EC900支持通过以太网的SSH连接。使用以下默认IP 地址连接到EC900。
这些步骤适用于您在 Linux PC上连接到EC900。请不要将这些步骤应用于EC900设备本身。在您运行ssh命令之前,请确保将PC的以太网口IP地址配置在特定范围内。ETH1:192.168.3.0/24,ETH2:192.168.4.0/24。
在 Linux PC上使用 ssh 命令访问EC900的ETH1 端口。
当界面出现终端提示符edge@edge-computer:~$,可输入shell命令时,连接成功。
这些步骤适用于您在Windows PC上连接EC900。请不要将这些步骤应用于EC900设备本身。
点击链接http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html,下载PuTTY(免费的软件),在Windows环境下以SSH命令的方式来建立与边缘计算机EC900的连接。下图是使用SSH连接的示例:
您可以使用sudo -s的命令来切换到root用户。出于安全考虑,不要在root权限下操作所有的命令。
您可能会在非root权限下使用一些管道或者重定向行为的时候得到”permission denied“的提示,此时您必须使用'sudo su -c'来取代'>','<','>>','<<','etc'等命令,需要包含完整命令的单引号。
您可以使用useradd和userdel命令来创建和删除用户的账户。请务必在主界面使用这些命令来设置该账户的相关访问权限。以下是如何在sudo组中创建test1的示例 (test1用户的默认登陆环境是bash,其主目录是/home/test1)
修改test1的密码,用passwd命令,输入新密码然后重复输入新密码以确认更改
使用passwd命令来锁定默认用户账户,使edge用户无法登录
EC942基于debian 10系统,因此可以使用Linux原生的命令进行网络管理和系统管理;为了便于用户配置,映翰通开发了一套IEOS系统程序,提供web界面,用户可以方便的通过web进行网络管理和系统管理,但需要注意的是,当启用IEOS功能后,IEOS会接管网络管理和系统管理,此时通过Linux原生命令进行网络管理和系统管理可能会失效;设备出厂默认启用IEOS,如果用户需要基于Linux原生的命令行进行网络管理和系统管理,需要先关闭IEOS。
IEOS采用状态和配置分离的设计方案,分为网络管理,系统管理和状态三大功能板块。网络管理菜单和系统管理菜单下只能进行网络和系统的相关配置,状态信息需要统一到状态页面查看。
考虑到用户的程序可能会需要使用HTTP/HTTPS标准端口号80/443,IEOS使用9100端口号做为HTTPS连接的端口,不支持通过HTTP访问;当用户使用HTTP访问web的时候,会自动跳转到通过HTTPS。本文档以通过eth2的默认地址192.168.4.100为例来进行说明。用户在浏览器中输入192.168.4.100:9100后跳转到登录页面
重要说明:IEOS程序启用时,会预留一些端口号供内部通信使用,预留端口号范围9100 ~ 9200,启用IEOS后,客户的程序应该避开使用这些端口号,否则可能会产生冲突导致功能异常。
在eth1接口上启动dhcp server功能,给eth1的下挂设备分配地址
Enable DHCP Server:DHCP Server功能的开关
Starting Address:DHCP Server地址池起始基址,网段 + 起始地址 = 地址池的起始ip地址。在截图中,eth1的网段是192.168.3.0/24,基址是1,则地址池的起始地址是192.168.3.1/24.
Max Address Number:地址池中的最大地址数量.
Lease period:租期时间
Enabled: 蜂窝功能的开关;默认是开启的状态。
Profiles:拨号参数集,用于专网卡拨号时配置APN,用户名,密码以及认证方式等信息。如果不是专网卡,通常不需要修改这里的配置。拨号参数集最多可以添加10条记录。
Network Mode:蜂窝的网络制式,可以选择3G,4G等相关网络制式,比如LTE,WCDMA等。如果不清楚选哪种网络制式,则选择自动;程序会自动选择一个最合适的网络制式。默认值是自动。
Enable Default Route:启用添加默认路由功能,开启后,当拨号成功后,会添加一条蜂窝口的默认路由。默认是开启的。
Metric:蜂窝口默认路由的度量值,当蜂窝口,Wi-Fi和以太网口都配置了默认路由的时候,度量值最小的生效。
Dual SIM Enabled:启用双卡功能。EC942为了提高网络的可靠性,支持双卡单拨。设备上需要插入2张sim卡,开启该功能后,如果sim1卡因为欠费导致拨号失败,会自动切换到sim2卡进行拨号。默认是关闭的。
Main SIM:主sim卡,拨号时会优先使用选中的sim卡进行拨号,拨号失败达到一定次数时,在切换到另外一张sim卡进行拨号,默认先使用sim1进行拨号。
Max Number of Dials: 开启双卡单拨功能后,当前拨号sim卡拨号达到指定次数,切换到另外一张sim卡进行拨号。
APN Profile: sim卡选用的拨号参数集,默认值是自动。通常专网卡通常需要配置拨号参数集,并在此处选择拨号参数集的Index。
PIN Code:sim卡的PIN码。
无线蜂窝网络比较复杂,有些时候会出现拨号假连接的情况,即拨号状态是成功的,但却ping不通目标地址;发生这些状况的时候,重新拨号一次就可以恢复正常。IEOS蜂窝拨号支持ICMP探测以发现假连接。建议使用蜂窝联网的客户开启ICMP探测,这样出现假连接的时候也可以快速恢复。
ICMP Detection Server Probes:ICMP探测地址;可以配置2个探测地址,只要有1个地址探测成功,则说明蜂窝没有出现假连接。2个地址都没有配置的时候,ICMP探测功能处于关闭状态。
Detection Interval:间隔多久进行一次ICMP探测。
Detection Timeout:ICMP探测超时时间,等待多久没有收到探测响应报文,则认为此次探测失败
Detection Max Retries:最大探测次数;当探测失败达到这个值的时候,触发重新拨号。取值范围[1,5]
Detection Strict:是否开启严格探测。关闭严格探测时,探测程序在每个探测周期会检测蜂窝接口接收的报文是否发生变化,如果有变化,说明蜂窝网络是通的,则不会发送ICMP报文进行探测,这样可以节省一些流量;如果开启探测,则无论蜂窝接口接收报文的数量是否发生变化,都会周期性的发送ICMP探测报文。默认是关闭的。
Debug Mode enabled:是否启用debug功能,开启后,日志中会增加一些拨号相关的调试信息,默认关闭。
Enable Infinitely Redial:开启无限重拨。某些情况下,拨号会处于异常状态,通过重启系统可以恢复正常;默认无限重拨是关闭的,当拨号失败一定次数后,会重启系统尝试恢复。由于拨号默认是开启的,有些客户在不插sim卡的情况下,拨号失败,系统会重启,针对这种情况,可以开启无限重拨;这样无论拨号失败多少次,系统都不会重启。
Dial Interval:拨号间隔;但某次拨号失败时,进行下一次拨号之前等待的时间。
Signal Query Interval:信号查询间隔。信号不好时,可能会产生假连接的问题;这时重新拨号有一定概率可以解决假连接的问题。拨号程序会定期检测信号强度,这里配置的是信号检测周期。
Enable Wi-Fi:使能开关;默认关闭
Client SSID:需要连接的ssid,可以手动输入;也可以通过扫描按钮获取附近可连的ssid
Enable Default Route:是否启用添加默认路由功能,开启后,当wifi连接成功后,会添加一条wlan口的默认路由。默认是开启的。
Metric:wifi口默认路由的度量值,当蜂窝口,Wi-Fi和以太网口都配置了默认路由的时候,度量值最小的生效。
Auth Method:认证方式,支持无认证,WPA-PSK,WPA2-PSK,WPA-PSK/WPA2-PSK Mixed
Encrypt Mode:加密方式;支持CCMP,TKIP,TKIP和CCMP
WPA/WPA2 PSK Key:密钥信息
这里配置的是以太网的静态路由,当同时配置了以太网,蜂窝,wifi的默认路由时,metric值最小的那一条默认路由生效。需要保证默认路由的Metric值是不同的。
Interface:静态路由的出接口
Target:目标网络
Netmask:目标网络掩码
Gateway:下一跳地址
Metric:静态路由的度量值
DNS Servers:DNS Server地址,最多支持配置4个
Domain name hi jacking:域名劫持功能,可以实现IP地址和域名之间的绑定。
网络诊断支持ping,traceroute和nslookup功能。
Enabled: 对接DeviceLive平台的使能开关; DeviceLive是映翰通设备的远程监控和管理平台;
Cloud Server:DeviceLive平台有2个地址;一个是国内平台的地址,另外一个是海外平台地址;这里选择连接哪个平台。
最多可以配置10个NTP Server地址,程序周期性的依次向每个服务器地址发送同步请求,同步成功后,将系统时间写入RTC,并不再继续向后面的NTP服务器发送同步请求。
除了使用NTP同步时间,在Device Info状态页面有一个同步按钮可以手动同步时间,但只有当设备时间和本地时间(访问设备所使用的电脑的时间)相差超过3s时,才会显示这个同步按钮。
这个页面有重启系统和重置系统2个功能。重置系统需要慎重使用,重置系统功能会将系统的配置状态和文件系统状态恢复到和出厂时一致,也就是说用户安装的软件也会被清除。
设备信息状态页面显示主机名,设备型号,序列号,固件版本,内核版本,文件系统版本以及CPU,内存和磁盘空间的使用概况。
蜂窝拨号状态页面显示当前拨号使用的sim卡,IMEI,IMSI,ICCID,信号强度,以及拨号获取的IP地址,DNS等信息。
Wi-Fi状态页面显示Wi-Fi连接成功后获取的IP地址,网关以及DNS等信息。
DHCP Server状态页面显示设备做为DHCP Server,分配出去的IP地址,客户端主机名,客户端主机mac以及过期时间。
路由状态页面显示IPv4直连路由,静态路由以及路由邻居等信息。
日志页面可以查看系统日志,用户日志以及设置查看的日志等级,包括Error,Info,Debug等级别。日志也可以下载到本地。
使用Linux命令行进行网络配置和系统配置的时候,首先需要关闭IEOS程序。IEOS是通过systemctl来管理的,
这种关闭只针对本次启动生效,系统重启后,IEOS程序依然会启动,禁止IEOS程序开机启动的方式如下:
重要说明:关闭IEOS之后,拨号,Wi-Fi等无线联网功能需要用户基于Linux原生命令来实现,而且也无法实现对接DeviceLive平台对设备进行远程管理。
修改接口IP配置后,执行/etc/init.d/networking restart,重启网络服务,使配置生效。
修改接口IP配置后,执行/etc/init.d/networking restart,重启网络服务,使配置生效。
要确定可用驱动器空间的量,请使用带有-h选项的df命令。系统将返回按文件系统分解的驱动器空间量。EC942产品,用户可用的磁盘分区是/dev/mmcblk0p8。下面是一个示例:
devinfo工具可以查看产品的型号信息
EC942有两个时间设置。一个是系统时间,另一个是由EC942的硬件所保持的RTC(实时时钟)时间。使用date命令来查询当前的系统时间或设置一个新的系统时间。使用hwclock命令查询当前的RTC时间或设置一个新的RTC时间。
https://www.debian.org/doc/manuals/system-administrator/ch-sysadmin-time.html
https://wiki.debian.org/DateTime
有两种方法可以配置EC942的时区。一个是使用命令tzselect。另一个是使用/etc/localtime文件。
当键入tzselect命令后,会进入到选择地区的界面先选择大致的区域(按大洲大洋划分)输入大洲或大洋前面的数字
按照以上步骤获取到中国时区关键字Asia/Shanghai,执行以下命令设置时区
本地时区存储在/etc/localtime中,如果没有为TZ环境变量设置值,则被GNU库用于C(glibc)。此文件或者是/usr/share/zoneinfo/file的副本,或者是指向它的符号链接。若EC942无法找到/usr/share/zoneinfo/文件,请从该网站上下载您所需要的时区信息文件(https://www.iana.org/time-zones),并在EC900中重新链接到本地时间文件。
成功下载所需要的时区信息文件后,进行解压,之后使用zic命令编译生成对应的二进制文件,生成的时区文件为“/usr/share/zoneinfo/自定义时区文件名”。
在本章中,我们将介绍基于Arm结构的边缘计算机EC900的外设接口的高级配置。
EC942有2个串口,每个串口都支持RS-232、RS-422和RS-485 多种串口模式。默认串口模式为RS-232,使用ih_uart_ctl命令可以切换串口模式。
COM1对应的设备节点是/dev/ttyS3
COM2对应的设备节点是/dev/ttyS4
http://www.gnu.org/software/coreutils/manual/coreutils.html
EC942提供两个USB 2.0 Host接口,主要用于扩展存储设备、接鼠标和键盘
EC942支持USB存储设备热插拔。它会自动挂载所有的分区。EC942会把所有USB存储设备分区挂载到/mnt/路径下,挂载文件夹的命名格式为usb_<node>_<num>。其中,<node>是分区的设备节点名称,<num>可以是0~9的数字。
在断开USB大容量存储设备之前,请记住输入sync同步命令,以防止数据丢失。当您断开存储设备的连接时,请从/media/* 目录下退出。如果您留在/media/usb*中,则自动卸载过程将会失败。如果发生这种情况,请键入umount /media/usb*以手动卸载设备
EC942支持micro SD存储卡不支持热插拔。它会自动挂载所有的分区。EC942会把所有micro SD存储卡分区挂载到/mnt/路径下,挂载文件夹的命名格式为sd_<node>_<num>。其中,<node>是分区的设备节点名称,<num>是0~9的数字。
(1) 登录系统,执行sudo fdisk -l,找到自己硬盘分区,如下图是/dev/sda1
(2) 将分区格式化为需要使用的文件系统,比如ext4
(3) 创建挂载点, 比如/mnt/sda1
(4) 编辑vi /etc/fstab文件,在末尾行加上/dev/sda1 /mnt/sda1 ext4 defaults,nofail,x-systemd.device-timeout=1s 0 0,添加后如下图所示:
/dev/sda1:设备分区,需要用户根据实际情况进行配置
/mnt/sda1: 挂载点,需要用户根据实际情况进行配置
etx4 硬盘分区的文件系统格式,需要用户根据实际情况进行配置
defaults,nofail,x-systemd.device-timeout=1s 0 0固定配置,推荐使用这样的配置,用户也可以根据需要自行修改。
EC942的CAN端口支持 CAN总线。
默认情况下,CAN端口将被初始化。如果需要任何其他配置,请使用ip链接命令检查CAN设备。要检查CAN设备的状态,请使用ip链接命令:
要配置CAN设备,请使用ip link set can0 down来先关闭设备
EC942支持4路DI和4路DO。当您要使用IO口的时候请键入dio_mgmt命令用于控制io的输入输出。dio_mgmt的用法:
当需要设置某位IO口为高或者低时,可以键入命令dio_mgmt set
D<I/O><number><HIGH/LOW>
通过键入dio_mgmt show D<I/O><number>打印对应的IO口的电平信息。
EC900部分型号内部集成GPS模块,数据串口节点为/dev/ttyS9。
1.通过长按开关机按键8秒进行关机
2.您可以使用Linux命令来关闭设备上运行的所有软件并停止系统。但是,在运行此命令后,CPU、RAM和存储设备等主要组件将掉电。
在本章中,我们将介绍基于ARM结构的边缘计算机EC900的安全机制。
• 不用知道root密码(sudo会提示当前用户的密码),可授予普通用户特权
• 通过sudo运行需要特权的命令很容易,其余时间,都作为无特权用户工作,从而降低由于错误操作可能造成的损害。
•
有些系统级命令不能直接对用户使用,如下示例输出所示:
TPM代表“Trusted Platform Module”(可信平台模块),它是一种硬件安全模块,旨在提供计算机系统的安全和加密功能。它是一个安全微控制器,可以在计算机系统中嵌入或作为独立硬件设备出售。它包含一个加密协处理器,用于存储加密密钥、数字证书和其他安全数据,以及支持多种加密算法和安全协议。在EC942上,已经集成了标准的TPM2.0协议栈和TPM2.0工具供用户使用。
在本章中,我们将介绍基于Arm结构的边缘计算机EC900如何恢复出厂设置及更新。
· 松开恢复出厂设置按键后,error灯闪烁几次后系统开始重启并执行恢复出厂设置
· 系统重启后,warn灯和error灯闪烁,status熄灭;大约30s后,当warn灯和error灯都停止闪烁,同时status开始闪烁,则系统完成恢复出厂设置。
准备一个U盘(micro SD卡)。如果该U盘(SD卡)有多个分区,请使用第一个分区。建议不做多个分区。U盘(SD卡)分区需要格式为FAT32格式。本文档以升级EC942-V2.0.0.img为例进行说明。
· 在U盘(SD卡)根目录下创建一个空的ec900_img目录,将inhand发布的EC942-V2.0.0.img文件和md5.txt文件放到ec900_img目录下。
· 确认md5.txt文件中仅有EC942-V2.0.0.img一行的md5哈希值。EC942不支持多个img镜像ota升级。
· 在电脑上正常退出U盘(SD卡)。注意不要直接拔u盘,要在桌面选择“退出”或“弹出”操作。
· 升级结束后,EC900会把升级中的关键信息写入ec900_img目录下的日志文件。请查看相关文件。
EC900提供了一个JSON格式的设备信息描述文件,需要操作IO,LED,串口等外设的客户,可以通过查询设备描述信息文件获取这些外设的设备节点信息。
设备描述信息文件路径:/tmp/ieos/etc/system_info.json, 内容如下:
目前设备上一共8个IO接口:如设备面板上DI0~DI3为4个输入管脚;DO0~DO3为4个输出管脚。
根据设备描述信息文件/tmp/ieos/etc/system_info.json可以获取到IO设备节点为:
DI0~DI3-----sys/class/gpio/gpio487~sys/class/gpio/gpio490
DO0~DO3------sys/class/gpio/gpio491~sys/class/gpio/gpio494
当您需要对IO接口进行编程时,直接操作后台设备节点下面的value值即可(sys/class/gpio/gpioxxx/value)
当DO0需要输出高电平时,可以直接向sys/class/gpio/gpio491/value写入1
echo 1 > /sys/class/gpio/gpio491/value
当需要查看DI0的电平是,同样可以直接查看sys/class/gpio/gpio487/value的值
cat /sys/class/gpio/gpio487/value
设备上用户可以使用USER1和USER2两个灯进行状态提示,请查看灯签确认USER1和USER2两个灯的位置。
根据设备描述信息文件/tmp/ieos/etc/system_info.json可以获取到USER1和USER2设备节点为:
/sys/class/leds/user1目录下有一些控制文件用于控制LED的属性和状态:
/sys/class/leds/user1/brightness:该文件用于控制USER1灯的亮或者灭。写入1即是常亮,写入0即是常灭。
/sys/class/leds/user1/trigger:LED灯的触发器,可写入timer表示定时器触发,写入none表示取消触发器。
/sys/class/leds/user1/delay_on:该文件表示led灯亮的时间,以ms为单位。
/sys/class/leds/user1/delay_off:该文件表示led灯灭的时间,以ms为单位。
若配置了trigger为定时触发,则brightness中的值将不再生效,会自动变为0。
将文件路径中user1替换为user2即为控制USER2灯的操作。
echo 1 > /sys/class/leds/user1/brightness
当需要USER1灯闪烁时,将timer写入trigger文件,通过delay_on和delay_off控制亮和灭的时间
用户自己的c/c++程序可以通过在开发机器上使用交叉编译工具链进行交叉编译,然后将目标文件上传到EC942设备上执行。
交叉编译工具压缩包:gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz
2. 编辑~/.bashrc文件,在文件最后添加一行PATH=$PATH:/opt/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
3. 执行source ~/.bashrc使环境变量在当前终端生效;新打开的终端会自动生效。
以经典的hello world程序为示例进行说明,创建如下目录和文件
在~/example目录下执行make,生成目标文件helloworld