• UEFI——edk安装与配置


    本文大部分参考:罗冰,对应数据来源,并且记录了自己的安装及调试过程。

    edk安装

    Note:尝试在Windows10虚拟机中安装了edk2(使用git clone)及其各种stable版本,使用的配置以及安装步骤大体按照《UEFI编程实践》的配置过程,但均未果。不知是否为同一虚拟机曾安装过UDK2018的原因。之后再进行尝试。

    之后建议安装过程参考github中edk官方文档信息进行对比。

    UDK2018安装
    1. 主要参考Luobing安装UDK,以及官方说明
    2. 注意点:
      1. 安装虚拟机的时候安装了Windows 10,但开机总是跳出boot management然后更改设置为BIOS设置,成功
      2. 安装所需资料都在文章前述数据来源中。(包括udk,visual studio,openssl,nasm,asl,python)
      3. 使用的是VS2015 x86 Native Tools Command Prompt!

    edk调试

    UDK2018在WINDBG下的调试
    1. 主要参考Luobing以及《UEFI编程实践》以及这里
    2. 注意点:
      1. 大体步骤按照第一个参考
      2. 顺利进行到步骤3结束,在步骤4——调试UEFI app中,出现问题,先列出我的解决方案
        1. 使用步骤4提到的Luo2.efi以及《UEFI编程实践》中提到的helloworld.efi示例(都是通过),都不能跳转到相应的c文件。
        2. 使用例子是参考3的AppPkg的main作为示例进行调试,将然后调试部分对应的代码我是使用的是NOOPT,不是debug指令。
          使用的指令为build -p AppPkg\AppPkg.dsc -m AppPkg\Applications\Main\Main.inf -b NOOPT -a X64
          生成文件对应路径中为C:\MyWorkspace\edk2-vUDK2018\edk2-vUDK2018\Build\AppPkg\NOOPT_VS2015x86\X64\main.efi
        3. 把main.efi使用Winimage放入dos.img的根文件目录中
        4. 然后首先打开WINDBG,然后打开qemu_x86_64.bat,在WINDBG命令行中输出g,等待,以启动UEFI shell,此时FS0目录就是dos.img对应根目录,然后break WINDBG正在运行,使用bu加入断点,在UEFI shell中输出main.efi即可跳到相应源文件.c
          1. 这一过程首先会定位到cpubreakpoint.c,当点击break后会跳到cpusleep.c,然后会跳到bu设定源文件所在的点
        5. 常用指令(bu设breakpoint,bl显示所有breakpoint(若显示出来是eu,说明不对,没有找到对应breakpoint,正确一般是e(就我所见到的来说)),bc去除breakpoint,k查看)
    UDK2018在VS2015下的调试
    1. 主要参考luobing以及《UEFI编程实践》
    2. 注意点:
      1. 大体步骤按照第一个参考,方式为-b DEBUG,可以调试
      2. 同样,使用其他不在NT32Pkg中的程序进行执行时,不能实现代码级的调试。
      3. 只可以IA32,用x64编译(《UEFI编程实践》里使用的)会出现错误。
        Notes: 只是想尝试一下,了解过程,(知道了.vcxproj里面可以设置build时的控制命令。)
  • 相关阅读:
    git 常用命令
    最近任务 && react文章列表
    markdown 常用格式API
    webpack 插件怎么写
    iframe
    重置浏览器滚动条css
    webpack4
    vscode插件开发
    vscode插件
    react router 的push replace
  • 原文地址:https://www.cnblogs.com/nipper/p/16136609.html
Copyright © 2020-2023  润新知