<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>

<sect1 id="ch-bootloaders-colo" role="wrap">
  <?dbhtml filename="colo.html"?>

  <title>Colo-&colo-version;</title>

  <indexterm zone="ch-bootloaders-colo">
    <primary sortas="a-Colo">Colo</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>This bootloader is for the MIPS based cobalt servers RaQ,
    RaQ2, Qube, or the Qube2.</para>

  </sect2>

  <sect2 role="installation">
    <title>Installation of Colo</title>

    <para os="p1">This patch updates the Colo bootloader to build under
    cross-compiled conditions:</para>

<screen os="p2"><userinput>patch -Np1 -i ../&colo-make-patch;</userinput></screen>

    <para os="p3">This patch fixes a relocation error when linking with
    Binutils:</para>

<screen os="p4"><userinput>patch -Np1 -i ../&colo-relocation-patch;</userinput></screen>

    <para os="a">Compile the Colo package:</para>

<screen os="b"><userinput>make CC="${CC}" CROSS_COMPILE="${CLFS_TARGET}-" binary
make CC="${CC}" CROSS_COMPILE="${CLFS_TARGET}-" tooldirs</userinput></screen>

    <para os="c">Install the package:</para>

<screen os="d"><userinput>install -v tools/lcdtools/e2fsck-lcd/e2fsck-lcd ${CLFS}/sbin
install -v tools/lcdtools/e2fsck-lcd/e2fsck-lcd.8 ${CLFS}/usr/man/man8
install -v tools/lcdtools/paneld/paneld ${CLFS}/sbin
install -v tools/lcdtools/paneld/paneld.8 ${CLFS}/usr/man/man8
install -v tools/lcdtools/putlcd/putlcd ${CLFS}/sbin
install -v tools/lcdtools/putlcd/putlcd.8 ${CLFS}/usr/man/man8
cp -v chain/colo-chain.elf ${CLFS}/boot/vmlinux
gzip -9 ${CLFS}/boot/vmlinux</userinput></screen>

  </sect2>

  <sect2 role="configuration">
    <title>Configuration of Colo</title>

  <para os="e">Your shiny new CLFS system is almost complete. One of the last
  things to do is ensure you can boot it. The instructions below apply
  only to Cobalt RaQ1/RaQ2/Cube2 servers. Information on <quote>boot
  loading</quote> for other architectures should be available in the
  usual resource-specific locations for those architectures.</para>

  <para os="f">Boot loading can be a complex area, so a few cautionary words
  are in order. Be familiar with the current boot loader and any other
  operating systems present on the hard drive(s) that need to be bootable.
  Make sure that an emergency boot disk is ready to <quote>rescue</quote>
  the computer if the computer becomes unusable (un-bootable).</para>

  <para os="g">Earlier, we compiled and installed the Cobalt boot loader
  software in preparation for this step. Now we will configure our system
  to boot using Colo. Here is a simple <filename>default.colo</filename>
  to use.</para>

<screen os="h"><userinput>cat &gt; /boot/default.colo &lt;&lt; EOF
<literal>#:CoLo:#
#
# load linux
#
lcd 'Booting &linux-version;...'
load vmlinux-&linux-version;.gz
execute root=/dev/hda2 console=ttyS0,115200 ide1=noprobe</literal>
EOF</userinput></screen>

  <para os="i">The FHS stipulates that the bootloader's configuration file should
  be symlinked to <filename class="symlink">/etc/{Bootloader Name}</filename>.
  To satisfy this requirement for Colo, issue the following command:</para>

<screen os="j"><userinput>mkdir -v ${CLFS}/etc/colo &amp;&amp;
ln -sv ../boot/colo/default.colo ${CLFS}/etc/colo</userinput></screen>

</sect2>

  <sect2 role="kernel">
    <title>Kernel Configuration for Colo</title>

  <para os="k">To help keep our system small Colo allows us to
  compress our kernel. The followings step will show you how to
  compress the kernel the way colo expects it:</para>

<screen os="l"><userinput>gzip -9 ${CLFS}/boot/vmlinux-&linux-version;</userinput></screen>

</sect2>

  <sect2 id="contents-colo" role="content">
    <title>Contents of Colo</title>

    <segmentedlist>
      <segtitle>Installed programs</segtitle>

      <seglistitem>
        <seg>colo-chain.elf, e2fsck-lcd, paneld and putlcd</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="colo-chain.elf">
        <term><command>colo</command></term>
        <listitem>
          <para>Is the Cobalt Bootloader's chain mode executeable. This
          file gets gzipped and renamed to <filename>vmlinux.gz</filename>,
          so it can be booted automatically by the Cobalt's existing
          firmware</para>
          <indexterm zone="ch-bootloaders-colo colo-chain.elf">
            <primary sortas="b-colo-chain.elf">colo-chain.elf</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="e2fsck-lcd">
        <term><command>e2fsck-lcd</command></term>
        <listitem>
          <para>Will output file system check progress information on the
          Cobalt LCD</para>
          <indexterm zone="ch-bootloaders-colo e2fsck-lcd">
            <primary sortas="b-e2fsck-lcd">e2fsck-lcd</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="paneld">
        <term><command>paneld</command></term>
        <listitem>
          <para>Is an admin tool for the LCD panel of Cobalt machines. By
          default, it will display the current time and optionally a message.
          When you hold the enter or select button for a couple of seconds
          you will get an admin menu. The menu will allow you to either halt
          or reboot your Cobalt machine</para>
          <indexterm zone="ch-bootloaders-colo paneld">
            <primary sortas="b-paneld">paneld</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="putlcd">
        <term><command>putlcd</command></term>
        <listitem>
          <para>Is a tool to display text on the LCD display of Cobalt
          machines</para>
          <indexterm zone="ch-bootloaders-colo putlcd">
            <primary sortas="b-putlcd">putlcd</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
