]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DuetPkg/ReadMe.txt
DuetPkg: Add POSTBUILD in DSC files to run post-build automatically
[mirror_edk2.git] / DuetPkg / ReadMe.txt
index 6e21bfb545651aa96c7cef980681497ce49081d3..f894d94579ccd8b457f30e89d2b389f0062daa69 100644 (file)
@@ -4,102 +4,81 @@ A. Build DUET image on Windows Platform
 ========================================\r
 1. Tools preparation\r
 \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
 \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
 \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
 Create bootable disk\r
 ======================\r
-  \r
+\r
 3. Create boot disk\r
   The following steps are same for IA32 architecture platform or X64 architecture platform.\r
 3. Create boot disk\r
   The following steps are same for IA32 architecture platform or X64 architecture platform.\r
-  \r
+\r
 3.1 Create floppy boot disk\r
   1). enter <Workspace>\DuetPkg directory.\r
   2). Insert a floppy disk to drive\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.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
   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
+  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
 B. Build DUET image on Linux Platform\r
-======================================        \r
+======================================\r
 1. Tools preparation\r
 \r
 1. Tools preparation\r
 \r
-       To build DUET image, Mingw GCC is required:\r
-       \r
-               1).  Check out build tools project from svn repository: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools\r
-               2).  Assume check out directory is /R9/BaseTools, enter /R9/BaseTools/gcc directory. Please refer to README.txt install all the necessary\r
-                        build packages following:\r
-                        * Python 2.5\r
-                        * texinfo\r
-             * bison\r
-             * flex\r
-             * libmpfr\r
-             * libgmp \r
-             * As well as (possibly) others tools and development packages\r
-             \r
-               3).  Run mingw-gcc-install.py from gcc folder, this script will download/build/install MingwGCC and BinUtil automatically\r
-               4).  Create symbol link in linux environment at /opt to match default setting in tools_def.txt\r
-                        "ln -s /R9/BaseTools/gcc/symlinks/ar   /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/ar"\r
-                        "ln -s /R9/BaseTools/gcc/symlinks/gcc  /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/gcc"\r
-                        "ln -s /R9/BaseTools/gcc/symlinks/ld   /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/ld"\r
-               \r
-       \r
-2. Build steps\r
-\r
-2.1 Build Duet Platform module   \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
 \r
-  1). run cmd.exe to open command line window.\r
-  2). enter workspace root directory such as /R9_tree\r
-  2). run "edksetup.sh BaseTools"\r
-  3). run "build -p DuetPkg/DuetPkg.dsc -a IA32 -t UNIXGCC" for IA32 architecture platform or \r
-          "build -p DuetPkg/DuetPkg.dsc -a X64 -t UNIXGCC" for X64 architecture platform.\r
+2. Build Duet Platform module\r
 \r
 \r
-2.2 Build BootSector\r
-  1). run "build -p DuetPkg/DuetPkg.dsc -m DuetPkg/BootSector/BootSector.inf -a IA32 -t UNIXGCC"\r
-  \r
-2.3 Execute post build actions  \r
-  1). enter /R9_tree/DuetPkg directory.\r
-  2). run "./PostBuild.sh IA32" for IA32 architecture platform or \r
-          "./PostBuild.sh X64" for X64 architecture platform.\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
 \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. Create bootable disk\r
    The following steps are same for IA32 architecture platform or X64 architecture platform.\r
-   Now only support floopy.\r
-   \r
-   3.1 Create floppy boot disk\r
-         1). enter /R9_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"
\ No newline at end of file
+\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.sh usb /media/usb0 /dev/sdb0 FAT16 IA32 step2"\r