【UEFI基础】EDK网络框架(环境配置)

环境配置

为了能够让使用测试BIOS的QEMU与主机(就是指普通的Windows系统,我们使用它来编译BIOS和启动QEMU虚拟机)通过网络连接,需要额外的配置。

  1. 首先是下载和安装OpenVPN(这里安装的是OpenVPN-2.5.5-I601-amd64.msi),安装之后会多出来若干虚拟的网卡:

在这里插入图片描述

  1. 将OpenVPN TAP-Windows6改名为tap0,方便后续使用。
  2. 将虚拟网卡tap0和实际网卡桥接:

在这里插入图片描述

  1. 桥接之后会多出来一个设备:

在这里插入图片描述

注意此时tap0是“网络电缆被拔出”的状态,因为此时QEMU还没有启动。另外还需要保证在网桥的属性中,tap0是被选中的(桥接成功之后默认就是选中的,如果有异常,可能这里会没有选中,此时通信会有问题):

在这里插入图片描述

  1. 启动QEMU,主要参数:
qemu-system-x86_64 -usb -bios OVMF.fd -serial stdio -drive format=raw,file=disk.img -net nic -net tap,ifname=tap0

其中-net nic -net tap,ifname=tap0是网络相关的,QEMU使用的就是前面提到的虚拟网卡tap0。此时可以看到tap0已经连接了:

在这里插入图片描述

  1. 然后在QEMU启动的BIOS Shell下配置网络:
ifconfig -s eth0 static 192.168.3.128 255.255.255.0 192.168.3.1
  1. 配置完成之后可以使用BIOS下的ping命令进行测试:
ping 192.168.3.20

这里的192.168.3.20是测试主机的网络IP,前面配置QEMU网卡的IP时使用了相同网段的IP,注意两者必须要在用一个网段,UEFI网络似乎还不支持跨网段。测试的结果如下:

在这里插入图片描述

到这里网络环境设置基本上OK,如果发现ping不通的问题,有可能是测试主机开了防火墙的关系,关闭即可(注意关闭防火墙可能带来风险,建议只在测试时使用,平常还是开着比较好):

在这里插入图片描述

到这里网络测试环境就已经准备完成了,不过在后续的测试过程中还会用到其它的工具,比如Wireshark、tftp等,在具体使用时会进一步说明。

接下来将介绍UEFI网络协议栈以及相关的实现模块。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重新认识一下 vue3 应用实例

重新认识一下 vue 应用实例 💕 创建应用实例 每个 Vue 应用都是通过 createApp 函数创建一个新的 应用实例 应用实例必须在调用了 .mount() 方法后才会渲染出来。该方法接收一个“容器”参数,可以是一个实际的 DOM 元素或是一个 CSS 选择器字符串 //…

【GoLang入门教程】Go语言几种标准库介绍(四)

编程语言的未来? 文章目录 编程语言的未来?前言几种库fmt库 (格式化操作)关键函数:示例 Go库标准库第三方库示例 html库(HTML 转义及模板系统)主要功能:示例 总结专栏集锦写在最后 前言 上一篇,我们介绍了debug、enco…

魔术表演Scratch-第14届蓝桥杯Scratch省赛真题第1题

1.魔术表演(20分) 评判标准: 4分:满足"具体要求"中的1); 8分:满足"具体要求"中的2); 8分,满足"具体要求"中的3&#xff09…

GPU的硬件架构

SM: streaming Multiprocessor 流多处理器 sm里面有多个(sp)cuda core 32个线程称为一个warp,一个warp是一个基本执行单元 抽象概念:grid 网格 block 块 thread 线程 块中的线程大小是有讲究的,关乎到资源的调度,一般是128&#x…

关于“Python”的核心知识点整理大全59

目录 19.3.2 将数据关联到用户 1. 修改模型Topic models.py 2. 确定当前有哪些用户 3. 迁移数据库 注意 19.3.3 只允许用户访问自己的主题 views.py 19.3.4 保护用户的主题 views.py views.py 19.3.6 将新主题关联到当前用户 views.py 往期快速传送门&#x1f44…

[DevOps-02] Code编码阶段工具

一、简要说明 在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。 Git安装安装GitLab配置GitLab登录账户二、Git安装 Git官网 Githttps://git-scm.com/

