iPXE discussion forum
Does iPXE support IMAGE_COMBOOT - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Does iPXE support IMAGE_COMBOOT (/showthread.php?tid=21535)



Does iPXE support IMAGE_COMBOOT - hugogong - 2019-12-06 03:22

I fail to compile iPXE once I remove the sign "#" ahead of IMAGE_COMBOOT in src/config/general.h.

Anybody who know if iPXE still support IMAGE_COMBOOT? Same failure on below as well.
//#define IMAGE_PXE /* PXE image support */
//#define IMAGE_SCRIPT /* iPXE script image support */
//#define IMAGE_BZIMAGE


RE: Does iPXE support IMAGE_COMBOOT - NiKiZe - 2019-12-06 12:01

if you make changes and than makes a git diff
or better, add specific lines to config/local/general.h that you want to have. and that post that content.

also show us the line you use to compile, and any error messages that you get.


// is the comment here. # is precompile flag.
Meaning that f you want IMAGE_COMBOT you create
config/local/general.h with:
#define IMAGE_COMBOT

and then compile as usual. however do note, that it is not possible to include combot in an efi build. (which is documented in the FAQ if i'm not mistaken)
Also don't try to enable anything that is already enabled by default, it's just redundant, and makes it harder to debug any issues in the future.


RE: Does iPXE support IMAGE_COMBOOT - hugogong - 2019-12-09 02:03

Ooops, sorry a mistake. The sign I mentioned is not "#" but "//". Smile what I did is to enable the choice.
I searched out some of information that the location to enable IMAGE_COMBOT while compile to remove "//" ahead of the file "config/local/general.h" or "config/general.h". I am not sure which one shall be better. Anyway, I tried three combination but fail,
1.only update "#define IMAGE_COMBOOT" in config/local/general.h
2.update both in "config/local/general.h" and "config/general.h"
3.only update in "config/general.h"

Let me post the contents of config/local/general.h
#define IMAGE_COMBOOT

Let me post the contents of config/general.h
#ifndef CONFIG_GENERAL_H
#define CONFIG_GENERAL_H

/** @file
*
* General configuration
*
*/

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );

#include <config/defaults.h>

/*
* Banner timeout configuration
*
* This controls the timeout for the "Press Ctrl-B for the iPXE
* command line" banner displayed when iPXE starts up. The value is
* specified in tenths of a second for which the banner should appear.
* A value of 0 disables the banner.
*
* ROM_BANNER_TIMEOUT controls the "Press Ctrl-B to configure iPXE"
* banner displayed only by ROM builds of iPXE during POST. This
* defaults to being twice the length of BANNER_TIMEOUT, to allow for
* BIOSes that switch video modes immediately before calling the
* initialisation vector, thus rendering the banner almost invisible
* to the user.
*/
#define BANNER_TIMEOUT 20
#define ROM_BANNER_TIMEOUT ( 2 * BANNER_TIMEOUT )

/*
* Network protocols
*
*/

#define NET_PROTO_IPV4 /* IPv4 protocol */
#undef NET_PROTO_IPV6 /* IPv6 protocol */
#undef NET_PROTO_FCOE /* Fibre Channel over Ethernet protocol */
#define NET_PROTO_STP /* Spanning Tree protocol */
#define NET_PROTO_LACP /* Link Aggregation control protocol */

/*
* PXE support
*
*/
//#undef PXE_STACK /* PXE stack in iPXE - you want this! */
//#undef PXE_MENU /* PXE menu booting */

/*
* Download protocols
*
*/

#define DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */
#define DOWNLOAD_PROTO_HTTP /* Hypertext Transfer Protocol */
#undef DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
#undef DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
#undef DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */
#undef DOWNLOAD_PROTO_NFS /* Network File System Protocol */
//#undef DOWNLOAD_PROTO_FILE /* Local filesystem access */

/*
* SAN boot protocols
*
*/

//#undef SANBOOT_PROTO_ISCSI /* iSCSI protocol */
#define SANBOOT_PROTO_ISCSI /* iSCSI protocol */
//#undef SANBOOT_PROTO_AOE /* AoE protocol */
#define SANBOOT_PROTO_AOE /* AoE protocol */
//#undef SANBOOT_PROTO_IB_SRP /* Infiniband SCSI RDMA protocol */
//#undef SANBOOT_PROTO_FCP /* Fibre Channel protocol */
//#undef SANBOOT_PROTO_HTTP /* HTTP SAN protocol */

