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