四、Yocto创建静态IP和VLAN(基于raspiberrypi 4B)

Yocto创建VLAN配置

在车载域控中很多时候需要创建VLAN,本小节记录如何为yocto构建出来的image自动化创建静态IP以及VLAN。
关于各种VLAN的配置参考:VLAN

1. ubuntu系统中使用netplan创建VLAN

正常情况下我们在ubuntu系统中可以通过netplan来自动化创建vlan,下面给一个配置文件01-network-manager-all.ymal:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
  vlans:
    eth0.104:
      id: 104
      link: eth0
      addresses: [120.104.10.20/24]
      routes:
      - to: 239.0.104.0/24
        via: 0.0.0.0
        on-link: true

将这个文件放到/etc/netplan/文件夹下重启即可看见自动生成的vlan网卡。

2. 嵌入式系统中使用systemd-networkd创建VLAN

在嵌入式系统中不存在netplan,我们可以使用systemd-networkd来创建VLAN. 我们的配置文件需要放到/etc/systemd/network文件夹下:
在这里插入图片描述
里面的具体内容:
10-eth0.network:(当eth0网卡注册时设置静态IP 网关和DNS,以及创建104vlan)

[Match]
Name=eth0

[Network]
Address=192.168.34.20/24
Gateway=192.168.34.1
DNS=8.8.8.8

VLAN=eth0.104

20-eth0.104.netdev:(根据netdev创建vlan104网卡)

[NetDev]
Name=eth0.104
Kind=vlan

[VLAN]
Id=104

30-eth0.104.network:(配置vlan104网卡的ip和网关)

[Match]
Name=eth0.104

[Network]
Address=120.104.10.20/24
Gateway=120.104.10.1

如果需要创建多个VLAN参考上面创建多个netdev和network即可。

3. 集成到yocto构建系统

综合上面章节我们只需要把我们的netdev和network文件放到根文件系统/etc/systemd/network文件夹下即可,下面我们就创建一个bb文件来完成这部分工作。
首先在meta-rpi-robot下面新建recipes-network/vlanconfig文件夹:

mkdir -p recipes-network/vlanconfig

创建如下文件夹和bb 文件:

~/work/raspberry/poky-kirkstone/meta-rpi-robot/recipes-network/vlanconfig (main ✘)✹✭ ᐅ tree .
.
├── files
│   ├── 10-eth0.network
│   ├── 20-eth0.104.netdev
│   └── 30-eth0.104.network
└── vlanconfig_0.1.bb

1 directory, 4 files

vlanconfig_0.1.bb 内容如下:

SUMMARY = "Add VLAN Config For RPI Robot"
DESCRIPTION = "Add VLAN Config For RPI Robot"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://10-eth0.network \
        file://20-eth0.104.netdev \
        file://30-eth0.104.network \
"

do_install() {
    install -d ${D}${sysconfdir}/systemd/network
    install -m 0644 ${WORKDIR}/10-eth0.network ${D}${sysconfdir}/systemd/network/
    install -m 0644 ${WORKDIR}/20-eth0.104.netdev ${D}${sysconfdir}/systemd/network/
    install -m 0644 ${WORKDIR}/30-eth0.104.network ${D}${sysconfdir}/systemd/network/
}

FILES_${PN} = "${sysconfdir}/systemd/network/*"

到这里为之我们的集成工作就差不多了,可以使用如下指令编译验证:

bitbake vlanconfig

完成以后我们还需要将这个集成打包到构建镜像里面,追加IMAGE_INSTALL变量:
在这里插入图片描述
然后编译全image:

bitbake rpi-robot-image

刷机验证:
在这里插入图片描述
可以看到静态IP和VLAN设置都已经生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/516604.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全猎/暴漏攻击面搜索

推荐: FullHunt | Expose YourAttack Surface Discover, monitor, and secure your attack surface. FullHunt delivers the best platform in the market for attack surface security.https://fullhunt.io/

Echarts 自适应宽高,或指定宽高进行自适应

文章目录 需求分析 需求 有一个按钮实现对Echarts的指定缩放与拉长&#xff0c;形成自适应效果 拉长后效果图 该块元素缩短后效果图 分析 因为我习惯使用 ref 来获取组件的 DOM 元素&#xff0c;然后进行挂载 <div ref"echartsRef" id"myDiv" :sty…

C++核心高级编程 --- 4.类和对象

文章目录 第四章&#xff1a;4.类和对象4.1 封装4.1.1 封装的意义4.1.2 struct与class的区别 4.2 对象的初始化和清理4.2.1 构造函数和析构函数4.2.2 构造函数的分类及调用4.2.3 拷贝构造函数调用时机4.2.4 构造函数调用规则4.2.5 深拷贝与浅拷贝4.2.6 初始化列表4.2.7 类对象作…

Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System

1、动机 推荐系统被应用于推荐服务&#xff0c;提高人们的生活质量&#xff0c;但仍存在一些问题。缺少交互性、可解释性&#xff0c;缺乏反馈机制&#xff0c;以及冷启动和跨域推荐。 Chat-Rec 将用户画像和历史交互转换为 Prompt&#xff0c;有效地学习用户的偏好&#xff…

【漏洞复现】用友NC cloud importhttpscer 存在任意文件上传

0x01 阅读须知 “如棠安全的技术文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供…

STM32L4R9 的 QuadSPI Flash 通讯速率不理想

