2
0
mirror of https://github.com/xcat2/xcat-dep.git synced 2024-12-03 18:14:35 +00:00

-Rebase to gpxe 1.0.0

-Restore iSCSI that was accidentally disabled
-Workaround boot sequence limitations in RHEL5.4 kvm by changing exit to int13, vm.bootorder should be 'net'



Former-commit-id: 2ff604a64abcc839c350f19523dabd0f33b78eb5
This commit is contained in:
jbjohnso 2010-02-06 19:36:13 +00:00
parent 8ea6c33b5c
commit 45d3d80e10
6 changed files with 249 additions and 27 deletions

View File

@ -0,0 +1,91 @@
diff -urN gpxe-1.0.0/src/config/general.h gpxe-1.0.0-xnbaconfig/src/config/general.h
--- gpxe-1.0.0/src/config/general.h 2010-02-02 11:12:44.000000000 -0500
+++ gpxe-1.0.0-xnbaconfig/src/config/general.h 2010-02-06 11:54:02.000000000 -0500
@@ -56,7 +56,7 @@
#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 */
+#define DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
#undef DOWNLOAD_PROTO_TFTM /* Multicast Trivial File Transfer Protocol */
#undef DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */
@@ -65,7 +65,7 @@
*
*/
-//#undef SANBOOT_PROTO_ISCSI /* iSCSI protocol */
+#define SANBOOT_PROTO_ISCSI /* iSCSI protocol */
-//#undef SANBOOT_PROTO_AOE /* AoE protocol */
+#undef SANBOOT_PROTO_AOE /* AoE protocol */
//#undef SANBOOT_PROTO_IB_SRP /* Infiniband SCSI RDMA protocol */
@@ -73,9 +73,9 @@
* 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 */
+#undef CRYPTO_80211_WEP /* WEP encryption (deprecated and insecure!) */
+#undef CRYPTO_80211_WPA /* WPA Personal, authenticating with passphrase */
+#undef CRYPTO_80211_WPA2 /* Add support for stronger WPA cryptography */
/*
* Name resolution modules
@@ -91,35 +91,35 @@
* you want to use.
*
*/
-//#define IMAGE_NBI /* NBI image support */
-//#define IMAGE_ELF /* ELF image support */
-//#define IMAGE_FREEBSD /* FreeBSD kernel image support */
-//#define IMAGE_MULTIBOOT /* MultiBoot image support */
-//#define IMAGE_AOUT /* a.out image support */
-//#define IMAGE_WINCE /* WinCE image support */
-//#define IMAGE_PXE /* PXE image support */
-//#define IMAGE_SCRIPT /* gPXE script image support */
-//#define IMAGE_BZIMAGE /* Linux bzImage image support */
-//#define IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
-//#define IMAGE_EFI /* EFI image support */
+#undef IMAGE_NBI /* NBI image support */
+#undef IMAGE_ELF /* ELF image support */
+#undef IMAGE_FREEBSD /* FreeBSD kernel image support */
+#undef IMAGE_MULTIBOOT /* MultiBoot image support */
+#undef IMAGE_AOUT /* a.out image support */
+#undef IMAGE_WINCE /* WinCE image support */
+#define IMAGE_PXE /* PXE image support */
+#define IMAGE_SCRIPT /* gPXE script image support */
+#define IMAGE_BZIMAGE /* Linux bzImage image support */
+#undef IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
+#undef IMAGE_EFI /* EFI image support */
/*
* Command-line commands to include
*
*/
-#define AUTOBOOT_CMD /* Automatic booting */
+#undef 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 ROUTE_CMD /* Routing table management commands */
+#undef CONFIG_CMD /* Option configuration console */
+#undef IFMGMT_CMD /* Interface management commands */
+#undef IWMGMT_CMD /* Wireless interface management commands */
+#undef 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 LOGIN_CMD /* Login command */
+#undef DHCP_CMD /* DHCP management commands */
+#undef SANBOOT_CMD /* SAN boot commands */
+#undef LOGIN_CMD /* Login command */
#undef TIME_CMD /* Time commands */
#undef DIGEST_CMD /* Image crypto digest commands */
-//#undef PXE_CMD /* PXE commands */
+#undef PXE_CMD /* PXE commands */
/*
* Error message tables to include

View File

@ -0,0 +1,26 @@
diff -urN gpxe-1.0.0/src/hci/commands/hdboot_cmd.c gpxe-1.0.0-exittohd/src/hci/commands/hdboot_cmd.c
--- gpxe-1.0.0/src/hci/commands/hdboot_cmd.c 2010-02-06 14:29:55.000000000 -0500
+++ gpxe-1.0.0-exittohd/src/hci/commands/hdboot_cmd.c 2010-02-06 14:32:07.000000000 -0500
@@ -30,3 +30,7 @@
.name = "hdboot",
.exec = hdboot_exec,
};
+struct command exit_command __command = {
+ .name = "exit",
+ .exec = hdboot_exec,
+};
diff -urN gpxe-1.0.0/src/hci/shell.c gpxe-1.0.0-exittohd/src/hci/shell.c
--- gpxe-1.0.0/src/hci/shell.c 2010-02-02 11:12:44.000000000 -0500
+++ gpxe-1.0.0-exittohd/src/hci/shell.c 2010-02-06 14:31:41.000000000 -0500
@@ -51,8 +51,8 @@
}
/** "exit" command definition */
-struct command exit_command __command = {
- .name = "exit",
+struct command xit_command __command = {
+ .name = "xit",
.exec = exit_exec,
};
Binary files gpxe-1.0.0/src/hci/.shell.c.swp and gpxe-1.0.0-exittohd/src/hci/.shell.c.swp differ

View File

@ -0,0 +1,124 @@
diff -urN gpxe-1.0.0/src/arch/i386/prefix/romprefix.S gpxe-1.0.0-int18boot/src/arch/i386/prefix/romprefix.S
--- gpxe-1.0.0/src/arch/i386/prefix/romprefix.S 2010-02-06 14:20:06.000000000 -0500
+++ gpxe-1.0.0-int18boot/src/arch/i386/prefix/romprefix.S 2010-02-06 14:19:39.000000000 -0500
@@ -169,7 +169,7 @@
* Determine whether or not this is a PnP system via a signature
* check. If it is PnP, return to the PnP BIOS indicating that we are
* a boot-capable device; the BIOS will call our boot execution vector
- * if it wants to boot us. If it is not PnP, hook INT 19.
+ * if it wants to boot us. If it is not PnP, hook INT 18.
*/
init:
/* Preserve registers, clear direction flag, set %ds=%cs */
@@ -301,17 +301,15 @@
testw %ax, %ax
je got_bbs
no_pnp: /* Not PnP-compliant - therefore cannot be BBS-compliant */
-no_bbs: /* Not BBS-compliant - must hook INT 19 */
- movw $init_message_int19, %si
+no_bbs: /* Not BBS-compliant - must hook INT 18 */
+ movw $init_message_int18, %si
xorw %di, %di
call print_message
xorw %ax, %ax
movw %ax, %es
- pushl %es:( 0x19 * 4 )
- popl orig_int19
pushw %gs /* %gs contains runtime %cs */
- pushw $int19_entry
- popl %es:( 0x19 * 4 )
+ pushw $int18_entry
+ popl %es:( 0x18 * 4 )
jmp bbs_done
got_bbs: /* BBS compliant - no need to hook INT 19 */
movw $init_message_bbs, %si
@@ -535,9 +533,9 @@
.asciz "\nPMM required but not present!\n"
.size init_message_no_pmm, . - init_message_no_pmm
#endif
-init_message_int19:
- .asciz " INT19"
- .size init_message_int19, . - init_message_int19
+init_message_int18:
+ .asciz " INT18"
+ .size init_message_int18, . - init_message_int18
init_message_prompt:
.asciz "\nPress Ctrl-B to configure "
.size init_message_prompt, . - init_message_prompt
@@ -887,58 +885,29 @@
#endif /* LOAD_ROM_FROM_PCI */
-/* INT19 entry point
+/* INT18 entry point
*
- * Called via the hooked INT 19 if we detected a non-PnP BIOS. We
- * attempt to return via the original INT 19 vector (if we were able
- * to store it).
+ * Called via the hooked INT 18 if we detected a non-PnP BIOS. We
+ * use iret to return.
*/
-int19_entry:
- pushw %cs
- popw %ds
- /* Prompt user to press B to boot */
- movw $int19_message_prompt, %si
- xorw %di, %di
- call print_message
- movw $prodstr, %si
- call print_message
- movw $int19_message_dots, %si
- call print_message
- movw $0xdf4e, %bx
- call wait_for_key
- pushf
- xorw %di, %di
- call print_kill_line
- movw $int19_message_done, %si
- call print_message
- popf
- jz 1f
- /* Leave keypress in buffer and start gPXE. The keypress will
- * cause the usual initial Ctrl-B prompt to be skipped.
- */
+int18_entry:
+ pushfl
+ pushal
+ pushw %gs
+ pushw %fs
+ pushw %es
+ pushw %ds
pushw %cs
call exec
-1: /* Try to call original INT 19 vector */
- movl %cs:orig_int19, %eax
- testl %eax, %eax
- je 2f
- ljmp *%cs:orig_int19
-2: /* No chained vector: issue INT 18 as a last resort */
- int $0x18
- .size int19_entry, . - int19_entry
-orig_int19:
- .long 0
- .size orig_int19, . - orig_int19
+ popw %ds
+ popw %es
+ popw %fs
+ popw %gs
+ popal
+ popfl
+ iret
+
-int19_message_prompt:
- .asciz "Press N to skip booting from "
- .size int19_message_prompt, . - int19_message_prompt
-int19_message_dots:
- .asciz "..."
- .size int19_message_dots, . - int19_message_dots
-int19_message_done:
- .asciz "\n\n"
- .size int19_message_done, . - int19_message_done
/* Execute as a boot device
*

BIN
gpxe/gpxe-1.0.0.tar.bz2 Normal file

Binary file not shown.

View File

@ -1,5 +1,5 @@
Name: xnba-kvm
Version: 0.9.9
Version: 1.0.0
Release: 1
Summary: xNBA loader for virtual guests
Obsoletes: etherboot-zroms-kvm
@ -22,18 +22,14 @@ ExclusiveArch: i386 x86_64
Source0: gpxe-%{version}.tar.bz2
Patch0: gpxe-0.9.7-branding.patch
Patch1: gpxe-0.9.9-registeriscsionpxe.patch
Patch2: gpxe-0.9.9-config.patch
Patch2: gpxe-1.0.0-config.patch
Patch3: gpxe-0.9.7-ignorepackets.patch
Patch4: gpxe-0.9.7-kvmworkaround.patch
Patch5: gpxe-0.9.7-hdboot.patch
Patch5: gpxe-1.0.0-hdboot.patch
Patch6: gpxe-0.9.7-xnbauserclass.patch
Patch7: gpxe-0.9.7-undinet.patch
Patch8: gpxe-0.9.9-acceptproxyoffer.patch
Patch9: gpxe-0.9.9-ignorecloseddevs.patch
Patch10: gpxe-0.9.9-ignorenonpxepxe.patch
Patch11: gpxe-0.9.9-saverestorepciregister.patch
Patch12: gpxe-0.9.9-tftpblockwrap.patch
Patch13: gpxe-0.9.9-int18boot.patch
Patch8: gpxe-1.0.0-int18boot.patch
Patch9: gpxe-1.0.0-exittohd.patch
%description
The xNBA network bootloader provides network boot capability for virtual machines with e1000 and virtio network devices. This includes iSCSI and PXE with tftp or ftp image download capability. It is a modified variant of gPXE
@ -51,11 +47,6 @@ The xNBA network bootloader provides network boot capability for virtual machine
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%build

View File

@ -1,5 +1,5 @@
Name: xnba-undi
Version: 0.9.9
Version: 1.0.0
Release: 1
Summary: xCAT Network Boot Agent for x86 PXE hosts
Obsoletes: gpxe-undi
@ -18,17 +18,12 @@ BuildArch: noarch
Source0: gpxe-%{version}.tar.bz2
Patch0: gpxe-0.9.7-branding.patch
Patch1: gpxe-0.9.9-registeriscsionpxe.patch
Patch2: gpxe-0.9.9-config.patch
Patch2: gpxe-1.0.0-config.patch
Patch3: gpxe-0.9.7-ignorepackets.patch
Patch4: gpxe-0.9.7-kvmworkaround.patch
Patch5: gpxe-0.9.7-hdboot.patch
Patch5: gpxe-1.0.0-hdboot.patch
Patch6: gpxe-0.9.7-xnbauserclass.patch
Patch7: gpxe-0.9.7-undinet.patch
Patch8: gpxe-0.9.9-acceptproxyoffer.patch
Patch9: gpxe-0.9.9-ignorecloseddevs.patch
Patch10: gpxe-0.9.9-ignorenonpxepxe.patch
Patch11: gpxe-0.9.9-saverestorepciregister.patch
Patch12: gpxe-0.9.9-tftpblockwrap.patch
%description
The xCAT Network Boot Agent is a slightly modified version of gPXE. It provides enhanced boot features for any UNDI compliant x86 host. This includes iSCSI, http/ftp downloads, and gPXE script based booting.
@ -44,11 +39,6 @@ The xCAT Network Boot Agent is a slightly modified version of gPXE. It provides
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%build