Whole document tree
    

Whole document tree

Advice for BIOS authors

E.2. Advice for BIOS authors

Thank you for adding support for remote operations to your BIOS. A few points will maximize the benefits of that support, most of them are listed in Section E.1.

  • Keep the user interface simple. There is no need for fancy cursor-addressed terminal support. Fancy features simply limit the number of client terminal emulators that can be used. A surprising number of these have very buggy DEC VT100 implementations.

    In addition to supporting lower speeds, also test your user interface at low data rates.

  • Don't do too much. In Linux the boot loader and operating system both have explicit support for a serial console. So all the BIOS need do is to support the a serial interface for itself. Linux has no need for a generic serial redirection facility. If you do provide such a facility for other operating systems, please allow it to be disabled after system boot.

  • Don't allow line noise to prevent the computer from booting. Don't require just one key to enter the BIOS configuration, make your users and your marketing people happy by using a phrase like dell, hp or ibm. Copy the lifetime idea from Section E.1.

  • Present a consistent prompt. Imagine a user with a supercomputer array of five hundred PCs. You want to change a BIOS parameter. Make it easy for Expect to set those parameters.

  • Make sure the Linux utilities work. Check that the Linux nvram device driver returns the full contents of CMOS. This makes it simple to set the same CMOS settings on a large number of machines. The commands in Figure E-2 and Figure E-3 should work to copy the BIOS settings from one machine to another, where the make, model and BIOS versions of the machines are the same.

    Figure E-1. Configuring /dev/nvram to access the CMOS configuration

    bash# /dev/MAKEDEV nvram
    bash# vi /etc/modules.conf
    alias char-major-10-144 nvram
    bash# depmod -a

    Figure E-2. Getting the CMOS configuration

    bash# cat /dev/nvram > /etc/nvram.bin

    Figure E-3. Setting the CMOS configuration

    bash# cat /etc/nvram.bin > /dev/nvram

    Have a flash BIOS upgrade program that works from Linux. Make the source code to this available. Or publish the specifications so that one can be written.

  • Be clear about what you are providing. Some BIOSs with a ‘serial redirection’ feature don't allow the BIOS to be redirected to a plain text terminal, but instead use a proprietary protocol. This isn't of much use to Linux serial console users.