uefi专题

win10 gpt分区+uefi引导 卸载双系统ubuntu

1、首先暴力卸载ubuntu 在win10里面磁盘管理中找到对应的linux磁盘分区 删除卷OK 2、重启 出现下面(根据机型不同界面可能不一样 ) 3、exit 退出grub引导 进入uefi引导  选择win10引导项 (当然你要是一直按着进入bios boot的那个按键的话 也不用看第二步了 直接选择windows启动项进去 dell的话是F12) 4、进入

UEFI——Shell下读取SMBIOS信息

一、SMBIOS简介 SMBIOS的全称为System Management BIOS,它不是一个BIOS,只是与BIOS相关。它是一个规范,定义了BIOS传递给操作系统的系统管理信息。它也表示了一系列的数据结构,包含了各类信息,由BIOS启动过程中创建并放在特定的内存,之后操作系统可以拿来用。 整个 SMBIOS_STRUCTURE 结构体定义了 SMBIOS 表中的一个基本单元。每个 SM

【UEFI基础】SMBIOS基础和使用

SMBIOS的定义 SMBIOS的全称是System Management BIOS,关于它的理解包括: 它不是一个BIOS,之所以出现了BIOS字样,是因为它跟BIOS有关,仅此而已。它是一个规范,定义了BIOS传递给操作系统的系统管理信息,具体有哪些信息,可以参考SMBIOS规范。它也可以表示一系列的数据结构,包含了各类信息,由BIOS启动过程中创建并放到特定的内存,之后操作系统可以拿来用

UEFI BIOS之SMBIOS

SMBIO spec: SMBIOS Specification (dmtf.org) https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.5.0.pdf SMBIOS SMBIOS(System Management BIOS)是一种标准化的系统信息数据结构,旨在提供有关计算机硬件配置、系统功能

计算机到底如何启动?(UEFI boot)

引言 为了把BIOS和UEFI的区别弄清楚,我查了一些关于计算机启动的资料,其中看到一篇翻译自国外技术论坛的文章,(译)UEFI启动:实际工作原理纠正了我之前许多错误的认识,我重新整理、添加了一些东西,把这篇文章分享给大家,能够有一个更清晰的认识。 概念 如果想真正了解有关 UEFI 的权威知识,可以查看 UEFI 规范(可以访问官方UEFI网站)。

UEFI——HOB简单使用

HOB简介 HOB的全称是Hand-Off Block,用来存储交接的数据。 PEI是HOB的生成阶段,用来创建和修改HOB DXE是HOB的消费阶段,用来使用HOB,此时HOB是只读的 【有博客说:SEC也可以作为HOB的生成阶段、BDS也可以作为HOB的消费阶段】 HOB在PEI阶段创建,并返回一个列表(称为HOB List,HOB列表),HOB堆叠放置在其中,最终形成如下形式:

UEFI开发——编写一个简单的PPI

