• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > XFCE+VNC+SWITCH+TSN全覆蓋!STM32MP25x核心板Debian系統發布

    XFCE+VNC+SWITCH+TSN全覆蓋!STM32MP25x核心板Debian系統發布

    作者: 時間:2025-03-10 來源:EEPW 收藏

    一、系統概述

    本文引用地址:http://www.czjhyjcfj.com/article/202503/467840.htm

    MYD-LD25X搭載的系統包含以太網、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI顯示和攝像頭等功能,同時也集成了輕量化桌面、遠程操控、網絡交換和時間敏感網絡功能,為工業設備賦予“超強算力+實時響應+極簡運維”的體驗!

    1741578873705978.png

    類別

    名稱

    描述

    源碼

    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

    12文件系統

    工具

    燒錄工具

    STM32CubeProgrammer  

    文檔

    MYD-LD25X_系統開發指南

    包含源碼編譯,燒錄等

    注:目前Debian系統只適配了高配置開發板型號:MYD-LD257-8E2D-150-I

    1741578944519350.png

    圖 MYC-LD25X核心板及開發板

    二、亮點功能介紹

    1、Xfce桌面

    Xfce是一款輕量級的開源桌面環境,旨在提供高效、穩定和易于使用的桌面體驗。

    輕量級:Xfce以資源效率為目標,注重在低資源消耗下提供快速響應和流暢的用戶體驗。它適用于各種硬件配置,包括舊式計算機和嵌入式設備。

    簡潔和直觀:Xfce遵循簡潔和直觀的設計原則,提供了直觀易用的用戶界面,使用戶能夠快速上手和自定義桌面環境。

    模塊化:Xfce采用模塊化的設計,桌面環境由多個獨立的組件(如面板、窗口管理器、文件管理器等)組成,用戶可以根據自己的需求進行定制和配置。

    1.1. 啟動Xfce

    myir-image-debian系統默認已經包含xfce顯示界面,開發板啟動進入系統后,接上屏幕會顯示如下界面,說明成功啟動Xfce,需輸入設置的賬戶進入系統界面。

    1741579031385089.png

    圖1.1 xfce顯示界面

    2、遠程控制

    2.1. vnc簡介

    (Virtual Network Computing,虛擬網絡計算)是一種遠程桌面控制技術,允許用戶通過互聯網或局域網遠程訪問和控制另一臺計算機的桌面環境。系統默認安裝了TigerVNC。以下是其核心特點和應用:

    ●   協議基礎:基于RFB協議(Remote Framebuffer Protocol),通過傳輸屏幕圖像的更新部分和用戶輸入指令實現交互。

    ●   客戶端-服務端架構:

    服務端:運行在MYD-LD25X上,負責分享屏幕并接收客戶端指令。

    客戶端:用戶通過客戶端連接到服務端,查看并操作遠程桌面。

    ●   網絡傳輸:默認使用TCP端口5900+N(N為顯示器編號,如:1對應5901)。

    2.2. 啟動VNC服務

    Debian系統默認上電就開啟VNC服務端,使用下面命令查看vnc服務:

    root@myd-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 -localhost=0 -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),如下圖所示:

    1741579051539473.png

    圖2.1 客戶端VNC界面

    ●  獲取連接信息

    通過myd-ld25x開發板獲取目標設備的IP地址或主機名

    (如192.168.40.198或myd-ld25x):

    root@myd-ld25x:~# cat /etc/hosts

    127.0.0.1 myd-ld25x

    root@myd-ld25x:~# ifconfig

    end1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

    ether 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 0

    TX packets 0  bytes 0 (0.0 B)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    device interrupt 65  base 0xc000 

    end2:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

    inet 192.168.40.198  netmask 255.255.255.0  broadcast 192.168.40.255

    inet6 fe80::bd6:742b:ef7e:ee6f  prefixlen 64  scopeid 0x20<link>

    ether 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 0

    TX packets 476  bytes 41087 (40.1 KiB)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    device interrupt 68  base 0x8000

    通過VNC服務器的log,獲取端口/顯示編號,如:1(對應端口5901)或直接指定端口號5901:

    root@myd-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.Org

    Mon Mar  3 18:02:44 2025

    vncext:VNC extension running!

    vncext:Listening for VNC connections on all interface(s), port 5901

    vncext: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

    示例2(IP+端口):192.168.40.198:5901

    以主機名為例子,配置完成后,點擊”OK”按鈕,如下圖所示:

    1741579070136532.png

    圖2.2 客戶端VNC配置

    ●  成功連接

    連接成功后,客戶端窗口將顯示遠程設備的桌面,可進行交互操作。

    1741579274368838.png

    圖2.3 VNC連接成功界面

    3、交換機功能

    3.1. 交換機簡介

    以太網交換機是一種硬件設備,用于連接局域網(LAN)上的設備,并在這些設備之間轉發數據包。它在OSI模型的數據鏈路層(第2層)運行,并使用MAC地址來確定每個數據包的目的地。以太網交換機可以通過減少沖突和擁塞來提高網絡性能,同時還可以提供如虛擬局域網(VLAN)和基于端口的訪問控制等安全功能。與以太網橋接器相比,以太網交換機在CPU使用率方面更為高效。由于硬件以太網交換機負責數據轉發、過濾和優先級排序,因此減輕了CPU的工作負擔。這樣一來,CPU可以專注于處理其他任務,從而進一步提升網絡性能。本節主要介紹myd-ld25x作為交換機進行雙網段轉發功能。

    3.2. 網絡拓撲介紹

    STM32MP257有兩個以太網控制器,MYD-LD25X以太網控制器1支持交換機功能。其網絡拓撲如下圖:

    1741579266725765.png

    圖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階段選擇交換機設備樹,如下圖所示:

    1741579306491236.png

    圖3.2 選擇交換機設備樹

    ●  轉發功能配置

    根據拓撲結構對myd-ld25x開發板板進行配置,啟動設備并設置 end1/sw0ep 接口,同時啟用 IP 轉發功能,使設備能夠充當路由器,轉發網絡流量。

    root@myd-ld25x:~# ifconfig end2 169.254.1.1 up

    root@myd-ld25x:~# ifconfig sw0p2 192.168.0.20 up

    root@myd-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_seq=1 ttl=63 time=0.959 ms

    64 bytes from 192.168.0.11: icmp_seq=2 ttl=63 time=0.618 ms

    64 bytes from 192.168.0.11: icmp_seq=3 ttl=63 time=0.649 ms

    64 bytes from 192.168.0.11: icmp_seq=4 ttl=63 time=0.669 ms

    64 bytes from 192.168.0.11: icmp_seq=5 ttl=63 time=0.625 ms

    64 bytes from 192.168.0.11: icmp_seq=6 ttl=63 time=0.624 ms

    64 bytes from 192.168.0.11: icmp_seq=7 ttl=63 time=0.630 ms

    64 bytes from 192.168.0.11: icmp_seq=8 ttl=63 time=0.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_seq=1 ttl=63 time=0.761 ms

    64 bytes from 169.254.1.2: icmp_seq=2 ttl=63 time=0.688 ms

    64 bytes from 169.254.1.2: icmp_seq=3 ttl=63 time=0.678 ms

    64 bytes from 169.254.1.2: icmp_seq=4 ttl=63 time=0.640 ms

    64 bytes from 169.254.1.2: icmp_seq=5 ttl=63 time=0.676 ms

    64 bytes from 169.254.1.2: icmp_seq=6 ttl=63 time=0.614 ms

    64 bytes from 169.254.1.2: icmp_seq=7 ttl=63 time=0.608 ms

    64 bytes from 169.254.1.2: icmp_seq=8 ttl=63 time=0.543 ms

    通過MYD-LD25X板作為路由中轉,成功實現了兩個不同子網(169.254.1.0/24 和 192.168.0.0/24)間的通信。

    4、

    4.1.簡介

    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個帶寬序列,給每個序列分別不同的優先級,如下網絡拓撲圖所示:

    1741579329466854.png

    圖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端口,并建立端口映射:

    root@myd-ld25x:~# ip link add link end2 name end2.200 type vlan id 200

    root@myd-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

    root@myd-ld25x:~# ifconfig end2.200 192.168.200.60 netmask 255.255.255.0

    在接受端(PC或者其他開發板)接收端創建vlan端口:

    root@localhost:~# ip link add link eno0 name eno0.200 type vlan id 200

    root@localhost:~# ip link set eno0.200 up

    root@localhost:~# ip addr add 192.168.200.30/24 dev eno0.200

    l  配置網絡流量

    CBS用于通過限制流量類別的數據速率來強制實施服務質量;為了將數據包劃分為不同的流量類別,用戶可以選擇使用mqprio。

    root@myd-ld25x:~# tc qdisc add dev end0 clsact

    root@myd-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 1@0 1@1 1@2 1@3 hw 0

    為每個隊列分配不同的帶寬

     // Set bandwidth of queue 1 to be 100Mbps

    root@myd-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 200Mbps

     root@myd-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 300Mbps

      root@myd-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會話,以生成具有不同優先級的多個數據流。

    root@localhost:~#  iperf3 -s -p 5003&

    root@localhost:~#  iperf3 -s -p 5002&

    root@localhost:~#  iperf3 -s -p 5001&

    root@localhost:~#  iperf3 -s -p 5000&

    在MYD-LD25X開發板,使用iperf3開始傳輸數據流:

    //Stream with SKB priority 6  : TOS=0x14 == SO_PRIORITY=6

    // https:man7.org/linux/man-pages/man8/tc-prio.8.html

    root@myd-ld25x:~#  iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0x14 &

    //Stream with SKB priority 4

    root@myd-ld25x:~#  iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0x1a &

    //Stream with SKB priority 2

    root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5001 -l1472 -t60 --tos 0xa &

    //Stream with SKB priority 0 (Best effort)

    root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60  &

    ●   測試結果

    對于優先級為6且帶寬為300Mbps的隊列3,使用TC規則后:

    root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0x14 &

    [1] 5238

    root@myd-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規則后:

    root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0x1a &

    [1] 5335

    root@myd-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規則后:

    root@myd-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

    root@myd-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規則后:

    root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60  &

    [1] 5426

    root@myd-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



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 南安市| 高雄市| 天水市| 茂名市| 苍溪县| 凤阳县| 揭东县| 蚌埠市| 秭归县| 深泽县| 巴楚县| 平泉县| 噶尔县| 宣化县| 大港区| 平昌县| 普宁市| 泗阳县| 舟山市| 平罗县| 荔浦县| 烟台市| 荥经县| 扶余县| 清新县| 定远县| 盐津县| 伊通| 常州市| 如皋市| 太康县| 邵阳县| 陆川县| 舟山市| 蓬莱市| 长宁县| 安陆市| 浦县| 黔东| 芦山县| 绍兴县|