[ipxe-devel] Build ipxe.efi with IMAGE_BZIMAGE fail
Ковалёв Сергей
SKovalev at ptsecurity.com
Thu Mar 23 14:22:25 UTC 2017
Hello.
I have tried to boot linux kernel by providing bzImage from custom build to iPXE. But it failes with error "Could not select: Exec format error (http://ipxe.org/2e008081)". In iPXE header I could see line "Features: DNS HTTP iSCSI TFTP SRP AoE EFI Menu".
So I have tried to enable bzImage support in iPXE. But faced with error:
ar: creating bin-x86_64-efi/blib.a
[VERSION] bin-x86_64-efi/version.ipxe.efi.o
[LD] bin-x86_64-efi/ipxe.efi.tmp
bin-x86_64-efi/blib.a(librm.o): In function `pm_esp':
(.data.pm_esp+0x0): relocation truncated to fit: R_X86_64_32 against symbol `_estack' defined in .stack section in bin-x86_64-efi/blib.a(stack.o)
bin-x86_64-efi/blib.a(librm.o): In function `real_to_prot':
(.text16.real_to_prot+0x1): relocation truncated to fit: R_X86_64_PC16 against symbol `enable_a20' defined in .text16.early section in bin-x86_64-efi/blib.a(liba20.o)
bin-x86_64-efi/blib.a(librm.o): In function `real_to_prot':
(.text16.real_to_prot+0x8): relocation truncated to fit: R_X86_64_16 against symbol `rm_ds' defined in .text16.data.rm_ds section in bin-x86_64-efi/blib.a(librm.o)
bin-x86_64-efi/blib.a(librm.o): In function `real_to_prot':
(.text16.real_to_prot+0x22): relocation truncated to fit: R_X86_64_16 against `.bss16.rm_virt_addrs'
bin-x86_64-efi/blib.a(librm.o): In function `real_to_prot':
(.text16.real_to_prot+0x2e): relocation truncated to fit: R_X86_64_16 against `.bss16.rm_virt_addrs'
bin-x86_64-efi/blib.a(librm.o): In function `real_to_prot':
(.text16.real_to_prot+0x33): relocation truncated to fit: R_X86_64_16 against `.bss16.rm_virt_addrs'
bin-x86_64-efi/blib.a(librm.o): In function `real_to_prot':
(.text16.real_to_prot+0x39): relocation truncated to fit: R_X86_64_16 against `.data16.gdt'
bin-x86_64-efi/blib.a(librm.o): In function `real_to_prot':
(.text16.real_to_prot+0x58): relocation truncated to fit: R_X86_64_32 against `.text.real_to_prot'
bin-x86_64-efi/blib.a(librm.o): In function `r2p_pmode':
(.text.real_to_prot+0x10): relocation truncated to fit: R_X86_64_32 against `.data.pm_esp'
bin-x86_64-efi/blib.a(librm.o): In function `r2p_pmode':
(.text.real_to_prot+0x17): relocation truncated to fit: R_X86_64_32 against symbol `idtr32' defined in .data.idtr32 section in bin-x86_64-efi/blib.a(librm_mgmt.o)
bin-x86_64-efi/blib.a(librm.o): In function `r2p_pmode':
(.text.real_to_prot+0x1f): additional relocation overflows omitted from the output
bin-x86_64-efi/blib.a(hidemem.o): In function `hide_region':
/home/xxx/ipxe/src/arch/x86/interface/pcbios/hidemem.c:97: undefined reference to `_textdata'
/home/xxx/ipxe/src/arch/x86/interface/pcbios/hidemem.c:98: undefined reference to `_etextdata'
bin-x86_64-efi/blib.a(hidemem.o): In function `hide_etherboot':
/home/xxx/ipxe/src/arch/x86/interface/pcbios/hidemem.c:158: undefined reference to `_textdata'
/home/xxx/ipxe/src/arch/x86/interface/pcbios/hidemem.c:171: undefined reference to `_text16_memsz'
/home/xxx/ipxe/src/arch/x86/interface/pcbios/hidemem.c:172: undefined reference to `_data16_memsz'
ld: bin-x86_64-efi/ipxe.efi.tmp: hidden symbol `_textdata' isn't defined
ld: final link failed: Bad value
Makefile.housekeeping:1166: recipe for target 'bin-x86_64-efi/ipxe.efi.tmp' failed
make: *** [bin-x86_64-efi/ipxe.efi.tmp] Error 1
rm bin-x86_64-efi/version.ipxe.efi.o
I build commit ce240c8c2d5d51841e3b261951b181961215de6b. My changes are:
diff --git a/src/config/console.h b/src/config/console.h
index 9f770d0..62a8c79 100644
--- a/src/config/console.h
+++ b/src/config/console.h
@@ -34,7 +34,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
*
*/
-//#define CONSOLE_SERIAL /* Serial port console */
+#define CONSOLE_SERIAL /* Serial port console */
//#define CONSOLE_FRAMEBUFFER /* Graphical framebuffer console */
//#define CONSOLE_SYSLOG /* Syslog console */
//#define CONSOLE_SYSLOGS /* Encrypted syslog console */
diff --git a/src/config/general.h b/src/config/general.h
index fb1ac93..09c6e02 100644
--- a/src/config/general.h
+++ b/src/config/general.h
@@ -107,7 +107,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
//#define IMAGE_MULTIBOOT /* MultiBoot image support */
//#define IMAGE_PXE /* PXE image support */
//#define IMAGE_SCRIPT /* iPXE script image support */
-//#define IMAGE_BZIMAGE /* Linux bzImage image support */
+#define IMAGE_BZIMAGE /* Linux bzImage image support */
//#define IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
//#define IMAGE_EFI /* EFI image support */
//#define IMAGE_SDI /* SDI image support */
Could someone give me an advice?
With best regards
Sergey Kovalev
P.S. I have successfully loaded kernel from Fedora 23 (file vmlinuz-4.4.9-300.fc23.x86_64) but I don't why.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20170323/21e32fcc/attachment.htm>
More information about the ipxe-devel
mailing list