[syslinux] Problems booting on Intel i9x5 motherboards.

Pat Suwalski pat at suwalski.net
Fri Jun 2 08:32:13 PDT 2006


Murali Krishnan Ganapathy wrote:
> (1) menu.c32 is not calling the API with the right string (extra spaces 
> etc...)

This is one of my thoughts. The parsing code in menu.c is rather basic 
(as perhaps it should be). The thing that makes me think it's not this 
is that removing most of the append line still makes this happen. There 
are no funny characters in the config file. And, of course, other 
systems take it without problem.

> (2) Parts of menu.c32 (or its effects) is still in memory after it has 
> finished executing.

This also occurred to me and seems most likely. To test the booting 
method a little more, I'm experimenting with using the execute() 
function of menu.c and replaced it with the function from libmenu (sets 
EAX to 0003 instead of 0016, not sure what that is). Anyway, I still get 
the same results, which further pushes the theory that something is left 
over in memory.

Here is another example of how this is substantiated. In this test there 
is no default line in the cfg file.

boot:
 >enter "/boot/vmlinuz vga=ask"
Loading... etc.
press space for default mode or wait 30 seconds, etc.
 >press space
Uncompressing...
Kernel panic (as expected)

Success. Now let's try loading and unloading menu.c32:

boot:
 >enter "menu.c32"
 >press escape
boot:
 >enter "/boot/vmlinuz vga=ask"
Loading... etc.
press space for default mode or wait 30 seconds, etc.
 >press space
Random ANSI character on screen

Fails just like if booted from menu itself.

> If (1) is the case, it should fail on all machines (assuming the kernel 
> is the same). To check (2) you can try running some other code from 
> menu.c32 and see if that is affected as well.
> * Start with something like "display.c32" (displays a file and quits) or 
> "simple.c" and go on to memtest86 etc

This is where it gets really interesting. I start menu.c32, exit 
menu.c32, start simple.c32, it works. However, I try my boot option in 
simple.c32 and it fails just as menu.c32 directly. menu.c32 is 
definitely leaving something around.

> * Alternately you can start inserting print statements in the menu.c32 
> code to try to find what is going on.
> BTW, can VMWare/Bochs/... emulate i9x5 motherboards? Then we can try to 
> see if it i9x5 is the problem or just that you got a bad batch of machines.

Yeah, I use QEmu a lot. It doesn't get affected by this, and it even 
works on the machines that have problems natively. VMWare seems to often 
exhibit the problems that the host machine has, though. Regardless, I 
have about a dozen i9x5's that work just fine with all this.

--Pat




More information about the Syslinux mailing list