You are not logged in.

#1 2011-09-16 12:36:08

Flash99
Member
Registered: 2011-09-16
Posts: 11

[SOLVED]Building UEFI (EDK II) for x64 platform

HI,

I am trying to build the EDK II source for an x86 platform. I am carrying out the following steps from the release notes for Unix Systems. My OS is Linux 2.6.32

===============================================================================
                         HOW TO BUILD (UNIX-LIKE SYSTEM)
================================================================================
Unix-Like System Configuration:
  DistributorID: Ubuntu
  Description:   Ubuntu 9.10
  Release:       Ubuntu 9.10
  Codename:      Karmic

1.  Extract Common Source Code
    1)  Create a working space directory in the build machine, for example, ~/src/MyWorkspace
    2)  Extract files in [UDK2010.UP4] to the working space directory.
        In this case, it is ~/src/MyWorkspace. There are two BaseTools package one
        is for Windows system and another is for UNIX-Like system. Please make
        sure BaseTools(Unix).tar is used here.
    3)  Extract files in [P.UDK2010.UP4.Network] and copy the NetworkPkg Directory to the working    

space directory. In this case, it is ~/src/MyWorkspace.
    4)  Extract files in [P.UDK2010.UP4.SourceDebugging] and copy the SourceDebuggingPkg Directory    

    to the working space directory. In this case, it is ~/src/MyWorkspace.

3.  Generate OpenSSL* Crypto Library
    1)  Open file "~/src/MyWorkspace/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt"
        and follow the instruction to install OpenSSL* for UEFI building.


4.  Setup Build Environment
    1)  Follow instructions for setting up the build environment on tianocore.org.
        http://sourceforge.net/apps/mediawiki/t … ke_systems
        a) Please be noticed that here the root is "~/src/MyWorkspace" instead
           of "~/src/edk2"
        b) Follow the instructions for building GCC* for X64 and IA32 as well as
           building the Intel ASL compiler. Some of these steps are listed under
           the <Enabling Other Tools> section.
        c) At last check again and make sure "BaseTools", "GCC* for IA32", "GCC*
           for X64" and IASL compiler are successfully built out. Check if these
           tools path defined in "Conf/tools_def.txt" are accordant with actual
           tools path especially for UNIXGCC_IA32_PETOOLS_PREFIX,
           UNIXGCC_X64_PETOOLS_PREFIX and UNIX_IASL_BIN.

5.  Build Steps
    1)  Open a terminal and type "cd ~/src/MyWorkspace" to enter the workspace
        directory.
    2)  Initialize the build environment by typing ". edksetup.sh BaseTools".
    3)  Now type "build -t UNIXGCC -a IA32 -p Nt32Pkg/Nt32Pkg.dsc"
        to build the platform.


I am successful in executing the steps untill I run the last command which is 'build'. This instruction is from the link
http://sourceforge.net/apps/mediawiki/t … ke_systems (as pointed up above in step 4.1)

I get errors while running the command build.

Could someone help?

Regards!

Last edited by Flash99 (2011-09-20 05:06:54)

Offline

#2 2011-09-16 14:27:51

Flash99
Member
Registered: 2011-09-16
Posts: 11

Re: [SOLVED]Building UEFI (EDK II) for x64 platform

 These are the Error messages that I receive:
/tmp/cc21nZXF.s: Assembler messages:
/tmp/cc21nZXF.s:2: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:2: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:2: Warning: setting incorrect section attributes for .debug_abbrev
/tmp/cc21nZXF.s:4: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:4: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:4: Warning: setting incorrect section attributes for .debug_info
/tmp/cc21nZXF.s:6: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:6: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:6: Warning: setting incorrect section attributes for .debug_line
/tmp/cc21nZXF.s:11: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:11: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:11: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:11: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:58: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:58: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:58: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:58: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:117: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:117: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:148: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:148: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:148: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:148: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:1594: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:1594: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:1594: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:1594: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:1612: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:1612: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:1621: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:1621: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:1621: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:1621: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:1972: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:1972: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:2082: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:2082: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:2102: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:2114: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:2150: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:2210: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:2222: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:2281: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:2281: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:3839: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:3839: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:3842: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:3850: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4117: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4122: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4132: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4137: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4154: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4162: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4173: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4176: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4187: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4190: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4194: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4200: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4206: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4212: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4223: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4226: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4230: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4232: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4236: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4242: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4248: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4254: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4260: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4262: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4267: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4271: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4273: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4285: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4291: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4297: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4303: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4309: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4315: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4321: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4327: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4329: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4341: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4347: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4353: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4359: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4365: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4371: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4382: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4388: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4394: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4400: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4406: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4412: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4418: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4441: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4490: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4515: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4612: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4666: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4673: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4675: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4679: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4685: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4691: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4708: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4711: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4715: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4721: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4727: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4733: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4735: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4739: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4741: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4746: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4750: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4752: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4764: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4791: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4794: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4809: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4836: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4889: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4903: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:4944: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:4944: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:5567: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:5567: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:5570: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:5587: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:5587: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:5587: Warning: setting incorrect section attributes for .debug_aranges
/tmp/cc21nZXF.s:5590: Error: unknown pseudo-op: `.secrel32'
/tmp/cc21nZXF.s:5599: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:5599: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:5633: Warning: entity size for SHF_MERGE not specified
/tmp/cc21nZXF.s:5633: Warning: group name for SHF_GROUP not specified
/tmp/cc21nZXF.s:5648: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:5648: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:5648: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:5648: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:5649: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:5649: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:5649: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:5649: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:5650: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:5650: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:5650: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:5650: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:5651: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:5651: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:5651: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:5651: Error: unknown pseudo-op: `.endef'
/tmp/cc21nZXF.s:5652: Error: unknown pseudo-op: `.def'
/tmp/cc21nZXF.s:5652: Error: unknown pseudo-op: `.scl'
/tmp/cc21nZXF.s:5652: Error: unrecognized symbol type "32"
/tmp/cc21nZXF.s:5652: Error: unknown pseudo-op: `.endef'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_abbrev'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_info'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_line'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.rdata'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_frame'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_loc'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_pubnames'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_aranges'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_ranges'
as: /home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/./PrintLibInternal.obj: warning: sh_link not set for section `.debug_str'
make: *** [/home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/PrintLibInternal.obj] Error 1


