ld -m elf_i386 -N -T arch/i386/core/etherboot.lds -o bin/filo.elf.rt bin/elfprefix.exit.o bin/filo.rt.o bin/filo.rt.o: In function `install_pxe_stack': : undefined reference to `allot_base_memory' bin/filo.rt.o: In function `install_pxe_stack': : undefined reference to `e820mangler_size' bin/filo.rt.o: In function `install_pxe_stack': : undefined reference to `install_rm_callback_interface' bin/filo.rt.o: In function `install_pxe_stack': : undefined reference to `install_e820mangler' bin/filo.rt.o: In function `use_undi_ds_for_rm_stack': : undefined reference to `forget_real_mode_stack' bin/filo.rt.o: In function `hook_pxe_stack': : undefined reference to `hide_etherboot' bin/filo.rt.o: In function `unhook_pxe_stack': : undefined reference to `unhide_etherboot' bin/filo.rt.o: In function `remove_pxe_stack': : undefined reference to `forget_base_memory' bin/filo.rt.o: In function `pxenv_restart_tftp': : undefined reference to `get_free_base_memory' make: *** [bin/filo.elf.rt] Error 1 rm bin/elfprefix.entry.o bin/filo.rt.o bin/elfprefix.exit.o bin/filo.o ----------------------------------------------------------------------------------------------------
src/Config # Select which buses etherboot should support CFLAGS+= -DCONFIG_PCI CFLAGS+= -DCONFIG_ISA # CFLAGS+= -DCONFIG_PCMCIA
# For prompting and default on timeout CFLAGS+= -DASK_BOOT=3 -DBOOT_FIRST=BOOT_NIC # If you would like to attempt to boot from other devices as well as the network. # CFLAGS+= -DBOOT_SECOND=BOOT_FLOPPY # CFLAGS+= -DBOOT_THIRD=BOOT_DISK # CFLAGS+= -DBOOT_INDEX=0
# If you prefer the old style rotating bar progress display # CFLAGS+= -DBAR_PROGRESS
# Show size indicator # CFLAGS+= -DSIZEINDICATOR
# Enabling this creates non-standard images which use ports 1067 and 1068 # for DHCP/BOOTP # CFLAGS+= -DALTERNATE_DHCP_PORTS_1067_1068
# Enabling this makes the boot ROM require a Vendor Class Identifier # of "Etherboot" in the Vendor Encapsulated Options # This can be used to reject replies from servers other than the one # we want to give out addresses to us, but it will prevent Etherboot # from getting an IP lease until you have configured DHCPD correctly # CFLAGS+= -DREQUIRE_VCI_ETHERBOOT
# EXPERIMENTAL! Set DHCP_CLIENT_ID to create a Client Identifier (DHCP # option 61, see RFC2132 section 9.14) when Etherboot sends the DHCP # DISCOVER and REQUEST packets. This ID must UNIQUELY identify each # client on your local network. Set DHCP_CLIENT_ID_TYPE to the # appropriate hardware type as described in RFC2132 / RFC1700; this # almost certainly means using '1' if the Client ID is an Ethernet MAC # address and '0' otherwise. Set DHCP_CLIENT_ID_LEN to the length of # the Client ID in octets (this is not a null terminated C string, do # NOT add 1 for a terminator and do NOT add an extra 1 for the # hardware type octet). Note that to identify your client using the # normal default MAC address of your NIC, you do NOT need to set this # option, as the MAC address is automatically used in the # hwtype/chaddr field; note also that this field only sets the DHCP # option: it does NOT change the MAC address used by the client.
# CFLAGS+= -DDHCP_CLIENT_ID="'C','L','I','E','N','T','0','0','1'" \ # -DDHCP_CLIENT_ID_LEN=9 -DDHCP_CLIENT_ID_TYPE=0
# CFLAGS+= -DDHCP_CLIENT_ID="0xDE,0xAD,0xBE,0xEF,0xDE,0xAD" \ # -DDHCP_CLIENT_ID_LEN=6 -DDHCP_CLIENT_ID_TYPE=1
# EXPERIMENTAL! Set DHCP_USER_CLASS to create a User Class option (see # RFC3004) when Etherboot sends the DHCP DISCOVER and REQUEST packets. # This can be used for classification of clients, typically so that a # DHCP server can send an appropriately tailored reply. Normally, a # string identifies a class of to which this client instance belongs # which is useful in your network, such as a department ('FINANCE' or # 'MARKETING') or hardware type ('THINCLIENT' or 'KIOSK'). Set # DHCP_USER_CLASS_LEN to the length of DHCP_USER_CLASS in octets. # This is NOT a null terminated C string, do NOT add 1 for a # terminator. RFC3004 advises how to lay out multiple User Class # options by using an octet for the length of each string, as in this # example. It is, of course, up to the server to parse this.
# CFLAGS+= -DDHCP_USER_CLASS="'T','E','S','T','C','L','A','S','S'" \ # -DDHCP_USER_CLASS_LEN=9
# CFLAGS+= -DDHCP_USER_CLASS="5,'A','L','P','H','A',4,'B','E','T','A'" \ # -DDHCP_USER_CLASS_LEN=11
# for btext console support # CFLAGS+= -DCONSOLE_BTEXT # for direct PC kbd support # CFLAGS+= -DCONSOLE_PC_KBD # Set to enable FILO support # for FILO support it will make main call pci_init INCLUDE_FILO=y ifdef INCLUDE_FILO CFLAGS+= -DCONFIG_FILO endif
# Enabling this causes Etherboot to ignore Etherboot-specific options # that are not within an Etherboot encapsulated options field. # This option should be enabled unless you have a legacy DHCP server # configuration from the bad old days before the use of # encapsulated Etherboot options. CFLAGS+= -DALLOW_ONLY_ENCAPSULATED
# Disable DHCP support # CFLAGS+= -DNO_DHCP_SUPPORT
# Set to enable static boot information # CFLAGS+= -DUSE_STATIC_BOOT_INFO
# Specify the static boot values # All must be specified, if -DUSE_STATIC_BOOT_INFO is defined # CFLAGS+= -DSTATIC_CLIENT_IP="192.168.25.25" # CFLAGS+= -DSTATIC_SUBNET_MASK="255.255.255.0" # CFLAGS+= -DSTATIC_SERVER_IP="192.168.25.101" # CFLAGS+= -DSTATIC_GATEWAY_IP="192.168.25.1" # CFLAGS+= -DSTATIC_BOOTFILE="tftp://192.168.25.101/pxelinux.0"
# Specify a default bootfile to be used if the DHCP server does not # provide the information. If you do not specify this option, then # DHCP offers that do not contain bootfiles will be ignored. # CFLAGS+= -DDEFAULT_BOOTFILE="tftp://192.168.1.254/lts/pxelinux.0"
# Exit if there is an error loading the boot file # CFLAGS+= -DEXIT_ON_FILE_LOAD_ERROR
# Limit the delay on packet loss/congestion to a more bearable value. See # description above. If unset, do not limit the delay between resend. CFLAGS+= -DBACKOFF_LIMIT=7 -DCONGESTED
# More optional features # CFLAGS+= -DTRY_FLOPPY_FIRST=4 # CFLAGS+= -DEXIT_IF_NO_OFFER
# For a serial console, which can run in parallel with FIRMWARE console # CFLAGS+= -DCONSOLE_DUAL -DCOMCONSOLE=0x3F8 -DCONSPEED=9600
# Enable tagged image, generic ELF, Multiboot ELF # or FreeBSD ELF/a.out boot image support CFLAGS+= -DTAGGED_IMAGE -DELF_IMAGE # CFLAGS+= -DAOUT_IMAGE -DIMAGE_MULTIBOOT -DIMAGE_FREEBSD # CFLAGS+= -DAOUT_IMAGE -DAOUT_LYNX_KDI # CFLAGS+= -DCOFF_IMAGE # CFLAGS+= -DRAW_IMAGE
# Download files via TFTP CFLAGS+= -DDOWNLOAD_PROTO_TFTP # FSP support # CFLAGS+= -DDOWNLOAD_PROTO_FSP -DDEFAULT_PROTO_FSP # Change download protocol to NFS, default is TFTP # CFLAGS+= -DDOWNLOAD_PROTO_NFS # Change download protocol to HTTP, default is TFTP # CFLAGS+= -DDOWNLOAD_PROTO_HTTP # Change default protocol to NFS # CFLAGS+= -DDEFAULT_PROTO_NFS # Support to resolve hostnames in boot filename # CFLAGS+= -DDNS_RESOLVER
# Multicast Support # CFLAGS+= -DALLMULTI -DMULTICAST_LEVEL1 -DMULTICAST_LEVEL2 -DDOWNLOAD_PROTO_TFTM
# Etherboot as a PXE network protocol ROM # (Requires TFTP protocol support) CFLAGS+= -DPXE_IMAGE -DPXE_EXPORT # Etherboot stricter as a PXE network protocol ROM # CFLAGS+= -DPXE_DHCP_STRICT
# Support for PXE emulation. Works only with FreeBSD to load the kernel # via pxeboot, use only with DOWNLOAD_PROTO_NFS # CFLAGS+= -DFREEBSD_PXEEMU
# Include an auto-incrementing build serial number and optional build # ID string # CFLAGS+= -DBUILD_SERIAL # CFLAGS+= -DBUILD_SERIAL -DBUILD_ID="testing"
# Do not relocate # core/relocate.c should really be moved to an arch specific directory # but this is here for archs that don't support relocation # CFLAGS+= -DNORELOCATE
# you should normally not need to change these HOST_CC= gcc CPP= gcc -E -Wp,-Wall RM= rm -f TOUCH= touch PERL= /usr/bin/perl CC= gcc AS= as LD= ld SIZE= size AR= ar RANLIB= ranlib OBJCOPY= objcopy
CFLAGS+= -Os -ffreestanding CFLAGS+= -Wall -W -Wno-format CFLAGS+= $(EXTRA_CFLAGS) ASFLAGS+= $(EXTRA_ASFLAGS) LDFLAGS+= $(EXTRA_LDFLAGS) # For debugging # LDFLAGS+= -Map $@.map
# Location to place generated binaries, and files BIN=bin ----------------------------------------------------------------------------- arch/i386/Confi
# BIOS select don't change unless you know what you are doing #CFLAGS+= -DPCBIOS
# Compile in k8/hammer support CFLAGS+= -DCONFIG_X86_64
# Options to make a version of Etherboot that will work under linuxBIOS. CFLAGS+= -DLINUXBIOS CFLAGS+= -DCONFIG_TSC_CURRTICKS CFLAGS+= -DCONSOLE_SERIAL CFLAGS+= -DCOMCONSOLE=0x3f8 CFLAGS+= -DCOMPRESERVE CFLAGS+= -DCONFIG_PCI_DIRECT CFLAGS+= -DELF_IMAGE CFLAGS+= -DCONSOLE_DIRECT_VGA
# These options affect the loader that is prepended to the Etherboot image # LCONFIG+= -DBBS_BUT_NOT_PNP_COMPLIANT # LCONFIG+= -DBOOT_INT18H
# Produce code that will work inside the Bochs emulator. The pnic # driver is probably the best one to try. CFLAGS+= -DCONFIG_PCI_DIRECT
# Produce code that will work with OpenBSD's pxeboot #CFLAGS+= -DFLATTEN_REAL_MODE
CFLAGS+= -fstrength-reduce -fomit-frame-pointer -march=i386 # Squeeze the code in as little space as possible. # gcc3 needs a different syntax to gcc2 if you want to avoid spurious warnings. GCC_VERSION = $(subst ., ,$(shell $(CC) -dumpversion)) GCC_MAJORVERSION = $(firstword $(GCC_VERSION)) ifeq ($(GCC_MAJORVERSION),2) CFLAGS+= -malign-jumps=1 -malign-loops=1 -malign-functions=1 else CFLAGS+= -falign-jumps=1 -falign-loops=1 -falign-functions=1 endif GCC_MINORVERSION = $(word 2, $(GCC_VERSION)) ifneq ($(GCC_MINORVERSION),4) CFLAGS+= -march=i386 endif
LDFLAGS+= -N
ifeq "$(shell uname -s)" "FreeBSD" CFLAGS+= -DIMAGE_FREEBSD -DELF_IMAGE -DAOUT_IMAGE endif
# An alternate location for isolinux.bin can be set here # ISOLINUX_BIN=/path/to/isolinux.bin ----------------------------------------------------------------------------------- filo/Config #AUTOBOOT_FILE = "hda3:/boot/vmlinuz root=/dev/hda3 console=tty0 console=ttyS0,115200" AUTOBOOT_FILE = "hda2:/boot/vmlinuz initrd=/boot/initrd pci=noacpi ro root=/dev/hda2 console=tty0 console=ttyS0,115200" #AUTOBOOT_FILE = "mem@0xfff80000" #AUTOBOOT_FILE = "hde1@0" #AUTOBOOT_FILE = "uda1:/ram0_2.5_2.6.5_k8.2_mydisk7.elf" #AUTOBOOT_FILE = "hda5:/boot/vmlinuz initrd=/boot/initrd ro root=/dev/hda7 console=tty0 console=ttyS0,115200"
# Time in second before booting AUTOBOOT_FILE AUTOBOOT_DELAY = 2
# Driver for hard disk, CompactFlash, and CD-ROM on IDE bus IDE_DISK = 1
# Driver for USB disk USB_DISK = 1
# Filesystems # To make filo.zelf < 32 k, You may not enable JFS, MINIX, XFS # Is anyone still using these file system? BY LYH FSYS_EXT2FS = 1 FSYS_FAT = 1 #FSYS_JFS = 1 #FSYS_MINIX = 1 FSYS_REISERFS = 1 #FSYS_XFS = 1 FSYS_ISO9660 = 1
# Support for boot disk image in bootable CD-ROM (El Torito) ELTORITO = 1
# PCI support SUPPORT_PCI = 1
# Debugging #DEBUG_ALL = 1 #DEBUG_ELFBOOT = 1 #DEBUG_ELFNOTE = 1 #DEBUG_LINUXBIOS = 1 #DEBUG_MALLOC = 1 #DEBUG_MULTIBOOT = 1 #DEBUG_SEGMENT = 1 #DEBUG_SYS_INFO = 1 #DEBUG_TIMER = 1 #DEBUG_BLOCKDEV = 1 #DEBUG_PCI = 1 #DEBUG_LINUXLOAD = 1 #DEBUG_IDE = 1 #DEBUG_USB = 1 #DEBUG_ELTORITO = 1
# i386 options
# Loader for standard Linux kernel image, a.k.a. /vmlinuz LINUX_LOADER = 1
# Boot FILO from Multiboot loader (eg. GRUB) # You need to modify i386/multiboot.c to use it. change mmrange to e820entries. # By LYH #MULTIBOOT_IMAGE = 1
# Use PCI Configuration Mechanism #1 (most boards) PCI_CONFIG_1 = 1
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com