1. 引言 客户反应 STM32L4R9 同 QSPI Flash 通讯&#xff0c;测出来的读取速率为 10MB/s&#xff0c; 和理论值相差较大。 2. 问题分析 按照客户的时钟配置和 STM32L4R9 的数据手册中的数据&#xff0c;OSPI 读数速率为 10MB/s 肯定存在问题。同时我们也可以在 AN4760 应用手…

python 字符串补齐

参考文献 https://blog.csdn.net/ViatorSun/article/details/130424704 今天遇到一个格式化字符串的问题 "123".ljust(8,"0")"123".rjust(8,"0")

苍穹外卖07(缓存菜品,SpringCache,缓存套餐,添加购物车菜品和套餐多下单,查看购物车,清除购物车,删除购物车中一个商品)

目录 一、缓存菜品 1 问题说明 2 实现思路 3 代码开发&#xff1a;修改DishServiceImpl 4 功能测试 二、SpringCache 1. 介绍 2. 使用语法 1 起步依赖 2 使用要求 3 常用注解 4 SpEL表达式(了解备用) 5 步骤小结 3.入门案例 1 准备环境 2 使用入门 1 引导类上加…

b站评论词频统计绘制词云图

一、评论爬取 在笔者之前的文章中&#xff0c;已经专门介绍了b站评论的爬取&#xff08;传送门&#xff09;&#xff0c;这里只对b站评论的文本数据做展示。如下图所示&#xff1a; 二、分词、去停用词、词频统计 Python中的Jieba分词作为应用广泛的分词工具之一&#xff0c;其…

【面试经典150 | 动态规划】最长回文子串

文章目录 写在前面Tag题目来源解题方法方法一&#xff1a;动态规划 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内容进行…

【OJ】动规练习六

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 413. 等差数列划分1.1 分析1.2 代码 2. 978. 最长湍流子数组2.1 分析2.2 代码 3. 139. 单词拆分3.1 分析3.2 代码 1. 413. 等差数列划分 1.1 分析 一、题目解析&#xff1a; 至少有三个元素才能构成等差数列&#xff…

【开发环境】Mac 安装 Visual Studio Code ( VSCode 简介 | 下载 VSCode | 安装 VSCode | 安装中文语言包 )

文章目录 一、Visual Studio Code 简介二、MAC 安装 Visual Studio Code1、下载 Visual Studio Code2、安装 Visual Studio Code3、安装中文语言包4、编辑 html 并运行 一、Visual Studio Code 简介 Visual Studio Code 简称 VSCode , 是 微软 开发的一款 轻量级 / 跨平台 的代…

前视声呐目标识别定位(五)-代码解析之修改声呐参数

前视声呐目标识别定位&#xff08;一&#xff09;-基础知识 前视声呐目标识别定位&#xff08;二&#xff09;-目标识别定位模块 前视声呐目标识别定位&#xff08;三&#xff09;-部署至机器人 前视声呐目标识别定位&#xff08;四&#xff09;-代码解析之启动识别模块 …

arm裸机-1、定时器pwm

时钟配置 我们使用s3c2440&#xff0c;主频12M&#xff0c;查看用户手册 通过锁相环抬升到400MHZ&#xff0c;分成三条通路&#xff0c;通过HHDIVN和PDIVN配置频率比&#xff0c;这个频率比配置手册已经给出。 配置MPLL主频400Mhz&#xff0c; 通过这个公式算出MPLL s、p、m都…

Redis从入门到精通(四)Redis实战(二)商户查询缓存

↑↑↑请在文章头部下载测试项目原代码↑↑↑ 文章目录 前言4.2 商户查询缓存4.2.1 缓存介绍4.2.2 查询商户信息的传统做法4.2.2.1 接口文档4.2.2.2 代码实现4.2.2.3 功能测试 4.2.3 查询商户信息添加Redis缓存4.2.3.1 逻辑分析4.2.3.2 代码实现4.2.3.3 功能测试 4.2.3 数据一致…

动力云客-B站(第一天)

一 项目技术选型及开发工具 前后端分离的项目&#xff08;前端项目 后端项目&#xff09; 前端&#xff1a;Html、CSS、JavaScript、Vue、Axios、Element Plus后端&#xff1a;Spring Boot、Spring Security、MyBatis、MySQL、Redis 相关组件&#xff1a;HiKariCP&#x…

【C++进阶】带你手撕红黑树(红与黑的爱恨厮杀)

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 总有光环在陨落&#xff0c;总有新星在闪烁 引言&#xff1a; 之前我们…

K8S- Deployment 的滚动更新 Rolling Update

滚动更新 这里的更新指的不是更新deployment 本身的属性(label/ replicas)等&#xff0c; 而是更新POD 的container 的版本 更新方法通常有两种 是直接update deployment配置&#xff0c; 注意只有update了template中的内容(与container相关) 才会触发更新用kubectl set ima…

【蓝桥杯】GCD与LCM

一.概述 最大公约数&#xff08;GCD&#xff09;和最小公倍数&#xff08;Least Common Multiple&#xff0c;LCM&#xff09; 在C中&#xff0c;可以使用 std::__gcd(a, b)来计算最大公约数 1.欧几里德算法/辗转相除法 int gcd(int a,int b){return b?gcd(b, a%b):a; } 2…

CATIA软件 焊点坐标(BiW Welding SpotPoint)导出txt文本的操作方法

通常我们客户给的工件是带焊点球的形式&#xff0c;且可导出焊点坐标。如下图所示的焊点位置标识及坐标&#xff0c;即是CATIA中Automotive BiW Fastening模块下的BiW Welding SpotPoint焊点定义。 遇到这样的形式&#xff0c;要导出焊点坐标txt文本&#xff0c;可按如下图片找…