build.py...
 : error 7000: Failed to execute command
        make tbuild [/home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BasePrintLib/BasePrintLib]


build.py...
 : error 7000: Failed to execute command
        make tbuild [/home/max/UEFI/UDK2010.UP4/Build/MdeModule/DEBUG_UNIXGCC/X64/MdePkg/Library/BaseLib/BaseLib]


build.py...
 : error F002: Failed to build module
        /home/max/UEFI/UDK2010.UP4/MdePkg/Library/BasePrintLib/BasePrintLib.inf [X64, UNIXGCC, DEBUG]

Last edited by Flash99 (2011-09-16 15:12:20)

Offline

#3 2011-09-16 14:52:13

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED]Building UEFI (EDK II) for x64 platform

Flash99, welcome to the forums.

When pasting code, please use [ code ] tags https://bbs.archlinux.org/help.php#bbcode

like this

It makes the code more readable and more convenient to scroll through.

Please edit your posts.

Offline

#4 2011-09-16 15:13:35

Flash99
Member
Registered: 2011-09-16
Posts: 11

Re: [SOLVED]Building UEFI (EDK II) for x64 platform

Ok I have done that. I will read the further rules on posting too.

Thanks for the feedback.

Offline

#5 2011-09-16 17:52:14

skodabenz
Banned
From: Tamilnadu, India
Registered: 2010-04-11
Posts: 382

Re: [SOLVED]Building UEFI (EDK II) for x64 platform

@Flash99: Try https://gitorious.org/tianocore_uefi_du … nz_scripts . I regularly compile DuetPkg X64 firmware. Which package do you want to compile? I guess EmulatorPkg/Unix . I use git checkout of tianocore.git.sourceforge.net/git/gitweb.cgi?p=tianocore/edk2;a=summary (GIT mirror of SVN repo).

You might need https://github.com/skodabenz/My_Shell_S … ocore_uefi (all files in that dir) and modify the variables to suit your system. After changing the variables run https://github.com/skodabenz/My_Shell_S … e_setup.sh . BTW Nt32Pkg won't compile in Unix systems.


My new forum user/nick name is "the.ridikulus.rat" .

Offline

#6 2011-09-19 06:32:55

Flash99
Member
Registered: 2011-09-16
Posts: 11

Re: [SOLVED]Building UEFI (EDK II) for x64 platform

skodabenz,

1. Which package do you want to compile? I guess EmulatorPkg/Unix .
A -> I want to write to compile a simple hello world program that I can run from the EFI shell. The Release notes do not specify the process for a particular package. But coming back to your question I want to build the entire environment, not just some specific package and the release notes are helping us do exactly that according to me. Please correct me if I am wrong. The EdkCompatibilityPkg package contains the source code for EFI (DXE and PEI) so I want this package to be compiled as further development will use the library files in this package.

2. A few more details and doubts
The processor being used here is a (64 bit) Sandy Bridge Processor, Intel core i7. When building the environment, the settings pointed out in the Conf/target.txt file is IA32 or X64. Does this mean that UEFI is not compatible with x86_64 platforms?   since X64 seems more like IA 64 (Itanium). I understand the UEFI does support Sandy Bridge from articles from the net. When you compile the DuetPkg X64, what processor are you using? Are you using the 64 bit Itanium?

3. I am trying to understand if I am missing out some settings in the configuration. I am going strictly as per the release notes and instructions from the net for Unix Systems.