/*
* HTTP extensions
*
*/
#define HTTP_AUTH_BASIC /* Basic authentication */
#define HTTP_AUTH_DIGEST /* Digest authentication */
//#define HTTP_AUTH_NTLM /* NTLM authentication */
//#define HTTP_ENC_PEERDIST /* PeerDist content encoding */
//#define HTTP_HACK_GCE /* Google Compute Engine hacks */

/*
* 802.11 cryptosystems and handshaking protocols
*
*/
#define CRYPTO_80211_WEP /* WEP encryption (deprecated and insecure!) */
#define CRYPTO_80211_WPA /* WPA Personal, authenticating with passphrase */
#define CRYPTO_80211_WPA2 /* Add support for stronger WPA cryptography */

/*
* Name resolution modules
*
*/

#define DNS_RESOLVER /* DNS resolver */

/*
* Image types
*
* Etherboot supports various image formats. Select whichever ones
* you want to use.
*
*/
//#define IMAGE_NBI /* NBI image support */
//#define IMAGE_ELF /* ELF image support */
//#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_COMBOOT /* SYSLINUX COMBOOT image support */
//#define IMAGE_EFI /* EFI image support */
//#define IMAGE_SDI /* SDI image support */
//#define IMAGE_PNM /* PNM image support */
#define IMAGE_PNG /* PNG image support */
#define IMAGE_DER /* DER image support */
#define IMAGE_PEM /* PEM image support */

/*
* Command-line commands to include
*
*/
#define AUTOBOOT_CMD /* Automatic booting */
#define NVO_CMD /* Non-volatile option storage commands */
#define CONFIG_CMD /* Option configuration console */
#define IFMGMT_CMD /* Interface management commands */
#define IWMGMT_CMD /* Wireless interface management commands */
#define IBMGMT_CMD /* Infiniband management commands */
#define FCMGMT_CMD /* Fibre Channel management commands */
#define ROUTE_CMD /* Routing table management commands */
#define IMAGE_CMD /* Image management commands */
#define DHCP_CMD /* DHCP management commands */
#define SANBOOT_CMD /* SAN boot commands */
#define MENU_CMD /* Menu commands */
#define LOGIN_CMD /* Login command */
#define SYNC_CMD /* Sync command */
#define SHELL_CMD /* Shell command */
//#define NSLOOKUP_CMD /* DNS resolving command */
//#define TIME_CMD /* Time commands */
//#define DIGEST_CMD /* Image crypto digest commands */
//#define LOTEST_CMD /* Loopback testing commands */
//#define VLAN_CMD /* VLAN commands */
//#define PXE_CMD /* PXE commands */
//#define REBOOT_CMD /* Reboot command */
//#define POWEROFF_CMD /* Power off command */
//#define IMAGE_TRUST_CMD /* Image trust management commands */
//#define PCI_CMD /* PCI commands */
#define PARAM_CMD /* Form parameter commands */
//#define NEIGHBOUR_CMD /* Neighbour management commands */
//#define PING_CMD /* Ping command */
#define CONSOLE_CMD /* Console command */
//#define IPSTAT_CMD /* IP statistics commands */
//#define PROFSTAT_CMD /* Profiling commands */
//#define NTP_CMD /* NTP commands */
//#define CERT_CMD /* Certificate management commands */

/*
* ROM-specific options
*
*/
#undef NONPNP_HOOK_INT19 /* Hook INT19 on non-PnP BIOSes */
#define AUTOBOOT_ROM_FILTER /* Autoboot only devices matching our ROM */

/*
* Virtual network devices
*
*/
#define VNIC_IPOIB /* Infiniband IPoIB virtual NICs */
//#define VNIC_XSIGO /* Infiniband Xsigo virtual NICs */

/*
* Error message tables to include
*
*/
#undef ERRMSG_80211 /* All 802.11 error descriptions (~3.3kb) */

/*
* Obscure configuration options
*
* You probably don't need to touch these.
*
*/

#undef BUILD_SERIAL /* Include an automatic build serial
* number. Add "bs" to the list of
* make targets. For example:
* "make bin/rtl8139.dsk bs" */
#undef BUILD_ID /* Include a custom build ID string,
* e.g "test-foo" */
#undef NULL_TRAP /* Attempt to catch NULL function calls */
#undef GDBSERIAL /* Remote GDB debugging over serial */
#undef GDBUDP /* Remote GDB debugging over UDP
* (both may be set) */
//#define EFI_DOWNGRADE_UX /* Downgrade UEFI user experience */
#define TIVOLI_VMM_WORKAROUND /* Work around the Tivoli VMM's garbling of SSE
* registers when iPXE traps to it due to
* privileged instructions */

#include <config/named.h>
#include NAMED_CONFIG(general.h)
#include <config/local/general.h>
#include LOCAL_NAMED_CONFIG(general.h)