卫星互联网与MEC融合方案研究

卫星互联网与MEC融合方案研究 作者:温特、王立中、司鹏、颜明明、马恬、郭伊蒙 中国卫通集团股份有限公司 本文首发:第十九届卫星通信学术年会 摘 要:在卫星互联网中引入移动边缘计算(MEC)技术可有效提高用户体验质量,降低运营成…

MySQL基础篇(一)SQL

视频地址: 黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括 SQL,全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一 标准。 一、SQL通用语…

electron自定义菜单

创建menu.js const { app, Menu } require("electron"); const createMenu () > {const menu [{label: "菜单",submenu: [{label: "新增",click: () > {},}, ],},{label: "关于",submenu: [{label: "新增",click:…

Java数据结构:1. 数据结构前置知识

文章目录 一、初识数据结构二、初识集合框架1. 什么是集合框架2. 集合框架的重要性3. 背后所涉及的数据结构以及算法 三、时间复杂度空间复杂度1. 算法效率2. 时间复杂度(1)概念(2)大O的渐进表示法(3)推导大…

计算机系统基础

C 语言相关内容省略,复习自用,仅供参考~ 概述 冯诺伊曼结构 存储程序工作方式:将事先编好的程序和原始数据送入主存后才能执行程序,程序被启动执行后,计算机能在不需要操作人员干预下自动完成逐条指令取出和执行的任…

奋楫扬帆,奔赴新程 | 2023 年图扑大事记回顾,与您携手共迎 2024

2023.01 工信部公示了 2022 年度智能制造示范工厂揭榜单位和优秀场景名单。图扑软件和上海洲邦合作建设的宁波甬友数字孪生工厂被评为优秀场景,全国共有 369 个智能制造典型场景入选。 2023.01 在第十一届中国创新创业大赛全国赛(新一代信息技术&#…

RabbitMQ(八)消息的序列化

目录 一、为什么需要消息序列化?二、常用的消息序列化方式1)Java原生序列化(默认)2)JSON格式3)Protobuf 格式4)Avro 格式5)MessagePack 格式 三、总结 RabbitMQ 是一个强大的消息中间…

通信基础——带宽

随着信息社会的发展和数字化进程的加速,通信技术已经成为现代社会最为重要的基础设施之一。而在通信技术中,带宽作为一个重要的概念,对于我们理解和应用现代通信技术具有至关重要的意义。本文将以“通信基础——带宽”为主题,对带…

高性能NVMe Host Controller IP

NVMe Host Controller IP 介绍 NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的NVMe协议命令,具备独立的数据写入AXI4-Stream/FIFO接口和数据读取AXI4-Stream/FIFO接口,非常适合于超高…

华芯微特MCU之TIMER触发ADC

01 TIMER定时器之脉冲发送功能 我们今天详细讲解一下TIMER的ADC触发功能。 SWM190的TIMER2/3支持SAR ADC触发功能,此功能配置为定时器或脉冲发送均有效,可通过配置相应寄存器实现。 将SAR ADC CTRL寄存器中TRIG设置为TIMER2触发或TIMER3触发。TIMER可作…

技术旅程分享:收获与成长的探索

2023年对我而言是充满挑战和机遇的一年,我在这段时间里积累了丰富的技术经验和个人成长。通过不懈努力和持续学习,我在技术领域迈出了一系列坚实的步伐。在这篇文章中,我将分享我在这段时间中的收获和技术成长经历,与CSDN的朋友们…

数据库存储过程

存储过程(特定功能的 SQL 语句集) 一组为了完成特定功能的 SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是…

vue的小入门

vue的快速上手 Vue概念 是一个用于构建用户界面的渐进式框架优点:大大提高开发效率缺点:需要理解记忆规则 创建Vue实例 步骤: 准备容器引包创建Vue实例new Vue()指定配置项el data>渲染数据 el指定挂载点,选择器指定控制…

解决burpsuite代理8080端口无法勾选以及卸载NI系列软件的方法

使用burpsuite中遇到这样一个问题 默认的8080端口无法绑定 提示端口已经被占用 尝试绑定其他端口,是可行的,也可以正常抓包 但是总感觉每次进来都设置添加一次,有点麻烦不舒服 那么我们来看一下8080端口到底被什么进程占用了 使用如下命令…