Robert Millan wrote: > On Wed, Aug 20, 2008 at 10:57:22AM +0200, Per Öberg wrote: > >> Hi >> >> Some laptops, e.g., from Dell have a special button that they use to >> boot a special embedded OS for media only instead of the ordinary OS. >> >> For my Dell XPS1330M I can determine if the Media button was pressed by >> first writing 0xf9 to port 0x70 and then testing bit 0x08 of port 0x71. >> >> It would be really nice if such a test could be enabled in grub so that >> grub can go directly to a specific menu alternative without showing the >> gui if the media button was pressed. >> >> Is this interesting? I'd like to contribute but I don't know where to start. >> > > Sounds interesting, but this needs some thought on how to design it. > > I suppose what you want is change the 'default' variable. Perhaps increase > it by 1? But then, where do you do this? grub_machine_init is too early as > 'default' hasn't been set yet. > > Maybe we could have a global 'int default_offset' variable that is initialized > in grub_machine_init and later on used by normal.mod? > >
The sequence of writing to port 0x70 / reading from port 0x71 reflects reading from the computer's "cmos" nvram memory. bit 7 of 0x70 is reserved for disabling NMIs, so the actual information is stored in byte 0x79[8] in the cmos. To allow full flexibility, there should just be a module that allows reading / writing the cmos values (could also be useful for other things, such as reading a boot order set by the bios). Everything else makes more sense in scripting: - changing "default" - changing "timeout" - support for bit operations in the parser - etc... -- coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br. Tel.: +49 761 7668825 • Fax: +49 761 7664613 Email: [EMAIL PROTECTED] • http://www.coresystems.de/ Registergericht: Amtsgericht Freiburg • HRB 7656 Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel