497 lines
7.6 KiB
HTML
497 lines
7.6 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Advice for BIOS authors</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
|
|
REL="HOME"
|
|
TITLE="Remote Serial Console HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="Gratuitous advice for developers"
|
|
HREF="advice.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Advice for boot loader authors"
|
|
HREF="advice-bootloader.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="About this HOWTO"
|
|
HREF="about.html"></HEAD
|
|
><BODY
|
|
CLASS="SECTION"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Remote Serial Console HOWTO</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="advice-bootloader.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
>Appendix F. Gratuitous advice for developers</TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="about.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H1
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="ADVICE-BIOS"
|
|
></A
|
|
>F.2. Advice for <SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> authors</H1
|
|
><P
|
|
>Thank you for adding support for remote operations to your
|
|
<SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
>. A few points will maximize the benefits of
|
|
that support, most of them are listed in <A
|
|
HREF="advice-bootloader.html"
|
|
>Section F.1</A
|
|
>.</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>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 <SPAN
|
|
CLASS="ACRONYM"
|
|
>DEC</SPAN
|
|
>
|
|
<SPAN
|
|
CLASS="PRODUCTNAME"
|
|
>VT100</SPAN
|
|
> implementations.</P
|
|
><P
|
|
>In addition to supporting lower speeds, also test your user
|
|
interface at low data rates.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Don't do too much. In <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>Linux</SPAN
|
|
> the
|
|
boot loader and operating system both have explicit support for a
|
|
serial console. So all the <SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> need do is to
|
|
support the a serial interface for itself.
|
|
<SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>Linux</SPAN
|
|
> 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.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Don't allow line noise to prevent the computer from
|
|
booting. Don't require just one key to enter the
|
|
<SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> configuration, make your users and your
|
|
marketing people happy by using a phrase like
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>dell</TT
|
|
>, <TT
|
|
CLASS="LITERAL"
|
|
>hp</TT
|
|
> or
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>ibm</TT
|
|
>. Copy the <TT
|
|
CLASS="LITERAL"
|
|
>lifetime</TT
|
|
> idea
|
|
from <A
|
|
HREF="advice-bootloader.html"
|
|
>Section F.1</A
|
|
>.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Present a consistent prompt. Imagine a user with a
|
|
supercomputer array of five hundred <SPAN
|
|
CLASS="ACRONYM"
|
|
>PC</SPAN
|
|
>s. You
|
|
want to change a <SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> parameter. Make it easy
|
|
for <SPAN
|
|
CLASS="APPLICATION"
|
|
><A
|
|
HREF="http://expect.nist.gov/"
|
|
TARGET="_top"
|
|
>Expect</A
|
|
></SPAN
|
|
> to set
|
|
those parameters.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Make sure the <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>Linux</SPAN
|
|
> utilities
|
|
work. Check that the <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>Linux</SPAN
|
|
>
|
|
<TT
|
|
CLASS="FUNCTION"
|
|
>nvram</TT
|
|
> device driver returns the full
|
|
contents of <SPAN
|
|
CLASS="ACRONYM"
|
|
>CMOS</SPAN
|
|
>. This makes it simple to set
|
|
the same <SPAN
|
|
CLASS="ACRONYM"
|
|
>CMOS</SPAN
|
|
> settings on a large number of
|
|
machines. The commands in <A
|
|
HREF="advice-bios.html#ADVICE-BIOS-NVRAMGET"
|
|
>Figure F-2</A
|
|
>
|
|
and <A
|
|
HREF="advice-bios.html#ADVICE-BIOS-NVRAMSET"
|
|
>Figure F-3</A
|
|
> should work to copy the
|
|
<SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> settings from one machine to another, where
|
|
the make, model and <SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> versions of the
|
|
machines are the same.</P
|
|
><DIV
|
|
CLASS="FIGURE"
|
|
><A
|
|
NAME="ADVICE-BIOS-NVRAMCONFIG"
|
|
></A
|
|
><P
|
|
><B
|
|
>Figure F-1. Configuring /dev/nvram to access the
|
|
<SPAN
|
|
CLASS="ACRONYM"
|
|
>CMOS</SPAN
|
|
> configuration</B
|
|
></P
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="90%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
><TT
|
|
CLASS="PROMPT"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="COMMAND"
|
|
>/dev/MAKEDEV nvram</B
|
|
>
|
|
<TT
|
|
CLASS="PROMPT"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="COMMAND"
|
|
>vi /etc/modules.conf</B
|
|
></PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="90%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
>alias char-major-10-144 nvram</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="90%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
><TT
|
|
CLASS="PROMPT"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="COMMAND"
|
|
>depmod -a</B
|
|
></PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="FIGURE"
|
|
><A
|
|
NAME="ADVICE-BIOS-NVRAMGET"
|
|
></A
|
|
><P
|
|
><B
|
|
>Figure F-2. Getting the <SPAN
|
|
CLASS="ACRONYM"
|
|
>CMOS</SPAN
|
|
> configuration</B
|
|
></P
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="90%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
><TT
|
|
CLASS="PROMPT"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="COMMAND"
|
|
>cat /dev/nvram > /etc/nvram.bin</B
|
|
></PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="FIGURE"
|
|
><A
|
|
NAME="ADVICE-BIOS-NVRAMSET"
|
|
></A
|
|
><P
|
|
><B
|
|
>Figure F-3. Setting the <SPAN
|
|
CLASS="ACRONYM"
|
|
>CMOS</SPAN
|
|
> configuration</B
|
|
></P
|
|
><TABLE
|
|
BORDER="1"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="90%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
><TT
|
|
CLASS="PROMPT"
|
|
>bash#</TT
|
|
> <B
|
|
CLASS="COMMAND"
|
|
>cat /etc/nvram.bin > /dev/nvram</B
|
|
></PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Have a flash <SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> upgrade program that
|
|
works from <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>Linux</SPAN
|
|
>. Make the source
|
|
code to this available. Or publish the specifications so that
|
|
one can be written.</P
|
|
><P
|
|
>Many flash <SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> update programs run from
|
|
a Microsoft <SPAN
|
|
CLASS="PRODUCTNAME"
|
|
><SPAN
|
|
CLASS="ACRONYM"
|
|
>MS-DOS</SPAN
|
|
></SPAN
|
|
>
|
|
boot diskette. Please check that the program also works with the
|
|
similar <SPAN
|
|
CLASS="PRODUCTNAME"
|
|
>Free<SPAN
|
|
CLASS="ACRONYM"
|
|
>DOS</SPAN
|
|
></SPAN
|
|
>
|
|
operating system. Many Linux computers do not have licenses for
|
|
Microsoft operating system software, so legally creating a
|
|
<SPAN
|
|
CLASS="PRODUCTNAME"
|
|
><SPAN
|
|
CLASS="ACRONYM"
|
|
>MS-DOS</SPAN
|
|
></SPAN
|
|
> boot
|
|
diskette may not be possible.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>Be clear in the documentation about what serial servies the
|
|
BIOS provides. Some <SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
>s with a
|
|
<SPAN
|
|
CLASS="QUOTE"
|
|
>"serial redirection"</SPAN
|
|
> feature don't allow the
|
|
<SPAN
|
|
CLASS="ACRONYM"
|
|
>BIOS</SPAN
|
|
> to be redirected to a plain text
|
|
terminal, but instead use a proprietary protocol. This isn't of
|
|
much use to <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>Linux</SPAN
|
|
> serial
|
|
console users.</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="advice-bootloader.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="about.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Advice for boot loader authors</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="advice.html"
|
|
ACCESSKEY="U"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>About this HOWTO</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |