为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > UEFI 虚拟环境的建立

UEFI 虚拟环境的建立

2018-05-18 4页 doc 353KB 2阅读

用户头像

is_704284

暂无简介

举报
UEFI 虚拟环境的建立UEFI虚拟环境的建立UEFI虚拟环境主要有两种:一种是建立于操作系统之上的,类似一个应用程序的虚拟环境(称为:Nt32),该虚拟环境是无法加载光盘efi文件启动的。另一种是运行于过去的BIOS之上的虚拟环境(DUET),此种虚拟环境更接近于实际的UEFI环境,可以加载光盘efi文件启动。一、首先介绍第一种UEFI虚拟环境(Nt32)的建立方法:1、系统需求MicrosoftWindows2000/XP/2003256MB+系统内存500MB+硬盘空间VisualStudio.NET2003or2005Professional...
UEFI  虚拟环境的建立
UEFI虚拟环境的建立UEFI虚拟环境主要有两种:一种是建立于操作系统之上的,类似一个应用程序的虚拟环境(称为:Nt32),该虚拟环境是无法加载光盘efi文件启动的。另一种是运行于过去的BIOS之上的虚拟环境(DUET),此种虚拟环境更接近于实际的UEFI环境,可以加载光盘efi文件启动。一、首先介绍第一种UEFI虚拟环境(Nt32)的建立:1、系统需求MicrosoftWindows2000/XP/2003256MB+系统内存500MB+硬盘空间VisualStudio.NET2003or2005Professional(VisualStudio2008与VisualStudio2005的使用方法相同)2、解压EDK(EFI_DEVELOP_KIT)包。先从HYPERLINK"https://edk.tianocore.org/servlets/ProjectDocumentList"https://edk.tianocore.org/servlets/ProjectDocumentList官方网页中下载最新EDK的相关源码包。并解压,默认的解压文件夹为:C:\Fw\Edk3、建立Nt32模拟环境使用VisualStudio命令行模式作为编译环境。并在命令行中输入VcVars32命令,即建立使用VisualStudiox86工具的编译环境。如下图:图1.1建立编译环境然后在命令行中输入:cdC:\FW\Edk\Sample\Platform\Nt32\Build若是使用VS2005或者VS2008则需要修改该文件夹下的Config.env文件。可以用记事本打开,将SetUSE_VC8=NO改为:SetUSE_VC8=YES接下来就可以开始编译和建立NT32模拟环境了。输入命令如下:setEDK_SOURCE=C:\FW\EDKcdC:\FW\Edk\Sample\Platform\Nt32\build接下来就是等待Nt32模拟环境建立完成。4、使用Nt32模拟环境首先设置环境变量,可以直接运行System.cmd来自动设置环境变量,也可以手动修改。环境变量主要是定义如下几项:匹配一个1.44MB的软盘,命令如下:setEFI_WIN_NT_PHYSICAL_DISKS=a:RW;2880;512设置窗体名称,命令如下:setEFI_WIN_NT_UGA="UGAWindow1"设置一个系统路径作为一个EFINt32模拟环境下的文件系统,命令如下:setEFIWINNTFILESYSTEM=c:\virtual(需要先在C盘目录下建立一个virtual的文件夹)设置完环境变量后,如下图所示:图1.2模拟环境编译完成后输入命令:cdUefiSystemNmakeRun即可开始运行Nt32模拟环境,建立完成。建立过程也可以参考台北的UEFI培训课程的。、DUET模拟环境的建立DUET模拟环境分为:x86(即32位)和x64两种。建立方法略有不同,基本过程样。1、先介绍x86模式的DUET模拟环境建立(1)准备工具建立DUET镜像,需要以下工具:1)*VisualStudio2003*或者*VisualStudio2005/2008*。假定安装在<VS_PATH>。例如VS_PATH=C:\ProgramFiles\MicrosoftVisualStudio2005。2)WinDDKo假定安装在<WIN_DDK_PATH>。例如:WIN_DDK_PATH=C:\WinDDK\6001_18001o3)MASM。假定安装在<MASMPATH>。例如:MASMPATH=C:\MASM611o(2)准备源代码(源代码都可以从https://www.tianocore.org官网上下载最新版本)1)解压缩Edk-Dev-Snapshot-20081121.zip(或更新)到一个目录中,例如:C:\(即c盘根目录)。EDK源码将解压在C:\Edk下。可以标记这个路径为<EdkRoot>。2)解压缩EnhancedFat-Dev-Snapshot-20081121.zip(和上面的EDK版本相对应)到【J<EdkRoot>\Other\Maintained\Universal\Disk\FileSystem下。(3)建立步骤(以VS2005为例,VS2008相同)1)运行VisualStudio2005CommandPrompt来开启命令行形式并输入命令VcVars32,此步骤同建立Nt32模拟环境。2)设置环境变量,输入命令如下:setEDK_SOURCE=<EdkRoot>setWIN_DDK_PATH=<WIN_DDK_PATH>setMASMPATH=<MASMPATH><EdkRoot>是Edk的根目录,根据上面的源代码解压缩目录,<EdkRoot>应该为C:\Edk。而<WIN_DDK_PATH><是WinDDK的安装目录,例如根据上面的是:C:\WinDDK\6001.18001o<MASMPATH>是MASM的安装目录,例如上面的C:\MASM611O3)输入命令到<EdkRoot>\Sample\Platform\DUET目录下:CdC:\Edk\Sample\Platform\DUET4)修改该目录下的Config.env文件,将文件中的"USE_VC8=NO"改为"USE_VC8=YES”。5)最后输入命令:Nmake<target>来建立模拟环境镜像。<target>可以为以下四个之一:efi32,uefi32,efi64,uefi64。建议32位选用uefi32。所以命令为:nmakeuefi32。等待编译完成。(4)创建U盘启动1)首先确定所用的U盘可以被启动加载到DOS。即U盘可以通过BIOS启动2)设置环境变量,输入下面的命令:setEFI_BOOT_DISK=<UD>:这里<UD>为所插入U盘的盘符。若是H则为setEFI_BOOT_DISK=H:。3)输入命令:NmakecreateusbNmakeusb如果是建立在FAT32文件格式下的U盘,则输入下面命令:Nmakecreateusb32Nmakeusb32等待完成后,这个U盘就可以通过BIOS来加载启动UEFI模拟环境了。在此之前需要在BIOS中设置能够U盘启动,而且将优先级高于从硬盘启动。2、然后介绍x64模式的DUET模拟环境建立(1)准备工具建立DUET镜像,需要以下工具:1)*VisualStudio2003*或者*VisualStudio2005/2008*。假定安装在<VS_PATH>。例如VS_PATH=C:\ProgramFiles\MicrosoftVisualStudio2005。2)WinDDKo假定安装在<WIN_DDK_PATH>。例如:WIN_DDK_PATH=C:\WinDDK\6001_18001o3)MASM。假定安装在<MASMPATH>。例如:MASMPATH=C:\MASM611o(2)准备源代码(源代码都可以从https://www.tianocore.org官网上下载最新版本)1)解压缩Edk-Dev-Snapshot-20081121.zip(或更新)到一个目录中,例如:C:\(即c盘根目录)。EDK源码将解压在C:\Edk下。可以标记这个路径为<EdkRoot>。2)解压缩EnhancedFat-Dev-Snapshot-20081121.zip(和上面的EDK版本相对应)到【J<EdkRoot>\Other\Maintained\Universal\Disk\FileSystem下。(3)建立步骤(以VS2005为例,VS2008相同)1)运行VisualStudio2005CommandPrompt来开启命令行形式并输入命令VcVars32,此步骤同建立32位模拟环境。2)设置环境变量,输入命令如下:setEDK_SOURCE=<EdkRoot>setWIN_DDK_PATH=<WIN_DDK_PATH>setMASMPATH=<MASMPATH><EdkRoot>是Edk的根目录,根据上面的源代码解压缩目录,<EdkRoot>应该为C:\Edk。而<WIN_DDK_PATH><是WinDDK的安装目录,例如根据上面的是:C:\WinDDK\6001.18001o<MASMPATH>是MASM的安装目录,例如上面的C:\MASM611O3)输入命令到<EdkRoot>\Sample\Platform\DUET目录下:CdC:\Edk\Sample\Platform\DUET4)修改该目录下的Config.env文件,将文件中的"USE_VC8=NO"改为"USE_VC8=YES”。5)最后输入命令:Nmake<target>来建立模拟环境镜像。<target>可以为以下四个之一:efi32,uefi32,efi64,uefi64。建议64位选用uefi64。所以命令为:nmakeuefi640图2.164位模拟环境编译出错如上图所示,如果直接使用指令编译,会出现上面找不到e:\WinDDK\6001.18001\bin\win64\x86\amd64\lib路径的错误,是由于WinDDK中本身就没有这个路径。我现在的解决方法是在e:\WinDDK\6001.18001\bin目录下新建一个win64的文件夹,并将e:\WinDDK\6001.18001\bin目录下的x86文件夹拷贝到win64那个新建的文件夹下。然后重新编译。编译中主要的错误是找不到编译器或者链接器路径,解决的方法是新建路径并通过拷贝所需的编译器或者链接器到这个新建路径下。拷贝的编译器或链接器都是来自于e:\WinDDK\6001.18001\bin目录下和C:\ProgramFiles\MicrosoftVisualStudio9.0\VC\bin目录下。一下是编译成功的界面:gVisualStudio2008ConandPro>ptfXPlatformXDUETsuefi64\X64\Efi64.com2+Fu\Efildr64FuXEfildrPureHYPERLINK"file://d:/EdkXSampleXPlatfopnXDUETXuefie4XX64XSTART64.COM"d:\EdkXSampleXPlatfopnXDUETXuefie4XX64XSTART64.COMfl:XEdkXSampleXPlatfornXDUETXuefi64\X64\Efi64.con2FuXEfildr641ms〉uupied.copyZbd:\Edk\SampleXPlatform\BUET\uefL64\X64\Stl6_64.coiii+d:\EdksSamplekPlatformXDUETsuefi64\X64\Efi64.com2+FuSEfildr64FuXEfildrlGPut'ed:\Edk\Sample\Platforn\DUET\uefi64\XS4\ST16_64.C0Md:\Edk\Sample\Platforn\DUET\uefi64\XS4\Ef164.con2FvXEfildr641filecopied.d:\Edl<\Sainple\Plat£orniXDLIETXuie£iG4\TooXGenPag-eF^XEfildrlGPui'eFv\E£ild:\Edk\Sample\PlatforinXDllETXuiefi64XTooIsXGenPageFuXEfildrPureFusEfildrdrlBcopyZbd:\EdkXSanpleXPlatfornt\BUET\uefi64\X64\St32_64.co[Ti+d:\EdksSaniplekPlatformXDUETsuefi64\X64\Efi64.com2+Fu\Efildr64FuXEfildr20Put*eHYPERLINK"file://d:/EdkXSampleXPlatfopnXDUETXuefie4XX64XST32_64.COM"d:\EdkXSampleXPlatfopnXDUETXuefie4XX64XST32_64.COMd:XEdk\SrtiupleXPIdtfuriiXDUETXuefi64XX&4XEfi64.uumZFuXEfildr641£ilecopied-d:\Edk\Sample\PlatforinXDLIETXuiefi64\TooIsXGenPageFuXEfildr20PureFuXEfildr200):XEdk\SampleXPlatfornXDUET>,图2.264位模拟环境编译成功(4)创建U盘启动1)首先确定所用的U盘可以被启动加载到DOS。即U盘可以通过BIOS启动2)设置环境变量,输入下面的命令:setEFI_BOOT_DISK=:这里为所插入U盘的盘符。若是H则为setEFI_BOOT_DISK=H:。3)输入命令:NmakecreateusbNmakeusb如果是建立在FAT32文件格式下的U盘,则输入下面命令:Nmakecreateusb32Nmakeusb32等待完成后,这个U盘就可以通过BIOS来加载启动UEFI模拟环境了。在此之前需要在BIOS中设置能够U盘启动,而且将优先级高于从硬盘启动。
/
本文档为【UEFI 虚拟环境的建立】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索