0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞芯微(EASY EAI)RV1126B以太网通讯

广州灵眸科技有限公司 2025-11-26 11:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 网络配置简介

本文档介绍了系统的网络基础配置。另外为了解决在程序中修改网络配置需求,我们也提供使用yaml-cpp库修改网络配置的简单示例。

1.1 netplan与yaml文件

1.1.1 背景

本分析系统运行环境采用的是Ubuntu22.04系统。由于Ubuntu从18.04版本不再使用 ifupdown 配置网络,而改用 netplan,所以在 /etc/network/interfaces 配置固定IP是无效的,必须在/etc/netplan/xxxx.yaml中进行网络配置,即我们需要了解yaml文件的基础语法。

1.1.2 语法基础及注意事项

以下语法并不包含YAML的所有语法,只说明网络配置中所需语法。更详细的语法知识请参考YAML官网:https://yaml.org/

l 数据结构采用键值对的形式,即(键名称: 值),注意冒号后面要有空格。

l 数组有两种表达方式,例如配置双ip地址时每个元素单独一行,并以(- )开头;配置DNS时使用方括号,元素用逗号隔开。如下图所示。

wKgZPGkmcrqAZ7JIAAAnoRbZNfM541.jpg

l 使用缩进表示层级关系,缩进使用空格不推荐使用 tab,因为在不同系统 tab 长度可能不一样。

l 字母大小写敏感。

1.2 以太网卡使用操作

1.2.1 网口接线

wKgZPGkmcruAe4rrABPbVQA5Vzk976.jpg

1.2.2 修改以太网配置

用以下命令查看开发板网络配置存放路径,会发现有4个配置文件。其中50-eth0-init.yaml是【NET0】相关的netplan配置,51-eth1-init.yaml是【NET1】相关的netplan配置。

ls /etc/netplan/

wKgZO2kmcrqAFhwiAAAc0XJ7kCk426.jpg

内容如下:

wKgZO2kmcrqAfuRjAAAhFOpdIS8515.jpg

关于【DHCP】和【静态IP】分别的配置细节说明,如下图所示:

wKgZPGkmcrqAalBOAACjIxWnzfo667.jpg

注意:无论是【DHCP】还是【静态IP】,均需要插上网线才能生效,ifconfig那里才能查到配下去的IP地址。

网络配置既可以分开写,也可以写在同一个yaml文件里。下面是一个把NET0和NET1写在一起(99_config.yaml),并且把eth0配置成DHCP,把eth1配置成静态IP的示例:

wKgZO2kmcrqAMIzGAABX57STmSw405.jpg

如果对yaml进行过了修改,则需要执行下方命令进行更新:

sudo netplan generate sudo netplan apply

2. 快速上手

2.1 开发环境准备

如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》,并按照其相关的操作,进行编译环境的部署

在PC端Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,具体如下所示。

cd ~/develop_environment ./run.sh

wKgZPGkmcrqAUDHhAAGt1XOkqw8819.jpg

2.2 源码下载以及例程编译

首先,在虚拟机后台终端,执行以下命令,创建外设单例源码管理目录:

cd /opt mkdir -p EASY-EAI-Nano-TB/demo

首先,到【百度网盘】上下载相关的单例程序:

链接:https://pan.baidu.com/s/1Br608Hiff2Xs65PzWO_qWQ?pwd=1234

提取码:1234

比如把单例程序下载到:此电脑\D:\BaiduNetdisk (无规定,用户可自主选择),如下图所示。

wKgZPGkmcrqAeQ1IAACltnsu3u4793.jpg

再将下载好的单例复制进入虚拟机的文件系统,过程如下图所示。

wKgZO2kmcrqAGhlVAAEnNvmgHow663.jpgwKgZO2kmcruAekwKAAEv5Q2aAtI194.jpgwKgZPGkmcruACD4tAAD8OEV-9Xc176.jpg

最后,进入到对应的例程目录执行编译操作,具体命令如下所示:

cd EASY-EAI-Nano-TB/demo/01_network ./build.sh

注:* 由于依赖库部署在板卡上,因此交叉编译过程中必须保持/mnt挂载。

wKgZO2kmcruAGGktAAF8FhzNIJo512.jpg

若有以下报错则需要在【开发板上】安装一下libyaml-cpp-dev库

wKgZO2kmcruABBxzAACH-qZwRtQ486.jpg

sudo apt-get install libyaml-cpp-dev

2.3 例程运行

