[syslinux] Conditional kernel selection based on CPUID/DMI info
Jeffrey Hutzelman
jhutz at cmu.edu
Tue Jan 29 14:24:59 PST 2008
--On Tuesday, January 29, 2008 01:47:47 PM -0800 "H. Peter Anvin"
<hpa at zytor.com> wrote:
> Jeffrey Hutzelman wrote:
>>
>> The second is bioschk.asm, which started out as a way to check for a
>> particularly annoying BIOS (Dell Optiplex GX620 version A11, on which
>> USB keyboard emulation breaks apparently on entering 32-bit protected
>> mode).
>> I decided early that it should be configurable, and ended up writing a
>> scripting language complete with branching, limited user input, and the
>> ability to boot things. I've attached just the source, but there's also
>> a test suite.
>>
>
> I would be a lot happier putting this in C code (as a COM32 module),
> though. I'm trying to reduce the size of the assembly core rather than
> have it grow. I'd like to actually get rid of most of it over time.
So far, I've avoided any com32 modules. Previous comboot modules I've done
have been farily trivial and com32 seemed more effort than it was worth.
That's clearly not the case here, and doing it in C would be quite a bit
more maintainable, but it wouldn't have met my need -- the original purpose
of the bioschk module was to detect a buggy BIOS that made user interaction
from a com32 module impossible. What actually happened was that I deployed
new menus using menu.c32 instead of PXE's built-in menu capability, and our
staff started complaining that they could no longer select anything from
the menu!
The bug is not in SYSLINUX, BTW. I'm pretty sure it's been discussed here
before, and Dell has acknowledged it. Unfortunately, that was over a year
ago, and the platform in question is officially EOL, so there's not much
hope of a fix from them. Their own BIOS updater run under MEMDISK has the
same problem; I had to put together a version that would boot and do the
update without asking for confirmation.
-- Jeff
More information about the Syslinux
mailing list