diff options
author | hpa <hpa> | 2003-09-09 01:08:57 +0000 |
---|---|---|
committer | hpa <hpa> | 2003-09-09 01:08:57 +0000 |
commit | 60cff1d57e391e136b5d10c2dc2c89456f4d1df3 (patch) | |
tree | a319565d6164f18a1f8ab2537dedd9e4c761c1da | |
parent | a3fbe314c9726172d6ffd52378b83c6c22716406 (diff) | |
download | syslinux-2.07-pre2.tar.gz |
Add "ipappend 2"syslinux-2.07-pre2
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | pxelinux.asm | 22 | ||||
-rw-r--r-- | syslinux.doc | 25 |
3 files changed, 42 insertions, 8 deletions
@@ -6,6 +6,9 @@ Changes in 2.07: * MEMDISK: Workaround for BIOSes which go into a snit when they get a RESET command for the floppy system when there is no floppy in the system. + * PXELINUX: Add "ipappend 2", which passes the hardware + address of the boot interface to the kernel as a + command-line option. Changes in 2.06: * ALL: Fix problem that would occationally cause a diff --git a/pxelinux.asm b/pxelinux.asm index 3becef28..47feae25 100644 --- a/pxelinux.asm +++ b/pxelinux.asm @@ -210,7 +210,7 @@ IPOption resb 80 ; ip= option buffer MACLen resb 1 ; MAC address len MACType resb 1 ; MAC address type MAC resb 16 ; Actual MAC address -MACStr resb 51 ; MAC address as a string +MACStr resb 3*17 ; MAC address as a string alignb 32 KernelName resb FILENAME_MAX ; Mangled name for kernel KernelCName resb FILENAME_MAX ; Unmangled kernel name @@ -894,14 +894,23 @@ config_scan: %define HAVE_SPECIAL_APPEND %macro SPECIAL_APPEND 0 mov al,[IPAppend] ; ip= - and al,al - jz .noipappend + test al,01h ; IP append + jz .noipappend1 mov si,IPOption mov cx,[IPOptionLen] rep movsb mov al,' ' stosb -.noipappend: +.noipappend1: + test al,02h + jz .noipappend2 + mov si,bootif_str + mov cx,bootif_str_len + rep movsb + mov si,MACStr + call strcpy + mov byte [di-1],' ' ; Replace null with space +.noipappend2: %endmacro ; Unload PXE stack @@ -2337,8 +2346,11 @@ cfgprefix_len equ ($-cfgprefix) ; ; mem= and vga= are handled as normal 32-bit integer values initrd_cmd db 'initrd=' -initrd_cmd_len equ 7 +initrd_cmd_len equ $-initrd_cmd +; This one we make ourselves +bootif_str db 'BOOTIF=' +bootif_str_len equ $-bootif_str ; ; Config file keyword table ; diff --git a/syslinux.doc b/syslinux.doc index 9948991d..e217812d 100644 --- a/syslinux.doc +++ b/syslinux.doc @@ -124,14 +124,33 @@ APPEND options... them. This is the equivalent of the LILO "append" option. IPAPPEND flag_val [PXELINUX only] - The IPAPPEND option is available only on PXELINUX, and - indicates (if the flag value is 1) that an option of the - following format should be generated and added: + The IPAPPEND option is available only on PXELINUX. The + flag_val is an OR of the following options: + + 1: indicates that an option of the following format + should be generated and added to the kernel command line: ip=<client-ip>:<boot-server-ip>:<gw-ip>:<netmask> ... based on the input from the DHCP/BOOTP or PXE boot server. + THE USE OF THIS OPTION IS NOT RECOMMENDED. If you have to use + it, it is probably an indication that your network configuration + is broken. Using just "ip=dhcp" on the kernel command line + is a preferrable option, or, better yet, run dhcpcd/dhclient, + from an initrd if necessary. + + 2: indicates that an option of the following format + should be generated and added to the kernel command line: + + BOOTIF=<hardware-address-of-boot-interface> + + ... in dash-separated hexadecimal with leading hardware type + (same as for the configuration file; see pxelinux.doc.) + + This allows an initrd program to determine from which + interface the system booted. + LABEL label KERNEL image APPEND options... |