Developer's UEFI Emulation (DUET) on Edk2\r
\r
-Build DUET image\r
-=====================\r
+A. Build DUET image on Windows Platform\r
+========================================\r
1. Tools preparation\r
\r
-To build DUET image, following tools are required:\r
+ To build DUET image, Visual Studio is required:\r
+ 1). Base on below link to create Visual Studio build environment.\r
+ https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems\r
\r
- 1). *Visual Studio 2005*\r
- Assume installed at <VS_PATH>, \r
- e.g.: C:\Program Files\Microsoft Visual Studio .NET 2003\.\r
- 2). WinDDK\r
- Assume installed at <WIN_DDK_PATH>, e.g.: C:\WINDDK\3790.1830\.\r
- \r
-2. Build steps\r
-\r
-2.1 Build Duet Platform module \r
+2. Build Duet Platform module\r
\r
1). run cmd.exe to open command line window.\r
2). enter workspace root directory such as c:\edk2_tree\r
- 2). run "edksetup.bat"\r
- 3). run "build -p DuetPkg\DuetPkg.dsc -a IA32" for IA32 architecture platform or \r
- "build -p DuetPkg\DuetPkg.dsc -a X64" for X64 architecture platform.\r
-\r
-2.2 Build BootSector\r
- 1). run "build -p DuetPkg\DuetPkg.dsc -m DuetPkg\BootSector\BootSector.inf -a IA32"\r
- \r
-2.3 Execute post build actions \r
- 1). enter <Workspace>\DuetPkg directory.\r
- 2). run "PostBuild.bat IA32" for IA32 architecture platform or \r
- "PostBuild.bat X64" for X64 architecture platform.\r
+ 3). set the environment variable EDK_TOOLS_BIN to point at the BaseTools binaries directory\r
+ i.e., "set EDK_TOOLS_BIN=c:\edk2-BaseTools-win32"\r
+ 4). run "edksetup.bat"\r
+ 5). run "build -p DuetPkg\DuetPkgIa32.dsc -a IA32 -t VS2015x86" for IA32 architecture platform (using 64-bit VS2015 for example) or\r
+ "build -p DuetPkg\DuetPkgX64.dsc -a X64 -t VS2015x86" for X64 architecture platform.\r
+\r
+ NOTE: The post build script 'PostBuild.sh' will be automatically called after the build command.\r
+\r
\r
Create bootable disk\r
======================\r
- \r
+\r
3. Create boot disk\r
- The following steps are same for IA32 architecture platform or X64 arcchitecture platform.\r
- \r
+ The following steps are same for IA32 architecture platform or X64 architecture platform.\r
+\r
3.1 Create floppy boot disk\r
1). enter <Workspace>\DuetPkg directory.\r
2). Insert a floppy disk to drive\r
- 3). run "CreateBootDisk.bat floppy a: FAT12" if floppy drive is a: disk.\r
- \r
+ 3). run "CreateBootDisk.bat floppy a: FAT12 IA32" if floppy drive is a: disk and Arch to boot is IA32.\r
+ or\r
+ run "CreateBootDisk.bat floppy a: FAT12 X64" if floppy drive is a: disk and Arch to boot is X64.\r
3.2 Create usb boot disk\r
1). enter <Workspace>\DuetPkg directory.\r
2). Plugin usb disk\r
- 3). run "CreateBootDisk.bat usb e: FAT16" if usb drive is e: and FAT format is FAT16 or\r
- "CreateBootDisk.bat usb e: FAT32" if usb drive is e: and FAT format is FAT32\r
+ 3). run "CreateBootDisk.bat usb e: FAT16 IA32" if usb drive is e: and FAT format is FAT16 and Arch to boot is IA32.\r
+ or "CreateBootDisk.bat usb e: FAT16 X64" if usb drive is e: and FAT format is FAT16 and Arch to boot is X64.\r
+ or "CreateBootDisk.bat usb e: FAT32 IA32" if usb drive is e: and FAT format is FAT32 and Arch to boot is IA32.\r
+ or "CreateBootDisk.bat usb e: FAT32 X64" if usb drive is e: and FAT format is FAT32 and Arch to boot is X64.\r
+ 4). UnPlug usb disk and plugin it again.\r
+ 5). run "CreateBootDisk.bat usb e: FAT16 IA32 step2" if usb drive is e: and FAT format is FAT16 and Arch to boot is IA32.\r
+ or "CreateBootDisk.bat usb e: FAT16 X64 step2" if usb drive is e: and FAT format is FAT16 and Arch to boot is X64.\r
+ or "CreateBootDisk.bat usb e: FAT32 IA32 step2" if usb drive is e: and FAT format is FAT32 and Arch to boot is IA32.\r
+ or "CreateBootDisk.bat usb e: FAT32 X64 step2" if usb drive is e: and FAT format is FAT32 and Arch to boot is X64.\r
+\r
+B. Build DUET image on Linux Platform\r
+======================================\r
+1. Tools preparation\r
+\r
+ To build DUET image, GCC installation (4.4+) is required:\r
+ 1). Base on below link to create GCC build environment.\r
+ https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC\r
+\r
+2. Build Duet Platform module\r
+\r
+ 1). Open the terminal.\r
+ 2). enter workspace root directory such as /edk2_tree\r
+ 3). run ". edksetup.sh BaseTools"\r
+ 4). run "build -p DuetPkg/DuetPkgIa32.dsc -a IA32 -t GCC49" for IA32 architecture platform (using GCC 4.9 for example) or\r
+ "build -p DuetPkg/DuetPkgX64.dsc -a X64 -t GCC49" for X64 architecture platform.\r
+\r
+ NOTE: The post build script 'PostBuild.sh' will be automatically called after the build command.\r
+ After post build action, you should check the size of EfiLdr at $WORKSPACE/Build/DuetPkgIA32(DuetPkgX64)/DEBUG_GCC49 directory, it must less than 470k.\r
+ If not, you should manually remove some unnecessary drivers at DuetPkg.fdf file.\r
+\r
+3. Create bootable disk\r
+ The following steps are same for IA32 architecture platform or X64 architecture platform.\r
+\r
+3.1 Create floppy boot disk\r
+ 1). enter /edk2_tree/DuetPkg directory.\r
+ 2). Insert a floppy disk to drive\r
+ 3). run "CreateBootDisk.sh" to build floppy drive\r
+ such as "./CreateBootDisk.sh floppy /media/floppy0 /dev/fd0 FAT12 IA32"\r
+\r
+3.2 Create usb boot disk\r
+ 1). enter /edk2_tree/DuetPkg directory.\r
+ 2). Plugin usb disk\r
+ 3). run "CreateBootDisk.sh" to build usb drive\r
+ such as "./CreateBootDisk.sh usb /media/usb0 /dev/sdb0 FAT16 IA32"\r
4). UnPlug usb disk and plugin it again.\r
- 5). run "CreateBootDisk.bat usb e: FAT16 step2" if usb drive is e: and FAT format is FAT16 or \r
- "CreateBootDisk.bat usb e: FAT32 step2" if usb drive is e: and FAT format is FAT32.\r
- \r
- \r
- \r
-
\ No newline at end of file
+ 5). run "./CreateBootDisk.sh usb /media/usb0 /dev/sdb0 FAT16 IA32 step2"\r