January 8, 2002
Of note this week the merge of lm_sensors (drivers for health monitoring hardware) and support for AGP 3.0.
See http://www.kernelnewbies.org/status/ for details.
Also, many more bugs have been entered in bugzilla, mostly compile problems for broken drivers (http://bugzilla.kernel.org/)
-- Guillaume
List of the bugs up for adoption (i.e. noone is working on):
If you want to work on a bug, it is polite to mark it as 'Assigned' so other people know you are working on it.
18 nor [email protected] OPEN Synaptics touchpad driver 46 nor [email protected] OPEN ide-scsi causing (Two mice: unwanted double-clicks & erra... 48 nor [email protected] OPEN APM suspend and PCMCIA not cooperating 49 nor [email protected] OPEN register_console() called in illegal context 54 nor [email protected] OPEN 100% reproduceable "null TTY for (####) in tty_fasync" 58 nor [email protected] OPEN OHCI-1394: sleeping function called from illegal context ... 69 nor [email protected] OPEN Framebuffer bug 72 nor [email protected] OPEN Framebuffer scrolls at the wrong times/places 79 nor [email protected] OPEN Framebuffer scrolling problem 93 nor [email protected] OPEN 2.5.48 bttv module compile error 94 nor [email protected] OPEN file remain locked after sapdb process exist. 104 nor [email protected] OPEN MIPS fails to build: asm/thread_info.h doesn't exist 110 nor [email protected] OPEN Current bk Linux-2.5, VFS Kernel Panic from Devfs + NO UN... 115 nor [email protected] OPEN Kernel modules won't load 122 nor [email protected] OPEN emu10k1 OSS troubles 126 nor [email protected] OPEN bzImage build failure on input devices support as module 134 nor [email protected] OPEN 2.5.50 breaks pcmcia cards 135 nor [email protected] OPEN SB16/Alsa doesn't work 138 nor [email protected] OPEN Build error: drivers/video/sis/sis_main.h:299: parse erro... 142 low [email protected] OPEN problem with ver_linux script and procps version 143 nor [email protected] OPEN unable to read cd audio from atapi cdrom/cdrw/dvd device,... 145 nor [email protected] OPEN ALSA: SB-AWE ISA detection fails 149 nor [email protected] OPEN Laptop with touchpad and "pointer". Pointer never works 153 nor [email protected] OPEN compile failure on drivers/char/riscom8.c 154 nor [email protected] OPEN compile failure on drivers/char/esp.c 155 nor [email protected] OPEN compile failure on drivers/char/specialix.c 157 hig [email protected] OPEN Makefile bug? sound/synth/emux/built-in.o 158 nor [email protected] OPEN depmod should be in README 159 nor [email protected] OPEN compile failure on drivers/isdn/i4l/isdn_net_lib.c 160 nor [email protected] OPEN With 2 different nic on one system, dhcp configuration fails 161 nor [email protected] OPEN VESAfb in 2.5 somehow influences X resolution. 162 nor [email protected] OPEN compile failure on drivers/media/video/bttv-cards.c 171 nor [email protected] OPEN 2.5.51 at kb driver leaves kb ib state that prevents (sof... 172 nor [email protected] OPEN tdfxfb.c can't be compiled 174 nor [email protected] OPEN link failure in function dvb_generic_ioctl: undefined ref... 179 nor [email protected] OPEN boot from 21 sec/track floppy 183 nor [email protected] OPEN megaraid driver panics with IBM EXP300 enclosure 184 nor [email protected] OPEN Unresolved symbols in crypto modules. 189 nor [email protected] OPEN sscanf in lib/vsprintf.c ignores field width for numeric ... 191 nor [email protected] OPEN Panic on shutdown 192 nor [email protected] OPEN loop.c IV calculation is broken since 2.4.x 193 nor [email protected] OPEN sysrq umount bad ordering (real before loop) 195 nor [email protected] OPEN compile failure on drivers/media/video/zr36067.c 196 nor [email protected] OPEN compile failure on drivers/media/video/stradis.c 197 nor [email protected] OPEN compile failure on drivers/media/video/tda9887.o 198 nor [email protected] OPEN compile failure on drivers/message/i2o/i2o_lan.c 199 nor [email protected] OPEN compile failure on drivers/mtd/devices/blkmtd.c 200 nor [email protected] OPEN compile failure on drivers/mtd/ftl.c 201 nor [email protected] OPEN compile failure on drivers/net/fc/iph5526.c 203 nor [email protected] OPEN compile failure on drivers/net/wan/sdlamain.c 204 nor [email protected] OPEN compile failure on drivers/net/rcpci45.c 205 low [email protected] OPEN gpm mouse cursor flips chars on framebuffer console 206 nor [email protected] OPEN broken colors on framebuffer console 207 blo [email protected] OPEN Cirrus Logic Framebuffer -- Does not compile 208 nor [email protected] OPEN Build error in aironet4500_core.c 209 nor [email protected] OPEN Matrox Framebuffer -- Does not compile 211 nor [email protected] OPEN Mounting a SM/CF reader does not work and does not return 213 nor [email protected] OPEN compile failure in drivers/scsi/ini9100u.c 214 nor [email protected] OPEN Incorrect disabling of mate drive 215 nor [email protected] OPEN compile failure in drivers/scsi/pci2000.c 216 nor [email protected] OPEN compile failure in drivers/scsi/pci2220i.c 217 nor [email protected] OPEN compile failure in drivers/scsi/dpt_i2o.c 218 nor [email protected] OPEN compile failure in drivers/scsi/53c7,8xx.c 219 nor [email protected] OPEN compile failure in drivers/scsi/tmscsim.c 220 nor [email protected] OPEN compile failure in drivers/scsi/AM53C974.c 221 nor [email protected] OPEN compile failure in drivers/scsi/gdth.c 222 nor [email protected] OPEN compile failure in drivers/scsi/eata_dma.c 223 nor [email protected] OPEN "usbdevfs is depreciated" message always printed even whe... 228 low [email protected] OPEN Make pdfdocs/psdocs/htmldoc fail in 2.5.54 232 nor [email protected] OPEN out of bounds according to stanford checker 233 nor [email protected] OPEN Out of bounds according to Andy Chou <[email protected]> 234 nor [email protected] OPEN Out of bounds according to Andy Chou <[email protected]> 235 nor [email protected] OPEN array out of bound according to Andy Chou <[email protected]... 236 nor [email protected] OPEN conversion error from Andy Chou <[email protected]> 237 low [email protected] OPEN buffer out of bounds from Andy Chou <[email protected]> 238 low [email protected] OPEN buffer out of bounds. From Andy Chou <[email protected]> 239 low [email protected] OPEN buffer out of bounds from Andy Chou <[email protected]> 240 low [email protected] OPEN possible off by one error from Andy Chou <[email protected]... 241 low [email protected] OPEN buffer out of bounds from Andy Chou <[email protected]> 242 low [email protected] OPEN buffer out of bounds in aha1542.c from Andy Chou <acc@cs.... 243 low [email protected] OPEN possible out of bounds bug from Andy Chou <[email protected]... 244 low [email protected] OPEN Possible bug from Andy Chou <[email protected]> 245 low [email protected] OPEN Possible out of bound error in sym53c416.c from Andy Chou... 246 low [email protected] OPEN Possible missing assert in sym_malloc.c from [email protected]... 247 low [email protected] OPEN Possible bug in fbgen.c from Stanford Checker 248 low [email protected] OPEN Possible bug in sstfb.c from Stanford Checker 249 nor [email protected] OPEN uninitialized pointer in sstfb.c from Stanford Checker 250 low [email protected] OPEN Possible out of bounds error from Stanford Checker 252 low [email protected] OPEN Possible out of bounds bug in sb_mixer.c from Stanford Ch... 253 low [email protected] OPEN another possible out of bounds error in sb_mixer.c from S... 254 low [email protected] OPEN One more possible out of bounds error in sb_mixer.c from ... 255 low [email protected] OPEN Possible out of bounds error in ac97_patch.c from Stanfor... 256 nor [email protected] OPEN 3c509.c wants updating to new pnp model
List of bugs that have been claimed (i.e. someone is working on):
5 nor [email protected] ASSI 64GB highmem BUG() 7 nor [email protected] ASSI file lock accounting broken 8 low [email protected] ASSI i2o_scsi does not handle reset properly 9 nor [email protected]... ASSI Ehci do not leave system in a sensible state for bios on ... 10 hig [email protected] ASSI USB HCs may have improper interrupt configuration with AC... 14 nor [email protected] ASSI No dri : unsupported Via chipset (device id: 3189) 15 nor [email protected] ASSI No dma on first hard drive 16 nor [email protected] ASSI reproduceable oops in lock_get_status 29 low [email protected] ASSI Debug: sleeping function called from illegal context at m... 36 nor [email protected] ASSI Long tape rewind causes abort on aic7xxx 37 nor [email protected] ASSI IDE problems on old pre-PCI HW 39 nor [email protected] ASSI undefined reference to `boot_gdt_table' 43 nor [email protected] ASSI e100 drivers crashes on non cache-coherent platforms 44 blo [email protected] ASSI radeonfb does not compile at all - seems incomplete? or w... 51 nor [email protected] ASSI isapnp does not register devices in /proc/isapnp 52 nor [email protected] ASSI aic7xxx driver fails to boot on netfinity 7000 53 nor [email protected] ASSI IDE cd-rom I/O error 63 nor [email protected] ASSI compile error with CONFIG_HUGETLB_PAGE yes 66 blo [email protected] ASSI SMP Kernel Compile for Sparc32 fails 71 hig [email protected] ASSI RTL8100BL (8139) do not work on acpi UP without local apic 83 low [email protected] ASSI Wish: ability to quickly cycle through (NEW) config options 100 nor [email protected] ASSI LTP - gettimeofday02 fails (time is going backwards) 105 nor [email protected] ASSI gettimeofday cripples system running with notsc 106 nor [email protected] ASSI sysfs hierarchy can begin to disintegrate 111 hig [email protected] ASSI hugetlbfs does not align pages 113 hig [email protected] ASSI CMD649 or ALI15X3 problem under 2.5.49 and since many pre... 118 blo [email protected] ASSI Load IDE-SCSI module causes OOPS in 2.5.49 119 nor [email protected] ASSI 2.5.49 - Dell Latitude weirdness at shutdown 123 blo [email protected] ASSI SiL 680 IDE controller has "issues" 130 hig [email protected] ASSI problems mounting root partition with 2.5.48+ kernels 131 nor [email protected] ASSI "hda: lost interrupt"; "hda: dma_intr: bad DMA status" on... 132 nor [email protected] ASSI windows ip check ARP packet replied by kernel when proxy_... 136 nor [email protected] ASSI FSID returned from statvfs always 0 140 nor [email protected] ASSI isp1020 driver reports error 146 low [email protected] ASSI Assertion failure in do_get_write_access() at fs/jbd/tra... 150 nor [email protected] ASSI [PNP][2.5] IDE Detection problems (wrong IRQ and wrong ID... 151 nor [email protected] ASSI compile failure on drivers/block/ps2esdi.c 156 nor [email protected] ASSI compile failure on drivers/ide/pci/nvidia.c 165 nor [email protected] ASSI Kernel crashes after stop network and remove e100. 166 nor [email protected] ASSI e100 spits out strange message during startup. 167 nor [email protected] ASSI compile failure on drivers/media/video/zr36120.c 168 nor [email protected] ASSI compile failure on drivers/media/video/saa7185.c 169 nor [email protected] ASSI compile failure on drivers/media/video/bt819.c 170 low [email protected] ASSI poisoned oops in dump_orphan_list 185 low [email protected] ASSI mwave init yields: bad: scheduling while atomic! 188 nor [email protected] ASSI proc_pid_readdir() holds the tasklist_lock for excessive ...
Re: Killing off the boot sector (was: [STATUS 2.5] January 8, 2002)
Followup to: <3E1C2208.6727.5370CB@localhost> By author: "Guillaume Boissiere" <[email protected]> In newsgroup: linux.dev.kernel
Quoted 4 lines
179 nor [email protected] OPEN boot from 21
sec/track floppy
Can we *please* kill off the stupid in-kernel boot sector? The probing method it uses to determine geometry is unreliable (doesn't work on anything but true legacy floppies, not IDE, not USB, not firewire); it generates these kinds of requests; doesn't handle large-size kernels; hard-codes the use of address 0x90000 which isn't available on all machines; and overall promotes what's fundamentally bad practice.
People keep asking what's the harm in keeping it, and the answer is, quite simply: "because people continue to try to use it."
Here is a patch that guts it to print an error message. It's even tested.
arch/i386/boot/bootsect.S renamed from arch/i386/boot/bootsect.S.dist +30 -358
@@ -4,29 +4,13 @@ * modified by Drew Eckhardt * modified by Bruce Evans (bde) * modified by Chris Noe (May 1999) (as86 -> gas) - * - * 360k/720k disk support: Andrzej Krzysztofowicz <[email protected]> + * gutted by H. Peter Anvin (Jan 2003) * * BIG FAT NOTE: We're in real mode using 64k segments. Therefore segment * addresses must be multiplied by 16 to obtain their respective linear * addresses. To avoid confusion, linear addresses are written using leading * hex while segment addresses are written as segment:offset. * - * bde - should not jump blindly, there may be systems with only 512K low - * memory. Use int 0x12 to get the top of memory, etc. - * - * It then loads 'setup' directly after itself (0x90200), and the system - * at 0x10000, using BIOS interrupts. - * - * NOTE! currently system is at most (8*65536-4096) bytes long. This should - * be no problem, even in the future. I want to keep it simple. This 508 kB - * kernel size should be enough, especially as this doesn't contain the - * buffer cache as in minix (and especially now that the kernel is - * compressed :-) - * - * The loader has been made as simple as possible, and continuous - * read errors will result in a unbreakable loop. Reboot by hand. It - * loads pretty fast by getting whole tracks at a time whenever possible. */ #include <asm/boot.h>
@@ -59,359 +43,47 @@ .global _start _start: -# First things first. Move ourself from 0x7C00 -> 0x90000 and jump there. + # Normalize the start address + jmpl $BOOTSEG, $start2 - movw $BOOTSEG, %ax - movw %ax, %ds # %ds = BOOTSEG - movw $INITSEG, %ax - movw %ax, %es # %ax = %es = INITSEG - movw $256, %cx - subw %si, %si - subw %di, %di - cld - rep - movsw - ljmp $INITSEG, $go - -# bde - changed 0xff00 to 0x4000 to use debugger at 0x6400 up (bde). We -# wouldn't have to worry about this if we checked the top of memory. Also -# my BIOS can be configured to put the wini drive tables in high memory -# instead of in the vector table. The old stack might have clobbered the -# drive table. - -go: movw $0x4000-12, %di # 0x4000 is an arbitrary value >= - # length of bootsect + length of - # setup + room for stack; - # 12 is disk parm size. - movw %ax, %ds # %ax and %es already contain INITSEG +start2: + movw %cs, %ax + movw %ax, %ds + movw %ax, %es movw %ax, %ss - movw %di, %sp # put stack at INITSEG:0x4000-12. + movw $0x7c00, %sp + sti + cld -# Many BIOS's default disk parameter tables will not recognize -# multi-sector reads beyond the maximum sector number specified -# in the default diskette parameter tables - this may mean 7 -# sectors in some cases. -# -# Since single sector reads are slow and out of the question, -# we must take care of this by creating new parameter tables -# (for the first disk) in RAM. We will set the maximum sector -# count to 36 - the most we will encounter on an ED 2.88. -# -# High doesn't hurt. Low does. -# -# Segments are as follows: %cs = %ds = %es = %ss = INITSEG, %fs = 0, -# and %gs is unused. - - movw %cx, %fs # %fs = 0 - movw $0x78, %bx # %fs:%bx is parameter table address - pushw %ds - ldsw %fs:(%bx), %si # %ds:%si is source - movb $6, %cl # copy 12 bytes - pushw %di # %di = 0x4000-12. - rep # don't worry about cld - movsw # already done above - popw %di - popw %ds - movb $36, 0x4(%di) # patch sector count - movw %di, %fs:(%bx) - movw %es, %fs:2(%bx) - -# Get disk drive parameters, specifically number of sectors/track. - -# It seems that there is no BIOS call to get the number of sectors. -# Guess 36 sectors if sector 36 can be read, 18 sectors if sector 18 -# can be read, 15 if sector 15 can be read. Otherwise guess 9. -# Note that %cx = 0 from rep movsw above. + movw $bugger_off_msg, %si - movw $disksizes, %si # table of sizes to try -probe_loop: +msg_loop: lodsb - cbtw # extend to word - movw %ax, sectors - cmpw $disksizes+4, %si - jae got_sectors # If all else fails, try 9 - - xchgw %cx, %ax # %cx = track and sector - xorw %dx, %dx # drive 0, head 0 - movw $0x0200, %bx # address = 512, in INITSEG (%es = %cs) - movw $0x0201, %ax # service 2, 1 sector - int $0x13 - jc probe_loop # try next value - -got_sectors: - movb $0x03, %ah # read cursor pos - xorb %bh, %bh - int $0x10 - movw $9, %cx - movb $0x07, %bl # page 0, attribute 7 (normal) - # %bh is set above; int10 doesn't - # modify it - movw $msg1, %bp - movw $0x1301, %ax # write string, move cursor - int $0x10 # tell the user we're loading.. - -# Load the setup-sectors directly after the moved bootblock (at 0x90200). -# We should know the drive geometry to do it, as setup may exceed first -# cylinder (for 9-sector 360K and 720K floppies). - - movw $0x0001, %ax # set sread (sector-to-read) to 1 as - movw $sread, %si # the boot sector has already been read - movw %ax, (%si) - - call kill_motor # reset FDC - movw $0x0200, %bx # address = 512, in INITSEG -next_step: - movb setup_sects, %al - movw sectors, %cx - subw (%si), %cx # (%si) = sread - cmpb %cl, %al - jbe no_cyl_crossing - movw sectors, %ax - subw (%si), %ax # (%si) = sread -no_cyl_crossing: - call read_track - pushw %ax # save it - call set_next # set %bx properly; it uses %ax,%cx,%dx - popw %ax # restore - subb %al, setup_sects # rest - for next step - jnz next_step - - pushw $SYSSEG - popw %es # %es = SYSSEG - call read_it - call kill_motor - call print_nl - -# After that we check which root-device to use. If the device is -# defined (!= 0), nothing is done and the given device is used. -# Otherwise, one of /dev/fd0H2880 (2,32) or /dev/PS0 (2,28) or /dev/at0 (2,8) -# depending on the number of sectors we pretend to know we have. - -# Segments are as follows: %cs = %ds = %ss = INITSEG, -# %es = SYSSEG, %fs = 0, %gs is unused. - - movw root_dev, %ax - orw %ax, %ax - jne root_defined - - movw sectors, %bx - movw $0x0208, %ax # /dev/ps0 - 1.2Mb - cmpw $15, %bx - je root_defined - - movb $0x1c, %al # /dev/PS0 - 1.44Mb - cmpw $18, %bx - je root_defined - - movb $0x20, %al # /dev/fd0H2880 - 2.88Mb - cmpw $36, %bx - je root_defined - - movb $0, %al # /dev/fd0 - autodetect -root_defined: - movw %ax, root_dev - -# After that (everything loaded), we jump to the setup-routine -# loaded directly after the bootblock: - - ljmp $SETUPSEG, $0 - -# These variables are addressed via %si register as it gives shorter code. - -sread: .word 0 # sectors read of current track -head: .word 0 # current head -track: .word 0 # current track - -# This routine loads the system at address SYSSEG, making sure -# no 64kB boundaries are crossed. We try to load it as fast as -# possible, loading whole tracks whenever we can. - -read_it: - movw %es, %ax # %es = SYSSEG when called - testw $0x0fff, %ax -die: jne die # %es must be at 64kB boundary - xorw %bx, %bx # %bx is starting address within segment -rp_read: -#ifdef __BIG_KERNEL__ # look in setup.S for bootsect_kludge - bootsect_kludge = 0x220 # 0x200 + 0x20 which is the size of the - lcall *bootsect_kludge # bootsector + bootsect_kludge offset -#else - movw %es, %ax - subw $SYSSEG, %ax - movw %bx, %cx - shr $4, %cx - add %cx, %ax # check offset -#endif - cmpw syssize, %ax # have we loaded everything yet? - jbe ok1_read - - ret - -ok1_read: - movw sectors, %ax - subw (%si), %ax # (%si) = sread - movw %ax, %cx - shlw $9, %cx - addw %bx, %cx - jnc ok2_read - - je ok2_read - - xorw %ax, %ax - subw %bx, %ax - shrw $9, %ax -ok2_read: - call read_track - call set_next - jmp rp_read - -read_track: - pusha - pusha - movw $0xe2e, %ax # loading... message 2e = . - movw $7, %bx - int $0x10 - popa - -# Accessing head, track, sread via %si gives shorter code. - - movw 4(%si), %dx # 4(%si) = track - movw (%si), %cx # (%si) = sread - incw %cx - movb %dl, %ch - movw 2(%si), %dx # 2(%si) = head - movb %dl, %dh - andw $0x0100, %dx - movb $2, %ah - pushw %dx # save for error dump - pushw %cx - pushw %bx - pushw %ax - int $0x13 - jc bad_rt - - addw $8, %sp - popa - ret - -set_next: - movw %ax, %cx - addw (%si), %ax # (%si) = sread - cmp sectors, %ax - jne ok3_set - movw $0x0001, %ax - xorw %ax, 2(%si) # change head - jne ok4_set - incw 4(%si) # next track -ok4_set: - xorw %ax, %ax -ok3_set: - movw %ax, (%si) # set sread - shlw $9, %cx - addw %cx, %bx - jnc set_next_fin - movw %es, %ax - addb $0x10, %ah - movw %ax, %es + andb %al, %al + jz die + mov $0xe, %ah xorw %bx, %bx -set_next_fin: - ret - -bad_rt: - pushw %ax # save error code - call print_all # %ah = error, %al = read - xorb %ah, %ah - xorb %dl, %dl - int $0x13 - addw $10, %sp - popa - jmp read_track - -# print_all is for debugging purposes. -# -# it will print out all of the registers. The assumption is that this is -# called from a routine, with a stack frame like -# -# %dx -# %cx -# %bx -# %ax -# (error) -# ret <- %sp - -print_all: - movw $5, %cx # error code + 4 registers - movw %sp, %bp -print_loop: - pushw %cx # save count remaining - call print_nl # <-- for readability - cmpb $5, %cl - jae no_reg # see if register name is needed - - movw $0xe05 + 'A' - 1, %ax - subb %cl, %al - int $0x10 - movb $'X', %al int $0x10 - movb $':', %al - int $0x10 -no_reg: - addw $2, %bp # next register - call print_hex # print it - popw %cx - loop print_loop - ret + jmp msg_loop -print_nl: - movw $0xe0d, %ax # CR - int $0x10 - movb $0xa, %al # LF - int $0x10 - ret - -# print_hex is for debugging purposes, and prints the word -# pointed to by %ss:%bp in hexadecimal. - -print_hex: - movw $4, %cx # 4 hex digits - movw (%bp), %dx # load word into %dx -print_digit: - rolw $4, %dx # rotate to use low 4 bits - movw $0xe0f, %ax # %ah = request - andb %dl, %al # %al = mask for nybble - addb $0x90, %al # convert %al to ascii hex - daa # in only four instructions! - adc $0x40, %al - daa - int $0x10 - loop print_digit - ret +die: + # Allow the user to press a key, then reboot + xorw %ax, %ax + int $0x16 + int $0x19 -# This procedure turns off the floppy drive motor, so -# that we enter the kernel in a known state, and -# don't have to worry about it later. -# NOTE: Doesn't save %ax or %dx; do it yourself if you need to. - -kill_motor: -#if 1 - xorw %ax, %ax # reset FDC - xorb %dl, %dl - int $0x13 -#else - movw $0x3f2, %dx - xorb %al, %al - outb %al, %dx -#endif - ret -sectors: .word 0 -disksizes: .byte 36, 18, 15, 9 -msg1: .byte 13, 10 - .ascii "Loading" +bugger_off_msg: + .ascii "Direct booting from floppy is no longer supported.\r\n" + .ascii "Please use a boot loader program instead.\r\n" + .ascii "\n" + .ascii "Remove disk and press any key to reboot . . .\r\n" + .byte 0 + -# XXX: This is a fairly snug fit. + # Kernel attributes; used by setup -.org 497 + .org 497 setup_sects: .byte SETUPSECTS root_flags: .word ROOT_RDONLY syssize: .word SYSSIZE
arch/i386/boot/tools/build.c renamed from arch/i386/boot/tools/build.c.dist +2 -5
@@ -150,13 +150,10 @@ sz = sb.st_size;fprintf (stderr,"System is %d kB\n" , sz/1024 ); sys_size = (sz +15 ) /16 ; -/* 0x28000*16 = 2.5 MB, conservative estimate for the current maximum */ -if (sys_size > (is_big_kernel ?0x28000 :DEF_SYSSIZE )) +/* 0x40000*16 = 4.0 MB, reasonable estimate for the current maximum */ +if (sys_size > (is_big_kernel ?0x40000 :DEF_SYSSIZE ))die ("System is too big. Try using %smodules." , is_big_kernel ?"" :"bzImage or " ); -if (sys_size >0xefff ) -fprintf (stderr,"warning: kernel is too big for standalone boot " -"from floppy\n" );while (sz >0 ) {int l, n;
Signature · 3 lines
<[email protected]> at work, <[email protected]> in private! "Unix gives you enough rope to shoot yourself in the foot." http://www.zytor.com/~hpa/puzzle.txt <[email protected]>
Re: Killing off the boot sector (was: [STATUS 2.5] January 8, 2002)
Hi HPA :))
Quoted 1 line
Can we *please* kill off the stupid in-kernel boot sector?
Yespleaseyespleaseyesplease... I posted a message here a long
time ago because I couldn't boot a raw kernel image with 2.4.x. Well, it didn't work even with a emulated floppy image (El Torito, you know)...
I think that, with those good boot loaders out there, this piece
of code, that is architecture dependend, should be off-the kernel.
IMHO, those saved bytes should be used to store another cool Tux
image or something like that XDDDDD
Quoted 2 lines
People keep asking what's the harm in keeping it, and the answer is, quite simply: "because people continue to try to use it."
Exact...
You've got a very good and sensible idea ;)
Raúl
Re: Killing off the boot sector (was: [STATUS 2.5] January 8, 2002)
In reply to H. Peter AnvinQuoted 11 lines
Can we *please* kill off the stupid in-kernel boot sector?
Here is a patch that guts it to print an error message. It's even tested.
arch/i386/boot/bootsect.S renamed from arch/i386/boot/bootsect.S.dist +0
-6-# This procedure turns off the floppy drive motor, so -# that we enter the kernel in a known state, and -# don't have to worry about it later. -# NOTE: Doesn't save %ax or %dx; do it yourself if you need to. - -kill_motor:
arch/i386/boot/bootsect.S line 405
Quoted 10 lines
arch/i386/boot/bootsect.S renamed from arch/i386/boot/bootsect.S.dist +0
-10-#if 1 - xorw %ax, %ax # reset FDC - xorb %dl, %dl - int $0x13 -#else - movw $0x3f2, %dx - xorb %al, %al - outb %al, %dx -#endif - ret
Shouldn't that part stay, incase somebody boots a machine from a floppy, and leaves it running for hours?
arch/i386/boot/bootsect.S line 80
Quoted 4 lines
arch/i386/boot/bootsect.S renamed from arch/i386/boot/bootsect.S.dist +4
-0+ .ascii "Direct booting from floppy is no longer supported.\r\n" + .ascii "Please use a boot loader program instead.\r\n" + .ascii "\n" + .ascii "Remove disk and press any key to reboot . . .\r\n"
Couldn't you put an ASCII penguin in there? :-)
John.
Re: Killing off the boot sector (was: [STATUS 2.5] January 8, 2002)
Followup to: <[email protected]> By author: John Bradford <[email protected]> In newsgroup: linux.dev.kernel
Quoted 4 lines
Shouldn't that part stay, incase somebody boots a machine from a floppy, and leaves it running for hours?
No; interrupts are enabled so the BIOS will time out the floppy and turn off the motor if necessary. The only reason Linux (sort of) needs that code is because the kernel takes control away from the BIOS. I say "sort of" because it really only matters if the kernel doesn't have a floppy driver.
-hpa
Signature · 3 lines
<[email protected]> at work, <[email protected]> in private! "Unix gives you enough rope to shoot yourself in the foot." http://www.zytor.com/~hpa/puzzle.txt <[email protected]>