From aec393448ef447594bb5c9ecb989b115ddf1f9ed195228315ceae41816c20b39 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Tue, 21 Jul 2009 10:41:55 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/syslinux?expand=0&rev=12 --- README.gfxboot | 14 + syslinux-3.81.diff | 176 ---- syslinux-3.81.tar.bz2 | 3 - ...xboot-keyword => syslinux-3.82-compat.diff | 30 +- syslinux-3.82-gfxboot.diff | 801 ++++++++++++++++++ syslinux-3.82-s_herbst.diff | 237 ++++++ syslinux-3.82-suse.diff | 180 ++++ syslinux-3.82.tar.bz2 | 3 + syslinux-debug.diff | 101 --- syslinux-disable-broken-code.diff | 39 - syslinux-eject.diff | 47 - syslinux-install-isohybrid | 15 - syslinux-isolinux-path-config | 14 - syslinux-no-win32 | 15 - syslinux-nonzero-target-segment-fix.diff | 23 - syslinux.changes | 86 +- syslinux.spec | 407 +-------- 17 files changed, 1349 insertions(+), 842 deletions(-) create mode 100644 README.gfxboot delete mode 100644 syslinux-3.81.diff delete mode 100644 syslinux-3.81.tar.bz2 rename syslinux-gfxboot-keyword => syslinux-3.82-compat.diff (59%) create mode 100644 syslinux-3.82-gfxboot.diff create mode 100644 syslinux-3.82-s_herbst.diff create mode 100644 syslinux-3.82-suse.diff create mode 100644 syslinux-3.82.tar.bz2 delete mode 100644 syslinux-debug.diff delete mode 100644 syslinux-disable-broken-code.diff delete mode 100644 syslinux-eject.diff delete mode 100644 syslinux-install-isohybrid delete mode 100644 syslinux-isolinux-path-config delete mode 100644 syslinux-no-win32 delete mode 100644 syslinux-nonzero-target-segment-fix.diff diff --git a/README.gfxboot b/README.gfxboot new file mode 100644 index 0000000..0a2f33d --- /dev/null +++ b/README.gfxboot @@ -0,0 +1,14 @@ +gfxboot is now loaded via a COM module. If you used a line like + +gfxboot bootlogo + +before in isolinux.cfg or syslinux.cfg, change this to + +ui gfxboot.com bootlogo + +and add /usr/share/syslinux/gfxboot.com to your boot directory (the one +where the config file is). + +This also means that gfxboot now works with other syslinux variants like +pxelinux or extlinux, too. + diff --git a/syslinux-3.81.diff b/syslinux-3.81.diff deleted file mode 100644 index 357d600..0000000 --- a/syslinux-3.81.diff +++ /dev/null @@ -1,176 +0,0 @@ ---- - - add_crc | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ - com32/libutil/get_key.c | 4 +++ - com32/samples/keytest.c | 4 +++ - core/diskstart.inc | 2 + - core/isolinux.asm | 27 ++++++++++++++++++++++ - doc/syslinux.txt | 13 +++++----- - 6 files changed, 100 insertions(+), 7 deletions(-) - ---- /dev/null -+++ b/add_crc -@@ -0,0 +1,57 @@ -+#! /usr/bin/perl -+ -+use integer; -+ -+# for isolinux -+# -+# Ensure checksum over (first sector - 64 bytes) [internally: FirstSecSum] -+# is 0 by adjusting the variable csum_value. -+# -+# Though isolinux checks the integrity with a separate checksum after all -+# data has been loaded this does not help with BIOSes that don't get even -+# the first 2k right. Hence this additional check. :-( -+# -+ -+$file = shift; -+$list = "$file"; -+$list =~ s/\.bin$/.lsr/; -+ -+open F, $list; -+ -+while() { -+ if(/^\s*\d+\s*(\S+)\s*0+\s*(\<\d+\>\s*)?csum_value\s*dd\s*0/) { -+ $ofs = hex $1; -+ } -+} -+close F; -+ -+die "oops 1\n" unless $ofs && !($ofs & 3); -+ -+# print "$ofs\n"; -+ -+open F, $file or die "$file: $!\n"; -+ -+$file_size = -s $file; -+ -+sysread F, $buf, $file_size; -+ -+close F; -+ -+die "oops 1\n" if $file_size != length($buf); -+ -+@x = unpack "V512", $buf; -+ -+for ($sum = 0, $i = 16; $i < 512; $i++) { -+ $sum += $x[$i]; -+} -+ -+# printf "0x%08x\n", $sum; -+ -+$ns = pack "V", -$sum; -+ -+substr($buf, $ofs, 4) = $ns; -+ -+open F, ">$file" or die "$file: $!\n"; -+ -+syswrite F, $buf; -+ ---- a/com32/libutil/get_key.c -+++ b/com32/libutil/get_key.c -@@ -42,6 +42,10 @@ - #include - #include - -+#ifndef CLK_TCK -+# define CLK_TCK __sysconf(2) -+#endif -+ - struct keycode { - int code; - int seqlen; ---- a/com32/samples/keytest.c -+++ b/com32/samples/keytest.c -@@ -25,6 +25,10 @@ - #include /* Provided by libutil */ - #include - -+#ifndef CLK_TCK -+# define CLK_TCK __sysconf(2) -+#endif -+ - static void cooked_keys(void) - { - int key; ---- a/core/diskstart.inc -+++ b/core/diskstart.inc -@@ -254,6 +254,8 @@ getlinsec: - add eax,[bsHidden] ; Add partition offset - xor edx,edx ; Zero-extend LBA (eventually allow 64 bits) - -+.patch: jmp strict near .jmp -+ - .jmp: jmp strict short getlinsec_cbios - - ; ---- a/core/isolinux.asm -+++ b/core/isolinux.asm -@@ -949,11 +964,17 @@ getlinsec_cdrom: - ; INT 13h with retry - xint13: mov byte [RetryCount],retry_count - .try: pushad -+ ; seen buggy bios that overwrites buffer address on error... -+ push dword [dapa + 4] - call int13 -+ pop dword [dapa + 4] - jc .error -+.noerror: - add sp,byte 8*4 ; Clean up stack - ret - .error: -+ or ah,ah -+ jz .noerror - mov [DiskError],ah ; Save error code - popad - mov [DiskSys],ax ; Save system call number -@@ -1120,6 +1141,9 @@ all_read: - ; (which will be at 16 only for a single-session disk!); from the PVD - ; we should be able to find the rest of what we need to know. - ; -+ call get_fs_structures -+ jmp get_fs_struct_done -+ - get_fs_structures: - mov eax,[bi_pvd] - mov bx,trackbuf -@@ -1187,6 +1211,9 @@ get_fs_structures: - call crlf - %endif - .no_isolinux_dir: -+ ret -+ -+get_fs_struct_done: - - ; - ; Locate the configuration file ---- a/doc/syslinux.txt -+++ b/doc/syslinux.txt -@@ -240,7 +240,7 @@ LABEL label - Append nothing. APPEND with a single hyphen as argument in a - LABEL section can be used to override a global APPEND. - -- LOCALBOOT type [ISOLINUX, PXELINUX] -+ LOCALBOOT type [ISOLINUX, SYSLINUX, PXELINUX] - On PXELINUX, specifying "LOCALBOOT 0" instead of a "KERNEL" - option means invoking this particular label will cause a local - disk boot instead of booting a kernel. -@@ -254,12 +254,11 @@ LABEL label - UNDI or PXE stacks are, don't worry -- you don't want them, - just specify 0. - -- On ISOLINUX, the "type" specifies the local drive number to -- boot from; 0x00 is the primary floppy drive and 0x80 is the -- primary hard drive. The special value -1 causes ISOLINUX to -- report failure to the BIOS, which, on recent BIOSes, should -- mean that the next boot device in the boot sequence should be -- activated. -+ On ISOLINUX and SYSLINUX, the "type" specifies the local drive -+ number to boot from; 0x00 is the primary floppy drive and 0x80 is -+ the primary hard drive. The special value -1 causes them to report -+ failure to the BIOS, which, on recent BIOSes, should mean that the -+ next boot device in the boot sequence should be activated. - - INITRD initrd_file - Starting with version 3.71, an initrd can be specified in a diff --git a/syslinux-3.81.tar.bz2 b/syslinux-3.81.tar.bz2 deleted file mode 100644 index c3d2380..0000000 --- a/syslinux-3.81.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b054d5d5afef71c0b091f9ba604a7e441d7db2750f9d6311345d7e2dc94ac918 -size 3083447 diff --git a/syslinux-gfxboot-keyword b/syslinux-3.82-compat.diff similarity index 59% rename from syslinux-gfxboot-keyword rename to syslinux-3.82-compat.diff index d8dc54e..4bb5741 100644 --- a/syslinux-gfxboot-keyword +++ b/syslinux-3.82-compat.diff @@ -1,19 +1,5 @@ -From: Jeff Mahoney -Subject: [PATCH] Alias "gfxboot" to "ui gfxboot" - - This patch allows older configs using the SUSE implementation of - syslinux + gfxboot to continue to use the "gfxboot" keyword. - - It is intentionally undocumented since it should not be used - in new configurations. - -Signed-off-by: Jeff Mahoney ---- - core/keywords | 1 + - core/keywords.inc | 1 + - core/parseconfig.inc | 15 +++++++++++++++ - 3 files changed, 17 insertions(+) - +diff --git a/core/keywords b/core/keywords +index c289ae2..b7d4c4b 100644 --- a/core/keywords +++ b/core/keywords @@ -6,6 +6,7 @@ initrd @@ -24,9 +10,11 @@ Signed-off-by: Jeff Mahoney display font implicit +diff --git a/core/keywords.inc b/core/keywords.inc +index d0f7db3..fc00ad7 100644 --- a/core/keywords.inc +++ b/core/keywords.inc -@@ -90,6 +90,7 @@ keywd_table: +@@ -91,6 +91,7 @@ keywd_table: keyword f0, pc_filename, FKeyN(10) keyword f11, pc_filename, FKeyN(11) keyword f12, pc_filename, FKeyN(12) @@ -34,13 +22,15 @@ Signed-off-by: Jeff Mahoney %if IS_PXELINUX keyword ipappend, pc_ipappend %endif +diff --git a/core/parseconfig.inc b/core/parseconfig.inc +index 65d71c9..2302536 100644 --- a/core/parseconfig.inc +++ b/core/parseconfig.inc @@ -30,6 +30,20 @@ pc_default: cmp ax,[DefaultLevel] ret ; -+; "gfxboot" command; Shorthand for "ui gfxboot" ++; "gfxboot" command; Shorthand for "ui gfxboot.com" +; +pc_gfxboot: + mov ax,2 @@ -57,11 +47,11 @@ Signed-off-by: Jeff Mahoney ; "ontimeout" command ; pc_ontimeout: mov di,Ontimeout -@@ -438,6 +452,7 @@ commit_vk: +@@ -439,6 +453,7 @@ commit_vk: section .data vk_overflow_msg db 'Out of memory parsing config file', CR, LF, 0 SerialNotice db 1 ; Only print this once -+gfxboot_cmd db 'gfxboot ', 0 ++gfxboot_cmd db 'gfxboot.com ', 0 section .bss alignb 4 diff --git a/syslinux-3.82-gfxboot.diff b/syslinux-3.82-gfxboot.diff new file mode 100644 index 0000000..af7c54c --- /dev/null +++ b/syslinux-3.82-gfxboot.diff @@ -0,0 +1,801 @@ +diff --git a/core/abort.inc b/core/abort.inc +index 5b16b9d..cc59fa7 100644 +--- a/core/abort.inc ++++ b/core/abort.inc +@@ -24,6 +24,10 @@ + ; assumes CS == DS + ; + dot_pause: ++ push ax ++ mov al,5 ++ call [comboot_hook] ++ pop ax + push si + mov si,dot_msg + call writestr_qchk +@@ -63,6 +67,8 @@ abort_check: + abort_load: + mov bx,error_or_command + abort_load_chain: ++ mov al,80h ++ call [comboot_hook] ; may not return + RESET_STACK_AND_SEGS AX + call writestr ; Expects SI -> error msg + +diff --git a/core/comboot.inc b/core/comboot.inc +index cdba16d..ee3fd77 100644 +--- a/core/comboot.inc ++++ b/core/comboot.inc +@@ -96,24 +96,23 @@ is_comboot_image: + shl ax,6 ; Kilobytes -> paragraphs + mov word [es:02h],ax + +-%ifndef DEPEND +-%if real_mode_seg != comboot_seg +-%error "This code assumes real_mode_seg == comboot_seg" +-%endif +-%endif + ; Copy the command line from high memory ++ push word real_mode_seg ++ pop ds + mov si,cmd_line_here + mov cx,125 ; Max cmdline len (minus space and CR) + mov di,081h ; Offset in PSP for command line + mov al,' ' ; DOS command lines begin with a space + stosb + +-.loop: es lodsb ++.loop: lodsb + and al,al + jz .done + stosb + loop .loop + .done: ++ push cs ++ pop ds + + mov al,0Dh ; CR after last character + stosb +@@ -963,6 +962,45 @@ comapi_shufraw: + mov ecx,P_ECX + jmp shuffle_and_boot_raw + ++ ++; ++; INT 22h AX=0025h Set current working directory ++; ++%if IS_ISOLINUX ++comapi_setcwd: ++ mov si,P_BX ++ mov di,TmpDirName ++ mov cx,FILENAME_MAX ++ mov ds,P_ES ++.copy: ++ lodsb ++ stosb ++ or al,al ++ loopnz .copy ++ push cs ++ pop ds ++ stc ++ jnz .err ++ mov di,TmpDirName ++ call setcwd ++.err: ++ ret ++%else ++comapi_setcwd equ comapi_err ++%endif ++ ++ ++; ++; INT 22h AX=0026h Read filesystem meta data ++; ++%if IS_ISOLINUX ++comapi_mount: ++; call iso_mount ++ ret ++%else ++comapi_mount equ comapi_err ++%endif ++ + section .data + + %macro int21 2 +@@ -970,6 +1008,88 @@ comapi_shufraw: + dw %2 + %endmacro + ++ ++; ++; INT 22h AX=0027h Run command, return on error ++; ++; Terminates the COMBOOT program and executes the command line in ++; ES:BX as if it had been entered by the user. ++; CS:SI: comboot callback (via far call) ++; EDI kernel load address ++; ++comapi_run2: ++ push word P_CS ++ push word P_SI ++ pop dword [comboot_far] ++ push dword P_EDI ++ pop dword [KernelStart] ++ mov ds,P_ES ++ mov si,P_BX ++ mov di,command_line ++ call strcpy ++ push cs ++ pop ds ++ push cs ++ pop es ++ mov [comboot_sp_save],sp ; save stack pointer ++ mov word [comboot_hook],comboot_hook_entry ++ or byte [QuietBoot],2 ++ jmp load_kernel ; Run a new kernel ++ ++comapi_run2_cont: ++ mov word [comboot_hook],comboot_hook_nop ++ mov sp,[comboot_sp_save] ; fix stack pointer ++ and byte [QuietBoot],~2 ++ clc ++ ret ++ ++; ++; Callback function used at various places during kernel/initrd loading. ++; ++; The function either returns or continues at comapi_run2_cont. ++; ++; AL: ++; bit 7: 0/1 return/don't return ++; bit 0-6: function code ++; 0: abort kernel/initrd loading ++; 1: kernel/initrd not found ++; 2: kernel corrupt ++; 3: out of memory (while initrd loading) ++; 4: progress start ++; 5: progress increment ++; 6: progress end: kernel loaded, stop gfxboot ++; ++comboot_hook_entry: ++ pushad ++ push gs ++ push fs ++ push es ++ push ds ++ call far [comboot_far] ++ pop ds ++ pop es ++ pop fs ++ pop gs ++ popad ++ pushad ++ and al,7fh ++ cmp al,6 ++ jnz .notlast ++ push es ++ mov si,DOSSaveVectors ++ mov di,4*20h ++ mov cx,20h ++ push word 0 ++ pop es ++ rep movsd ; Restore DOS-range vectors ++ pop es ++.notlast: ++ popad ++ test al,80h ++ jnz comapi_run2_cont ++comboot_hook_nop: ++ ret ++ + int21_table: + int21 00h, comboot_return + int21 01h, comboot_getkey +@@ -1022,8 +1142,15 @@ int22_table: + dw comapi_closedir ; 0022 close directory + dw comapi_shufsize ; 0023 query shuffler size + dw comapi_shufraw ; 0024 cleanup, shuffle and boot raw ++ dw comapi_setcwd ; 0025 set current working directory ++ dw comapi_mount ; 0026 read fs structures (aka mount) ++ dw comapi_run2 ; 0027 like 0003, but return on error + int22_count equ ($-int22_table)/2 + ++comboot_sp_save dw 0 ++comboot_hook dw comboot_hook_nop ++comboot_far dd 0 ++ + APIKeyWait db 0 + APIKeyFlag db 0 + +@@ -1042,8 +1169,9 @@ feature_flags_len equ ($-feature_flags) + err_notdos db ': attempted DOS system call INT ',0 + err_comlarge db 'COMBOOT image too large.', CR, LF, 0 + +- section .bss1 ++ section .bss2 + alignb 4 + DOSErrTramp resd 33 ; Error trampolines ++TmpDirName resb FILENAME_MAX + ConfigName resb FILENAME_MAX + CurrentDirName resb FILENAME_MAX +diff --git a/core/isolinux.asm b/core/isolinux.asm +index 2627c2d..a0910fb 100644 +--- a/core/isolinux.asm ++++ b/core/isolinux.asm +@@ -1135,73 +1135,23 @@ all_read: + ; (which will be at 16 only for a single-session disk!); from the PVD + ; we should be able to find the rest of what we need to know. + ; +-get_fs_structures: +- mov eax,[bi_pvd] +- mov bx,trackbuf +- call getonesec +- +- mov eax,[trackbuf+156+2] +- mov [RootDir+dir_lba],eax +- mov [CurrentDir+dir_lba],eax +-%ifdef DEBUG_MESSAGES +- mov si,dbg_rootdir_msg +- call writemsg +- call writehex8 +- call crlf +-%endif +- mov eax,[trackbuf+156+10] +- mov [RootDir+dir_len],eax +- mov [CurrentDir+dir_len],eax +- add eax,SECTOR_SIZE-1 +- shr eax,SECTOR_SHIFT +- mov [RootDir+dir_clust],eax +- mov [CurrentDir+dir_clust],eax +- +- ; Look for an isolinux directory, and if found, +- ; make it the current directory instead of the root +- ; directory. +- ; Also copy the name of the directory to CurrentDirName +- mov word [CurrentDirName],ROOT_DIR_WORD ; Write '/',0 to the CurrentDirName ++ call iso_mount + mov di,boot_dir ; Search for /boot/isolinux +- mov al,02h +- push di +- call searchdir_iso +- pop di +- jnz .found_dir +- mov di,isolinux_dir +- mov al,02h ; Search for /isolinux +- push di +- call searchdir_iso +- pop di +- jz .no_isolinux_dir ++ call setcwd ++ jnc .found_dir ++ mov di,isolinux_dir ; Search for /isolinux ++ call setcwd + .found_dir: +- ; Copy current directory name to CurrentDirName +- push si +- push di +- mov si,di +- mov di,CurrentDirName +- call strcpy +- mov byte [di],0 ;done in case it's not word aligned +- dec di +- mov byte [di],'/' +- pop di +- pop si + +- mov [CurrentDir+dir_len],eax +- mov eax,[si+file_left] +- mov [CurrentDir+dir_clust],eax +- xor eax,eax ; Free this file pointer entry +- xchg eax,[si+file_sector] +- mov [CurrentDir+dir_lba],eax + %ifdef DEBUG_MESSAGES + push si + mov si,dbg_isodir_msg + call writemsg + pop si ++ mov eax,[CurrentDir+dir_lba] + call writehex8 + call crlf + %endif +-.no_isolinux_dir: + + ; + ; Locate the configuration file +@@ -1706,6 +1656,90 @@ getfssec: + TRACER 'f' + ret + ++; ++; setcwd: Set current working directory. ++; ++; On entry: ++; DI -> directory name ++; On exit: ++; CF = 1 -> error ++; ++; On error, the old working directory is kept. ++; ++setcwd: ++ mov al,02h ++ push di ++ call searchdir_iso ++ pop di ++ stc ++ jz .err ++ mov [CurrentDir+dir_len],eax ++ mov eax,[si+file_left] ++ mov [CurrentDir+dir_clust],eax ++ xor eax,eax ++ xchg eax,[si+file_sector] ++ mov [CurrentDir+dir_lba],eax ++ mov si,di ++ mov di,CurrentDirName ++ cmp si,di ++ jz .ok ++ mov cx,FILENAME_MAX ++ push ds ++ pop es ++.copy: ++ lodsb ++ stosb ++ or al,al ++ loopnz .copy ++ mov byte [di-1],0 ++ jnz .err ++.ok: ++ clc ++.err: ++ ret ++ ++; ++; Read fs meta data and setup RootDir and CurrentDir. ++; ++; On exit: ++; CF = 1 -> error ++; ++iso_mount: ++ mov eax,[bi_pvd] ++ mov bx,trackbuf ++ call getonesec ++ ++ mov eax,[trackbuf+156+10] ++ mov [RootDir+dir_len],eax ++ add eax,SECTOR_SIZE-1 ++ shr eax,SECTOR_SHIFT ++ mov [RootDir+dir_clust],eax ++ mov eax,[trackbuf+156+2] ++ mov [RootDir+dir_lba],eax ++ ++ push ds ++ pop es ++ mov si,RootDir ++ mov di,CurrentDir ++ mov cx,dir_t_size ++ rep movsb ++ ++%ifdef DEBUG_MESSAGES ++ mov si,dbg_rootdir_msg ++ call writemsg ++ call writehex8 ++ call crlf ++%endif ++ ++ mov di,CurrentDirName ++ call setcwd ++ jnc .ok ++ mov word [CurrentDirName],ROOT_DIR_WORD ++.ok: ++ clc ++ ret ++ ++ + ; ----------------------------------------------------------------------------- + ; Common modules + ; ----------------------------------------------------------------------------- +diff --git a/core/layout.inc b/core/layout.inc +index 8c2e248..ca95d2b 100644 +--- a/core/layout.inc ++++ b/core/layout.inc +@@ -123,4 +123,4 @@ real_mode_seg equ cache_seg + 1000h + pktbuf_seg equ cache_seg ; PXELINUX packet buffers + %endif + +-comboot_seg equ real_mode_seg ; COMBOOT image loading zone ++comboot_seg equ real_mode_seg + 1000h ; COMBOOT image loading zone +diff --git a/core/loadhigh.inc b/core/loadhigh.inc +index 8ff9da1..91061fc 100644 +--- a/core/loadhigh.inc ++++ b/core/loadhigh.inc +@@ -101,6 +101,8 @@ load_high: + ret + + .overflow: mov si,err_nohighmem ++ mov al,83h ++ call [comboot_hook] ; may not return + jmp abort_load + + section .data +diff --git a/core/runkernel.inc b/core/runkernel.inc +index 8bfc8b8..0cd2488 100644 +--- a/core/runkernel.inc ++++ b/core/runkernel.inc +@@ -165,7 +165,7 @@ opt_mem: + ret + + opt_quiet: +- mov byte [QuietBoot],1 ++ or byte [QuietBoot],1 + ret + + %if IS_PXELINUX +@@ -228,6 +228,8 @@ new_kernel: + mov [LoadFlags],al + + any_kernel: ++ mov al,4 ++ call [comboot_hook] + mov si,loading_msg + call writestr_qchk + mov si,KernelCName ; Print kernel name part of +@@ -257,7 +259,7 @@ read_kernel: + mov ecx,8000h ; 32K + sub ecx,esi ; Number of bytes to copy + add esi,(real_mode_seg << 4) ; Pointer to source +- mov edi,100000h ; Copy to address 100000h ++ mov edi,[KernelStart] ; Copy to kernel address + + call bcopy ; Transfer to high memory + +@@ -319,6 +321,9 @@ load_initrd: + ; + call abort_check ; Last chance!! + ++ mov al,6 ++ call [comboot_hook] ++ + mov si,ready_msg + call writestr_qchk + +@@ -426,7 +431,7 @@ setup_move: + + mov eax,10000h ; Target address of low kernel + stosd +- mov eax,100000h ; Where currently loaded ++ mov eax,[KernelStart] ; Where currently loaded + stosd + neg eax + add eax,[KernelEnd] +@@ -434,9 +439,13 @@ setup_move: + inc cx + + mov bx,9000h ; Revised real mode segment ++ jmp .loading_initrd + + .loading_high: ++ mov eax,[KernelStart] ++ mov [fs:su_code32start],eax + ++.loading_initrd: + cmp word [InitRDPtr],0 ; Did we have an initrd? + je .no_initrd + +@@ -489,6 +498,8 @@ old_kernel: + xor ax,ax + cmp word [InitRDPtr],ax ; Old kernel can't have initrd + je .load ++ mov al,82h ++ call [comboot_hook] ; may not return + mov si,err_oldkernel + jmp abort_load + .load: +@@ -613,6 +624,8 @@ loadinitrd: + ret + + .notthere: ++ mov al,81h ++ call [comboot_hook] ; may not return + mov si,err_noinitrd + call writestr + mov si,InitRDCName +@@ -625,7 +638,7 @@ loadinitrd: + ; assumes CS == DS + ; + writestr_qchk: +- test byte [QuietBoot],01h ++ test byte [QuietBoot],03h + jz writestr + ret + +@@ -680,4 +693,9 @@ KernelVersion resw 1 ; Kernel protocol version + ; + InitRDPtr resw 1 ; Pointer to initrd= option in command line + LoadFlags resb 1 ; Loadflags from kernel +-QuietBoot resb 1 ; Set if a quiet boot is requested ++ ++ section .data ++QuietBoot db 0 ; Set if a quiet boot is requested ++ alignz 4 ++KernelStart dd 100000h ++ +diff --git a/core/ui.inc b/core/ui.inc +index 1b40717..2bc56a1 100644 +--- a/core/ui.inc ++++ b/core/ui.inc +@@ -468,6 +468,8 @@ bad_kernel: + .really: + mov si,KernelName + mov di,KernelCName ++ mov al,81h ++ call [comboot_hook] ; may not return + push di + call unmangle_name ; Get human form + mov si,err_notfound ; Complain about missing kernel +@@ -510,7 +512,10 @@ on_error: + ; + ; kernel_corrupt: Called if the kernel file does not seem healthy + ; +-kernel_corrupt: mov si,err_notkernel ++kernel_corrupt: ++ mov al,82h ++ call [comboot_hook] ; may not return ++ mov si,err_notkernel + jmp abort_load + + ; +@@ -591,7 +596,7 @@ kernel_good: + ; + xor ax,ax + mov [InitRDPtr],ax +- mov [QuietBoot],al ++ and byte [QuietBoot],~1 + %if IS_PXELINUX + mov [KeepPXE],al + %endif +diff --git a/doc/comboot.txt b/doc/comboot.txt +index f5fefda..9fe7f28 100644 +--- a/doc/comboot.txt ++++ b/doc/comboot.txt +@@ -955,3 +955,12 @@ AX=0024h [3.80] Cleanup, shuffle and boot, raw version + with read/write data segments, matching the respective code + segment. For mode 0, B=0 and the limits will be 64K, for mode + 1, B=1 and the limits will be 4 GB. ++ ++ ++AX=0025h [3.84] Set current working directory ++ Input: AX 00025h ++ ES:BX null-terminated directory name string ++ Output: None ++ ++ Sets the current working directory. For SYSLINUX, ISOLINUX, ++ and PXELINUX, this will be an absolute path. +diff --git a/modules/gfxboot.asm b/modules/gfxboot.asm +index 5c7b118..7d1693f 100644 +--- a/modules/gfxboot.asm ++++ b/modules/gfxboot.asm +@@ -179,6 +179,16 @@ input: + jmp input + + boot: ++ mov ax,cs ++ mov es,ax ++ mov bx,command_line ++ mov si,syslinux_hook ++ mov edi,8 << 20 ; at 8MB ++ mov ax,27h ++ int 22h ++ jnc input ++ ++ ; syslinux variant without function 27h + call far [gfx_bc_done] + mov ax,cs + mov es,ax +@@ -190,12 +200,77 @@ exit: + error: + ret + ++sh_table: dw sh_abort ; 0 ++ dw sh_not_found ; 1 ++ dw sh_broken ; 2 ++ dw sh_out_of_mem ; 3 ++ dw sh_progress_start ; 4 ++ dw sh_progress_inc ; 5 ++ dw sh_progress_end ; 6 ++sh_len equ ($-sh_table)/2 ++ ++; ++; Callback function used at various places in syslinux. ++; ++; Can modify all regs & sregs. ++; ++; AL: ++; bit 7: 0/1 return/don't return ++; bit 0-6: function code ++; 0: abort kernel/initrd loading ++; 1: kernel/initrd not found ++; 2: kernel corrupt ++; 3: out of memory (while initrd loading) ++; 4: progress start ++; 5: progress increment ++; 6: progress end: kernel loaded, stop gfxboot ++; ++syslinux_hook: ++ push cs ++ pop ds ++ and al,7fh ++ cmp al,sh_len ++ jae .end ++ movzx bx,al ++ add bx,bx ++ call word [bx+sh_table] ++.end: ++ retf ++ ++sh_abort: ++ ret ++ ++sh_not_found: ++ ret ++ ++sh_broken: ++ ret ++ ++sh_out_of_mem: ++ ret ++ ++sh_progress_start: ++ call far [gfx_bc_progress_init] ++ ret ++ ++sh_progress_inc: ++ mov eax,10000h ; chunk size ++ call far [gfx_bc_progress_update] ++ ret ++ ++sh_progress_end: ++ call far [gfx_bc_progress_done] ++ call far [gfx_bc_done] ++ ret ++ ++ + cb_table dw cb_status ; 0 + dw cb_fopen ; 1 + dw cb_fread ; 2 + dw cb_getcwd ; 3 + dw cb_chdir ; 4 + dw cb_readsector ; 5 ++ dw cb_mount ; 6 + cb_len equ ($-cb_table)/2 + + gfx_cb: +@@ -291,16 +366,25 @@ cb_fread_end: + ; edx filename + ; + cb_getcwd: +- mov edx,cs ++ mov ax,1fh ++ int 22h ++ mov edx,es ++ movzx ebx,bx + shl edx,4 +- add edx,gfx_slash ++ add edx,ebx + xor al,al + ret + + ; Set current working directory + ; + cb_chdir: +- xor al,al ++ push cs ++ pop es ++ mov bx,fname_buf ++ mov ax,25h ++ int 22h ++ mov al,0 ++ adc al,0 + ret + + ; Read sector +@@ -334,6 +418,17 @@ cb_readsector: + cb_readsector_end: + ret + ++; Read filesystem meta data. ++; ++; return: ++; ++cb_mount: ++ mov ax,26h ++ int 22h ++ mov al,0 ++ adc al,0 ++ ret ++ + gfx_init: + mov ax,0e801h + xor bx,bx +@@ -358,11 +453,10 @@ mem_below_16mb: + shl eax,10 + mov [gfx_bios_mem_size],eax + shr eax,20 +- cmp ax,16 ++ cmp ax,32 + jb skip_extended + +- mov word [gfx_xmem_0],88h ; 8MB at 8MB +- mov dword [gfx_save_area1],7f0000h ; 8MB-64k ++ mov word [gfx_xmem_0],017h ; 3MB at 16MB + + skip_extended: + movzx ebx,word [gfx_mem_start_seg] +@@ -405,7 +499,37 @@ skip_extended: + mov [gfx_bc_menu_init],ax + mov [gfx_bc_menu_init+2],es + +-; ... ++ mov ax,[es:bx+8] ++ mov [gfx_bc_infobox_init],ax ++ mov [gfx_bc_infobox_init+2],es ++ ++ mov ax,[es:bx+10] ++ mov [gfx_bc_infobox_done],ax ++ mov [gfx_bc_infobox_done+2],es ++ ++ mov ax,[es:bx+12] ++ mov [gfx_bc_progress_init],ax ++ mov [gfx_bc_progress_init+2],es ++ ++ mov ax,[es:bx+14] ++ mov [gfx_bc_progress_done],ax ++ mov [gfx_bc_progress_done+2],es ++ ++ mov ax,[es:bx+16] ++ mov [gfx_bc_progress_update],ax ++ mov [gfx_bc_progress_update+2],es ++ ++ mov ax,[es:bx+18] ++ mov [gfx_bc_progress_limit],ax ++ mov [gfx_bc_progress_limit+2],es ++ ++ mov ax,[es:bx+20] ++ mov [gfx_bc_password_init],ax ++ mov [gfx_bc_password_init+2],es ++ ++ mov ax,[es:bx+22] ++ mov [gfx_bc_password_done],ax ++ mov [gfx_bc_password_done+2],es + + mov esi,cs + shl esi,4 +@@ -974,8 +1098,6 @@ msg_no_labels_defined db 'No labels defined in config file',0dh,0ah,0 + msg_space db ' ',0 + msg_crlf db 0dh,0ah,0 + +-gfx_slash db '/', 0 +-db0 db 0 + menu_timeout dd 100 + + keyword_text_label db 6,'label',0 +@@ -1071,8 +1193,6 @@ gfx_mem_end_seg resw 1 + + alignb 4 + gfx_mem resd 1 ; linear address +-gfx_save_area1 resd 1 ; 64k +-gfx_save_area1_used resb 1 ; != 0 if area1 is in use + + alignb 4 + ; interface to loadable gfx extension (seg:ofs values) +@@ -1082,3 +1202,12 @@ gfx_bc_init resd 1 + gfx_bc_done resd 1 + gfx_bc_input resd 1 + gfx_bc_menu_init resd 1 ++gfx_bc_infobox_init resd 1 ++gfx_bc_infobox_done resd 1 ++gfx_bc_progress_init resd 1 ++gfx_bc_progress_done resd 1 ++gfx_bc_progress_update resd 1 ++gfx_bc_progress_limit resd 1 ++gfx_bc_password_init resd 1 ++gfx_bc_password_done resd 1 ++ diff --git a/syslinux-3.82-s_herbst.diff b/syslinux-3.82-s_herbst.diff new file mode 100644 index 0000000..68783cc --- /dev/null +++ b/syslinux-3.82-s_herbst.diff @@ -0,0 +1,237 @@ +diff --git a/modules/gfxboot.asm b/modules/gfxboot.asm +index c9fdd1b..5c7b118 100644 +--- a/modules/gfxboot.asm ++++ b/modules/gfxboot.asm +@@ -144,7 +144,15 @@ got_config_file: + push cs + pop es + call parse_config ++ cmp word [label_cnt],0 ++ ja labels_defined + ++ mov bx,msg_no_labels_defined ++ mov ax,2 ++ int 22h ++ ret ++ ++labels_defined: + ; get_gfx_file + mov ax,cs + add ax,2000h +@@ -417,6 +425,14 @@ gfx_read_file: + mov si,pspCmdArg+1 + int 22h + jnc gfx_file_read ++ ++ mov ax,2 ++ mov bx,pspCmdArg+1 ++ int 22h ++ ++ mov ax,2 ++ mov bx,msg_not_found ++ int 22h + stc + ret + +@@ -641,8 +657,7 @@ gfx_input: + shl edi,4 + add edi, command_line ; buffer (0: no buffer) + mov ecx, max_cmd_len ; buffer size +-; xor eax,eax ; timeout value (0: no timeout) +- mov eax,100 ; timeout value (0: no timeout) ++ mov eax,[menu_timeout] ; timeout value (0: no timeout) + + call far [gfx_bc_input] + ret +@@ -699,33 +714,39 @@ parse_config: + mov bx, msg_crlf + int 22h + %endif ++ mov bx,keywords ++ mov cx,[keyword_cnt] ++.keywords_loop: ++ push cx + push si + push di +- xor ecx,ecx ++ xor cx,cx + mov si,configbuf +- mov di,label_keyword+1 +- mov cl, byte [label_keyword] ++ mov di,[bx] ++ mov cl,byte [di] ++ inc di + call memcmp + pop di + pop si +- jz .do_label ++ jnz .not_found ++ pop cx ++ call [bx+2] ; call keyword handler ++ jmp .read + +- push si +- push di +- xor ecx,ecx +- mov si,configbuf +- mov di,default_keyword+1 +- mov cl, byte [default_keyword] +- call memcmp +- pop di +- pop si +- jz .do_default ++.not_found: ++ add bx,4 ++ pop cx ++ loop .keywords_loop + + .nextline: + call skipline + jmp .read + +-.do_label: ++.eof: ++.noparm: ++ ret ++ ++do_label: + call skipspace + jz .eof + jc .noparm +@@ -742,10 +763,11 @@ parse_config: + pop di + pop es + inc word [label_cnt] ++.eof: ++.noparm: ++ ret + +- jmp .read +- +-.do_default: ++do_default: + call skipspace + jz .eof + jc .noparm +@@ -759,8 +781,42 @@ parse_config: + pop di + pop es + +- jmp .read ++.eof: ++.noparm: ++ ret + ++do_timeout: ++ call skipspace ++ jz .eof ++ jc .noparm ++ call ungetc ++ push es ++ push di ++ push cs ++ pop es ++ mov di,NumBuf ++.getnum: ++ cmp di,NumBufEnd ++ jae .loaded ++ call getc ++ stosb ++ cmp al,'-' ++ jnb .getnum ++ call ungetc ++ dec di ++.loaded: ++ mov byte [di],0 ++ pop di ++ pop es ++ push cs ++ pop ds ++ mov si,NumBuf ++ push ebx ++ call parseint ++ jc .err ++ mov [menu_timeout],ebx ++.err: ++ pop ebx + .eof: + .noparm: + ret +@@ -876,23 +932,63 @@ memcmp: + pop si + ret + +- section .data +-label_keyword db 6,'label',0 +-default_keyword db 7,'default',0 ++parseint: ++ push eax ++ push ecx ++ xor eax,eax ++ xor ebx,ebx ++ xor ecx,ecx ++ mov cl,10 ++.loop: ++ lodsb ++ and al,al ++ jz .done ++ cmp al,'0' ++ jb .err ++ cmp al,'9' ++ ja .err ++ sub al,'0' ++ imul ebx,ecx ++ add ebx,eax ++ jmp short .loop ++.done: ++ clc ++.ret: ++ pop ecx ++ pop eax ++ ret ++.err: ++ stc ++ jmp short .ret + ++ section .data + msg_progname db 'gfxboot: ',0 + msg_config_file db 'Configuration file',0 + msg_missing db 'missing',0 + msg_usage db 'Usage: gfxboot.com ',0dh,0ah,0 + msg_memory db 'Could not detect available memory size',0dh,0ah,0 + msg_bootlogo_toobig db 'bootlogo file too big',0dh,0ah,0 +-msg_pxelinux db 'pxelinux is not supported',0dh,0ah,0 + msg_unknown_file_size db 'unknown file size',0dh,0ah,0 ++msg_not_found db ' not found',0dh,0ah,0 ++msg_no_labels_defined db 'No labels defined in config file',0dh,0ah,0 + msg_space db ' ',0 + msg_crlf db 0dh,0ah,0 + + gfx_slash db '/', 0 + db0 db 0 ++menu_timeout dd 100 ++ ++keyword_text_label db 6,'label',0 ++keyword_text_default db 7,'default',0 ++keyword_text_timeout db 7,'timeout',0 ++keywords equ $ ++ dw keyword_text_label ++ dw do_label ++ dw keyword_text_default ++ dw do_default ++ dw keyword_text_timeout ++ dw do_timeout ++keyword_cnt dw ($-keywords)/4 + + ; menu entry descriptor + menu_entries equ 0 +@@ -942,6 +1038,9 @@ dentry_buf_len equ $ - dentry_buf + max_cmd_len equ 2047 + command_line resb max_cmd_len+2 + ++NumBuf resb 15 ++NumBufEnd resb 1 ++ + alignb 4 + derivative_id resb 1 + drivenumber resb 1 diff --git a/syslinux-3.82-suse.diff b/syslinux-3.82-suse.diff new file mode 100644 index 0000000..76600e8 --- /dev/null +++ b/syslinux-3.82-suse.diff @@ -0,0 +1,180 @@ +diff --git a/Makefile b/Makefile +index 76abff5..7d00782 100644 +--- a/Makefile ++++ b/Makefile +@@ -66,7 +66,7 @@ INSTALL_SBIN = extlinux/extlinux + # Things to install in /usr/lib/syslinux + INSTALL_AUX = core/pxelinux.0 gpxe/gpxelinux.0 core/isolinux.bin \ + core/isolinux-debug.bin \ +- dos/syslinux.com dos/copybs.com win32/syslinux.exe \ ++ dos/syslinux.com dos/copybs.com \ + mbr/*.bin $(MODULES) + INSTALL_AUX_OPT = win32/syslinux.exe + +diff --git a/core/Makefile b/core/Makefile +index 65418c4..fbb38b5 100644 +--- a/core/Makefile ++++ b/core/Makefile +@@ -66,6 +66,7 @@ kwdhash.gen: keywords genhash.pl + iso%.bin: iso%.elf checksumiso.pl + $(OBJCOPY) -O binary $< $@ + $(PERL) checksumiso.pl $@ ++ -./add_crc $@ + + # Standard rule for {ldlinux,pxelinux,extlinux}.bin + %.bin: %.elf +diff --git a/core/add_crc b/core/add_crc +new file mode 100755 +index 0000000..0da2307 +--- /dev/null ++++ b/core/add_crc +@@ -0,0 +1,57 @@ ++#! /usr/bin/perl ++ ++use integer; ++ ++# for isolinux ++# ++# Ensure checksum over (first sector - 64 bytes) [internally: FirstSecSum] ++# is 0 by adjusting the variable csum_value. ++# ++# Though isolinux checks the integrity with a separate checksum after all ++# data has been loaded this does not help with BIOSes that don't get even ++# the first 2k right. Hence this additional check. :-( ++# ++ ++$file = shift; ++$list = "$file"; ++$list =~ s/\.bin$/.lsr/; ++ ++open F, $list; ++ ++while() { ++ if(/^\s*\d+\s*(\S+)\s*0+\s*(\<\d+\>\s*)?csum_value\s*dd\s*0/) { ++ $ofs = hex $1; ++ } ++} ++close F; ++ ++die "oops 1\n" unless $ofs && !($ofs & 3); ++ ++# print "$ofs\n"; ++ ++open F, $file or die "$file: $!\n"; ++ ++$file_size = -s $file; ++ ++sysread F, $buf, $file_size; ++ ++close F; ++ ++die "oops 1\n" if $file_size != length($buf); ++ ++@x = unpack "V512", $buf; ++ ++for ($sum = 0, $i = 16; $i < 512; $i++) { ++ $sum += $x[$i]; ++} ++ ++# printf "0x%08x\n", $sum; ++ ++$ns = pack "V", -$sum; ++ ++substr($buf, $ofs, 4) = $ns; ++ ++open F, ">$file" or die "$file: $!\n"; ++ ++syswrite F, $buf; ++ +diff --git a/core/isolinux.asm b/core/isolinux.asm +index a0910fb..c947846 100644 +--- a/core/isolinux.asm ++++ b/core/isolinux.asm +@@ -308,6 +308,22 @@ initial_csum: xor edi,edi + mov [FirstSecSum],edi + + mov [DriveNumber],dl ++ ++ ; check whether the BIOS did load us correctly ++ cmp dl,80h ; some BIOSes try to do floppy emulation... ++ jb bios_err ++ cmp dword [FirstSecSum], byte 0 ++ jmp bios_ok ; ############## ++ jz bios_ok ++bios_err: ++ mov si,broken_bios_msg ++ call writemsg ++ jmp short $ ++broken_bios_msg db 13, 10, 'Cannot boot from this CD. Please try a BIOS update.', 13, 10, 0 ++ align 4 ++csum_value dd 0 ++bios_ok: ++ + %ifdef DEBUG_MESSAGES + mov si,startup_msg + call writemsg +@@ -336,6 +352,9 @@ initial_csum: xor edi,edi + cmp word [BIOSType],bios_cdrom + jne found_drive ; If so, no spec packet... + ++%if 0 ++ ; Some BIOSes don't like that call. ++ + ; Now figure out what we're actually doing + ; Note: use passed-in DL value rather than 7Fh because + ; at least some BIOSes will get the wrong value otherwise +@@ -356,6 +375,8 @@ initial_csum: xor edi,edi + call crlf + %endif + ++%endif ++ + found_drive: + ; Alright, we have found the drive. Now, try to find the + ; boot file itself. If we have a boot info table, life is +@@ -480,6 +501,9 @@ integrity_ok: + %endif + jmp all_read ; Jump to main code + ++%if 0 ++ ; doesn't work anyway, see above ++ + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; Start of BrokenAwardHack --- 10-nov-2002 Knut_Petersen@t-online.de + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +@@ -671,6 +695,7 @@ spec_query_failed: + mov si,trysbm_msg + call writemsg + jmp .found_drive ; Pray that this works... ++%endif + + fatal_error: + mov si,nothing_msg +@@ -936,8 +961,18 @@ maxtrans: + getlinsec_cdrom: + mov si,dapa ; Load up the DAPA + mov [si+4],bx +- mov [si+6],es + mov [si+8],eax ++ ++ ; seems that some BIOSes have problems if the target ++ ; segment is 0 (don't ask); to avoid this, we normalize ++ ; the buffer address here ++ ; -> seen on Acer TravelMate C102Ti ++ and word [si+4],0fh ++ mov ax,es ++ shr bx,4 ++ add ax,bx ++ mov [si+6],ax ++ + .loop: + push bp ; Sectors left + cmp bp,[MaxTransferCD] +@@ -1770,6 +1805,7 @@ default_str db 'default', 0 + default_len equ ($-default_str) + boot_dir db '/boot' ; /boot/isolinux + isolinux_dir db '/isolinux', 0 ++zb 64 + config_name db 'isolinux.cfg', 0 + err_disk_image db 'Cannot load disk image (invalid file)?', CR, LF, 0 + diff --git a/syslinux-3.82.tar.bz2 b/syslinux-3.82.tar.bz2 new file mode 100644 index 0000000..69b0723 --- /dev/null +++ b/syslinux-3.82.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dbbf8cfd10fc07187fa8bfede23639fc95314976730f3474cb349e8bf6c6f61 +size 3086896 diff --git a/syslinux-debug.diff b/syslinux-debug.diff deleted file mode 100644 index aa550a2..0000000 --- a/syslinux-debug.diff +++ /dev/null @@ -1,101 +0,0 @@ ---- - core/isolinux.asm | 33 +++++++++++++++++++++++++++++++++ - core/layout.inc | 7 +++++++ - core/parsecmd.inc | 8 ++++++++ - 3 files changed, 48 insertions(+) - ---- a/core/isolinux.asm -+++ b/core/isolinux.asm -@@ -20,6 +20,9 @@ - ; **************************************************************************** - - %define IS_ISOLINUX 1 -+ -+; %define DEBUG_DISKIO -+ - %include "head.inc" - - ; -@@ -964,10 +967,40 @@ getlinsec_cdrom: - ; INT 13h with retry - xint13: mov byte [RetryCount],retry_count - .try: pushad -+%ifdef DEBUG_DISKIO -+ pushad -+ mov cx,16 -+.zap: -+ lodsb -+ call writehex2 -+ mov al,' ' -+ call writechr -+ loop .zap -+ mov ah,0 -+ int 16h -+ popad -+%endif - ; seen buggy bios that overwrites buffer address on error... - push dword [dapa + 4] - call int13 - pop dword [dapa + 4] -+%ifdef DEBUG_DISKIO -+ pushad -+ pushf -+ push ax -+ mov al,':' -+ call writechr -+ mov al,' ' -+ call writechr -+ pop ax -+ sbb al,al -+ call writehex4 -+ call crlf -+ mov ah,0 -+ int 16h -+ popf -+ popad -+%endif - jc .error - .noerror: - add sp,byte 8*4 ; Clean up stack ---- a/core/layout.inc -+++ b/core/layout.inc -@@ -56,6 +56,11 @@ RBFG_brainfuck: resb 2048 ; Bigger than - - section .bss2 write nobits align=16 - -+%ifdef IS_ISOLINUX -+ ; Normal bss... -+ section .bss1 write nobits align=16 -+%endif -+ - section .text exec write progbits align=16 - section .bcopyxx exec write progbits align=16 - section .data write progbits align=16 -@@ -68,8 +73,10 @@ RBFG_brainfuck: resb 2048 ; Bigger than - ; the spillover from the last fractional sector load. - section .uibss write nobits align=16 - -+%ifndef IS_ISOLINUX - ; Normal bss... - section .bss1 write nobits align=16 -+%endif - - ; Symbols from linker script - %macro SECINFO 1 ---- a/core/parsecmd.inc -+++ b/core/parsecmd.inc -@@ -121,6 +121,14 @@ KbdMap resb 256 ; Keyboard map - FKeyName resb MAX_FKEYS*FILENAME_MAX ; File names for F-key help - KernelCNameLen resw 1 ; Length of unmangled kernel name - InitRDCNameLen resw 1 ; Length of unmangled initrd name -+ -+%if IS_ISOLINUX -+%ifdef DEBUG_MESSAGES -+; we need to rearrange memory a bit to make isolinux-debug.bin fit -+ section .bss -+%endif -+%endif -+ - %if IS_SYSLINUX - KernelName resb FILENAME_MAX+1 ; Mangled name for kernel - KernelCName resb FILENAME_MAX+2 ; Unmangled kernel name diff --git a/syslinux-disable-broken-code.diff b/syslinux-disable-broken-code.diff deleted file mode 100644 index 3928942..0000000 --- a/syslinux-disable-broken-code.diff +++ /dev/null @@ -1,39 +0,0 @@ ---- a/core/isolinux.asm -+++ b/core/isolinux.asm -@@ -283,6 +304,9 @@ - cmp word [BIOSType],bios_cdrom - jne found_drive ; If so, no spec packet... - -+%if 0 -+ ; Some BIOSes don't like that call. -+ - ; Now figure out what we're actually doing - ; Note: use passed-in DL value rather than 7Fh because - ; at least some BIOSes will get the wrong value otherwise -@@ -303,6 +327,8 @@ - call crlf - %endif - -+%endif -+ - found_drive: - ; Alright, we have found the drive. Now, try to find the - ; boot file itself. If we have a boot info table, life is -@@ -427,6 +453,9 @@ - %endif - jmp all_read ; Jump to main code - -+%if 0 -+ ; doesn't work anyway, see above -+ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;; Start of BrokenAwardHack --- 10-nov-2002 Knut_Petersen@t-online.de - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -@@ -618,6 +647,7 @@ - mov si,trysbm_msg - call writemsg - jmp .found_drive ; Pray that this works... -+%endif - - fatal_error: - mov si,nothing_msg diff --git a/syslinux-eject.diff b/syslinux-eject.diff deleted file mode 100644 index e5f91d8..0000000 --- a/syslinux-eject.diff +++ /dev/null @@ -1,47 +0,0 @@ ---- a/core/isolinux.asm -+++ b/core/isolinux.asm -@@ -724,7 +761,34 @@ - mov [DiskError],ah ; Save error code - popad - mov [DiskSys],ax ; Save system call number -- dec byte [RetryCount] -+ -+%if 0 -+ ; eject currently not supported - doesn't work anyway with -+ ; most BIOSes -+ -+ test byte [gfx_user_note],1 -+ jz .noeject -+ cmp byte [RetryCount],4 -+ ja .noeject -+ cmp byte [DiskError],0aah ; drive not ready -+ jnz .noeject -+ ; might have been cdrom eject, wait a bit -+ cmp byte [gfx_ok],0 -+ jz .noeject -+ push si -+ push di -+ push ax -+ mov si,err_not_ready -+ xor di,di -+ mov al,0 -+ call gfx_infobox -+ pop ax -+ pop di -+ pop si -+%endif -+.noeject: -+ -+ dec byte [RetryCount] - jz .real_error - push ax - mov al,[RetryCount] -@@ -825,6 +936,8 @@ - crlf_msg db CR, LF - null_msg db 0 - -+err_not_ready db 'CDROM drive not ready.', 0 -+ - bios_cdrom_str db 'ETCD', 0 - %ifndef DEBUG_MESSAGES - bios_cbios_str db 'CHDD', 0 diff --git a/syslinux-install-isohybrid b/syslinux-install-isohybrid deleted file mode 100644 index ec84988..0000000 --- a/syslinux-install-isohybrid +++ /dev/null @@ -1,15 +0,0 @@ ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/Makefile -+++ b/Makefile -@@ -56,7 +56,7 @@ BSUBDIRS = codepage core memdisk modules - ITARGET = - IOBJECTS = $(ITARGET) dos/copybs.com \ - utils/gethostip utils/isohybrid utils/mkdiskimage \ -- mtools/syslinux linux/syslinux extlinux/extlinux -+ mtools/syslinux linux/syslinux extlinux/extlinux utils/isohybrid - ISUBDIRS = libinstaller mtools linux extlinux utils - - # Things to install in /usr/bin diff --git a/syslinux-isolinux-path-config b/syslinux-isolinux-path-config deleted file mode 100644 index e1f8fc1..0000000 --- a/syslinux-isolinux-path-config +++ /dev/null @@ -1,14 +0,0 @@ ---- - core/isolinux.asm | 1 + - 1 file changed, 1 insertion(+) - ---- a/core/isolinux.asm -+++ b/core/isolinux.asm -@@ -1818,6 +1818,7 @@ default_str db 'default', 0 - default_len equ ($-default_str) - boot_dir db '/boot' ; /boot/isolinux - isolinux_dir db '/isolinux', 0 -+isolinux_dir_space zb 64 - config_name db 'isolinux.cfg', 0 - err_disk_image db 'Cannot load disk image (invalid file)?', CR, LF, 0 - diff --git a/syslinux-no-win32 b/syslinux-no-win32 deleted file mode 100644 index 8470dfb..0000000 --- a/syslinux-no-win32 +++ /dev/null @@ -1,15 +0,0 @@ ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/Makefile -+++ b/Makefile -@@ -66,7 +66,7 @@ INSTALL_SBIN = extlinux/extlinux - # Things to install in /usr/lib/syslinux - INSTALL_AUX = core/pxelinux.0 gpxe/gpxelinux.0 core/isolinux.bin \ - core/isolinux-debug.bin \ -- dos/syslinux.com dos/copybs.com win32/syslinux.exe \ -+ dos/syslinux.com dos/copybs.com \ - mbr/*.bin $(MODULES) - INSTALL_AUX_OPT = win32/syslinux.exe - diff --git a/syslinux-nonzero-target-segment-fix.diff b/syslinux-nonzero-target-segment-fix.diff deleted file mode 100644 index 264cd16..0000000 --- a/syslinux-nonzero-target-segment-fix.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- a/core/isolinux.asm -+++ b/core/isolinux.asm -@@ -694,10 +724,17 @@ - ; - getlinsec_cdrom: - mov si,dapa ; Load up the DAPA -- mov [si+4],bx -- mov bx,es -- mov [si+6],bx - mov [si+8],eax -+ ; seems that some BIOSes have problems if the target -+ ; segment is 0 (don't ask); to avoid this, we normalize -+ ; the buffer address here -+ ; -> seen on Acer TravelMate C102Ti -+ mov [si+4],bx -+ and word [si+4],0fh -+ mov ax,es -+ shr bx,4 -+ add ax,bx -+ mov [si+6],ax - .loop: - push bp ; Sectors left - cmp bp,[MaxTransfer] diff --git a/syslinux.changes b/syslinux.changes index 2d0e44b..27fbcd3 100644 --- a/syslinux.changes +++ b/syslinux.changes @@ -1,12 +1,84 @@ ------------------------------------------------------------------- -Tue May 29 23:35:25 CET 2009 - jeffm@suse.com +Wed Jun 10 11:59:54 CEST 2009 - snwint@suse.de + +- update to version 3.82 + * Lots of bug fixes. + * Simple menu: make ONTIMEOUT work with MENU HIDDEN. + * PXELINUX: handle TFTP servers which have extra NULs at the + end of an OACK packet. + * Attempt to halt the processor while idle. This can cause + bad reponsiveness when using a serial console especially for + automated input; if that ends up being a problem, use the + new "NOHALT 1" configuration command. + * isohybrid: fix the -partok logic for loading from a partition. + * isohybrid: add a variety of options, and a help message. + * isohybrid: fix problem with images over 2 GB in size. + * ISOLINUX: fix booting in hybrid mode when CBIOS is used. + This unfortunately means that the isohybrid handoff protocol + has changed, so the isohybrid utility must version-match + isolinux.bin. + * Don't hang trying to boot a "menu quit" label from the CLI. + * Fix problem with boot-once "sticking" on some BIOSes. + +------------------------------------------------------------------- +Wed Apr 22 12:54:53 CEST 2009 - snwint@suse.de + +- gfxboot: usage has changed; see README.gfxboot for details + +- update to version 3.75 + * Lots of bug fixes. + * New UI directive, which allows a more natural way to specify + a menu system (or not.) With the UI directive specifying + the menu system, the DEFAULT directive can be used to select + the default entry inside the menus. + * kbdmap.c32: new module to load a new keyboard map + dynamically. + * Suppress the Loading ... message if "quiet" is specified on + the kernel command line. + * MBR: produce alternate MBR variants which force the drive + number to hd0 (_f variants), or force the drive number to + hd0 if the Ctrl key is pressed (_c variants.) Furthermore, + add an MBR variant (altmbr*.bin) which ignores the active + flag and instead boots the partition number specified in the + byte at offset 439 decimal. + * Add IPAPPEND strings to com32 modules, especially needed for + linux.c32. + * New MENU SAVE directive which saves the latest menu + selection until the next boot. Currently only implemented for + EXTLINUX. + * gfxboot.com: *experimental* interface module to Steffen + Winterfeldt's "gfxboot" graphical front end + (http://gfxboot.sourceforge.net/). Module by Sebastian Herbszt. + * config.c32: trivial COM32 module to restart Syslinux with + another configuration file from the command line (equivalent + to the CONFIG command in the configuratin file.) + * Include the pxechain.com module from Jeffery Hutzelman at + Carnegie Mellon University. This allows chaining another + PXE boot program while changing the DHCP packet passed to + it. + * ISOLINUX: support generating images which can be either + a CD-ROM or a hard disk (USB disk, etc.) See + doc/isolinux.txt for more information. + * Tab display of labels, based on a patch from Sebastian + Herbszt. Can be disabled with the NOCOMPLETE configuration + command. + * Optionally allow initrd to be specified on a separate line + rather than as part of the "append" line. This is not + recommended, but apparently makes life easier for some + tools. + * chain.c32: lots of new options added + * ifcpu64.c32: simple COM32 module to select a 32- or 64-bit + kernel (and optionally 32-bit kernels with or without PAE.) + Eventually we want a scripting language for this + kind of stuff; a Lua module is under development. + * PXELINUX: Support enhanced capabilities when running on top + of gPXE (http://www.etherboot.org/). In particular, support + URL-style syntax for filenames, and any protocol that gPXE + supports (except, currently, iSCSI and AoE.) This feature + is currently highly experimental. + * SYSLINUX: VFAT long filename support. + * Add an experimental MBR for GPT partition tables. -- Update to 3.81 - - Lots of bug fixes - - Support for disk/CD hybrid images - - Integrated gfxboot support - - Added support for deprecated 'gfxboot' param - - Split into 4 packages ------------------------------------------------------------------- Tue Nov 4 16:57:17 CET 2008 - snwint@suse.de diff --git a/syslinux.spec b/syslinux.spec index 4ea45cf..8de0d6f 100644 --- a/syslinux.spec +++ b/syslinux.spec @@ -1,5 +1,5 @@ # -# spec file for package syslinux (Version 3.81) +# spec file for package syslinux (Version 3.82) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -19,31 +19,25 @@ Name: syslinux ExclusiveArch: %ix86 x86_64 +BuildRequires: libpng-devel nasm netpbm python %ifarch x86_64 -BuildRequires: gcc-32bit glibc-32bit glibc-devel-32bit -%else -BuildRequires: glibc glibc-devel libpng-devel nasm netpbm +BuildRequires: gcc-32bit glibc-devel-32bit %endif -BuildRequires: libpng-devel nasm netpbm Url: http://syslinux.zytor.com/ License: GPL v2 or later Group: System/Boot Requires: mtools AutoReqProv: on Summary: Boot Loader for Linux -Version: 3.81 +Version: 3.82 Release: 1 Source: %{name}-%{version}.tar.bz2 Source1: isolinux-config -Patch: %{name}-%{version}.diff -Patch1: %{name}-no-win32 -Patch2: %{name}-nonzero-target-segment-fix.diff -Patch3: %{name}-debug.diff -Patch4: %{name}-disable-broken-code.diff -Patch5: %{name}-eject.diff -Patch6: %{name}-install-isohybrid -Patch7: %{name}-isolinux-path-config -Patch8: %{name}-gfxboot-keyword +Source2: README.gfxboot +Patch0: %{name}-%{version}-s_herbst.diff +Patch1: %{name}-%{version}-gfxboot.diff +Patch2: %{name}-%{version}-suse.diff +Patch3: %{name}-%{version}-compat.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -54,392 +48,41 @@ special purpose boot disks. -Authors: --------- - H. Peter Anvin - -%package devel -License: GPL v2 or later -Summary: Boot Loader for Linux -Group: System/Boot -Requires: syslinux - -%description devel -SYSLINUX is a boot loader for the Linux operating system which operates -off an MS-DOS or Windows FAT file system. It is intended to simplify -first-time installation of Linux and for creation of rescue and other -special purpose boot disks. - - - -Authors: --------- - H. Peter Anvin - -%package extlinux -License: GPL v2 or later -Summary: Boot Loader for Linux -Group: System/Boot -Requires: syslinux - -%description extlinux -SYSLINUX is a boot loader for the Linux operating system which operates -off an MS-DOS or Windows FAT file system. It is intended to simplify -first-time installation of Linux and for creation of rescue and other -special purpose boot disks. - - - -Authors: --------- - H. Peter Anvin - -%package tftpboot -License: GPL v2 or later -Summary: Boot Loader for Linux -Group: System/Boot -Requires: syslinux - -%description tftpboot -SYSLINUX is a boot loader for the Linux operating system which operates -off an MS-DOS or Windows FAT file system. It is intended to simplify -first-time installation of Linux and for creation of rescue and other -special purpose boot disks. - - - Authors: -------- H. Peter Anvin %prep %setup -q -%patch -p1 +%patch0 -p1 %patch1 -p1 -#%patch2 -p1 +%patch2 -p1 %patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 %build +cp %{SOURCE2} . export CFLAGS="$RPM_OPT_FLAGS" -chmod +x add_crc -make clean -make -C core spotless +chmod +x core/add_crc +make spotless make -make -C sample tidy %install make install-all \ - INSTALLROOT=%{buildroot} BINDIR=%{_bindir} SBINDIR=%{_sbindir} \ - LIBDIR=%{_datadir} DATADIR=%{_datadir} \ - INCDIR=%{_includedir} MANDIR=%{_mandir} - TFTPBOOT=/tftpboot EXTLINUXDIR=/boot/extlinux -make -C sample tidy -mkdir -p %{buildroot}/etc -install -m 755 %{_sourcedir}/isolinux-config $RPM_BUILD_ROOT/%{_bindir} + INSTALLROOT=%{buildroot} BINDIR=%{_bindir} SBINDIR=%{_bindir} \ + LIBDIR=%{_datadir} INCDIR=%{_includedir} MANDIR=%{_mandir} +# install -s -m 755 unix/syslinux $RPM_BUILD_ROOT/%{_bindir}/syslinux-nomtools +install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir} +# install -m 755 keytab-lilo.pl syslinux2ansi.pl $RPM_BUILD_ROOT/%{_datadir}/syslinux +rm -rf $RPM_BUILD_ROOT/%{_datadir}/syslinux/com32 +rm -rf $RPM_BUILD_ROOT/boot +rm -rf $RPM_BUILD_ROOT/tftpboot %files %defattr(-,root,root) -%doc COPYING NEWS sample doc/* +%doc doc/*.txt +%doc README* NEWS %doc %{_mandir}/man1/* %{_bindir}/* -%{_datadir}/syslinux/*.com -%{_datadir}/syslinux/*.c32 -%{_datadir}/syslinux/*.bin -%{_datadir}/syslinux/*.0 -%{_datadir}/syslinux/memdisk - -%files devel -%{_datadir}/syslinux/com32 - -%files extlinux -%{_sbindir}/extlinux -/boot/extlinux - -%files tftpboot -/tftpboot +%{_datadir}/syslinux %changelog -* Fri May 29 2009 jeffm@suse.com -- Update to 3.81 - - Lots of bug fixes - - Support for disk/CD hybrid images - - Integrated gfxboot support - - Added support for deprecated 'gfxboot' param - - Split into 4 packages -* Tue Nov 04 2008 snwint@suse.de -- gfxboot: increase usable mem size to 8MB -* Fri Oct 17 2008 olh@suse.de -- add ExclusiveArch x86 x86_64 -* Thu Oct 16 2008 snwint@suse.de -- minor serial line patch fix (bnc #436034) -* Wed Sep 10 2008 snwint@suse.de -- reworked serial line patch (removed SERIALLINES) -* Thu Sep 04 2008 snwint@suse.de -- added SERIALLINES config option to listen on up to four - serial lines (fate #301595) -* Mon Apr 28 2008 snwint@suse.de -- give more memory to gfxboot code -* Mon Apr 14 2008 snwint@suse.de -- update to version 3.63 - * Lots of bug fixes. - * Handle command lines up to 2047 characters, the current - Linux kernel limit. - * Support MD5, SHA256 and SHA512 encrypted passwords. - * MEMDISK: Turn on EDD support by default. - * Add a new INCLUDE command to the core syslinux parser. - * It is now supported to load a different configuration file - with the CONFIG keyword. - * MENU AUTOBOOT, MENU TABMSG, MENU PASSPROMPT allows - internationalization of menu messages. - * New hierarchial submenu support: see MENU BEGIN, MENU END, - MENU GOTO in doc/menu.txt. - * MENU QUIT allows creating a menu entry for returning to the - command line. - * Simple menu system: new "MENU HIDDEN" option to not display - the menu unless the user presses a key. - * Add "menu separator", "menu indent", "menu disabled" - (see README.menu). - * SYSLINUX: Support subdirectories. - * PXELINUX: Press Ctrl-N at the boot prompt to read out the - network info. - * PXELINUX: as per RFC 5071, PXELINUX no longer requires the - use of the magic cookie option (208) for unencapsulated - options. Currently it does not require it for - vendor-encapsulated options (vendor-option-space) either, - but that MAY be reverted in the future if it causes problems. - * EXTLINUX: boot-once support (--once, --clear-once, and --reset-adv) - * Support for "auxilliary data vector", a small amount of - writable storage. Currently only supported for EXTLINUX, - but the infrastructure is there for the other derivatives, - assuming a suitable storage location can be found. -* Fri Jun 22 2007 snwint@suse.de -- requires mtools (#286216) -* Fri Feb 09 2007 snwint@suse.de -- fixed file list -* Mon Oct 09 2006 snwint@suse.de -- no progress dots when in gfx mode -* Fri Sep 29 2006 snwint@suse.de -- update to version 3.31 - * The simple menu system (menu.c32 and vesamenu.c32) now - support loading more than one configuration file at a time, - using MENU INCLUDE or by specifying multiple filenames. - * The MENU COLOR statement can now control the shadowing mode. - * libcom32 extended to support graphics mode and graphical console. - * vesamenu.c32, new graphical version of the Simple - Menu System, see README.menu. - * New com32 modules by Erwan Velu do selection based on CPUID - or PCI devices present. - * EXTLINUX: New options --install (-i) and --update (-U), to - make it clear if a boot loader should be installed or - updated. For now, defaults to --install for compatibility; - a future version will require one of these options. - * New library functions to load and place files in memory. - * mboot.c32 bug fixes. - * Remove 8 MB kernel size restriction. - * PXELINUX: Fail (and eventually reboot) if no configuration - file was found. - * COM32 module by Erwan Velu to make decisions based on DMI info. - * Fix issue where going back and forth between menus a lot - would cause a hang. - * ISOLINUX: Fix bug which made "cd boot sectors" not work. -* Fri Aug 25 2006 snwint@suse.de -- needs gcc41-32bit -* Wed Aug 23 2006 snwint@suse.de -- support latest gfxboot -* Tue Aug 15 2006 cthiel@suse.de -- specfile cleanup -- include chain.c32, copybs.com, ethersel.c32, mboot.c32, mbr.bin, menu.c32, - syslinux.com, mboot.doc README.menu and README.usbkey -* Mon Jun 19 2006 snwint@suse.de -- syslinux did not clear memory between initrds (#184706) -* Thu Apr 27 2006 snwint@suse.de -- ignore drive reset error when booting from local disk (#169014) -* Thu Feb 09 2006 snwint@suse.de -- monitor detection can be skipped (#149578) -* Thu Feb 02 2006 snwint@suse.de -- no aborts while kernel loads in gfx mode (#145748) -* Mon Jan 30 2006 snwint@suse.de -- fixed isolinux-config to work with new perl -* Wed Jan 25 2006 mls@suse.de -- converted neededforbuild to BuildRequires -* Mon Jan 23 2006 snwint@suse.de -- cjwatson@ubuntu.com: support big-endian cpio archives (#140119) -- support direct driverupdate loading from CD-ROM (feat #152): - o initrd loading errors are no longer fatal - o if initrd name starts with '+' ask for CD change -* Wed Dec 14 2005 snwint@suse.de -- really disable text messages -- cjwatson@ubuntu.com: turn off graphics for localboot -* Fri Dec 02 2005 snwint@suse.de -- make it build on beta -* Wed Nov 30 2005 snwint@suse.de -- update to version 3.11 -- gfxboot patch changed significantly - check README.gfxboot -* Thu Oct 06 2005 snwint@suse.de -- add chdir/getcwd functions to gfxboot -* Mon Sep 26 2005 snwint@suse.de -- wrote isolinux-config script -* Fri Sep 09 2005 snwint@suse.de -- press Alt key to optionally skip monitor detection (#115204) -* Wed Apr 27 2005 snwint@suse.de -- fixed to take bios memory size into account (#65458) -* Fri Apr 22 2005 snwint@suse.de -- fixed 16 bit color mode selection (#79312) -* Tue Apr 12 2005 snwint@suse.de -- make it work with gcc4 -* Fri Feb 04 2005 snwint@suse.de -- solved memory corruption issue (might have caused #43877) -* Mon Jan 31 2005 snwint@suse.de -- don't read from disk (#47891) -* Fri Jan 28 2005 snwint@suse.de -- updated gfxboot patch -* Mon Jan 24 2005 snwint@suse.de -- added syslinux-nomtools -- removed dependencies from mtools and bootsplash -* Mon Sep 13 2004 snwint@suse.de -- moved syslinux into /usr/bin (#44780) -* Mon Aug 23 2004 snwint@suse.de -- updated to syslinux 2.11 -* Thu Apr 08 2004 snwint@suse.de -- make bios mem info available for gfxboot -* Fri Apr 02 2004 snwint@suse.de -- don't reset timeout for 'notice' option -* Fri Apr 02 2004 snwint@suse.de -- reduce max number of boot menu entries (syslinux: 64, isolinux: 32) - to make room for boot graphics -* Wed Mar 31 2004 snwint@suse.de -- fixed pxelinux (#36625) -* Mon Mar 15 2004 snwint@suse.de -- fixed menu size check (#35508) -- removed vmware from blacklist (#35896) -* Mon Mar 08 2004 ro@suse.de -- fix build on x86_64 -* Fri Mar 05 2004 snwint@suse.de -- update to 2.08 -* Tue Jan 13 2004 snwint@suse.de -- understand new gfxboot file format -* Tue Dec 16 2003 snwint@suse.de -- boot disk may have a file system that spans several floppies -* Wed Sep 10 2003 snwint@suse.de -- fixed monitor data interpretation bug (#29718) -* Mon Sep 01 2003 snwint@suse.de -- work around bios disk read bug (seen on VIA KT133A) -* Mon Aug 25 2003 snwint@suse.de -- update to 2.06: fix problem that would occationally cause a - boot failure, depending on the length of the kernel -* Thu Aug 21 2003 ro@suse.de -- make it build on x86_64 -* Mon Aug 18 2003 snwint@suse.de -- update to 2.05 -* Wed Apr 16 2003 coolo@suse.de -- use BuildRoot -* Tue Mar 11 2003 snwint@suse.de -- wait for 'enter' in text mode interface, too (#25047) -* Sat Mar 08 2003 snwint@suse.de -- handle "boot from hd" errors properly (#24788) -* Thu Mar 06 2003 snwint@suse.de -- preselect 640x480 even if no vbe support at all -* Sat Mar 01 2003 snwint@suse.de -- dynamically change FAT buffer size; this gives more space for - boot graphics -- really add 640x480 to modelist if no VB extension was found (#24293) -- _copy_ VBE mode list, might get overwritten (#23582) -* Tue Feb 18 2003 snwint@suse.de -- new splash handling: splash files no longer have to be added to - initrd but are read separately from .spl files -* Fri Feb 14 2003 snwint@suse.de -- read device path info -- joined all diffs -* Sun Feb 09 2003 snwint@suse.de -- updated graphics patch -* Wed Feb 05 2003 snwint@suse.de -- make isolinux work around a strange bios bug (#23323) -- fix reading vbe mode list for machines that don't zero - its memory (#23261) -* Wed Sep 04 2002 snwint@suse.de -- select 8 bit fb modes if 16 bit is not available -* Tue Sep 03 2002 snwint@suse.de -- fixed minor bug detecting available gfx modes -* Tue Sep 03 2002 snwint@suse.de -- fixed Requires -* Wed Jul 17 2002 snwint@suse.de -- adaped graphics patch to handle new graphics file format -* Mon Mar 04 2002 snwint@suse.de -- detect fujitsu siemens notebook lcd -* Mon Mar 04 2002 snwint@suse.de -- allow booting from harddisk -* Sun Mar 03 2002 snwint@suse.de -- initrd may optionally be on a second disk -* Tue Feb 19 2002 snwint@suse.de -- make isolinux work on some more systems - (they used to break with 'Disk error 00') -* Mon Feb 18 2002 snwint@suse.de -- removed Matrox cards from exception list -- don't put monitor data into kernel cmdline -* Fri Feb 01 2002 ro@suse.de -- changed neededforbuild to -* Mon Sep 17 2001 snwint@suse.de -- no fb for Matrox G550 cards (#10749) -* Mon Sep 10 2001 snwint@suse.de -- don't select vmware fb mode, the kernel doesn't like it -* Sun Sep 09 2001 snwint@suse.de -- created single diff file -- support gfxboot-1.4 -* Tue Sep 04 2001 snwint@suse.de -- should boot on some more computers -- print warning and hint to use CD2 if we encounter a broken BIOS -* Mon Sep 03 2001 snwint@suse.de -- exclude list for cards where fbdev will not work -- allow longer base directory name for boot image -* Wed Aug 22 2001 snwint@suse.de -- fixed 16 bit fb selection -* Mon Aug 20 2001 snwint@suse.de -- we want 16 bit framebuffer now -* Fri Aug 10 2001 snwint@suse.de -- added 1024x768 support -* Mon Aug 06 2001 snwint@suse.de -- upgraded to new version (1.62) -- fixed isolinux to work with graphics -- fixed minor isolinux bug to make it boot on Toshiba Satellite notebooks -* Mon May 14 2001 snwint@suse.de -- syslinux reports wrong video mode (#8244) -* Wed May 09 2001 snwint@suse.de -- fixed boot problem on d230 (#7958) -- corrected detection of 800x600 frame buffer mode support (#7959) -* Sun May 06 2001 snwint@suse.de -- ask for driver update disk in graphics mode -- F2 - F4 video mode selection in text mode -- make 800x600 default if monitor supports it *or* - graphics card has >= 4MB memory -* Tue May 01 2001 kukuk@suse.de -- Add libpng to neededforbuild -* Tue May 01 2001 ro@suse.de -- added libnetpbm to neededforbuild -* Mon Apr 30 2001 snwint@suse.de -- made it require gfxboot package -- added netpbm to #neededforbuild -* Mon Apr 30 2001 snwint@suse.de -- new version (1.61): can now boot CDs directly (isolinux) -- graphics support completely reworked -* Tue Apr 03 2001 snwint@suse.de -- completely reworked syslinux patch -- support graphics boot screen -* Sun Jan 14 2001 snwint@suse.de -- new messages for our Driver Update feature -* Tue Jan 09 2001 ro@suse.de -- re-added README.SuSE to diff -* Mon Dec 18 2000 snwint@suse.de -- detect BIOS extended read capability -* Fri Jun 09 2000 snwint@suse.de -- improved ddc parser -- ! kernel cmdline gets quite long already (slightly below 200 chars) ! -* Fri Feb 11 2000 snwint@suse.de -- new version (1.48) -- some new features (see README.SuSE) -* Mon Oct 11 1999 snwint@suse.de -- added package (version 1.45)