#endif /* CONFIG_GENERAL_H */


RE: Does iPXE support IMAGE_COMBOOT - NiKiZe - 2019-12-09 07:24

Please restore you config/general.h
only add lines to config/local/general.h that you want to change
Only post config/local/general.h that only contains the relevant changes (feel free to edit your post above)
But your local/general.h looks good, now when you build that it should be good to go, and when you boot it you will see COMBOT in the header features

Oh, right you must have missed that important part:
(2019-12-06 12:01)NiKiZe Wrote:  also show us the line you use to compile, and any error messages that you get.

I will not try to decipher what you have changed from the original
Here is explanation of how it works: https://ipxe.org/appnote/named_config


RE: Does iPXE support IMAGE_COMBOOT - hugogong - 2019-12-09 08:38

(2019-12-09 07:24)NiKiZe Wrote:  Please restore you config/general.h
only add lines to config/local/general.h that you want to change
Only post config/local/general.h that only contains the relevant changes (feel free to edit your post above)
But your local/general.h looks good, now when you build that it should be good to go, and when you boot it you will see COMBOT in the header features

Oh, right you must have missed that important part:
(2019-12-06 12:01)NiKiZe Wrote:  also show us the line you use to compile, and any error messages that you get.

I will not try to decipher what you have changed from the original
Here is explanation of how it works: https://ipxe.org/appnote/named_config

I git clone a new and do not touch any other files except only create a file named general.h under the folder "src/config/local" with only one line content,
#define IMAGE_COMBOOT

I still get error with command "make bin-x86_64-efi/ipxe.efi EMBED=fix.ipxe"
The contents is :
#!ipxe
dhcp
chain http://myserver/ipxe/menu/boot.ipxe

The compile error message :
[AR] bin-x86_64-efi/blib.a
ar: creating bin-x86_64-efi/blib.a
[HOSTCC] util/elf2efi64
[VERSION] bin-x86_64-efi/version.ipxe.efi.o
[LD] bin-x86_64-efi/ipxe.efi.tmp
bin-x86_64-efi/blib.a(com32_wrapper.o): In function `com32_farcall_wrapper':
(.text+0x1): relocation truncated to fit: R_X86_64_32 against symbol `com32_farcall' defined in .text.com32_farcall section in bin-x86_64-efi/blib.a(com32_call.o)
bin-x86_64-efi/blib.a(com32_wrapper.o): In function `com32_cfarcall_wrapper':
(.text+0x8): relocation truncated to fit: R_X86_64_32 against symbol `com32_cfarcall' defined in .text.com32_cfarcall section in bin-x86_64-efi/blib.a(com32_call.o)
bin-x86_64-efi/blib.a(com32_wrapper.o): In function `com32_intcall_wrapper':
(.text+0xf): relocation truncated to fit: R_X86_64_32 against symbol `com32_intcall' defined in .text.com32_intcall section in bin-x86_64-efi/blib.a(com32_call.o)
bin-x86_64-efi/blib.a(com32_call.o): In function `com32_call__line_107__97':
com32_call.c: (.text16+0xa): relocation truncated to fit: R_X86_64_16 against `.bss16'
com32_call.c: (.text16+0x14): relocation truncated to fit: R_X86_64_16 against `.bss16'
com32_call.cSad.text16+0x19): relocation truncated to fit: R_X86_64_16 against symbol `com32_saved_sp' defined in .bss16 section in bin-x86_64-efi/blib.a(com32_call.o)
com32_call.c: (.text16+0x1c): relocation truncated to fit: R_X86_64_16 against `.bss16'
com32_call.c: (.text16+0x2b): relocation truncated to fit: R_X86_64_16 against symbol `com32_saved_sp' defined in .bss16 section in bin-x86_64-efi/blib.a(com32_call.o)
com32_call.c Sad.text16+0x30): relocation truncated to fit: R_X86_64_16 against `.bss16'
com32_call.c: (.text16+0x34): relocation truncated to fit: R_X86_64_16 against `.text16'
bin-x86_64-efi/blib.a(com32_call.o): In function `com32_intcall_instr':
com32_call.cSad.text16+0x3e): additional relocation overflows omitted from the output
Makefile.housekeeping:1191: recipe for target 'bin-x86_64-efi/ipxe.efi.tmp' failed
make: *** [bin-x86_64-efi/ipxe.efi.tmp] Error 1


RE: Does iPXE support IMAGE_COMBOOT - NiKiZe - 2019-12-09 08:41

COMBOOT not supported in efi, and wont be, build for pcbios instead