开工须知
1. 无需在系统Path中添加任何东西,conf 文件会自动计算路径,当然,将 VC 的bin目录添加到path可以方便VScode调用这些工具,就像调用其他的普通编译器工具(gcc clang)一样.
2. 环境变量书写一定要规范,对于路径一定要以\结尾,对于文件不要以\结尾.
3. 不要认为工具必须安装在某路径,要相信维护edk2这种计算机基础配件的人不是大傻逼,它不会把所有配置写死,你定义的各种环境变量会告诉conf文件正确的文件位置,但是有一个例外,tools_def中由于有多种工具链,对于ASL 就分为微软家的和intel家的,我给你的安装包中的是英特尔家的,默认情况下,tools_def 中自动生成ASL的两种注释,我们只需要取消并且修改 iasl.exe 对应的那个记录就可以了,不要修改asl.exe的那一个,修改也行但是不要取消注释.
具体步骤
解压EDK2环境至任意目录
安装clang编译器 并且设置 "LLVM\bin\" 目录为环境变量CLANG_BIN 的值
安装CYGWIN_HOME,下载gcc-core/gcc-g++,然后设置 "CYGWIN安装目录" 为环境变量CYGWIN_HOME的值
安装 nasm 汇编语言编译器,并且设置 "nasm安装目录" 为环境变量NASM_PREFIX的值
解压 iasl 压缩包到指定文件夹,并且设置 "解压目录" 为环境变量 IASL_PREFIX的值
安装Python 使用where python 找到python.exe所在目录,然后将该目录作为环境变量 PYTHON_HOME 的值
右键VS选择 "打开文件所在位置" 然后找到 形如"Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.43.34808\"的目录,并且将完整路径设置为环境变量 VS2022_PREFIX 的值.
打开edk2 项目目录,然后运行 "edksetup.bat Reconfig"该命令会在 Conf目录生成 tools_def.txt , build_rule.txt和 target.txt.
现在可以打开刚才生成的tools_def.txt 在这里定义了我们要使用的工具,我们需要使用ACPI (高级配置和电源接口) ,而且是英特尔家的,但是适用于AMD平台.因此我们需要:
#修改后 __*_ASL_FAMILY = AMD # 如果是英特尔平台就写INTEL # __*_ASL_PATH = C:\Compiler\IASL\iasl.exe # 替换为自己的安装路径#修改前 # __*_ASL_FAMILY = INTEL # # __*_ASL_PATH = C:\ASL\iasl.exe将其更改为
build_rule.txt无需进行任何修改,但是target.txt 中仍然需要进行某些配置:
#修改目标架构至X64,我们运行在X64机器上. TARGET_ARCH X64 #多线程编译,速度更快,默认为单线程,编译速度较慢,可以修改为1 - CPU核心数之间的任意值. MAX_CONCURRENT_THREAD_NUMBER 4 #RELEASE DEBUG 随你,不是很关键,但是发行版比调试版进行了更多的优化. TARGET = RELEASE
最后效果
#C语言编译器
CLANG_BIN C:\Compiler\LLVM\bin\
CYGWIN_HOME C:\Compiler\CYGWIN\
#汇编语言编译器
NASM_PREFIX C:\Compiler\NASM\
#ACPI (高级配置和电源接口) 编译器
IASL_PREFIX C:\Compiler\IASL\
#python
PYTHON_HOME C:\Users\Administrator\AppData\Local\Programs\Python\Python313\
#VS2022
VS2022_PREFIX C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.43.34808\下载地址
我之前将软件环境进行了打包,这里我直接放链接,之前部署Halo的时候,也就是刚开始那一段时间没有超链接插件,直接嵌入链接有点影响美观,所以我就没有放进去,今天乘着大修博客的时间,放一个链接:
UEFI开发环境搭建(Windows)
https://blog.xzyuse.space/archives/923f625f-c011-40eb-b0b6-04388b21586b
评论