bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: grub crashes. Crash as in causes the PC to reboot.


From: James Courtier-Dutton
Subject: Re: grub crashes. Crash as in causes the PC to reboot.
Date: Sat, 03 Jan 2004 16:54:18 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6b) Gecko/20031208 Thunderbird/0.4

It has turned out to be a Adaptec AHA-2940 BIOS ver 1.21 bug.
The latest BIOS from Adaptec is ver 1.23, but there are no release notes with the BIOS file, so I had no way of telling what it would fix. My card does not have a Flash BIOS, so I will have to find an eeprom programmer and use that.

I found a nice explanation at
http://www.bootmanager.com/fragenantworten.html.en.html
Section starting: -
Adaptec AHA 2940, AHA2940W, AHA 2940U, AHA 2940UW

A temport fix is in fact disabling Extended INT13 in the SCSI BIOS setup. (CTRL-A to get in)

I am really annoyed that Adaptec did not mention this on their web site!

grub now boots ok with Extented INT13 disabled.

It was actually hanging/rebooting on the AH=42, INT13 call !

Cheers
James


James Courtier-Dutton wrote:
I have 2 Hard discs.
hd0 is IDE.
hd1 is SCSI   The SCSI controller is a very old Adaptec AHA-2940.


After booting from a floppy containing grub: -

grub> geometry (hd0)
Displays geometry and returns to grub> prompt.
grub> geometry (hd1)
Displays geometry and causes an immeadiate reboot!

It is only the SCSI drive that has problems.

hd1 has only one primary partition, containing a FAT32 formatted partition with Windows 98 on it.

 From looking at the grub source code, it looks like: -
File is stage2/builtins.c

/* geometry */
static int
geometry_func (char *arg, int flags)
{

<snip>
  grub_printf ("drive 0x%x: C/H/S = %d/%d/%d, "
               "The number of sectors = %d, %s\n",
               current_drive,
               geom.cylinders, geom.heads, geom.sectors,
               geom.total_sectors, msg);
  real_open_partition (1);


  return 0;
}


So, as it gets and actually prints that information from the grub_printf, my guess is the problem is in real_open_partition(1).

What exactly does real_open_partition(1) do, and can I remove that line for test purposes?

If by removing it, the geometry command works, I can then look at the real_open_partition function, and add a few grub_printf's to see where it reboots. Does grub have a "grub_pause_for_1_second" function? That would also help by giving me a chance to see what is printed before the reboot.

Cheers
James


_______________________________________________
Bug-grub mailing list
address@hidden
http://mail.gnu.org/mailman/listinfo/bug-grub







reply via email to

[Prev in Thread] Current Thread [Next in Thread]