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

2024-03-29 21:52

本文主要是介绍四、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: 2renderer: networkdethernets:eth0:dhcp4: novlans:eth0.104:id: 104link: eth0addresses: [120.104.10.20/24]routes:- to: 239.0.104.0/24via: 0.0.0.0on-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.8VLAN=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.bb1 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/networkinstall -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设置都已经生效。

这篇关于四、Yocto创建静态IP和VLAN(基于raspiberrypi 4B)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/859736

相关文章

Java 如何创建和使用ExecutorService

《Java如何创建和使用ExecutorService》ExecutorService是Java中用来管理和执行多线程任务的一种高级工具,可以有效地管理线程的生命周期和任务的执行过程,特别是在需要处... 目录一、什么是ExecutorService?二、ExecutorService的核心功能三、如何创建

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc