seo一个月工资一般多少,百度搜索引擎关键词优化,淘客网站怎么做淘口令,哈尔滨信息网一、系统概述
MYD-LD25X搭载的Debian系统包含以太网、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI显示和摄像头等功能#xff0c;同时也集成了XFCE轻量化桌面、VNC远程操控、SWITCH网络交换和TSN时间敏感网络功能#xff0c;为工业设备赋予“超强算力实时响应极简运维”的…一、系统概述
MYD-LD25X搭载的Debian系统包含以太网、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI显示和摄像头等功能同时也集成了XFCE轻量化桌面、VNC远程操控、SWITCH网络交换和TSN时间敏感网络功能为工业设备赋予“超强算力实时响应极简运维”的体验 类别 名称 描述 源码 TF-A Arm Trusted Firmware 2.8 OP-TEE OP-TEE 3.19 Bootloader U-boot 2022.10 Kernel Linux Kernel 6.1.82 文件系统 myir-image-debian Debian12文件系统 工具 烧录工具 STM32CubeProgrammer 文档 MYD-LD25X_Debian系统开发指南 包含源码编译烧录等
注目前Debian系统只适配了高配置开发板型号MYD-LD257-8E2D-150-I 图MYC-LD25X核心板及开发板
二、亮点功能介绍
1、Xfce桌面
Xfce是一款轻量级的开源桌面环境旨在提供高效、稳定和易于使用的桌面体验。
轻量级Xfce以资源效率为目标注重在低资源消耗下提供快速响应和流畅的用户体验。它适用于各种硬件配置包括旧式计算机和嵌入式设备。
简洁和直观Xfce遵循简洁和直观的设计原则提供了直观易用的用户界面使用户能够快速上手和自定义桌面环境。
模块化Xfce采用模块化的设计桌面环境由多个独立的组件如面板、窗口管理器、文件管理器等组成用户可以根据自己的需求进行定制和配置。
1.1.启动Xfce
myir-image-debian系统默认已经包含xfce显示界面开发板启动进入系统后接上屏幕会显示如下界面说明成功启动Xfce需输入设置的账户进入系统界面。 图1.1 xfce显示界面
2、VNC远程控制
2.1. vnc简介
VNCVirtual Network Computing虚拟网络计算是一种远程桌面控制技术允许用户通过互联网或局域网远程访问和控制另一台计算机的桌面环境。系统默认安装了TigerVNC。以下是其核心特点和应用 协议基础基于RFB协议Remote Framebuffer Protocol通过传输屏幕图像的更新部分和用户输入指令实现交互。 客户端-服务端架构
服务端运行在MYD-LD25X上负责分享屏幕并接收客户端指令。
客户端用户通过客户端连接到服务端查看并操作远程桌面。 网络传输默认使用TCP端口5900NN为显示器编号如:1对应5901。
2.2. 启动VNC服务
Debian系统默认上电就开启VNC服务端使用下面命令查看vnc服务
rootmyd-ld25x:~# ps -ef | grep vnc
root 2348 1 0 15:14 ? 00:00:00 /usr/bin/perl /usr/bin/vncserver -geometry 1280x720 -depth 24 -localhost no :1
root 2349 2348 0 15:14 ? 00:00:01 /usr/bin/Xtigervnc :1 -localhost0 -desktop myd-ld25x:1 (root) -rfbport 5901 -PasswordFile /tmp/tigervnc.QQW419/passwd -SecurityTypes VncAuth,TLSVnc -auth /root/.Xauthority -geometry 1280x720 -depth 24
root 2350 2348 0 15:14 ? 00:00:00 /bin/sh /etc/X11/Xtigervnc-session
root 2356 2350 0 15:14 ? 00:00:00 tigervncconfig -iconic
root 4836 3480 0 16:48 ttySTM0 00:00:00 grep vnc 2.3 客户端连接测试 下载客户端
Windows下载并安装客户端软件如RealVNC Viewer如下图所示 图2.1 客户端VNC界面 获取连接信息
通过myd-ld25x开发板获取目标设备的IP地址或主机名
如192.168.40.198或myd-ld25x
rootmyd-ld25x:~# cat /etc/hosts
127.0.0.1 myd-ld25x
rootmyd-ld25x:~# ifconfig
end1: flags4099UP,BROADCAST,MULTICAST mtu 1500ether 38:d5:47:00:29:62 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 65 base 0xc000 end2: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.40.198 netmask 255.255.255.0 broadcast 192.168.40.255inet6 fe80::bd6:742b:ef7e:ee6f prefixlen 64 scopeid 0x20linkether 5e:08:0d:0e:83:b6 txqueuelen 1000 (Ethernet)RX packets 12454 bytes 2524533 (2.4 MiB)RX errors 0 dropped 129 overruns 0 frame 0TX packets 476 bytes 41087 (40.1 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 68 base 0x8000 通过VNC服务器的log获取端口/显示编号如:1对应端口5901或直接指定端口号5901
rootmyd-ld25x:~# cat .vnc/myd-ld25x:1.log
Xvnc TigerVNC 1.12.0 - built 2023-01-06 16:01
Copyright (C) 1999-2021 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12101006, X.OrgMon Mar 3 18:02:44 2025vncext: VNC extension running!vncext: Listening for VNC connections on all interface(s), port 5901vncext: created VNC server for screen 0
3NI3X0 New Xtigervnc server myd-ld25x:1 (root) on port 5901 for display :1.
3NI3X0 Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /tmp/tigervnc.otB4Rd/passwd myd-ld25x:1 to connect to the VNC server.
[mi] mieq: warning: overriding existing handler (nil) with 0xaaaae7efad10 for event 2
[mi] mieq: warning: overriding existing handler (nil) with 0xaaaae7efad10 for event 3
.................................................. 输入连接地址
依次点击VNC客户端界面“File-New connection”输入服务器和主机名格式如下 格式目标地址:显示编号或 目标地址::端口号 示例1主机名显示编号myd-ld25x:1 示例2IP端口192.168.40.198:5901 以主机名为例子配置完成后点击”OK”按钮如下图所示 图2.2 客户端VNC配置 成功连接
连接成功后客户端窗口将显示远程设备的桌面可进行交互操作。 图2.3 VNC连接成功界面
3、交换机功能
3.1. 交换机简介
以太网交换机是一种硬件设备用于连接局域网LAN上的设备并在这些设备之间转发数据包。它在OSI模型的数据链路层第2层运行并使用MAC地址来确定每个数据包的目的地。以太网交换机可以通过减少冲突和拥塞来提高网络性能同时还可以提供如虚拟局域网VLAN和基于端口的访问控制等安全功能。与以太网桥接器相比以太网交换机在CPU使用率方面更为高效。由于硬件以太网交换机负责数据转发、过滤和优先级排序因此减轻了CPU的工作负担。这样一来CPU可以专注于处理其他任务从而进一步提升网络性能。本节主要介绍myd-ld25x作为交换机进行双网段转发功能。
3.2. 网络拓扑介绍
STM32MP257有两个以太网控制器MYD-LD25X以太网控制器1支持交换机功能。其网络拓扑如下图 图3.1 网络拓扑图
根据上图很容易了解网络拓扑结构
[Device1] (169.254.1.2)
│
├── end2 接口
│
[MP25 板]
│
├── end2 接口: 169.254.1.1连接 Device1
├── sw0p2 接口: 192.168.0.20连接 Device2 end2
│
└── IP 转发已启用 (echo 1 /proc/sys/net/ipv4/ip_forward)[Device2] (192.168.0.11) 3.3.关键拓扑配置解析 myd-ld25x的配置
从网络拓扑图可知myd-ld25x被当作为交换机/网关连接不同的子网络
子网1配置169.254.1.0/24通过 end2 接口子网2:配置192.168.0.0/24通过 sw0p2 接口。启用 ip_forward 后myd-ld25x可将来自子网1的流量转发到子网2反之亦然。 Device1 配置
设置 IP 为169.254.1.2默认网关指向 myd-ld25x的 end2 接口 (169.254.1.1)。使得所有非本子网的流量如访问 192.168.0.11通过网关 myd-ld25x 转发。 Device2 配置
设置 IP 为192.168.0.11默认网关指向myd-ld25x的 sw0p2 接口 (192.168.0.20)。使所有非本子网的流量如访问 169.254.1.2通过网关myd-ld25x转发。 3.4.转发功能配置与测试 切换交换机设备树
启动开发板在uboot阶段选择交换机设备树如下图所示 图3.2 选择交换机设备树 转发功能配置
根据拓扑结构对myd-ld25x开发板板进行配置启动设备并设置 end1/sw0ep 接口同时启用 IP 转发功能使设备能够充当路由器转发网络流量。
rootmyd-ld25x:~# ifconfig end2 169.254.1.1 up
rootmyd-ld25x:~# ifconfig sw0p2 192.168.0.20 up
rootmyd-ld25x:~# echo 1 /proc/sys/net/ipv4/ip_forward 配置设备1开发板或者PC网络接口IP和路由这里Device1使用一块MYD-LD25X开发板
Board $ ifconfig end2 169.254.1.2 up
Board $ ip route add default via 169.254.1.1 配置设备2开发板或者PC网络IP和路由这里Device2也使用一块MYD-LD25X开发板
Board $ ifconfig end2 192.168.0.11 up
Board $ ip route add default via 192.168.0.10 3.5.连通性验证
从Device1-Device2当执行ping 192.168.0.11 时 数据包从 Device1 发送到默认网关MYD-LD25X (169.254.1.1)MYD-LD25X根据路由表将数据包转发到 sw0p2 接口 (192.168.0.20)。Device2 收到数据包并回复路径反向同理。
Board $ ping 192.168.0.11
PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.0.11: icmp_seq1 ttl63 time0.959 ms
64 bytes from 192.168.0.11: icmp_seq2 ttl63 time0.618 ms
64 bytes from 192.168.0.11: icmp_seq3 ttl63 time0.649 ms
64 bytes from 192.168.0.11: icmp_seq4 ttl63 time0.669 ms
64 bytes from 192.168.0.11: icmp_seq5 ttl63 time0.625 ms
64 bytes from 192.168.0.11: icmp_seq6 ttl63 time0.624 ms
64 bytes from 192.168.0.11: icmp_seq7 ttl63 time0.630 ms
64 bytes from 192.168.0.11: icmp_seq8 ttl63 time0.669 ms 从Device2-Device1过程一样
Board $ ping 169.254.1.2
PING 169.254.1.2 (169.254.1.2) 56(84) bytes of data.
64 bytes from 169.254.1.2: icmp_seq1 ttl63 time0.761 ms
64 bytes from 169.254.1.2: icmp_seq2 ttl63 time0.688 ms
64 bytes from 169.254.1.2: icmp_seq3 ttl63 time0.678 ms
64 bytes from 169.254.1.2: icmp_seq4 ttl63 time0.640 ms
64 bytes from 169.254.1.2: icmp_seq5 ttl63 time0.676 ms
64 bytes from 169.254.1.2: icmp_seq6 ttl63 time0.614 ms
64 bytes from 169.254.1.2: icmp_seq7 ttl63 time0.608 ms
64 bytes from 169.254.1.2: icmp_seq8 ttl63 time0.543 ms 通过MYD-LD25X板作为路由中转成功实现了两个不同子网169.254.1.0/24和 192.168.0.0/24间的通信。
4、TSN
4.1.TSN简介
TSN代表时间敏感网络Time-Sensitive Networking它是由电气和电子工程师协会IEEE开发的一系列标准旨在通过以太网网络提供确定性和低延迟的通信。TSN旨在支持实时应用如工业自动化、汽车以及音频/视频流传输。
TSN通过在网络中的所有设备之间提供时间同步并使用流量整形和调度机制为时间关键型流量分配优先级和网络资源从而实现确定性通信。TSN还支持冗余和容错机制以确保高可用性和可靠性。此处列出了IEEE定义的TSN标准的完整清单。TSN的关键特性包括 时间同步TSN使用精确时间协议PTP来同步网络中所有设备的时钟精度可达亚微秒级。IEEE 802.1AS-Rev 流量整形和调度TSN使用服务质量QoS机制为时间关键型流量分配优先级和网络资源并防止拥塞和数据包丢失。IEEE 802.1Qav和IEEE 802.1Qbv 互操作性TSN设计为与现有以太网网络兼容并支持不同供应商和设备之间的互操作性。
总体而言TSN为以太网网络上的实时通信提供了一个标准化且可靠的解决方案有助于在各行各业启用新的应用和用例。802.1Qav和802.1Qbv之间的选择取决于应用的特定需求。802.1Qav通常用于带宽需求可变且不可预测的应用而802.1Qbv则通常用于带宽需求固定且可预测的应用。MYD-LD25X独立网口end2和switch都支持TSN功能。本节将以myd-ld25x开发板独立以太网为例展示TSN 802.1Qav如何提升流量整形效果。
4.2. 网络拓扑介绍
通过预留4个带宽序列给每个序列分别不同的优先级如下网络拓扑图所示 图4.1 QAV例子
如上图所示配置网口如下 使用4个队列Q0-Q3。每个队列在硬件中都有预留的带宽。最多支持4个队列。 队列0无带宽限制用于通用流量。 队列1预留了最大带宽的10%100Mbps 队列2预留了最大带宽的20%200Mbps 队列3预留了最大带宽的30%300Mbps Q3是最高优先级队列而Q0是最低优先级队列。 4.3. 网络流量控制 创建vlan端口
在MYD-LD25X开发板发送端执行下面命令创建vlan端口并建立端口映射
rootmyd-ld25x:~# ip link add link end2 name end2.200 type vlan id 200
rootmyd-ld25x:~# ip link set end2.200 type vlan egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
rootmyd-ld25x:~# ifconfig end2.200 192.168.200.60 netmask 255.255.255.0 在接受端(PC或者其他开发板)接收端创建vlan端口
rootlocalhost:~# ip link add link eno0 name eno0.200 type vlan id 200
rootlocalhost:~# ip link set eno0.200 up
rootlocalhost:~# ip addr add 192.168.200.30/24 dev eno0.200 配置网络流量
CBS用于通过限制流量类别的数据速率来强制实施服务质量为了将数据包划分为不同的流量类别用户可以选择使用mqprio。
rootmyd-ld25x:~# tc qdisc add dev end0 clsact
rootmyd-ld25x:~# tc qdisc add dev end0 handle 100: parent rootmqprio num_tc 4 map 0 0 1 1 2 2 3 3 3 3 3 3 3 3 3 3 queues 10 11 12 13 hw 0 为每个队列分配不同的带宽
// Set bandwidth of queue 1 to be 100Mbps
rootmyd-ld25x:~# tc qdisc replace dev end0 parent 100:2 cbs idleslope 100000 sendslope -900000 hicredit 150 locredit -1350 offload 1// Set bandwidth of queue 2 to be 200Mbpsrootmyd-ld25x:~# tc qdisc replace dev end0 parent 100:3 cbs idleslope 200000 sendslope -800000 hicredit 300 locredit -1200 offload 1// Set bandwidth of queue 3 to be 300Mbpsrootmyd-ld25x:~# tc qdisc replace dev end0 parent 100:4 cbs idleslope 300000 sendslope -700000 hicredit 450 locredit -1050 offload 1 流量测试
在连接到端点end2且IP地址为192.168.200.30的远程PC或其他设备上运行4个iperf会话以生成具有不同优先级的多个数据流。
rootlocalhost:~# iperf3 -s -p 5003
rootlocalhost:~# iperf3 -s -p 5002
rootlocalhost:~# iperf3 -s -p 5001
rootlocalhost:~# iperf3 -s -p 5000 在MYD-LD25X开发板使用iperf3开始传输数据流
//Stream with SKB priority 6 : TOS0x14 SO_PRIORITY6
// https:man7.org/linux/man-pages/man8/tc-prio.8.html
rootmyd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0x14
//Stream with SKB priority 4
rootmyd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0x1a
//Stream with SKB priority 2
rootmyd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5001 -l1472 -t60 --tos 0xa
//Stream with SKB priority 0 (Best effort)
rootmyd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60 测试结果
对于优先级为6且带宽为300Mbps的队列3使用TC规则后
rootmyd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0x14
[1] 5238
rootmyd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5003
[ 5] local 192.168.200.60 port 56663 connected to 192.168.200.30 port 5003
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 34.7 MBytes 291 Mbits/sec 24720
[ 5] 1.00-2.00 sec 34.7 MBytes 291 Mbits/sec 24710
[ 5] 2.00-3.00 sec 34.7 MBytes 291 Mbits/sec 24730
[ 5] 3.00-4.00 sec 34.6 MBytes 291 Mbits/sec 24680
[ 5] 4.00-5.00 sec 34.6 MBytes 290 Mbits/sec 24670 对于优先级为4且带宽为200Mbps的队列2使用TC规则后
rootmyd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0x1a
[1] 5335
rootmyd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5002
[ 5] local 192.168.200.60 port 33494 connected to 192.168.200.30 port 5002
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 23.3 MBytes 195 Mbits/sec 16600
[ 5] 1.00-2.00 sec 23.2 MBytes 195 Mbits/sec 16550
[ 5] 2.00-3.00 sec 23.2 MBytes 195 Mbits/sec 16550
[ 5] 3.00-4.00 sec 23.2 MBytes 195 Mbits/sec 16550
[ 5] 4.00-5.00 sec 23.2 MBytes 195 Mbits/sec 16550
[ 5] 5.00-6.00 sec 23.2 MBytes 195 Mbits/sec 16550 对于优先级为2且带宽为100Mbps的队列1使用TC规则后
rootmyd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5001 -l1472 -t60 --tos 0xa
[1] 5376
warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
rootmyd-ld25x:~# Connecting to host 192.168.200.30, port 5001
[ 5] local 192.168.200.60 port 40923 connected to 192.168.200.30 port 5001
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 11.7 MBytes 98.3 Mbits/sec 8350
[ 5] 1.00-2.00 sec 11.7 MBytes 97.9 Mbits/sec 8310
[ 5] 2.00-3.00 sec 11.7 MBytes 97.7 Mbits/sec 8300
[ 5] 3.00-4.00 sec 11.7 MBytes 97.9 Mbits/sec 8310
[ 5] 4.00-5.00 sec 11.7 MBytes 97.8 Mbits/sec 8310
[ 5] 5.00-6.00 sec 11.7 MBytes 97.8 Mbits/sec 8300
[ 5] 6.00-7.00 sec 11.7 MBytes 97.9 Mbits/sec 8310 对应优先级为0且带宽无限制的流量使用TC规则后
rootmyd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60
[1] 5426
rootmyd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5000
[ 5] local 192.168.200.60 port 47330 connected to 192.168.200.30 port 5000
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 101 MBytes 845 Mbits/sec 71800
[ 5] 1.00-2.00 sec 104 MBytes 875 Mbits/sec 74300
[ 5] 2.00-3.00 sec 105 MBytes 880 Mbits/sec 74750
[ 5] 3.00-4.00 sec 105 MBytes 880 Mbits/sec 74700
[ 5] 4.00-5.00 sec 105 MBytes 881 Mbits/sec 74790
[ 5] 5.00-6.00 sec 105 MBytes 878 Mbits/sec 74560