4. I have downloaded the EDK II kit from the following path
http://sourceforge.net/projects/edk2/fi … p/download

Last edited by Flash99 (2011-09-19 07:23:44)

Offline

#7 2011-09-19 07:14:37

skodabenz
Banned
From: Tamilnadu, India
Registered: 2010-04-11
Posts: 382

Re: [SOLVED]Building UEFI (EDK II) for x64 platform

Flash99 wrote:

skodabenz,

1. Which package do you want to compile? I guess EmulatorPkg/Unix .
A -> I want to write to compile a simple hello world program that I can run from the EFI shell. The Release notes do not specify the process for a particular package. But coming back to your question I want to build the entire environment, not just some specific package and the release notes are helping us do exactly that according to me. Please correct me if I am wrong. The EdkCompatibilityPkg package contains the source code for EFI (DXE and PEI) so I want this package to be compiled as further development will use the library files in this package.

What is your use-case? You should compile a specific package/module depending on it. FOr me I want a UEFI environment in a system wich contains only BIOS, hence I use DuetPkg. If you wnat to compile UEFI for QEMU, try OvmfPkg. If you wan tto create a UEFI emulator that runs in Linus use EmulatorPkg. For the same emulator in 32-bit WIndows use Nt32Pkg etc.

To use EDK2 libraries, you should adapt your project to use its build system. AFAIK there is no way to compile the lib separately ans use them in another project which uses a normal unix build system (./configure, make, make install etc.).

FOr more questions ask in edk2-devel mailing list in Sourceforge.net .

2. A few more details and doubts
The processor being used here is a (64 bit) Sandy Bridge Processor, Intel core i7. When building the environment, the settings pointed out in the Conf/target.txt file is IA32 or X64. Does this mean that UEFI is not compatible with x86_64 platforms?   since X64 seems more like IA 64 (Itanium). I understand the UEFI does support Sandy Bridge from articles from the net. When you compile the DuetPkg X64, what processor are you using? Are you using the 64 bit Itanium?

X64 == em64t == amd64 == intel64 == x86_64

IA-64 == Itanium

i386 == IA-32 == x86-32 (same for i486, i586, i686)

From what I gather, you want a UEFI emnironment to test some UEFI apps. For that EmulatorPkg or DuetPkg (for real-hardware BIOS-chainloaded UEFI env) is suited for you. You can also try my DuetPkg builds - www.rodsbooks.com/bios2uefi/index.html . Regards.


My new forum user/nick name is "the.ridikulus.rat" .

Offline

#8 2011-09-20 04:59:03

Flash99
Member
Registered: 2011-09-16
Posts: 11

Re: [SOLVED]Building UEFI (EDK II) for x64 platform

Hi,

While debugging the errors, I noticed that some packages were missing from the zip file UDK2010.UP4.zip that I downloaded from the website at sourceforge. I then checked the net for an updated EDK II package and found one at https://github.com/tianocore/edk2. I then re ran the tests once again and successfully compiled the Duet/Mde/EdkCompatability packages.

But none the less thanks for your help and your advice. There is also a mistake in one of the header files EbcSimpleDebugger.h that lies at the location MdeModulePkg\Include\Protocol\. At lines 20 and 21 the following needs to be corrected from

#include <Protocol/DebugSupport.h>
#include <Protocol/EbcVmTest.h>

to 

#include <Protocol\DebugSupport.h>
#include <Protocol\EbcVmTest.h>

Regards!
Flash

Last edited by Flash99 (2011-09-20 05:01:10)

Offline

#9 2011-09-20 07:04:11

skodabenz
Banned
From: Tamilnadu, India
Registered: 2010-04-11
Posts: 382

Re: [SOLVED]Building UEFI (EDK II) for x64 platform

Flash99 wrote:

Hi,

While debugging the errors, I noticed that some packages were missing from the zip file UDK2010.UP4.zip that I downloaded from the website at sourceforge. I then checked the net for an updated EDK II package and found one at https://github.com/tianocore/edk2. I then re ran the tests once again and successfully compiled the Duet/Mde/EdkCompatability packages.

You can also use git://tianocore.git.sourceforge.net/gitroot/tianocore/edk2 .

But none the less thanks for your help and your advice. There is also a mistake in one of the header files EbcSimpleDebugger.h that lies at the location MdeModulePkg\Include\Protocol\. At lines 20 and 21 the following needs to be corrected from

#include <Protocol/DebugSupport.h>
#include <Protocol/EbcVmTest.h>

to 

#include <Protocol\DebugSupport.h>
#include <Protocol\EbcVmTest.h>

You need to mention this in edk2-devel ML - http://sourceforge.net/apps/mediawiki/t … ling_Lists .


My new forum user/nick name is "the.ridikulus.rat" .

Offline

Board footer

Powered by FluxBB