]>
Commit | Line | Data |
---|---|---|
4176aa9f | 1 | Developer's UEFI Emulation (DUET) on Edk2\r |
2 | \r | |
0141c701 | 3 | A. Build DUET image on Windows Platform\r |
4 | ========================================\r | |
4176aa9f | 5 | 1. Tools preparation\r |
6 | \r | |
7 | To build DUET image, following tools are required:\r | |
8 | \r | |
9 | 1). *Visual Studio 2005*\r | |
10 | Assume installed at <VS_PATH>, \r | |
11 | e.g.: C:\Program Files\Microsoft Visual Studio .NET 2003\.\r | |
12 | 2). WinDDK\r | |
13 | Assume installed at <WIN_DDK_PATH>, e.g.: C:\WINDDK\3790.1830\.\r | |
14 | \r | |
15 | 2. Build steps\r | |
16 | \r | |
17 | 2.1 Build Duet Platform module \r | |
18 | \r | |
19 | 1). run cmd.exe to open command line window.\r | |
20 | 2). enter workspace root directory such as c:\edk2_tree\r | |
21 | 2). run "edksetup.bat"\r | |
22 | 3). run "build -p DuetPkg\DuetPkg.dsc -a IA32" for IA32 architecture platform or \r | |
23 | "build -p DuetPkg\DuetPkg.dsc -a X64" for X64 architecture platform.\r | |
24 | \r | |
25 | 2.2 Build BootSector\r | |
26 | 1). run "build -p DuetPkg\DuetPkg.dsc -m DuetPkg\BootSector\BootSector.inf -a IA32"\r | |
27 | \r | |
28 | 2.3 Execute post build actions \r | |
29 | 1). enter <Workspace>\DuetPkg directory.\r | |
30 | 2). run "PostBuild.bat IA32" for IA32 architecture platform or \r | |
31 | "PostBuild.bat X64" for X64 architecture platform.\r | |
32 | \r | |
33 | Create bootable disk\r | |
34 | ======================\r | |
35 | \r | |
36 | 3. Create boot disk\r | |
0141c701 | 37 | The following steps are same for IA32 architecture platform or X64 architecture platform.\r |
4176aa9f | 38 | \r |
39 | 3.1 Create floppy boot disk\r | |
40 | 1). enter <Workspace>\DuetPkg directory.\r | |
41 | 2). Insert a floppy disk to drive\r | |
42 | 3). run "CreateBootDisk.bat floppy a: FAT12" if floppy drive is a: disk.\r | |
43 | \r | |
44 | 3.2 Create usb boot disk\r | |
45 | 1). enter <Workspace>\DuetPkg directory.\r | |
46 | 2). Plugin usb disk\r | |
47 | 3). run "CreateBootDisk.bat usb e: FAT16" if usb drive is e: and FAT format is FAT16 or\r | |
48 | "CreateBootDisk.bat usb e: FAT32" if usb drive is e: and FAT format is FAT32\r | |
49 | 4). UnPlug usb disk and plugin it again.\r | |
50 | 5). run "CreateBootDisk.bat usb e: FAT16 step2" if usb drive is e: and FAT format is FAT16 or \r | |
51 | "CreateBootDisk.bat usb e: FAT32 step2" if usb drive is e: and FAT format is FAT32.\r | |
52 | \r | |
53 | \r | |
0141c701 | 54 | B. Build DUET image on Linux Platform\r |
55 | ====================================== \r | |
56 | 1. Tools preparation\r | |
57 | \r | |
58 | To build DUET image, Mingw GCC is required:\r | |
59 | \r | |
60 | 1). Check out build tools project from svn repository: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools\r | |
61 | 2). Assume check out directory is /R9/BaseTools, enter /R9/BaseTools/gcc directory. Please refer to README.txt install all the necessary\r | |
62 | build packages following:\r | |
63 | * Python 2.5\r | |
64 | * texinfo\r | |
65 | * bison\r | |
66 | * flex\r | |
67 | * libmpfr\r | |
68 | * libgmp \r | |
69 | * As well as (possibly) others tools and development packages\r | |
70 | \r | |
71 | 3). Run mingw-gcc-install.py from gcc folder, this script will download/build/install MingwGCC and BinUtil automatically\r | |
72 | 4). Create symbol link in linux environment at /opt to match default setting in tools_def.txt\r | |
73 | "ln -s /R9/BaseTools/gcc/symlinks/ar /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/ar"\r | |
74 | "ln -s /R9/BaseTools/gcc/symlinks/gcc /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/gcc"\r | |
75 | "ln -s /R9/BaseTools/gcc/symlinks/ld /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/ld"\r | |
76 | \r | |
77 | \r | |
78 | 2. Build steps\r | |
79 | \r | |
80 | 2.1 Build Duet Platform module \r | |
81 | \r | |
82 | 1). run cmd.exe to open command line window.\r | |
83 | 2). enter workspace root directory such as /R9_tree\r | |
84 | 2). run "edksetup.sh BaseTools"\r | |
85 | 3). run "build -p DuetPkg/DuetPkg.dsc -a IA32 -t UNIXGCC" for IA32 architecture platform or \r | |
86 | "build -p DuetPkg/DuetPkg.dsc -a X64 -t UNIXGCC" for X64 architecture platform.\r | |
87 | \r | |
88 | 2.2 Build BootSector\r | |
89 | 1). run "build -p DuetPkg/DuetPkg.dsc -m DuetPkg/BootSector/BootSector.inf -a IA32 -t UNIXGCC"\r | |
90 | \r | |
91 | 2.3 Execute post build actions \r | |
92 | 1). enter /R9_tree/DuetPkg directory.\r | |
93 | 2). run "./PostBuild.sh IA32" for IA32 architecture platform or \r | |
94 | "./PostBuild.sh X64" for X64 architecture platform.\r | |
95 | \r | |
986825f0 | 96 | NOTE: After post build action, you should check the size of EfiLdr at $WORKSPACE/Build/DuetPkg/DEBUG_UNIXGCC directory, it must less than 470k.\r |
97 | If not, you should manually remove some unnecessary drivers at DuetPkg.fdf file.\r | |
98 | \r | |
0141c701 | 99 | 3. Create bootable disk\r |
100 | The following steps are same for IA32 architecture platform or X64 architecture platform.\r | |
101 | Now only support floopy.\r | |
102 | \r | |
103 | 3.1 Create floppy boot disk\r | |
104 | 1). enter /R9_tree/DuetPkg directory.\r | |
105 | 2). Insert a floppy disk to drive\r | |
106 | 3). run "CreateBootDisk.sh" to build floppy drive\r | |
107 | such as "./CreateBootDisk.sh floppy /media/floppy0 /dev/fd0 FAT12" |