通过串口调试或ssh调试,进入板卡后台,定位到例程部署的位置,如下所示:

cd /userdata

wKgZPGkmcruAf6txAAAhJ1hkYDs219.jpg

运行例程命令如下所示:

./test-ethernet

此demo的效果是把eth0的配置修改成【静态IP:192.168.1.170】,如果编译环境mount的是eth0或者是通过ssh调试,且之前DHCP到的IP不是192.168.1.170,此例程执行完毕后,所有链接会被断开。

2.4 运行效果

执行效果如下所示。

wKgZO2kmcruAHS4rAABANxODkck695.jpg

配置文件也同时被修改了:

wKgZPGkmcruAPiYGAABNPIW8joE398.jpg

3. 操作例程

例程位于01_network/test-ethernet/main.cpp

3.1 例程源码

以下代码展示了设置eth0的ip地址、DNS、网关参数的使用案例,供用户编码参考:

int main() { // 加载YAML文件 YAML::Node config = YAML::LoadFile("/etc/netplan/50-eth0-init.yaml"); // =====================修改eth0的参数========================== //把DHCP禁用 config["network"]["ethernets"]["eth0"]["dhcp4"] = "false"; // 修改eth0的IP地址 //方式1:固定写入第一个位置 config["network"]["ethernets"]["eth0"]["addresses"][0] = "192.168.1.170/24"; //方式2:追加插入 // 输入 IP 地址和子网掩码 std::string eth0_ip_str = "192.168.1.171"; std::string eth0_mask_str = "255.255.255.0"; std::string eth0_cidr = mask_transition_cidr(eth0_ip_str, eth0_mask_str); //config["network"]["ethernets"]["eth0"]["addresses"].push_back(eth0_cidr); // 修改eth0的DNS地址 YAML::Node addresses_eht0_dns = YAML::Load("[8.8.8.8,8.8.4.4]");//[8.8.8.8, 8.8.4.4]这是一个序列,需要转换 config["network"]["ethernets"]["eth0"]["nameservers"]["addresses"] = addresses_eht0_dns; // 修改eth0的routes地址 config["network"]["ethernets"]["eth0"]["routes"][0]["to"] = "0.0.0.0/0"; config["network"]["ethernets"]["eth0"]["routes"][0]["via"] = "192.168.1.1"; config["network"]["ethernets"]["eth0"]["routes"][0]["metric"] = "100"; #if 0 // =====================修改eth1的参数========================= config["network"]["ethernets"]["eth1"]["dhcp4"] = "false"; //方式1:固定写入第一个位置 config["network"]["ethernets"]["eth1"]["addresses"][0] = "192.168.1.172/24"; //方式2:追加插入 //std::string eth1_ip_str = "192.168.1.171"; //std::string eth1_mask_str = "255.255.255.0"; //std::string eth1_cidr = mask_transition_cidr(eth1_ip_str,eth1_mask_str); //config["network"]["ethernets"]["eth1"]["addresses"].push_back(eth1_cidr); YAML::Node addresses_eht1_dns = YAML::Load("[8.8.8.8,8.8.4.4]"); config["network"]["ethernets"]["eth1"]["nameservers"]["addresses"] = addresses_eht1_dns; config["network"]["ethernets"]["eth1"]["routes"][0]["to"] = "0.0.0.0/0"; config["network"]["ethernets"]["eth1"]["routes"][0]["via"] = "192.168.1.1"; config["network"]["ethernets"]["eth1"]["routes"][0]["metric"] = "150"; #endif // ==============将修改后的YAML文档写回到文件中================== std::ofstream fout("/etc/netplan/50-eth0-init.yaml"); fout << config; fout.close(); // =======================重启网卡=============================== system("sudo netplan generate"); system("sudo netplan apply"); return 0; }

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 瑞芯微
    +关注

    关注

    27

    文章

    901

    浏览量

    54734
  • 以太网通讯
    +关注

    关注

    0

    文章

    30

    浏览量

    7563
  • EASY-EAI灵眸科技

    关注

    4

    文章

    136

    浏览量

    3753
  • RV1126B
    +关注

    关注

    0

    文章

    126

    浏览量

    281
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    (EASY EAI)RV1126B 音频输入

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 12-18 13:41 2700次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输入

    (EASY EAI)RV1126B PWM使用

    1.PWM简介1.1开发板PWM资源1.2查找PWM节点rv1126b的pwm资源表如下:【PWM1CH0】对应的是pwm1_4ch_0,寄存地址为20700000。【PWM1CH1】对应
    的头像 发表于 01-06 10:49 8936次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> PWM使用

    (EASY EAI)RV1126B 音频输出

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 04-01 17:13 8719次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输出

    (EASY EAI)RV1126B 千兆以太网电路

    1.千兆以太网电路RV1126B芯片拥有1个GMAC控制器,可以对外提供RMII/RGMII接口扩展外置以太网百兆/千兆PHY芯片,也可以切换到内置的百兆FEPHY上,二者只能选择其中一个,不能同时
    的头像 发表于 05-20 17:22 3876次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 千兆<b class='flag-5'>以太网</b>电路

    EASY EAI Nano-TB(RV1126B)开发板试用】+初识篇

    Nano-TB是灵眸科技研发的一款应用于AIoT领域的开发板,它基于RV1126B处理器,集成了4个Cortex-A53及独立的NEON协处理器,它支持4K@30fps的H.
    发表于 10-25 22:06

    EASY EAI Nano-TB(RV1126B)开发板试用】+1、开箱上电

    ,避免因接触不良导致显示或采集异常。 2 硬件解析:强劲AI核心与丰富接口 2.1 核心处理器性能 EASY EAI Nano-TB开发板的核心基于
    发表于 11-19 21:39

    EASY EAI Nano-TB(RV1126B)开发板试用】介绍、系统安装

    ,并介绍了系统镜像安装部署的相关流程。 介绍 EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。 核心板基于
    发表于 12-23 18:05

    RV1126系列选型指南:从RV1126RV1126B,一文看懂升级差异

    2025年7月,正式发布新一代AI视觉芯片RV1126B。作为其金牌方案商,EASYEAI灵眸科技同步推出搭载该芯片的AIoT核心板EAI11
    的头像 发表于 09-04 10:50 5455次阅读
    <b class='flag-5'>RV1126</b>系列选型指南:从<b class='flag-5'>RV1126</b>到<b class='flag-5'>RV1126B</b>,一文看懂升级差异

    【免费试用】EASY EAI Nano-TB(RV1126B)开发套件评测

    EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。核心板基于RV1126B处理器设计,并引入了新
    的头像 发表于 09-23 08:09 1397次阅读
    【免费试用】<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b> Nano-TB(<b class='flag-5'>RV1126B</b>)开发套件评测

    RV1126B特性概述

    RV1126BRockchip在2025年第二季度全新推出的Arm架构AI视觉芯片,搭载4核Cortex-A53与自研3Tops算力NPU。全面替代上一代的
    的头像 发表于 10-09 11:22 2395次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>特性概述

    替代升级实锤!实测RV1126B,CPU性能吊打RV1126

    AI智能芯片迭代提速,推出了全新的Arm架构AI视觉芯片RV1126B,是否替换RV1126,CPU性能是挤牙膏还是大突破。带着这些核
    的头像 发表于 12-11 17:13 2737次阅读
    替代升级实锤!实测<b class='flag-5'>RV1126B</b>,CPU性能吊打<b class='flag-5'>RV1126</b>

    (EASY EAI)RV1126B 人体关键点识别

    的特点。本人员检测算法在数据集表现如下所示:基于EASY-EAI-Nano-TB(RV1126B)硬件主板的运行效率:17个人体关键点索引定义:2.快速上手2.1开发
    的头像 发表于 01-23 10:13 4176次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 人体关键点识别

    (EASY EAI)RV1126B rknn-toolkit-lite2使用方法

    1.rknn-toolkit-lite2介绍RKNN-Toolkit-Lite2是(Rockchip)专为旗下RK系列芯片(如RV1126B、RK3576、RK3588等)打造的
    的头像 发表于 04-22 17:38 1031次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> rknn-toolkit-lite2使用方法

    (EASY EAI)RV1126B yolov11训练部署教程

    、使用最广泛的YOLO变体。YOLO11将延续YOLO系列的传奇。本教程针对目标检测算法yolo11的训练和部署到EASY-EAI-Nano-TB(RV1126B)进行
    的头像 发表于 05-09 16:59 874次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> yolov11训练部署教程

    RV1126B 方案特性

    RV1126B是面向边缘视觉场景的专用处理芯片,凭借低功耗、内置AI-ISP、双路MIPI-CSI接口以及端侧AI算力,可支撑常规监控、双光谱、多目视觉等多类相机产品开发,配合定
    的头像 发表于 05-11 14:27 1396次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b> 方案特性