PEI阶段是由一个个的PEIM实现的,而PPI是PEIM之间互相调用的接口。简单来说,PPI只是一个接口,接口里面有成员函数,想调用某个函数就必须通过该接口。 PPI通过PPI描述符来描述其特性,PPI描述符是一个数据结构,定义如下: typedef struct {//UINTN是一个无符号的整数,Flags是一系列诸如EFI_PEI_PPI_DESCRIPTOR_***的组合UINTN

UEFI 启动原理及qemu 虚拟化中使用

UEFI 启动原理及qemu 虚拟化中使用 什么是BIOS?什么是 UEFI? 什么是BIOS? 计算机启动时会加载 BIOS,以初始化和测试硬件功能。它使用 POST 或 Power On Self Test 来确保硬件配置有效且工作正常,然后寻找存储引导设备的 MBR(Master Boot Records),并使用它来启动引导加载程序,然后是内核,然后操作系统。 所有这些在 BIOS

UEFI原理与编程实践--EFI System Table中的输入输出

这一节UEFI原理与编程的书籍里面貌似没有提到,不过在我上次使用飞腾源代码增加功能的过程中发现logo界面的左上角有个光标,后来发现源代码也有,这就让有强迫症的人非常不爽啦,这个光标怎么来的呢,我找了几个地方,都不对,后来懒得找了,既然在logo出现前就有这个光标了,那我直接在logo显示前清屏不就ok了么,然后把这个问题顺利解决。 输入输出在UEFI中使用非常广泛,随便举个栗子,大家经常使用的

UEFI原理与编程实践---字体

在BIOS setup界面,通常有一个选项,那就是语言选择,EDKII源代码默认是没有中文支持的,所以,即使你在dsc文件中将gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang的值设置为"zh-Hans",界面也不会有任何的反应。 UEFI将资源组织在HII包中,新增新的字符串资源,我们需要在程序中通过HiiAddPackage

UEFI原理与编程实践--UEFI驱动模型之显卡(UEFI方向)驱动分析

拆开一台国产电脑,会发现,很多重要芯片,其实已经国产化了,CPU、GPU、电源管理芯片等等,刚做了一下GOP的笔记,回头想想,之前包入厂商的显卡驱动一直没怎么关注他们的运行逻辑是什么,那么,这篇文章就来探讨深入一下,这个显卡驱动是怎么做的 国产显卡,属于前列的当属景嘉微显卡,那么这次就来分析一下JM7200的驱动是怎么做的。 UEFI驱动模型 驱动总的分为两种,一种是符合驱动模型的,一

UEFI原理与编程实践--图像显示GRAPHICS_OUTPUT_PROTOCOL

GOP,也就是GRAPHICS_OUTPUT_PROTOCOL的简称,GOP包含三个成员函数和一个成员变量: Status = gBS->LocateProtocol (&gEfiGraphicsOutputProtocolGuid,NULL,(VOID **)&GraphicsOutput); struct _EFI_GRAPHICS_OUTPUT_PROTOCOL {EFI_GRAPHIC

UEFI之虚拟环境(OVMF)

概要 模拟器平台介绍 : 一个仿真平台并不是一个实际的硬件平台 , 但它旨在证明 EDKII 核心模块的稳定性和独立于硬件可以开发模块。仿真平台和实际平台之间的差异是其加载器和仿真的硬件设备。 OvmfPkg 是基于qemu的虚拟环境,Linux 和 Windows都可以使用 源码 git clone https://github.com/tianocore/edk2.gitcd edk2

UEFI之Basetools技巧总结

概要 在EDK2中没有编写Makefile的过程,终止是通过Basetools生成编译文件和Makefile的,但是在我们使用中总是感觉没有使用Makefile顺手,所以这里进行总结; 生成静态库进行编译 这个过程就是,我编译生成一个静态库.lib文件,然后提供别人或自己在以后的编译中使用,省去了重新编译的时间,也可以实现只提供静态库和.h给别人使用; 这里以OpensslLib.inf为

UEFI 之 EDK2 环境的搭建

下载代码 下载代码主要是在githun,但需要说明的是,直接克隆的代码是不完整的,少好多的子目录和StdLib等; 克隆代码: git clone https://github.com/tianocore/edk2.git 克隆子目录代码 cd edk2git submodule update --init 更新子目录代码 cd edk2git pullgit submod

UEFI 之 HelloWorld

基础的Hello World main.c /*main.c */#include <Uefi.h>#include <Library/UefiLib.h>#include <Library/UefiApplicationEntryPoint.h>EFI_STATUSEFIAPIUefiMain (IN EFI_HANDLE ImageHandle,IN EFI_SYS

UEFI与BIOS GPT与MBR 科普

前言 在x86 中, 按下开机按钮之后.第一个运行的软件有可能为下面的其中一种(不能两者皆有),类似嵌入式系统中的bootrom1. BIOS2. UEFI当我们在讨论 BIOS 和 UEFI 的时候,我们讨论的是 x86开机后运行的第一个软件在x86 中, 硬盘的布局有可能为下面的其中一种(不能两者皆有)// ok6410a 支持 u-boot kernel rootfs 都在sd 中, 这

Linux x86_64 UEFI 启动

文章目录 前言一、UEFI二、Disk device compatibility2.1 GPT 磁盘分区表2.1.1 简介2.1.2 Linux 2.2 ESP(EFI) 文件系统2.2.1 简介2.2.2 LinuxLinux Kernel EFI Boot Stub 三、UEFI + GPT + grub23.1 简介3.2 引导方式 3.3 BOOTX64.EFI3.4 shimx

EFI/UEFI BIOS 入门

目录  [隐藏]  1 EFI/UEFI BIOS 入门 1.1 写在前面1.2 BIOS Definitions1.3 BIOS在哪里1.4 EFI BIOS1.5 一些常见的关于BIOS/EFI的问题以及我的简短回答:1.6 下面是一些深入学习bios的资源汇总: EFI/UEFI BIOS 入门 - 另附深入学习指南以及有用的URL连接 转自http://bbs.csdn

UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动

UEFI安全启动模式下安装ubuntu的nvidia显卡驱动 实践设备:华硕FX-PRO(NVIDIA GeForce GTX 960M) 一、NVIDIA官网下载驱动 1.1在浏览器地址栏输入https://www.nvidia.cn/drivers/lookup/进入网站,接着手动驱动搜索,并搜索对应的驱动(这里以NVIDIA GeForce GTX 960M为例); 1.2 紧接着弹

飞腾UEFI电源控制选择代码解析

飞腾UEFI电源控制选择代码解析 CPLD 处理方式EC 处理方式 注:本文以飞腾UEFI edk-code-4.2.0版本进行说明,如果有朋友需要借鉴,请使用该版本代码。 以D2000打工工具为例,下图打包工具中有选择主板电源管理方式,这里可以选择CPLD、EC、和SE,其中SE代表为X100控制上下电时序。为什么打包工具中要加入这一项配置呢,这是因为不同的电源控制方式,开

UEFI BIOS ROM 文件格式

1. FD (Firmware Device) 整个BIOS ROM 就是一个FD,即Firmware Device。 2. FV (Firmware Volume) 整个BIOS ROM 又被分成多个小的逻辑区块,这就是FV,即Firmware Volume。 每个Firmware Volume Image包括 Header 和 FFS Image, 还有Free Space。 3.

(转)UEFI小结-Handle的来龙去脉

本文说明:本人刚学习UEFI不久,写该文一是为了将学到的东西做一个规范化的总结,二是为了给初学UEFI的兄弟起到借鉴作用。同样地,错误的地方肯定很多,还望能得到各位弟兄指正。要理解本文,您至少应该是读过UEFI Spec,不然请先阅读UEFI Spec。 一、一些概念的理解 UEFI中会有很多抽象概念,像service、protocol、handle等等,如果将这些抽象的概念放到实际的代码中理

UEFI EDKII 编程学习

环境搭建部分 第一步: 下载EDK2 https://sourceforge.net/projects/edk2/files/latest/download?source=files  第二步: 将下载的UDK2015.Complete.MyWorkSpace中的BaseTools(Windows).zip解压到自己定义的工作目录下,例如:E:\code\edkWorkSpace\

uefi+gpt下win10/fedora双系统实现方案

博主前几天想装个linux系统熟悉一下,结果ubuntu16.04有个bug就是grub一直安装失败,联网安装和挂载在win10efi下等等情况都试了一下结果还是不行,linux系统那么多何必非吊死在ubuntu上。于是果断放弃,投入fedora的怀抱。 一、所需工具   装有win10的电脑U盘 二、安装准备 首先当然是要制作U盘启动盘了,fedora提供了制作启动盘的工具,最好不要用

Ubuntu下搭建UEFI下PXE服务端(详细)总结

目录 一、简介二、HTTP服务端搭建三、DHCP服务端搭建四、TFTP服务端搭建五、重启所有服务、关闭防火墙六、其他相关链接1、Windows下EDK2快速搭建过程总结附软件包地址2、PXE安装Linux系统原理详解3、Ubuntu系统设置常见问题处理详细总结4、UEFI下命令参数详解快速掌握 一、简介 系统:Ubuntu 22.04 平台:X86_64 本文介绍如何在Ubu