Remote Serial Console HOWTO
Prev | Appendix F. Gratuitous advice for developers | Next

# F.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 F.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 F.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 F-2 and Figure F-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 F-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 F-2. Getting the CMOS configuration

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

  Figure F-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.

  Many flash BIOS update programs run from a Microsoft MS-DOS boot diskette. Please check that the program also works with the similar FreeDOS operating system. Many Linux computers do not have licenses for Microsoft operating system software, so legally creating a MS-DOS boot diskette may not be possible.

- Be clear in the documentation about what serial servies the BIOS provides. 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.

Prev | Home | Next
Advice for boot loader authors | Up | About this HOWTO