<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://docbook.org/xml/4.2/docbookx.dtd" [
<!ENTITY BA "<command>BOOT_ADMIN</command>">
<!ENTITY PA "PA-RISC">
<!ENTITY PL "PA/Linux">
<!ENTITY PO "<command>PALO</command>">
<!ENTITY V "<emphasis>via</emphasis>">
<!ENTITY D "Debian">
<!-- Please use these abreviations -->
]>
<book id="index">
  <bookinfo>
    <title>ent/Linux Boot HOWTO</title>
    <authorgroup>
      <author>
        <firstname>Thomas</firstname>
        <surname>Marteau</surname>
        <affiliation>
          <orgname>TuxFamily</orgname>
          <address>
            <email>marteaut@tuxfamily.org</email>
          </address>
        </affiliation>
      </author>
      <collab>
        <collabname>Deb Richardson</collabname>
        <affiliation>
          <jobtitle>Original author</jobtitle>
          <orgname>The Puffin Group</orgname>
          <address>
            <email>deb@thepuffingroup.com</email>
          </address>
        </affiliation>
      </collab>
      <collab>
        <collabname>Thibaut Varene</collabname>
        <affiliation>
          <jobtitle>Contributor of v1.0</jobtitle>
          <orgname>ESIEE</orgname>
          <address>
            <email>varenet@esiee.fr</email>
          </address>
        </affiliation>
      </collab>
    </authorgroup>
    <revhistory>
      <revision>
        <revnumber>1.0</revnumber>
        <date>2002-10-04</date>
        <authorinitials>tm ent tv</authorinitials>
        <revremark>
	  The content is done by Thibaut. Ready for Woody release. Glossary and bibliography appear. XML conversion.
	 </revremark>
      </revision>
      <revision>
        <revnumber>0.9</revnumber>
        <date>2002-01-15</date>
        <authorinitials>tm</authorinitials>
        <revremark>
	 This version brings you some useful advices for compiling your own kernel on hppa systems.
	 </revremark>
      </revision>
      <revision>
        <revnumber>0.8</revnumber>
        <date>2001-10-17</date>
        <authorinitials>tm</authorinitials>
        <revremark>
	 This version takes care of the change of name of the official FTP and CVS sites and modify the license.
	 </revremark>
      </revision>
      <revision>
        <revnumber>0.7</revnumber>
        <date>2001-10-13</date>
        <authorinitials>tm</authorinitials>
        <revremark>
	 This version adds some updates due to the progress of ent.
	 </revremark>
      </revision>
      <revision>
        <revnumber>0.6 draft</revnumber>
        <date>2001-09-26</date>
        <authorinitials>tm</authorinitials>
        <revremark>
	 This version contains some minor changes and complete the entobtaining bootp/tftpdent section.
	 </revremark>
      </revision>
      <revision>
        <revnumber>0.5 draft</revnumber>
        <date>2001-07-03</date>
        <authorinitials>tm</authorinitials>
        <revremark>
	 This version is a large update from Deb's work.
	 </revremark>
      </revision>
      <revision>
        <revnumber>0.3 draft</revnumber>
        <date>1999-11-24</date>
        <authorinitials>dlr</authorinitials>
        <revremark>
	 The initial and published version of this HOWTO.
	 </revremark>
      </revision>
    </revhistory>
    <abstract>
      <para>This document outlines the procedures to get the ent/Linux 
kernel to boot on your ent system. It also explains the usage of ent, 
the kernel loader for ent. You will find much information on how to 
compile a kernel from the source available at 
<ulink url="http://cvs.parisc-linux.org/">http://cvs.parisc-linux.org/</ulink>.
 Please note that this HOWTO version is newer than Deb Richardson's and 
includes more accurate information because of the progress of the port. 
Nevertheless, we must say that this document keeps some parts from Deb's 
original one and reveals some of her hidden work.</para>
      <para>If you are looking for some information related to HP 
hardware but not directly to ent, please read 
<ulink url="http://www.linuxdoc.org/HOWTO/HP-HOWTO/index.html">Bruno 
Cornec's HP-HOWTO</ulink>.</para>
    </abstract>
  </bookinfo>
  <chapter id="introduction">
    <title>Introduction</title>
    <sect1 id="overview">
      <title>Overview</title>
      <para>You just received this HP box you bought online or maybe you 
got it from your company surplus. Anyway, here comes the question of the 
operating system you are going to use. The ent project consists in porting 
Linux to the ent architecture. Take a look at this Howto and you will 
see that Linux could be the answer to this question. Anyway, we hope so.</para>
      <para>In addition to port Linux, the development team is working 
on porting the ent project to ent. In fact, around 95ent% 
of packages are ported and up-to-date in the repository. The port can be 
consider as useful now. In ent3.0r0 called <emphasis>woody</emphasis>, 
the flavour enthppaent has been released for the first time. Some ent 
developers non involved in the port but yet curious reported that the 
port was one of the easiest to install since you feel like installing an 
i386 version.</para>
      <para>For more information about the ent/Linux porting project, 
please see <ulink url="http://www.parisc-linux.org/">http://www.parisc-linux.org/</ulink>, 
or a mirror like <ulink url="http://www.fr.parisc-linux.org/">http://www.fr.parisc-linux.org/</ulink>. 
This site deals with kernel development and improvement. For userspace 
troubles, please refer to 
<ulink url="http://www.debian.org/ports/hppa/">hppa ent's port pages</ulink>.</para>
      <para>In a few words, this HOWTO is aimed to anyone looking for some 
help and information about using Linux on a HP system based on ent 
architecture. No special knowledge is necessary but bases about 
how ent packages work can be helpful.</para>
      <para>If you care about just installing and you do not ask yourself 
about the way it works, the best advice is to try a ent release including
the ent port. The <emphasis>Woody</emphasis> version is now 
<ulink url="ftp://ftp.de.debian.org/debian-cd/3.0_r0/hppa/">available</ulink> 
for hppa architecture. If you experience any trouble, try the development 
<xref linkend="glossnetinst"/> ISO images from the 
<ulink url="http://pateam.esiee.fr/download.html">The ent 
ESIEE Team</ulink>.</para>
      <para>After listing the supported hardware, this HOWTO explains 
some commands of the basic console available at boot time. Then, the 
features of the ent kernel loader introduce another chapter showing 
many ways to get your system up and running. At the end, the text goes 
deep in the kernel compilation and configuration.</para>
    </sect1>
    <sect1 id="copyright">
      <title>Copyright and Licensing</title>
      <literallayout>
	Copyright  2002 Thibaut Varene.
	Copyright  2001-2002 Thomas Marteau.
	Copyright  1999 The Puffin Group and Deb Richardson.
      </literallayout>
      <para>Permission is granted to copy, distribute and/or modify this 
document under the terms of the 
<ulink url="http://www.gnu.org/copyleft/fdl.html#SEC1">GNU Free Documentation 
License</ulink>, Version 1.1 or any later version published by the Free 
Software Foundation; with no Invariant Sections, with the Front-Cover 
Texts being 'Copyright and Licensing', and with the Back-Cover Texts 
being 'HOWTO Contributors'. A copy of the license can be found at 
<ulink url="http://www.gnu.org/copyleft/fdl.html">http://www.gnu.org/copyleft/fdl.html</ulink>.</para>
    </sect1>
  </chapter>
  <chapter id="hardware">
    <title>Supported Hardware</title>
    <para>With the release of the 0.9.3 version of ent, 
a major improvement was 
made in term of quantity and quality of hardware support.
Since 0.9.3 released, the kernel has been greatly improved, so that much 
unsupported hardware by the time 0.9.3 went out is now handled.
That's why even if your model is not listed here, you might give it a try 
and report your result to the mailing listent:
<email>parisc-linux@lists.parisc-linux.org</email>.
The following ent machines can be booted <emphasis>almost</emphasis> like 
any other box of a different architecture.
We must add that this list can change at any time.
The best way to get an up to date version is to look at
<ulink url="http://pateam.esiee.fr/list.html">http://pateam.esiee.fr/list.html</ulink>.
There you will know if your hardware is supported and up to what level. For 
example, if you can run ent using the <emphasis>serial console</emphasis> 
or the graphic card.</para>
    <itemizedlist>
      <listitem>
        <para>
All 712 models.
</para>
      </listitem>
      <listitem>
        <para>
All 715 models including Strider series.
</para>
      </listitem>
      <listitem>
        <para>
All 705, 710, 720, 730, 750 models should be running with the latest ISO. 
It contains some modifications specially for hard disk devices.
</para>
      </listitem>
      <listitem>
        <para>
Some 725, 735 (no FWD SCSI), 755 models are running with the latest kernels. 
But since there was not a lot of feedback about these machines, we can not be 
more explicit.
</para>
      </listitem>
      <listitem>
        <para>
The VME-like systems are supported. This includes 742 and 743.
</para>
      </listitem>
      <listitem>
        <para>
A180 and similar.
</para>
      </listitem>
      <listitem>
        <para>
A500 and similar.
</para>
      </listitem>
      <listitem>
        <para>
BXXX models like B132, B160 and B180. These boxes can be used in the 
framebuffer mode ent the Standard Text Interface.
</para>
      </listitem>
      <listitem>
        <para>
BXXXX models like B1000, B2000 and B2600. These boxes can be used with 
<literal>STI_CONSOLE</literal>,
but framebuffer only works with VIS-EG cards. FX are not yet supported.
</para>
      </listitem>
      <listitem>
        <para>
CXXX models like C110, C160, C180L, C240, C360.
</para>
      </listitem>
      <listitem>
        <para>
CXXXX models. Indeed, BXXXX and CXXXX are based on Astro/Elroy (aka SBA/LBA) 
chipsets with varying CPU speeds, number of memory/PCI slots.
</para>
      </listitem>
      <listitem>
        <para>
D class works unless you have a Remote Management Card installed. Even then, 
it still kind of works, it's just that ttyS0 gets assigned to the second 
serial port and you have to switch cables around.
</para>
      </listitem>
      <listitem>
        <para>
E classent: Christoph Plattner is working on his E55. E35 and E55 are known 
to work diskless. The SCSI support is expected soon.
</para>
      </listitem>
      <listitem>
        <para>
J class is quite well supported. It has the same split as C class, 
<emphasis>i.e.</emphasis> JXXX and J2240 are U2/Uturn based and JXXXX are 
Astro/Elroy. It is the SMP version of CXXXX models.
</para>
      </listitem>
      <listitem>
        <para>
K class is supported if you are using the ISO images made by the 
<ulink url="http://pateam.esiee.fr/download.html">ESIEE team</ulink> 
tagged with <emphasis>"-PDC-"</emphasis>.
</para>
      </listitem>
      <listitem>
        <para>
L classent: L1000 and L2000, with <emphasis>serial console</emphasis>.
</para>
      </listitem>
      <listitem>
        <para>
R class is basically the same as D class.
</para>
      </listitem>
    </itemizedlist>
    <para>
No plan to get the following hardware completely supported in the near futureent:
</para>
    <itemizedlist>
      <listitem>
        <para>
L3000 - smaller brother of N class - currently only works Uni Processor (UP).
</para>
      </listitem>
      <listitem>
        <para>
N classent: N4000-55 seems to be supported in UP mode.
</para>
      </listitem>
      <listitem>
        <para>
F,G,H,I classesent: Currently not supported.
</para>
      </listitem>
      <listitem>
        <para>
SuperDomeent: It boots entsingle-cellent, multi-IOMMU doesn't work.
</para>
      </listitem>
      <listitem>
        <para>
T 5XX and V classent: Nobody is working on it at the moment.
</para>
      </listitem>
    </itemizedlist>
    <para>
The following hardware might never workent:
</para>
    <itemizedlist>
      <listitem>
        <para>
T600.
</para>
      </listitem>
    </itemizedlist>
  </chapter>
  <chapter id="preparation">
    <title>Preparing to boot</title>
    <para>Like any other system, machines based on ent processors have to 
go through several steps in order to have ent up and running. The next 
section introduces you to the early boot management of your ent computer. 
To be a bit less awkward, we might from time to time call it a 
<emphasis>'PA'</emphasis> box. This chapter will give you some 
key concepts like ent.</para>
    <sect1 id="bootadmin">
      <title>ent</title>
      <para>First of all, you must learn what is and how to use ent on your 
ent box, before thinking about doing any hacking on it.</para>
      <para>ent is a <emphasis>firmware</emphasis> application,
used to manage a ent machine at an early boot stage,
<emphasis>i.e.</emphasis> when the box has not yet started its 
<emphasis>Operating System</emphasis>. You will see through this 
HOWTO that there are many references to it, therefore it's worth 
saying that minimalistic ent skills are mandatoryent!</para>
      <sect2 id="enterbootadmin">
        <title>Entering the ent interface</title>
        <para>Entering the ent management tool isn't that awfulent:</para>
        <orderedlist numeration="arabic">
          <listitem>
            <para>Turn your ent box on.</para>
          </listitem>
          <listitem>
            <para>During the boot process, the following message will appear 
on the current <emphasis>console</emphasis> (see <xref linkend="consoles"/>)ent:
<programlisting>
Searching for Potential Boot Devices.
To terminate search, press and hold the ESCAPE key.
</programlisting>
When this message appears, press and hold the <keycap>Esc</keycap> key
until an option menu appears. This can take a while, be patient.</para>
          </listitem>
          <listitem>
            <para>By default, you should enter the ent console.
Though on some 715s and 725s, an option menu looking like this may appearent:
<programlisting>
b)    Boot from specified device
s)    Search for bootable devices
a)    Enter Boot Administration mode
x)    Exit and continue boot sequence
?)    Help

Select from menu: 
</programlisting>
Select '<computeroutput>a)  Enter Boot Administration mode</computeroutput>'.
This will bring up a '<computeroutput>BOOT_ADMINent</computeroutput>' 
prompt.</para>
          </listitem>
        </orderedlist>
        <para>Once you have the 
'<computeroutput>BOOT_ADMINent</computeroutput>' prompt, 
you can pat yourself on the backent: you are in ent modeent!</para>
      </sect2>
      <sect2 id="bootadminhelp">
        <title>ent commands</title>
        <para>ent is an early boot subsystem where you can 
execute some precise commands. You should find here everything 
you need to know about them.</para>
        <para>All HP-PA systems have ent.
The display can be different but the idea remains the same.
That's why the following list is not complete but consistent enough.
Another important thing is that for each command, you have a shorter way 
to invoke it. You can see the shortcut shown as uppercase letters in 
the command name. Full names will be used in these sections.</para>
        <note>
          <para>Some commands may appear in several different menus, this is 
normal.</para>
        </note>
        <sect3>
          <title>The <literal>main</literal> commands</title>
          <para>These commands are the basic ones.</para>
          <itemizedlist>
            <listitem>
              <para><command>boot</command> must be followed by an argument 
which indicates the path you want to boot. The path should be 
the definition of a device like for example 
<computeroutput>FWSCSI.6.0</computeroutput> or 
<computeroutput>PRI</computeroutput> if you have set this 
variable correctly.</para>
            </listitem>
            <listitem>
              <para><command>path</command> displays or sets the current paths.
Invoked with only one argument it will display the current path of the 
entity passed as argumentent: <command>path alt</command> will display the 
current alternative boot path. <command>path pri fwscsi.6.0</command> will 
setup the primary boot path as the device attached to Fast and Wide SCSI 
controler with ID 6 and LUN 0. You can also set and display the paths 
of console (graphics/serial) and keyboard (ps2/hil/usb).</para>
            </listitem>
            <listitem>
              <para><command>search</command> is a very useful command.
It automagically checks all possible boot devices and displays all 
the bootable paths. In several firmware versions, it links them 
to a shortcut (like <computeroutput>P0</computeroutput>. It can even search 
the lan, if the box is able to boot it). You can restrain the search 
path likeent: <command>search lan</command> or <command>search 
disk</command>.</para>
            </listitem>
            <listitem>
              <para><command>display</command> redisplays the current menu.</para>
            </listitem>
            <listitem>
              <para><command>help</command> gives you an overview of the 
available commands and their action. <command>help <parameter>name</parameter>
</command> will give you details on command <parameter>name</parameter>.
By default, you can list all <literal>main</literal> commands by 
typing <command>help main</command>.</para>
            </listitem>
            <listitem>
              <para><command>main</command> will bring you back to the 
<literal>main</literal> menu, whatever menu you might be currently 
consulting.</para>
            </listitem>
            <listitem>
              <para>On almost every systems, you have a 
<command>reset</command> instruction. It makes the box reboot with 
the latest parameters you have set.</para>
            </listitem>
          </itemizedlist>
        </sect3>
        <sect3>
          <title>The <literal>configuration</literal> commands</title>
          <para>These commands are available in the 
<computeroutput>configuration</computeroutput> menu. So, in order to use 
them, you must enter this menu by typing <command>configuration</command> 
at the '<computeroutput>BOOT_ADMINent</computeroutput>' prompt.</para>
          <itemizedlist>
            <listitem>
              <para><command>auto</command> will tell you if the box will automatically start booting when switched on,
or will do a search for boot devices, depending on the first argument passed to the command
(<parameter>boot</parameter>, <parameter>search</parameter>, <parameter>start</parameter>).
You can modify this parameter with the keywords <parameter>ON</parameter> and <parameter>OFF</parameter>.
</para>
            </listitem>
            <listitem>
              <para><command>default</command> sets back the factory defaults.
</para>
            </listitem>
            <listitem>
              <para><command>monitor</command> (only in graphic mode) sets your display configuration by typing <command>monitor <replaceable>entpathent</replaceable> <replaceable>enttypeent</replaceable></command> which indicates your console path and type.
If you do not know your monitor type, you can list those available ent <command>monitor list</command>.
</para>
            </listitem>
            <listitem>
              <para><command>fastboot</command> displays or sets the boot tests execution.
</para>
            </listitem>
          </itemizedlist>
        </sect3>
        <sect3 id="bootadminfo">
          <title>The <literal>information</literal> commands</title>
          <para>
They give you access to global information about your system.
Going into this menu is done by asking for <command>information</command>.

<itemizedlist><listitem><para><command>all</command> should display everything. 
</para></listitem><listitem><para><command>bootinfo</command> lists all the boot parameters of the system.
</para></listitem><listitem><para><command>fwrversion</command> gives your fimrware revision.
You can check if your firmware is up-to-date with <ulink url="ftp://us-ffs.external.hp.com/firmware_patches/hp/cpu/catalog">this link</ulink>.
</para></listitem><listitem><para><command>lanaddress</command> shows the MAC (ethernet) address of the system. On some boxes (especially 712s),
two different addresses may appear. The one you are looking for is the first.
</para></listitem></itemizedlist>
</para>
        </sect3>
        <sect3>
          <title>The <literal>service</literal> commands</title>
          <para>
It is a ent guru menu.
You will find nothing really interesting for an end-user.
We recommend you not to play with it unless you <emphasis>really</emphasis> 
know what you are doing.
	    <itemizedlist><listitem><para><command>pim [entprocent] [HPMC|LPMC|TOC]</command> displays the content of a <xref linkend="glosspim"/> and Error Log. It is very useful after a <xref linkend="glosstoc"/> to collect debugging information. 
</para></listitem><listitem><para><command>clearpim</command> clears <xref linkend="glosspim"/> data.
</para></listitem><listitem><para><command>scroll</command> enables or disables the scrolling mode in ent on recent boxes.
</para></listitem></itemizedlist>
</para>
        </sect3>
      </sect2>
    </sect1>
    <sect1 id="consoles">
      <title>Consoles</title>
      <para>
In order to boot your ent system with the ent kernel,
you must first set up a <emphasis>console</emphasis> on it.
A <emphasis>console</emphasis> is basically the device where the kernel 
(and the firmware) will display its output, and where your can send your 
input to control the system at an early boot stage. You can use 
either <emphasis>graphic console</emphasis>, which requires to 
have a monitor and a keyboard attached to the system,
or <emphasis>serial console</emphasis>, which allows serial 
communication between the system and another Linux machine,
or any VT system. You should know that the consoles for the firmware 
and for the kernel can be different. For example, you can have to 
interact with the ent mode with a monitor and once ent is up, 
you have ttys running on serial ports only.
</para>
      <note>
        <para>
Workstations usually boot in graphic mode, whereas servers 
boot in serial mode. Some boxes will also automatically switch 
to serial if no keyboard is connected, or if you hold down 
<literal>TOC</literal> switch while powering the system on.
</para>
      </note>
      <para>
If you don't know what is the actual console of your box, it's quite 
simpleent: this is where it will send its first output when switched 
on (serial line or monitor output, if any).
</para>
      <para>
If you are trying to setup a ent workstation and have a monitor handy,
the easiest method is to use <emphasis>graphic console</emphasis>.
If you get into troubles, or are trying to configure a server, choose <emphasis>serial console</emphasis>.
</para>
      <sect2 id="graphicsconsole">
        <title>Using <emphasis>graphic console</emphasis></title>
        <para>
To use the <emphasis>graphic console</emphasis>, you must first ensure that 
the Linux kernel supports your system's graphic card.
There are two ways to deal with the graphic console.
If you think about bug-reporting any trouble, you must know how to 
differenciate both. First, the <emphasis>STI</emphasis> console is 
the classical video text console, like <emphasis>VGA</emphasis> on a 
common PC for example. This name is due to the fact that each ent 
box features the <emphasis>Standard Text Interface</emphasis> which 
defines some standardized ways to access the video memory. 
The other graphic console is the well known 
<emphasis>framebuffer</emphasis> console (which on 
HP-PA uses STI in a special manner, hence the name 
<emphasis>stifb</emphasis>). In this case, when booting, 
you will see a characteristic little penguin appearing on 
the top-left corner. This is the easiest way to differenciate 
the two graphic modes.
</para>
        <para>
Obviously, if you can use <emphasis>graphic console</emphasis>, it 
is the easiest way to proceed. Nevertheless, you must be sure 
that your hardware is supported.
</para>
      </sect2>
      <sect2 id="serialconsole">
        <title>Using <emphasis>serial console</emphasis></title>
        <para>
The <emphasis>serial console</emphasis> is a good way to get all 
console messages handy, including the ent ones.
It is very useful for bug reports, as its output can be easily dumped.
Moreover, most of the servers can only be managed with serial console.
Anyway, the only cases where you will HAVE TO use serial console is 
either if you don't have a monitor for your ent machine, or if your 
machine doesn't support graphics. It is also possible that 
the kernel can NOT handle some specific graphic hardware 
present in your model.
</para>
        <para>
Here follows the procedure to setup <emphasis>serial 
console</emphasis> support.
</para>
        <sect3 id="cable">
          <title>Serial Cable</title>
          <para>
To connect your ent machine to your PC's RS232 port, you need a 
9-pin-to-9-pin female plugs null-modem cable.
You should be able to obtain such a cable at your local computer 
hardware reseller.
Obviously, you can also chose to connect the other end of the 
cable to a terminal (in this case it will probably need 
a 25-pin male plug). Anyway, the most practical method is 
to connect it to another box running <command>minicom</command> 
or <command>cu</command>, which makes all output easily available for
further usage (dump report, session log, and so on). 
</para>
        </sect3>
        <sect3 id="minicom">
          <title>Configuring <command>minicom</command> on Linux</title>
          <para>
In order to communicate with your ent machine,
you have to set it up in <emphasis>serial console</emphasis> mode (see below) 
and configure a serial communication program. We recommend 
<command>minicom</command>, which can be found in most
Linux distributions. If you don't have <command>minicom</command> 
on your system, you can find the latest package on any major 
Linux software website.
</para>
          <para>
Most of the <command>minicom</command> configuration is machine dependent.
However, you must ensure thatent:
</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>The baud rate is set to 9600</para>
            </listitem>
            <listitem>
              <para>Protocol is set to 8-N-1 (8bit data, No parity check, 1 stop bit)</para>
            </listitem>
          </orderedlist>
          <para>
Don't worry too much as these are the default values for all ent systems. 
If you are running <command>minicom</command> on a PC, you will 
probably need to change the baud rate.
</para>
        </sect3>
      </sect2>
      <sect2 id="switchingconsoles">
        <title>Switching consoles</title>
        <para>
It might prove useful that you learn how to manage the console mode on your ent box.
The following sections will explain the various operations on console modes.
</para>
        <sect3 id="checkingcurrentmode">
          <title>Checking current console mode</title>
          <para>
Typeent: <command>path console</command> to see the current console mode.  
</para>
          <para>
If it's <emphasis>graphic console</emphasis> mode, it will return something likeent: '<computeroutput>Console path     = graphic_1</computeroutput>'.  
</para>
          <para>
If it's <emphasis>serial console</emphasis>, it will returnent: '<computeroutput>Console path    = rs232_a.9600.8.none</computeroutput>' 
or something similar.
</para>
          <note>
            <para>
For some models, you can find slight differences but the idea stays the same. 
If you want to see more descriptions here, please send us a message describing the box you use and what you get.
</para>
          </note>
        </sect3>
        <sect3 id="changingtoserial">
          <title>Changing to serial console mode</title>
          <para>
To change to <emphasis>serial console</emphasis> mode,
type the following command at the '<computeroutput>BOOT_ADMINent</computeroutput>' command promptent:
</para>
          <para>
            <command>
path console rs232_a.9600.8.none
</command>
          </para>
          <para>or, like on B132L+</para>
          <para>
            <command>path console serial_1</command>
          </para>
          <para>
Anyway, on most boxes if you try to setup an invalid path for the console, you will be warned and prompted again for a valid path.
To verify that the console path has been correctly set, type
<command>path console</command>.  This should return
'<computeroutput>Console path    = rs232_a.9600.8.none</computeroutput>',
indicating that the system is now set up to boot in <emphasis>serial console</emphasis> mode, on RS232 port 'A'.
If your machine has only one, this is OK, if not, take care to use the right one.
By default, <command>reset</command> will reboot your system with the new parameters.
</para>
          <sect4>
            <title>How can I change the boot console to serial on a 712?</title>
            <para>
Unfortunately, it is *normally* not possible.
Although 712s are configured for in-house HP development to use serial console, 
this cannot be set in ent.
You will have to use graphic console on 712s. 
And why the hell would we use this beautiful 712 with serial console when we can have X on itent?ent!
</para>
            <para>
Anyway, if you feel like trying bleeding edge solutions, there is a tip at the <ulink url="http://lists.parisc-linux.org/pipermail/parisc-linux/1999-December/008117.html">ent mailing list archive</ulink>.
This describes how to change the console from an <emphasis>HP/UX ISL</emphasis> prompt.
You can find a small HP/UX <emphasis>lifimage</emphasis> hereent: <ulink url="http://pateam.esiee.fr/archive/uxbootlf">http://pateam.esiee.fr/archive/uxbootlf</ulink>. (See further <xref linkend="bootnetwork"/> to learn how to <emphasis>netboot</emphasis> a <emphasis>lifimage</emphasis>).
In fact, serial console on 712 is only useful if you want to boot the box without any keyboard attached to it, which is otherwise not possible.
</para>
            <para>
Here is the procedureent:
</para>
            <orderedlist numeration="arabic">
              <listitem>
                <para>
Turn the box on and when in ent, boot to <application>HP/UX ISL</application>. For exampleent:
</para>
                <programlisting>
BOOT_ADMINent boot lan isl
</programlisting>
              </listitem>
              <listitem>
                <para>
Once you get the '<computeroutput>ISLent</computeroutput>' prompt, type the followingent:
</para>
                <itemizedlist>
                  <listitem>
                    <para>
For switching to serialent: <command>conspath 2/0/4.0x283</command>
</para>
                  </listitem>
                  <listitem>
                    <para>
For switching to graphicent: <command>conspath 1/0/0.0</command>
</para>
                  </listitem>
                </itemizedlist>
              </listitem>
              <listitem>
                <para>
Still at the '<computeroutput>ISLent</computeroutput>' prompt, type <command>disp</command>, and check that console path is either '<computeroutput>(hex) 2/0/4.283.0.0.0.0.0</computeroutput>' for serial, or '<computeroutput>(hex) 1/0/0.0.0.0.0.0.0</computeroutput>' for graphic.
</para>
              </listitem>
              <listitem>
                <para>
Power cycle the system to bring it up on the new console.
</para>
              </listitem>
            </orderedlist>
          </sect4>
        </sect3>
        <sect3 id="changingtographic">
          <title>Changing to graphic console mode</title>
          <para>
It is the opposite operation compared to the previous one.
By checking your console path, you should see
'<computeroutput>Console path    = rs232_a.9600.8.none</computeroutput>'.
Now, you must set the graphic mode by issuing the following command at 
'<computeroutput>BOOT_ADMINent</computeroutput>' promptent:
</para>
          <para>
            <command>
path console graphic_1
</command>
          </para>
          <para>
You should get the display available on the monitor after a 
<command>reset</command>. If the screen does not seem to 
work properly, try to press the <keycap>Tab</keycap> key
(on the keyboard attached to the box of course)
at the beginning of the boot sequence to change the resolution of the display.
By pressing this key, the monitor resolution cycles from one to another.
Perhaps you will need to do this operation several times.
This is also true when you change your monitor.
</para>
        </sect3>
      </sect2>
    </sect1>
  </chapter>
  <chapter id="palo">
    <title>Using ent, the kernel loader for ent</title>
    <sect1 id="whatispalo">
      <title>What is ent?</title>
      <para> 
ent is a set of two programs, a boot loader,
which is loaded by the ent <emphasis>firmware</emphasis> in memory 
and then executed, and a boot media management tool, which 
prepares and updates bootable media such as hard disk drives.
The ent boot loader executable is stored in a file called 
<filename>iplboot</filename>. '<literal>IPL</literal>' is HP 
jargon for <emphasis>Initial Program Loader</emphasis>. 
The boot media management tool is called ent, which 
stands for ent LOader, just as on x86 the boot media 
management tool is called <application>LILO</application>,
though it's worth mentionning that ent doesn't usually need to be called
every time you build and install a new kernel, as 
<application>LILO</application> does. ent is strongly related to ent 
development. Thus, several versions has been released. The last changes 
are explained by the author of ent, <emphasis>Paul Bame</emphasis>, in this 
<ulink url="http://lists.parisc-linux.org/hypermail/parisc-linux/9451.html">mail</ulink>.
</para>
    </sect1>
    <sect1 id="whatdoespalo">
      <title>What does ent?</title>
      <para> 
The main idea is to boot a kernel, passing it all needed parameters.
This is what the <emphasis>boot loader</emphasis> part of ent does 
(see <xref linkend="paloearlyboot"/>).
Once it has been called by the <emphasis>firmware</emphasis>, 
it will load the Linux Kernel in memory,
passing to it the given arguments,
and tell the processor to branch to its entry point.
This will begin the execution of the kernel on the ent computer.
</para>
      <para>
The ent management tool can transform the usual 
<filename>vmlinux</filename> into a ent bootable 
<emphasis>lifimage</emphasis>, including or not 
<literal>RAMDISK</literal> or <literal>NFSROOT</literal> support.  
However, it can also make a hard disk drive bootable, specifying 
the console output and the root device. 
We are going to see all these points precisely.
</para>
      <important>
        <para>
What must be kept in mind is that <filename>vmlinux</filename> 
is the kernel alone, which is not bootable by itself.
It needs ent to be turned into a bootable 
<filename>lifimage</filename> for CD or network boot,
or to be launched at boot time from a prepared hard 
disk drive. Have a look at <xref linkend="gloss"/> about these words.
Quoting <emphasis>Richard Hirst</emphasis>, a ent hackerent: 
ent<emphasis>People often try to put a lifimage in /boot, or a 
vmlinux on the network</emphasis>ent. Which is obviously wrong.
</para>
      </important>
    </sect1>
    <sect1 id="paloappusage">
      <title>ent management tool usage</title>
      <para>
Here we will show you what can be done with the ent boot media 
management tool. For in-depth information about <command>palo</command> 
usage, we strongly advise you to take a look at ent's 
<filename>README</filename> file, which can be found in 
<filename class="directory">palo/</filename> directory on
<ulink url="http://cvs.parisc-linux.org/">http://cvs.parisc-linux.org/</ulink>.
</para>
      <para>
For the next two steps, you will need a compiler toolchain, 
see <xref linkend="gcc"/>.
</para>
      <sect2 id="lifimagewithramdisk">
        <title>Making a <filename>lifimage</filename> with <literal>RAMDISK</literal></title>
        <para>
First things firstent: when should you go this way ?
</para>
        <para>
At an earlier step of the ent project, the <filename>lifimage</filename> 
was very useful. In fact, simply putting this file in a boot server 
tree allows you to boot your HP box ent the <command>boot lan</command> 
instruction without any further involvement 
(see <xref linkend="bootnetwork"/>).
The main advantage of a <literal>RAMDISK</literal> is that it unpacks 
its own file system in RAM, and therefore is completely independant 
from the machine I/O capabilities (hard drives, etc). The main drawback 
is that you have to build your own <literal>RAMDISK</literal> if 
you have memory constraints or some customized files. Now, let's see 
how to obtain a <filename>lifimage</filename> with <literal>RAMDISK</literal>.
</para>
        <tip>
          <para>
If you don't want to mess with building your own 
<literal>RAMDISK</literal>, you can use <filename>root.bin</filename> 
that can be found on <ulink url="http://ftp.debian.org/debian/dists/Debian3.0r0/main/disks-hppa/current/root.bin">ent</ulink> 
<emphasis>Boot-Floppies</emphasis>.
</para>
        </tip>
        <para>
We assume you got the latest source of the ent kernel.
Mainly, you will need a (cross-)compiler, the 
<filename class="directory">linux/</filename> directory and the ent package 
installed. If you do not have it, run as 
<emphasis>root</emphasis> <command>apt-get install palo</command>. 
Everything can be found at 
<ulink url="http://www.parisc-linux.org/">http://www.parisc-linux.org/</ulink>.
Go through the <command>make menuconfig</command> step. 
Then, run <command>make palo</command> and if you have the ent installed, you 
should get this message at the end of the compilationent:
	  <programlisting>
A generic palo config file (./palo.conf) has been created for you.
You should check it and re-run "make palo".
WARNING: the "lifimage" file is now placed in this directory by default!
</programlisting>
So, edit the <filename>palo.conf</filename> fileent:
<programlisting>
# This a generic Palo configuration file.  For more information about how
# it works try 'palo -?'.
#
# Most people using 'make palo' want a bootable file, usable for
# network or tape booting for example.
--init-tape=lifimage
--recoverykernel=vmlinux

########## Pick your ROOT here! ##########
# You need at least one 'root='!
#
# If you want a root ramdisk, use the next 2 lines
#   (Edit the ramdisk image name!!!!)
--ramdisk=ram-disk-image-file
--commandline=0/vmlinux HOME=/ root=/dev/ram initrd=0/ramdisk

# If you want NFS root, use the following command line (Edit the HOSTNAME!!!)
#--commandline=0/vmlinux HOME=/ root=/dev/nfs nfsroot=HOSTNAME ip=bootp

# If you have root on a disk partition, use this (Edit the partition name!!!)
#--commandline=0/vmlinux HOME=/ root=/dev/sda1
</programlisting>
As you can see, the <literal>RAMDISK</literal> mode is the default. The string 
<replaceable>ram-disk-image-file</replaceable> should give to ent the path 
of your <literal>RAMDISK</literal> file.
You shouldn't change anything else to this file.
After configuring the <filename>palo.conf</filename>, you can go back to 
your <command>make palo</command>. The result, a <filename>lifimage</filename> 
file, is waiting for you in the <filename>linux/</filename> directory.
</para>
      </sect2>
      <sect2 id="lifimagewithnfsroot">
        <title>Making a <filename>lifimage</filename> with <literal>NFSROOT</literal></title>
        <para>
This method is widely used because the kernel and the file system 
are directly accessible on your boot server.
It is also very easy to test a new kernel.
You just have to generate the kernel and put it in the correct directory.
When starting up, the ent box will boot ent the <command>boot lan</command> 
instruction its new kernel.
</para>
        <para>
Getting the <literal>NFSROOT</literal> support is easier than 
<literal>RAMDISK</literal>. You have to edit the <filename>palo.conf</filename>
to specify the boot server IP address instead of the string 
<replaceable>HOSTNAME</replaceable>. 
In fact, if your server has 10.10.10.2 as its IP adress, 
then the <filename>palo.conf</filename> file should containent:
        <programlisting>
# This a generic Palo configuration file.  For more information about how
# it works try 'palo -?'.
#
# Most people using 'make palo' want a bootable file, usable for
# network or tape booting for example.
--init-tape=lifimage
--recoverykernel=vmlinux

########## Pick your ROOT here! ##########
# You need at least one 'root='!
#
# If you want a root ramdisk, use the next 2 lines
#   (Edit the ramdisk image name!!!!)
#--ramdisk=ram-disk-image-file
#--commandline=0/vmlinux HOME=/ root=/dev/ram initrd=0/ramdisk

# If you want NFS root, use the following command line (Edit the HOSTNAME!!!)
--commandline=0/vmlinux HOME=/ root=/dev/nfs nfsroot=10.10.10.2 ip=bootp

# If you have root on a disk partition, use this (Edit the partition name!!!)
#--commandline=0/vmlinux HOME=/ root=/dev/sda1
</programlisting>
If you have another IP, this field must be filled in with the correct data.
You shouldn't change anything else to this file.
After having configured the <filename>palo.conf</filename>,
you can go into the <filename class="directory">linux/</filename> 
directory and issue a <command>make palo</command>.
The result, a <filename>lifimage</filename> file, is as usual waiting for 
you in the <filename class="directory">linux/</filename> directory.
</para>
        <para>
For advanced details on <literal>NFSROOT</literal> management, take a look at <xref linkend="biblio"/> for the appropriate HOWTOs.
</para>
      </sect2>
      <sect2 id="bootablepartition">
        <title>Making a bootable partition</title>
        <para>
This part is where ent can be seen as a <application>LILO</application> clone.
ent is mainly a program that enables a PA box to boot a kernel present on its own hard disk drive.
This section is going to explain how to make it work.
When installing the ent package,
Paul Bame, the author and maintainer,
put a copy of the default <filename>/etc/palo.conf</filename>
in <filename>/usr/share/doc/palo/palo.conf</filename>.
If you want to understand how ent works,
you just have to read this fileent!
</para>
        <para>
To setup a bootable hard disk, you have to partition properly your hard drive
(if any, and if you want to use it as your primary boot device).
This implies that this step can only be achieved either if you have already booted a minimal system on your ent box
(ent CD or network, see <xref linkend="bootsolutions"/>),
or if you intend to prepare your hard disk using another computer than the target
(which can be useful to unpack and setup a downloaded file system for example).
The point of this HOWTO is not to teach you how to use <command>fdisk</command> or other, so here are the few things you HAVE TO knowent:
</para>
        <itemizedlist>
          <listitem>
            <para>
A partition within the first 2GB of your target device has to be of 
partition type '<computeroutput>f0</computeroutput>',
which is the reserved partition type for ent boot loader.
</para>
          </listitem>
          <listitem>
            <para>
It does not need to be huge. This is were ent will save its configuration,
recovery kernel(s) - about 5MB each - and optional ramdisk.
16-32MB seems far sufficient.
</para>
          </listitem>
        </itemizedlist>
        <warning>
          <para>
Bewareent! Your <filename>vmlinux</filename> has also to be located within the first 2GB of the hard disk.
We strongly recommend to create a separated <filename class="directory">/boot</filename> partition at the front
of the disk if your '/' is bigger than that, because if ever your vmlinux goes above the first 2GB of the disk
(like when filling up '/' with data), the box won't boot anymore.
</para>
        </warning>
        <para>
Here is the output of <command>fdisk</command> which represents the hard drive of a box with 16MB
ent space, 128MB swap space and about 1GB '<literal>/</literal>' partitionent:
</para>
        <programlisting>
bash# fdisk -l /dev/sda

Disk /dev/sda: 133 heads, 62 sectors, 1017 cylinders
Units = cylinders of 8246 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1         4     16461   f0  Linux/ent boot
/dev/sda2             5        34    123690   82  Linux swap
/dev/sda3   *        35       277   1001889   83  Linux
</programlisting>
        <para>
Now let's deal with ent configuration.
Here are the various parameters you can changeent:
</para>
        <itemizedlist>
          <listitem>
            <para><parameter>recoverykernel</parameter> is the 
path to the kernel that you want to boot within a failsafe session, 
it will be stored in the '<literal>f0</literal>' partition.
</para>
          </listitem>
          <listitem>
            <para><parameter>bootloader</parameter> is the path 
to the <filename>iplboot</filename> boot loader utility which is 
created by ent when you issue a <command>make iplboot</command>.
</para>
          </listitem>
          <listitem>
            <para><parameter>init-partitioned</parameter> is used 
to indicate the pre-partionned device where palo will write its 
boot parameters. The effect is immediate. It means that ent is 
going to write on the first octets of the first partition of this 
device, which partition-type must be '<literal>f0</literal>', as shown above.
</para>
          </listitem>
          <listitem>
            <para><parameter>commandline</parameter>ent:
the first digit is the number of your ext2 partition where the 
kernel file is located, as reported by <command>fdisk</command>. 
Logically, the next string is the absolute path to the kernel. 
The following space separated parameters will be passed to the 
kernel as its arguments. <emphasis>e.g.</emphasis>ent: 
<literal>HOME=</literal> and <literal>TERM=</literal> are 
environmental parameters passed to <command>init</command> 
when booting. They are not compulsory but they can be useful. 
<literal>root=</literal> tells the kernel which partition it 
must mount as the root file system while booting. It can be 
tricky when you have more than one disk.
</para>
            <para>
You can also add <literal>console=</literal>,
to force the designation of the output console.
You should remind that <literal>console=ttyS0</literal> is for 
a serial console and <literal>console=tty0</literal> is for a 
STI-console. Recently, support for the <literal>PDC</literal> 
console (if enabled in the kernel, see <xref linkend="PDC"/>) 
has been added, using <literal>console=ttyB0</literal>. Indeed, 
the latest versions of ent autodetect the right console path 
(except for <literal>PDC</literal>), and can figure out whether 
a 32bit or 64bit kernel should be used. If not, please mail 
to the mailing list.</para>
          </listitem>
        </itemizedlist>
        <para>
In fact, this third usage of ent is the most common but the default 
<filename>/etc/palo.conf</filename> makes it easy to configure.
Just choose your root partition. It should the partition containing your root 
directory. According our <command>fdisk</command> example, we want 
<filename class="devicefile">/dev/sda3</filename>. Thus, the configuration
file should look like thatent:
        <programlisting>
# The following arguments are set up for booting from /dev/sda3, specifically
# mounting partition 3 as root, and using /boot/vmlinux as both the
# recovery kernel, and the default dynamically-booted kernel.
--recoverykernel=/boot/vmlinux
--bootloader=/boot/iplboot
--init-partitioned=/dev/sda
--commandline=3/boot/vmlinux HOME=/ TERM=linux root=/dev/sda3
</programlisting>
	</para>
      </sect2>
    </sect1>
    <sect1 id="paloearlyboot">
      <title>How to use ent at early boot stageent?</title>
      <sect2>
        <title>The theory</title>
        <para>
You have setup everything, rebooted your box, and suddendly you 
want to change something to the kernel boot arguments,
or even boot another kernel. Damn itent! How could you, 
now that the box is bootingent? Well, stay calm and relax, 
we have the solutionent!
</para>
        <para>
First, you must learn how to interact with ent during the startup sequence.
You have to enter ent, as explained in <xref linkend="enterbootadmin"/>.
For some old models (up to 712 or so), you must add the 
<parameter>ipl</parameter> (or <parameter>isl</parameter>) string to 
your boot command in the ent consoleent:
<programlisting>BOOT_ADMINent boot pri ipl</programlisting>
On most ent boxes, the system will ask you if you want to interact 
with <emphasis>IPL</emphasis> anyway. You just have to answer by a 
ent<keycap>y</keycap>ent. You will fall back to ent 
configuration display, with the list of all parameters and 
their corresponding numbers.
</para>
        <para>
You just have to enter the number corresponding to the 
parameter you want to change.
Hit <keycap>ENTER</keycap>, modify it and validate the 
changes by hiting <keycap>ENTER</keycap> again.
The system will redisplay the new list.
This modification is not permanentent!
To save your changes, you will have to run <command>/sbin/palo</command> 
when your system will be up and running,
and it will write on the disk all the parameters contained in 
the default file, (<filename>/etc/palo.conf</filename>), which 
you will have properly modified if needed.
If you want to add a supplementary parameter, select any one 
and write yours on the editing line, beginning with a spaceent:
        <programlisting>
Edit which field?
(or 'b' to boot with this command line)? 0  
3/boot/vmlinux initrd=root.bin
</programlisting>
After validation, the list will count one more parameter.
If you want to delete one, select it and erase the complete entry.
You will see that the list counts one less parameter.
</para>
        <para>
For more informations about ent, please take look at the
<ulink url="http://cvs.parisc-linux.org/~checkout~/palo/README.html?rev=HEAD">ent readme</ulink>.
This section is mostly inspired from Paul Bame's file as 
well as the page about ent you can find at
<ulink url="http://pateam.esiee.fr/palo.html">http://pateam.esiee.fr/palo.html</ulink>.
</para>
      </sect2>
      <sect2>
        <title>A complete example</title>
        <para>
This example has been suggested by <emphasis>Michael Damaschke</emphasis>.
So, let's go for the story of the happy ent user booting a kernel,
also called ent<emphasis>I don't know how to configure my workstation 
to use the kernel I want during boot sequenceent!</emphasis>ent.
</para>
        <para>
After switching your workstation and monitor on, a message on the
screen will tell you that the workstation is about to start 
automatically the boot sequence, except if you hold the 
<keycap>Esc</keycap> key to stop the auto-booting.
This is a very difficult stepent: you must hold the 
<keycap>Esc</keycap> key down ;o) 
</para>
        <warning>
          <para>
Depending on your model, you might need to press this key 
during a quite long time.
</para>
        </warning>
        <tip>
          <para>In some cases, the monitor can be too slow to get on, and 
won't allow you to see the warning message. A good workaround is to 
keep a close eye on the keyboard's lightsent: when they blink, this is 
the right time to press and hold the <keycap>Esc</keycap> key.
If you still have troubles, please refer to the 
<emphasis>Consoles</emphasis> section.</para>
        </tip>
        <para>
There are few differences about the way to get access to 
ent (see <xref linkend="enterbootadmin"/>).
If you have an old box, you will get an information message displayed,
where the workstation's firmware tells you that it will 
start searching for all bootable devices,
or that you can break this by holding down the <keycap>Esc</keycap> key.
This is the same procedure as before, you must 
press the <keycap>Esc</keycap> key.
</para>
        <para>
You might then get a menu where you must press the 
<keycap>a</keycap>-key followed by <keycap>ENTER</keycap>-key.
You are now facing the deadly '<computeroutput>BOOT_ADMINent</computeroutput>'
prompt :^). First, we will turn off <literal>auto boot</literal> 
process by entering the following linesent:
</para>
        <programlisting>
BOOT_ADMINent auto boot off
</programlisting>
        <para>
then hit the <keycap>ENTER</keycap> key.
</para>
        <para>
After that, you must tell the system from which boot device you 
would like to boot. If it's a hard drive, it must have a 
'<literal>f0</literal>' partition at the beginning 
(see <xref linkend="bootsolutions"/>).
</para>
        <para>
In this example, the old kernel is <filename>vmlinux</filename> and 
the new one is <filename>vmlinux-2.4.17-pa3</filename>.
The chosen SCSI boot device is designed byent:
<computeroutput>
SCSI.<replaceable>X</replaceable>.0,
</computeroutput>
where <replaceable>X</replaceable> is the SCSI-ID of the disk you 
want to boot from.
<emphasis>e.g.</emphasis>
</para>
        <programlisting>
BOOT_ADMINent boot SCSI.5.0
</programlisting>
        <para>
At the end of the previous command line, you must add the 
<parameter>IPL</parameter> token if you have a HP 9000/7xx 
system to specify that you want to interact with 
<application>IPL</application>. If you have a more 
recent hardware, the system will ask if you want to 
interact with <application>IPL</application> anywayent:
        <programlisting>
Interact with IPL (Y or N)?ent
</programlisting>
Now, you can manually configure the ent booting parameters.
You can see a new menu, where you can configure on line 
'<computeroutput>0</computeroutput>' (selected by default)
the boot partition number, and the path of your boot kernel.
</para>
        <para>
Here is the complete session log of a A500 serial console outputent:
        <programlisting>
Main Menu: Enter command or menu ent bo scsi.5.0 ipl
Interact with IPL (Y, N, or Cancel)?ent y


Booting... 
Boot IO Dependent Code (IODC) revision 1


HARD Booted.
palo ipl 0.97 root@c3k Tue Nov 27 14:51:48 MST 2001
Information: Boot device can't seek past 2Gb (ignore next error).
byteio_read: seekread() returned -1 expected 2048

Partition Start(MB) End(MB) Id Type
1               1      15   f0 Palo
2              16     503   82 swap
3             504    2887   83 ext2

PALO(F0) partition contains:
    0/vmlinux64 3990942 bytes @ 0x44000

Information: No console specified on kernel command line. This is normal.
PALO will choose the console currently  used by firmware (serial).
Current command line:
3/boot/vmlinux root=/dev/sda3 HOME=/ console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux
 1: root=/dev/sda3
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

Edit which field?
(or 'b' to boot with this command line)? 0  
3/boot/vmlinux-2.4.17-pa3 initrd=0/root.bin
Current command line:
3/boot/vmlinux-2.4.17-pa3 initrd=root.bin root=/dev/sda3 HOME=/ 
                                       console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux-2.4.17-pa3
 1: initrd=0/root.bin
 2: root=/dev/sda3
 3: HOME=/
 4: console=ttyS0
 5: TERM=vt102


Edit which field?
(or 'b' to boot with this command line)? 1  
                          
Current command line:
3/boot/vmlinux-2.4.17-pa3  root=/dev/sda3 HOME=/ console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux-2.4.17-pa3
 1: root=/dev/sda3
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

Edit which field?
(or 'b' to boot with this command line)? b
</programlisting>
ent was first setup to boot the kernel file <filename>vmlinux</filename> 
located on the third partition of the SCSI device ID 5 LUN 0.
(We know this since we have asked ent to boot on this device).
But we wanted another kernel this time.
We have pressed the <keycap>ENTER</keycap> key (to validate the default 
choice '<computeroutput>0</computeroutput>')
and modify the text to match our needs, here 
<filename>vmlinux-2.4.17-pa3</filename>. We have also 
added an <computeroutput>initrd=0/root.bin</computeroutput> argument 
to the command line. We have validated our changes 
by hitting the <keycap>ENTER</keycap> key.
Finally we have decided that we didn't want this 
additional argument, so we have selected it and erased it.
At the end it asked again which field we wanted to edit, we 
have just put '<computeroutput>b</computeroutput>' instead 
of any number and hit <keycap>ENTER</keycap> to boot our new kernel.
</para>
        <caution>
          <para>
Please don't change any other parameter unless you 
really know what you doent!
</para>
        </caution>
        <para>
That's itent! ent has no more secrets for you :-)
</para>
        <note>
          <para>
As you might have noticed, the ent interface can take several apparences, so don't be disappointed if yours does not match our examples.
</para>
        </note>
      </sect2>
    </sect1>
  </chapter>
  <chapter id="bootsolutions">
    <title>Available boot solutions</title>
    <sect1 id="bootcd">
      <title>Booting from CD</title>
      <para>
Booting from CD is one of the easiest way to start and install your ent machine;
assuming you have a CD drive handy and a bootable CD.
You can download official ent ISOs as well as recent <emphasis>Net Install</emphasis> ISO
(see <xref linkend="gloss"/>) at <ulink url="http://pateam.esiee.fr/download.html">The ent ESIEE Team download page</ulink>,
or at <ulink url="ftp://www.parisc-linux.org/cd-images/">ent/Linux official website</ulink>.
</para>
      <orderedlist numeration="lowerroman">
        <listitem>
          <para>
start the box and enter the ent mode. (<xref linkend="enterbootadmin"/>)
</para>
        </listitem>
        <listitem>
          <para>
Dispose your bootable CD on the CD tray and close it. Sounds obvious, but we know guys who missed that step :)
</para>
        </listitem>
        <listitem>
          <para>
There are two options from thereent: either you know the full <literal>PATH</literal> to your CD device,
then you can jump to next step, or you don't.
In this last case, issue a <command>search ipl</command> to list all available devices with <literal>IPL</literal>.
You can also specify a <command>search <replaceable>[PATH]</replaceable></command>, which is fastest.
For instance if you want to search the SCSI bus:
</para>
          <programlisting>
search SCSI
</programlisting>
          <para>
On recent boxes, <command>search disk</command> is quite helpful.
Take a look at <command>help search</command> for details specific to your box.
</para>
        </listitem>
        <listitem>
          <para>
Once you know the full <literal>PATH</literal> to your CD drive,
you can issue a <command>boot <replaceable>entPATHent</replaceable></command>.
That's all. If everything goes fine, it will start booting the CD present in the CD reader.
Real life exampleent:
</para>
          <programlisting>
boot ide
</programlisting>
        </listitem>
      </orderedlist>
    </sect1>
    <sect1 id="boothd">
      <title>Booting from hard drive</title>
      <para>
Booting from Hard Drive is not really more difficult that booting from CD.
The only thing really important is that your hard drive has to be correctly prepared.
Take a look at <xref linkend="bootablepartition"/> to learn how to prepare your hard drive.
</para>
      <orderedlist numeration="lowerroman">
        <listitem>
          <para>
start the box and enter the ent mode. (<xref linkend="enterbootadmin"/>)
</para>
        </listitem>
        <listitem>
          <para>
There are two options from thereent: either you know the full <literal>PATH</literal> to your hard disk device,
then you can jump to next step, or you don't.
In this last case, issue a <command>search ipl</command> to list all available devices with <literal>IPL</literal>.
You can also specify a <command>search <replaceable>[PATH]</replaceable></command>.
For instance if you want to search the Single Ended SCSI busent:
</para>
          <programlisting>
search SESCSI
</programlisting>
          <para>Take a look at <command>help search</command> for details specific to your box.</para>
        </listitem>
        <listitem>
          <para>
Once you know the full <literal>PATH</literal> to your hard drive,
you can issue a <command>boot <replaceable>entPATHent</replaceable></command>.
That's all. If everything goes fine, it will start booting the kernel as setup by ent
(see <xref linkend="bootablepartition"/>).
Real life exampleent:
</para>
          <programlisting>
boot scsi.6
</programlisting>
        </listitem>
      </orderedlist>
    </sect1>
    <sect1 id="bootnetwork">
      <title>Booting from network</title>
      <sect2 id="preparingnetboot">
        <title>Preparing to boot from network</title>
        <para>
This is a very old way to operate but it used to be the only one available for a long time.
Usually you won't need to boot from network, except in some very specific cases (<emphasis>e.g.</emphasis> unsupported I/O devices).
That's why it is detailed here.
</para>
        <important>
          <para>
You will need a <emphasis>lifimage</emphasis> to perform a network boot.
See <xref linkend="whatdoespalo"/> to learn how to create one.
You can also download one at <ulink url="http://pateam.esiee.fr/cd-images/lifimages/">http://pateam.esiee.fr/cd-images/lifimages/</ulink>
</para>
        </important>
      </sect2>
      <sect2>
        <title><command>rboot</command> or <command>bootp</command>?</title>
        <para>
All 'recent' machines can boot using <command>bootp</command>, starting from
715/100, 715/120, and 712s.
Older ones, mostly early 715s, 710s and 725s need <command>rboot</command>.
</para>
        <note>
          <para>
To use <literal>BOOTP</literal> you have to enable the '<literal>IP: Kernel level autoconfiguration -ent IP: BOOTP support</literal>' within the '<literal>Networking options</literal>' section of the kernel configuration, if you want to use a <emphasis>home-made</emphasis> kernel. See <xref linkend="vmlinux"/> for details.
</para>
        </note>
      </sect2>
      <sect2 id="usingrbootd">
        <title>Using <command>rboot</command></title>
        <sect3>
          <title>Obtaining <command>rboot</command></title>
          <para>
If you have an old machine that requires <command>rboot</command> to
boot over network, use the following procedure to set up, configure,
and boot using the ent/Linux kernel.
</para>
          <para>
Old machines, including the Scorpio 715s, require
<command>rbootd</command>.  You can obtain the <command>rboot</command> daemonent:
</para>
          <itemizedlist>
            <listitem>
              <para>
For all distributions but ent, by getting our archive at <ulink url="http://pateam.esiee.fr/download.html#deb">http://pateam.esiee.fr/download.html#deb</ulink>
</para>
            </listitem>
            <listitem>
              <para>
For ent, from <ulink url="http://www.debian.org/Packages/stable/net/rbootd.html">http://www.debian.org/Packages/stable/net/rbootd.html</ulink>,
or even more simpleent:</para>
              <programlisting>
bash# apt-get install rbootd
</programlisting>
            </listitem>
          </itemizedlist>
        </sect3>
        <sect3 id="rbootd">
          <title>Configuring <command>rbootd</command></title>
          <para>
For instance, to boot a ent 715 system, you need a Linux system with rbootd installed
(this is the 'boot server') on which you will store the
ent/Linux kernel lifimage that you want to use to boot your ent system with.
</para>
          <para>
Once the <command>rbootd</command> server software is installed,
do as follows to configure it to work with your ent systement:
</para>
          <para>
In <filename>/etc/rbootd.conf</filename> you will have to add a line likeent:
</para>
<programlisting>ethernet_addr            bootfile</programlisting>
          
<orderedlist numeration="arabic">
            <listitem>
              <para>
Replace <replaceable>bootfile</replaceable> with the name of your
ent/Linux kernel image, usually '<filename>lifimage</filename>'.
</para>
            </listitem>
            <listitem>
              <para>
Now get the ethernet address of your ent system by typing
<command>lanaddress</command> at the '<computeroutput>BOOT_ADMINent</computeroutput>' prompt
(see <xref linkend="bootadminfo"/>).
</para>
              <para>
It will return a number like
<computeroutput>080009-7004b6</computeroutput>. Take note of this number.
</para>
            </listitem>
            <listitem>
              <para>
In <filename>/etc/rbootd.conf</filename> on your boot server, the
ethernet address has to be colon-delimited.  That means you will have to modify
the number you just obtained so that every set of two characters (after removing the
'-') is separated by a colon.  For exampleent:
</para>
              <programlisting>
080009-7004b6
</programlisting>
              <para>
becomes
</para>
              <programlisting>
08:00:09:70:04:b6
</programlisting>
              <para>
Add the colon delimited ethernet address to
<filename>/etc/rbootd.conf</filename> on your boot server. The
resulting file will look something like thisent:
</para>
              <programlisting>
# ethernet addr        boot file           comments

08:00:09:87:e4:8f      lifimage_715        # PA/Linux kernel for 715/33
08:00:09:70:04:b6      lifimage_720        # PA/Linux kernel for 720
</programlisting>
              <para>
This <filename>rbootd.conf</filename> example contains the ethernet
addresses and boot file names for two different machines.
</para>
              <para>
Once you have changed the configuration file, restart
<command>rbootd</command>.
</para>
            </listitem>
          </orderedlist>
          <para>
By default, <command>rbootd</command> assumes that bootfiles are located
in <filename class="directory">/var/lib/rbootd/</filename>. If you use 
our archive for other distributions, this directory is
<filename class="directory">/export/hp/rbootd/</filename>. Therefore,
you will have to put your bootable kernel image in that directory, or,
if you really hate that directory for some reason, you can recompile
<command>rbootd</command> to use a different directory.
</para>
          <para>
The easiest thing, of course, is just to drop your kernel images in 
the default directoryent!
</para>
        </sect3>
      </sect2>
      <sect2 id="usingdhcp">
        <title>Using <command>dhcp</command>/<command>tftp</command></title>
        <para>We will see here how to use a <literal>DHCP</literal> server 
as a <literal>BOOTP</literal> one.</para>
        <sect3>
          <title>Obtaining
<command>dhcp</command>/<command>tftp</command></title>
          <para>
ent users will just have to install the packages ent these 
commands as <command>root</command>ent:
</para>
          <programlisting>
bash# apt-get install dhcp
bash# apt-get install tftpd
</programlisting>
          <para>
If you need rpm packages (for the ISC dhcp server), the best 
way is to go to <ulink url="http://rpmfind.net/">http://rpmfind.net/</ulink>.
It seems that Red Hat users need to create the user entnobodyent 
belonging to the group entnogroupent.
The files present in your <filename class="directory">/tftpboot/</filename> 
directory (see below) should have these user/group privileges.
</para>
          <note>
            <para>
The <command>dhcp</command> package can do far more than a 
simple <command>bootp</command> daemon.
Nevertheless, it is also known to be far easier to configure.
If you really want to try <command>bootp</command>, skip 
this and go to <xref linkend="usingbootp"/>.
</para>
          </note>
        </sect3>
        <sect3>
          <title>Configuring <command>dhcp</command>/<command>tftp</command></title>
          <para>
Here are the instructions to set up <command>dhcp</command> on your 
boot server. To keep this explanation simple, we will assume that 
you want to assign a fixed IP to your box, without DNS update. Your 
subnet will be <literal>192.168.1.0/24</literal>, with optionalent: 
gateway at <literal>192.168.1.1</literal>, domain name 
<literal>foo.com</literal> and DNS at <literal>192.168.1.4</literal>.
</para>
          <note>
            <para>
This section is dedicated to ent users.
For others distributions, it should be similar though 
there can be some differences like default directories.
Since ent maintains a <command>dhcp</command> package, 
we will focus on it only.
</para>
          </note>
          <orderedlist numeration="arabic">
            <listitem>
              <para>
Edit <filename>/etc/inetd.conf</filename> on your boot 
server to add the following line, if it doesn't already existent:
<programlisting>tftp           dgram   udp     wait    nobody  /usr/sbin/tcpd \
		                                 /usr/sbin/in.tftpd /tftpboot
</programlisting>
Here, <filename class="directory">/tftpboot/</filename> 
is being used as tftpd server's root. You can choose another 
directory if you want. According to <command>man tftpd</command>, 
this is the usual default directory. 
</para>
              <para>
When this is done, restart <command>inetd</command> withent: 
<command>/etc/init.d/inetd restart</command>. You can also 
issue a <command>killall -HUP inetd</command>.
</para>
            </listitem>
            <listitem>
              <para>
According to <command>man 5 dhcpd.conf</command>, edit the 
<filename>/etc/dhcpd.conf</filename> file to contain something likeent:
              <programlisting>
allow bootp;
default-lease-time 600;
max-lease-time 7200;
# This will tell the box its hostname while booting:
use-host-decl-names on;

subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.1;
        option domain-name entfoo.coment;
        option domain-name-server 192.168.1.4;
}

host [hostname] {
        hardware ethernet [mac address];
        fixed-address [ip address];
        filename ent[boot filename]ent;
        option root-path ent[root path]ent;
}
</programlisting>
You have to fill in the <replaceable>[hostname]</replaceable>,
<replaceable>[mac address]</replaceable>, 
<replaceable>[ip address]</replaceable>, 
<replaceable>[boot filename]</replaceable> and 
<replaceable>[root path]</replaceable> fields with the 
appropriate information, whereent:
</para>
              <itemizedlist>
                <listitem>
                  <para><replaceable>[hostname]</replaceable> 
is the name of the ent system.
</para>
                </listitem>
                <listitem>
                  <para><replaceable>[mac address]</replaceable> 
is the colon-delimited ethernet address of the ent system, which 
can be obtained by typing <command>lanaddress</command> at the
'<computeroutput>BOOT_ADMINent</computeroutput>' prompt 
(see <xref linkend="bootadminfo"/>).
</para>
                </listitem>
                <listitem>
                  <para><replaceable>[ip address]</replaceable> 
is the IP address you wish to assign to the ent system.
</para>
                </listitem>
                <listitem>
                  <para><replaceable>[boot filename]</replaceable> 
is the name of the bootable kernel image you want to boot your system with.
</para>
                </listitem>
                <listitem>
                  <para><replaceable>[root path]</replaceable> 
is the path to the NFS root filesystem exported by the server.
</para>
                </listitem>
              </itemizedlist>
              <para>
You'll end up with something like this for each box 
you want to <emphasis>netboot</emphasis>ent:
              <programlisting>
host tatooine {
        hardware ethernet 00:40:05:18:0c:dd;
        fixed-address 192.168.1.22;
        filename entlifimage-tatooineent;
        option root-path ent/exports/tatooinerootent;
}
</programlisting>
	      </para>
            </listitem>
          </orderedlist>
        </sect3>
      </sect2>
      <sect2 id="usingbootp">
        <title>Using <command>bootp</command>/<command>tftp</command></title>
        <sect3>
          <title>Obtaining
<command>bootp</command>/<command>tftp</command></title>
          <para>
For ent users, you just have to install the packages ent these 
commands as <command>root</command>ent:
          <programlisting>
bash# apt-get install bootp tfptd
</programlisting>
If you need rpm packages, the best way is to go to 
<ulink url="http://rpmfind.net/">http://rpmfind.net/</ulink>.
It seems that Red Hat users need to create the user 
entnobodyent belonging to the group entnogroupent.
The files present in your <filename class="directory">/tftpboot/</filename> 
directory (see below) should have these user/group privileges.
</para>
          <warning>
            <para>
You'll have been warnedent! This daemon is far more obfuscated 
in its configuration.
</para>
          </warning>
        </sect3>
        <sect3>
          <title>Configuring <command>bootp</command>/<command>tftp</command></title>
          <para>
Follow these instructions to use <command>bootp</command> on 
your boot serverent:
</para>
          <note>
            <para>
This section is dedicated to ent users.
For others distributions, it should be similar though 
there can be some differences like default directories.
Since ent maintains a <command>bootp</command> package, 
we will focus on it only.
</para>
          </note>
          <orderedlist numeration="arabic">
            <listitem>
              <para>
Edit <filename>/etc/inetd.conf</filename> on your boot server 
to add the following lines, if they don't already existent:
              <programlisting>
tftp            dgram   udp     wait    nobody  /usr/sbin/tcpd       \
                                          /usr/sbin/in.tftpd /tftpboot
bootps          dgram   udp     wait    root    /usr/sbin/bootpd     \
                                                      bootpd -i -t 120
</programlisting>
Here, <filename class="directory">/tftpboot/</filename> is being 
used as tftpd server's root. You can choose another directory 
if you want. According to <command>man tftpd</command>, this 
is the usual default directory. 
</para>
              <para>
When this is done, restart <command>inetd</command> withent: 
<command>/etc/init.d/inetd restart</command>. You can also issue 
a <command>killall -HUP inetd</command>.
</para>
            </listitem>
            <listitem>
              <para>
According to <command>man 5 bootptab</command>, edit the 
<filename>/etc/bootptab</filename> file to containent:
<programlisting>
<replaceable>[hostname]</replaceable>:hd=/tftpboot:\
          :rp=<replaceable>[root path]</replaceable>:\
          :ht=ethernet:\
          :ha=<replaceable>[mac address]</replaceable>:\
          :ip=<replaceable>[ip address]</replaceable>:\
          :bf=<replaceable>[boot filename]</replaceable>:\
          :sm=255.255.255.0:\
          :to=7200:
</programlisting>
You have to fill in the <replaceable>[hostname]</replaceable>,
<replaceable>[mac address]</replaceable>, 
<replaceable>[ip address]</replaceable> and 
<replaceable>[root path]</replaceable>
fields with the appropriate information, whereent:
</para>
              <itemizedlist>
                <listitem>
                  <para><replaceable>[hostname]</replaceable> is the name 
of the ent system.
</para>
                </listitem>
                <listitem>
                  <para><replaceable>[mac address]</replaceable> is the 
NOT-delimited ethernet address of the ent system, which can be obtained 
by typing <command>lanaddress</command> at the
'<computeroutput>BOOT_ADMINent</computeroutput>' prompt 
(see <xref linkend="bootadminfo"/>).
</para>
                </listitem>
                <listitem>
                  <para><replaceable>[ip address]</replaceable> is the 
IP address you wish to assign to the ent system.
</para>
                </listitem>
                <listitem>
                  <para><replaceable>[boot filename]</replaceable> is the 
name of the bootable kernel image you want to boot your system with.
</para>
                </listitem>
                <listitem>
                  <para><replaceable>[root path]</replaceable> is the 
path to the NFS root filesystem exported by the server.
</para>
                </listitem>
              </itemizedlist>
              <para>
You'll end up with something like thisent:
</para>
              <programlisting>
vodka:hd=/tftpboot:\
     :rp=/usr/src/parisc/:\
     :ht=ethernet:\
     :ha=080069088717:\
     :ip=140.244.9.208:\
     :bf=lifimage:\
     :sm=255.255.255.0:\
     :to=7200:
</programlisting>
            </listitem>
          </orderedlist>
        </sect3>
      </sect2>
      <sect2>
        <title>Booting your ent system from network with serial console</title>
        <para>To conclude with the developers' way to boot the 
kernel, this section will tell you how to actually boot your 
system from a network server. But it tends to be less and less used. 
Most users will prefer to stick to <xref linkend="boothd"/>.</para>
        <para>Here we are. These are just some tips to get 
the boot for those who tried the network way. 
We assume that you've done everything outlined above, your development PC 
is hooked up to your ent machine ent a serial line,
you've got a bootable ent kernel lifimage on your boot server,
and you're willing to give it a try.
If everything is ready, as well as you, the following procedure 
will introduce you to the joy of network booting your PA box into Linux. 
</para>
        <orderedlist numeration="arabic">
          <listitem>
            <para> 
Make sure your development box is properly connected to your ent machine 
with a serial cable. Sounds obvious, but check anyway. 
</para>
          </listitem>
          <listitem>
            <para> 
Start <command>minicom</command> on your development box. 
</para>
          </listitem>
          <listitem>
            <para> 
Fire up your ent system. 
</para>
          </listitem>
          <listitem>
            <para> 
Watch your <command>minicom</command> console.  When the following 
message appears during the ent machine's boot process, press and hold the 
<keycap>Esc</keycap> keyent: 
              <programlisting> 
Searching for Potential Boot Devices.                                      
To terminate search, press and hold the ESCAPE key.           
</programlisting>
            </para>
          </listitem>
          <listitem>
            <para> 
If needed, select '<computeroutput>a)  Enter Boot Administration 
mode</computeroutput>' from the menu.  This brings up the 
'<computeroutput>BOOT_ADMINent</computeroutput>' prompt. 
</para>
          </listitem>
          <listitem>
            <para> 
Type the following at the promptent: <command>boot lan</command>. 
</para>
          </listitem>
          <listitem>
            <para> 
Watch your ent system magically becoming a ent system.   
Ta dahent! 
</para>
          </listitem>
        </orderedlist>
        <note>
          <para>
Of course your are supposed to run only one boot server 
at a time on your network, in order to avoid conflicts...
</para>
        </note>
      </sect2>
    </sect1>
  </chapter>
  <chapter id="vmlinux">
    <title>Building and installing your own ent/Linux kernel</title>
    <para>
To build a Linux kernel, you need a compiler and the kernel source.
The first element is not a trivial thing to find because it 
depends on how you want to build your kernel.
The second is easier since it lies on 
<ulink url="http://cvs.parisc-linux.org/"> the official CVS site</ulink>.
First, we will discuss about <command>GCC</command> compiler.
Then, the configuration of your build will be explained.
The last paragraph will deal with the installation of this new kernel.
</para>
    <note>
      <para>
We will deal only with a kernel built without modules, 
to simplify the explanations.
</para>
    </note>
    <sect1 id="gcc">
      <title><command>GCC</command> compiler</title>
      <para>You can compile your kernel with your own ent box.
But on old systems, you may prefer to use another - faster - computer 
to compile your kernel. We will see the two alternatives. Whichever 
you choose, you need at least <command>gcc-3.0</command>.</para>
    <note>
      <para>By the time this howto is released, only gcc-3.0.X was able 
to build working kernels. There is a bug in more recent versions that makes
the box crash when network activity occurs.</para>
      </note>

      <sect2>
        <title>native build</title>
        <para>
Since ent is the only distribution supporting ent architecture, 
if you want to use the <emphasis>Super Cow</emphasis> powers,
you need to have some basic knowledge about the ent packaging system.
We will explain here how to quickly get a gcc compiler ready on your ent box.
</para>
        <sect3 id="aptget">
          <title><command>apt-get</command> and friends</title>
          <para><command>apt-get</command> is a simple 
command line utility that manages ent package system. 
Gustavo Noronha Silva wrote the 
<ulink url="http://www.debian.org/doc/manuals/apt-howto/">APT HOWTO</ulink> 
that you should read for sharper details. Actually, we just want to 
build a kernel, so we will tell you the bare minimum needed to do 
that. First, setup your <filename>sources.list</filename> in 
order to fetch the needed archives from  the Internet. Here 
is a sample configuration for <filename>/etc/apt/sources.list</filename>, 
using a German ent mirrorent:
</para>
          <programlisting>
# Binary packages
deb http://ftp.de.debian.org/debian unstable main contrib non-free
# non-US packages
deb http://ftp.de.debian.org/debian-non-US unstable/non-US main non-free contrib
# source packages
deb-src http://ftp.de.debian.org/debian unstable main contrib non-free
# non-US source packages
deb-src http://ftp.de.debian.org/debian-non-US unstable/non-US main contrib non-free
</programlisting>
        </sect3>
        <sect3>
          <title>update your <command>gcc</command></title>
          <para>
If you are using your own ent box, you only need the good old 
<command>GCC</command> compiler. We recommend to keep it up-to-date 
with the latest version uploaded by the developers.
</para>
          <programlisting>
bash# apt-get update
bash# apt-get upgrade
</programlisting>
          <para>If you do not want to upgrade all your system, 
according to the package description of kernel-source, you need 
to get those packages updatedent:</para>
          <itemizedlist>
            <listitem>
              <para>binutils</para>
            </listitem>
            <listitem>
              <para>fileutils</para>
            </listitem>
            <listitem>
              <para>gcc</para>
            </listitem>
            <listitem>
              <para>libc-dev</para>
            </listitem>
            <listitem>
              <para>make</para>
            </listitem>
          </itemizedlist>
          <para>When this is done, you can proceed to the kernel settings.</para>
        </sect3>
      </sect2>
      <sect2>
        <title>cross compiled build</title>
        <para>
In this kernel build method, everything depends on the architecture 
of your building machine. For x86 computers, you can download a 
ready-to-use cross compiler archive on the 
<ulink url="ftp://ftp.parisc-linux.org/x86-xcompilers/">ent 
FTP server</ulink>. You can also find some entexoticent 
(like for MacOS X) cross-compilers archives on 
<ulink url="http://pateam.esiee.fr/download.html">the ent ESIEE 
Team website</ulink>. For other architectures or if you want to 
compile your own toolchain, please refer to 
<ulink url="http://www.parisc-linux.org/toolchain/PARISC-Linux-XC-HOWTO.html">Carlos O'Donell's HOWTO</ulink>.
</para>
        <important>
          <para>
As there is not yet a 64bit userspace on HP-PA, you have to cross-compile 
64bit kernel even if you are building on a 64bit ent box. You can get 
unofficial debs for hppa64 compilers and binutils at 
<ulink url="ftp://ftp.parisc-linux.org/unofficial-debs/">ftp://ftp.parisc-linux.org/unofficial-debs/</ulink>. 
See <ulink url="http://www.parisc-linux.org/">ent Linux Website</ulink> 
for details.
</para>
        </important>
      </sect2>
    </sect1>
    <sect1>
      <title>Kernel configuration</title>
      <para>
If you want to take advantage of the latest kernel improvements, we 
suggest you to retrieve it from the official 
<ulink url="http://cvs.parisc-linux.org/">ent/Linux CVS</ulink>. You 
can of course either download it from 
<ulink url="http://www.kernel.org/">http://www.kernel.org/</ulink>, or 
use the ent package, but we will focus on a fresh CVS tree.
</para>
      <para>
The best way to obtain appreciable performances is to get a well 
configured kernel. For the ent platform, <command>make oldconfig</command> 
is a kind of default setup. If you want to make your own kernel, 
the first step is to know what hardware you have. The best way to 
grab useful info is to look at your box and find a maximum of data 
(model name, partnumber, chipsets, and so on). If you have already 
booted your box, you can take a look at <command>dmesg</command> 
output. Then, go to the <ulink url="http://hwdb.parisc-linux.org/">official 
hardware database</ulink> or to the 
<ulink url="http://partsurfer.hp.com/">HP partsurfer website</ulink>.
</para>
      <para>
Once you know what is inside your box and what you want to do with it,
just run <command>make menuconfig</command> or another config command.
Here is a brief list of architecture dependent menus for 2.4 kernels.
You should take a look at them, to see if the values set correspond 
to your hardwareent:
</para>
      <note>
	<para>Remenber that <command>make oldconfig</command> is a 
good base to start with, since it works for almost all machines.</para>
      </note>
      <itemizedlist>
        <listitem>
          <para><emphasis>Processor type</emphasis> - indicates your 
CPU model</para>
        </listitem>
        <listitem>
          <para><emphasis>General options</emphasis> - tells you what is going to be enabled in your kernel (U2/Uturn, USC/GSC/HSC, Lasi, Wax, Dino, LBA/Elroy, SuperIO)</para>
        </listitem>
        <listitem>
          <para><emphasis>Parallel port support</emphasis> - enables/disables the Lasi/ASP parport</para>
        </listitem>
        <listitem>
          <para><emphasis>SCSI support</emphasis> - check there for your SCSI chipset (Lasi, Zalon, NCR/SYM53C8XX or other)</para>
        </listitem>
        <listitem>
          <para><emphasis>Network device support</emphasis> - is used to set your network card (Lasi, Tulip...)</para>
        </listitem>
        <listitem>
          <para><emphasis>Character devices</emphasis> - defines your I/O capabilities (Lasi, Dino, PDC see <xref linkend="PDC"/>)</para>
        </listitem>
        <listitem>
          <para><emphasis>HIL Support</emphasis> - useful if you have a HIL controller. See below <xref linkend="HIL"/>.</para>
        </listitem>
        <listitem>
          <para><emphasis>Console drivers</emphasis> - is directly related to your console mode (STI console or STI framebuffer)</para>
        </listitem>
        <listitem>
          <para><emphasis>Sound</emphasis> - enables/disables the Harmony driver</para>
        </listitem>
      </itemizedlist>
      <para>
As you see, menus specifically concerned by ent hardware are not 
that numerous, but there are lots of dependencies between them. Now, 
you must configure the kernel accordingly to what you plan to use 
this box for. Here is a list of some menus you should be going 
through to configure additional functionnalities you might wantent:
</para>
      <itemizedlist>
        <listitem>
          <para><emphasis>General setup</emphasis> - is responsible for binary formats handled by the kernel. You need ELF, and can try SOM (support for HP/UX binaries. It *might* work with some static executables).</para>
        </listitem>
        <listitem>
          <para><emphasis>Block devices</emphasis> - sets the ramdisk and loopback support. You probably won't use them. </para>
        </listitem>
        <listitem>
          <para><emphasis>ATA/IDE/MFM/RLL support</emphasis> - You will need to check this to enable IDE. See <xref linkend="IDE"/></para>
        </listitem>
        <listitem>
          <para><emphasis>File Systems/Network File Systems</emphasis> - is where to set EXT3 or NFS support</para>
        </listitem>
        <listitem>
          <para><emphasis>USB support</emphasis> - If you have enabled <emphasis>SuperIO</emphasis> and want USB, look there <xref linkend="USB"/></para>
        </listitem>
      </itemizedlist>
      <note>
        <para>
At the time this HOWTO was written, there was no floppy drive 
support; and what's more, it was not expected to have one any day.
</para>
      </note>
      <para>
When you're done with it, save your kernel configuration.
Everything is written in the <filename>.config</filename> file.
You should back it up because a <command>make distclean</command> 
will remove it. At this very stage, you can do 
<command>make dep vmlinux</command> and if everything goes fine, 
you will have a new kernel in a couple of minutes.
</para>
      <para>
Here follows brief information about specific hardware configurations.
</para>
      <sect2 id="HIL">
        <title><literal>HIL</literal> Support</title>
        <para>
Since <literal>kernel-2.4.18-pa45</literal>, there is a full 
<literal>HIL</literal> support, for mice, tablets and keyboards. 
It is based on the <emphasis>Linux Input Driver</emphasis> model. 
See the <ulink url="http://www.parisc-linux.org/faq/">ent/Linux FAQ</ulink> 
and the <ulink url="http://lists.parisc-linux.org/pipermail/parisc-linux/2002-June/016757.html">mail</ulink> 
posted on the mailing list by <emphasis>Helge Deller</emphasis>.
Here is what it saysent:
</para>
        <orderedlist numeration="arabic">
          <listitem>
            <para>
Make sure you have a 2.4.18-pa45 or higher kernel source.
</para>
          </listitem>
          <listitem>
            <para>
Look at your kernel configuration for the following optionsent:
            <programlisting>
CONFIG_INPUT=y
CONFIG_INPUT_KEYBDEV=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_EVDEV=y

CONFIG_INPUT_SERIO=y

CONFIG_HIL=y
CONFIG_HP_SDC=y
CONFIG_HIL_MLC=y
CONFIG_HP_SDC_MLC=y
CONFIG_HIL_KBD=y
CONFIG_HIL_PTR=y
</programlisting>
            <note>
              <para>There is no more <literal>CONFIG_HIL_KBD_BASIC</literal>.</para>
            </note></para>
          </listitem>
          <listitem>
            <para>
On your target system, check that the following devices are availableent:
            <programlisting>
 /dev/input/mice
 /dev/input/mouseX
 /dev/input/eventX
</programlisting>
If they are not yet present, create them as root by runningent:
            <programlisting>
bash# cd /dev; ./MAKEDEV input
</programlisting>
	    </para>
          </listitem>
          <listitem>
            <para>
Configure <command>gpm</command> with the following options in <filename>/etc/gpm.conf</filename>ent:
            <programlisting>
 device=/dev/input/mice
 type=imps2
</programlisting>
	    </para>
          </listitem>
          <listitem>
            <para>Here is a sample <filename>/etc/X11/XF86Config-4</filename>ent:
            <programlisting>
Section entInputDeviceent
        Identifier      entHIL Keyboardent
        Driver          entkeyboardent
        Option          entCoreKeyboardent
EndSection
Section entInputDeviceent
        Identifier      entHIL Mouseent
        Driver          entmouseent
        Option          entCorePointerent
        Option          entDeviceent                ent/dev/input/miceent
        Option          entProtocolent              entImPS/2ent
        Option          entZAxisMappingent          ent4 5ent
EndSection
Section entServerLayoutent
        Identifier      entDefault Layoutent
        Screen          entDefault Screenent
        InputDevice     entHIL Keyboardent
        InputDevice     entHIL Mouseent
EndSection
</programlisting>
You can also download a sample <filename>XF86Config-4</filename> hereent:
<ulink url="ftp://ftp.parisc-linux.org/XFree86/XF86Config-4">ftp://ftp.parisc-linux.org/XFree86/XF86Config-4</ulink>,
adjust color depth and resolution, and put it in your <filename class="directory">/etc/X11/</filename>.
</para>
          </listitem>
        </orderedlist>
      </sect2>
      <sect2 id="USB">
        <title><literal>USB</literal> Support</title>
        <para>
USB support on HP-PA is still experimental, therefore it is only proposed as modules in default kernel configuration.
We have tried to install a B2000 with builtin USB support, both 32 and 64bit, and it worked fine, despite some keyboard problems.
Don't worry, nothing criticalent: the range of keys located between the main part of the keyboard (the letters, backspace, enter...)
and the numeric pad are spoiled. They do not behave as expected at all.
</para>
        <tip>
          <para>
You can use the numeric pad as arrow keysent: when <keycap>NumLock</keycap> is not activated, it behaves as a navigation pad.
<emphasis>e.g.</emphasis> <keycap>8</keycap> is <keycap>Up Arrow</keycap>, <keycap>4</keycap> is <keycap>Left Arrow</keycap>
and so on.
</para>
        </tip>
        <orderedlist numeration="arabic">
          <listitem>
            <para>
Make sure you have a 2.4.18 or higher kernel source.
</para>
          </listitem>
          <listitem>
            <para>
Look at your kernel configuration for the following optionsent:
            <programlisting>
CONFIG_SUPERIO=y
CONFIG_HOTPLUG=y

CONFIG_INPUT=y
CONFIG_INPUT_KEYBDEV=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_EVDEV=y

CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_OHCI=y
CONFIG_HID=y
</programlisting>
	    </para>
          </listitem>
          <listitem>
            <para>On your target system, check that the following devices 
are availableent:
<programlisting>
 /dev/input/mice
 /dev/input/mouseX
 /dev/input/eventX
</programlisting>
If they are not yet present, create them as root by runningent:
<programlisting>
bash# cd /dev; ./MAKEDEV input
</programlisting></para>
          </listitem>
          <listitem>
            <para>Configure <command>gpm</command> with the following options 
in <filename>/etc/gpm.conf</filename>ent:
<programlisting>
 device=/dev/input/mice
 type=imps2
</programlisting></para>
          </listitem>
          <listitem>
            <para>The XF86-Config-4 is similar to the 
<literal>HIL</literal>, as it is also using the <emphasis>Linux 
Input Driver</emphasis>.</para>
          </listitem>
        </orderedlist>
      </sect2>
      <sect2 id="PDC">
        <title><literal>PDC Console</literal> Support</title>
        <para><literal>PDC Console</literal> has been improved by 
<emphasis>Richard Hirst</emphasis> in pa37 kernel,
though it is still a very <emphasis>experimental</emphasis> feature.
It is expected to provide adequate <literal>PDC Console</literal>
support to <literal>E-</literal> and <literal>K-Class</literal> machines.
Feedback would be really appreciated.
</para>
        <para>
Now follow these steps to get it to workent:
</para>
        <orderedlist numeration="arabic">
          <listitem>
            <para>
Make sure you have a 2.4.18-pa37 or higher kernel source.
</para>
          </listitem>
          <listitem>
            <para>
Look at your kernel configuration for the following optionsent:
            <programlisting>
CONFIG_SERIAL_CONSOLE=y

CONFIG_SERIAL_GSC=y

CONFIG_SERIAL_NONSTANDARD=y
CONFIG_PDC_CONSOLE=y
</programlisting></para>
          </listitem>
          <listitem>
            <para>
On your target system, check that the following devices are availableent:
            <programlisting>
 /dev/ttyB0
</programlisting>
If they are not yet present, create them as root by runningent:
            <programlisting>
bash# cd /dev; ./MAKEDEV ttyB0
</programlisting>
            <note>
              <para>
It needs a recent <literal>MAKEDEV</literal> package to be created this way.
By the time this HOWTO was written, such a package could only be found on <emphasis>netinst</emphasis>
ISO provided at <ulink url="http://pateam.esiee.fr/download.html">http://pateam.esiee.fr/download.html</ulink>.
</para>
            </note></para>
          </listitem>
          <listitem>
            <para>
Now you can boot your system, taking care that ent uses
<computeroutput>console=ttyB0</computeroutput>.
</para>
          </listitem>
        </orderedlist>
      </sect2>
      <sect2 id="IDE">
        <title><literal>IDE</literal> Devices Support</title>
        <para>
There is nothing really special about <literal>IDE</literal> support. You have 
to check that your <emphasis>IDE Chipset</emphasis> is supported by the 
kernel. A common chipset found on ent hardware is <literal>NS87415</literal>.
You can find it on B2000, J5000 and C3000 for instance. You will 
need <literal>IDE</literal> support to use some CD devices.
</para>

<para>
Here is an example to get IDE to work with this chipsetent:
</para>

        <orderedlist numeration="arabic">
          <listitem>
            <para>Make sure you have a recent kernel source.</para>
          </listitem>
          <listitem>
            <para>Look at your kernel configuration for the following optionsent:
<programlisting>
CONFIG_IOMMU_CCIO=y
CONFIG_PCI=y
CONFIG_PCI_LBA=y
CONFIG_IOSAPIC=y
CONFIG_IOMMU_SBA=y
CONFIG_SUPERIO=y

CONFIG_IDE=y

CONFIG_BLK_DEV_IDE=y

CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_ADMA=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_NS87415=y
</programlisting></para>
          </listitem>
          <listitem>
            <para>On your target system, check that the following devices 
are availableent:
<programlisting>
 /dev/hd*
</programlisting>
If they are not yet present, create them as root by runningent:
<programlisting>
bash# cd dev; ./MAKEDEV hda hdb hdc hdd hde
</programlisting>
            <note>
              <para>It needs a recent <literal>MAKEDEV</literal> package to 
be created this way. By the time this HOWTO was written, such a package 
could only be found on <emphasis>netinst</emphasis> ISO provided at 
<ulink url="http://pateam.esiee.fr/download.html">http://pateam.esiee.fr/download.html</ulink>.</para>
            </note></para>
          </listitem>
        </orderedlist>
        <note>
          <para>Of course we didn't mention much of the non architecture 
independant options. Moreover, the above settings may vary depending 
on your hardware. This is just an example.</para>
        </note>
      </sect2>
    </sect1>
    <sect1 id="kernelinstall">
      <title>Kernel installation</title>
      <para>
If you have made a native build on the box you wish to install, you can setup 
the new kernel as followsent:
within the kernel source tree <filename>linux/</filename>, as root do aent:
      <programlisting>
bash# cp vmlinux /boot/vmlinux-<replaceable>[kernelversion]</replaceable>
bash# cp System.map /boot/System.map-<replaceable>[kernelversion]</replaceable>
bash# cp .config /boot/config-<replaceable>[kernelversion]</replaceable>
</programlisting>
Though it is not mandatory, we suggest you to replace 
<replaceable>[kernelversion]</replaceable> by the version of the 
kernel you built, <emphasis>e.g.</emphasis>ent: 
<filename>vmlinux-2.4.18-pa44</filename>. This will help you 
dealing with multiple kernel versions on the same machine.
The same applies to <filename>.config</filename>.
It is not needed to have a working kernel, though it might 
be very helpful when configuring a new one.
Now, do a <command>cd /boot</command>, make sure that 
<filename>vmlinux</filename> is a symbolic link to another 
file, as in the following exampleent:
      <programlisting>
bash# ls -l vmlinux
lrwxrwxrwx  1 root   root   35 Jun 23 01:38 vmlinux -ent vmlinux-2.4.18-64-SMP
</programlisting>
Make sure to remember the name of the kernel actually running 
on your box if ever the new one won't work properly.
You are now able to ask ent to boot on it if needed 
(see <xref linkend="palo"/> for more information).
Now do the followingent:
      <programlisting>
bash# rm -f vmlinux
bash# ln -s vmlinux-<replaceable>[kernelversion]</replaceable> vmlinux
bash# sync
</programlisting>
If you want to boot from network you can forget all this, 
as you will need to set ent as explained in the 
<xref linkend="paloappusage"/>, and run <command>make palo</command> 
to create the bootable <emphasis>lifimage</emphasis>.
</para>
      <para>
If you have made a cross-compiled build or built a kernel on a 
PA box which is not the one you wish to install,
you have to find a way to put <filename>vmlinux</filename>, 
<filename>System.map</filename> and <filename>.config</filename> 
in <filename class="directory">/boot</filename> as mentionned before.
You can use the network (like <command>ftp</command>) 
or a CD to do so, or even direct copy to the hard disk drive.
</para>
    </sect1>
  </chapter>
  <chapter id="contributors">
    <title>HOWTO contributors</title>
    <para>
The following people contributed or reviewed this HOWTO in one way or another.
    </para>
    <para>For Deb's versionent:
    <itemizedlist>
      <listitem>
        <para>David Alexander deVries
<email>adevries@thepuffingroup.com</email></para>
      </listitem>
      <listitem>
        <para>Philip Imperial Schwan
<email>pschwan@thepuffingroup.com</email></para>
      </listitem>
    </itemizedlist></para>
    <para>
For Thomas' versionent:
    <itemizedlist>
      <listitem>
        <para>Michael Damaschke 
<email>sps01@uni-koeln.de</email>
Thanks for your example about ent</para>
      </listitem>
      <listitem>
        <para>Helge Deller 
<email>deller@gmx.de</email></para>
      </listitem>
      <listitem>
        <para>Grant Grundler 
<email>grundler@parisc-linux.org</email></para>
      </listitem>
      <listitem>
        <para>Richard Hirst 
<email>rhirst@parisc-linux.org</email></para>
      </listitem>
    </itemizedlist></para>
    <para>For Thibaut's versionent:
    <itemizedlist>
      <listitem>
        <para>Matthieu Delahaye
<email>delahaym@esiee.fr</email></para>
      </listitem>
      <listitem>
        <para>Helge Deller
<email>deller@gmx.de</email></para>
      </listitem>
      <listitem>
        <para>Grant Grundler 
<email>grundler@parisc-linux.org</email></para>
      </listitem>
      <listitem>
        <para>Richard Hirst
<email>rhirst@parisc-linux.org</email></para>
      </listitem>
      <listitem>
        <para>Clement Moyroud
<email>moyroudc@esiee.fr</email></para>
      </listitem>
      <listitem>
        <para>Matthew Wilcox
<email>matthew@wil.cx</email></para>
      </listitem>
    </itemizedlist></para>
  </chapter>
  <glossary id="gloss">
    <para>This is a brief glossary of the ent specific terminology. 
You can find a more detailed one at <ulink url="http://www.parisc-linux.org/glossary/">http://www.parisc-linux.org/glossary/</ulink>.</para>
    <glossentry id="glossbootadmin">
      <glossterm>BOOT_ADMIN</glossterm>
      <glossdef>
        <para>This a command line utility stored in the boot ROM of 
the PA box, which is used to configure the computer during early boot 
sequence. It is a part of the ent machine's firmware.</para>
      </glossdef>
    </glossentry>
    <glossentry id="glossgsp">
      <glossterm>Guardian Service Processor (<acronym>GSP</acronym>)</glossterm>
      <glossdef>
        <para>The <literal>GSP</literal> is a console subsystem present 
on certain ent systems, which provides several features such as remote 
console, UPS management, system low level control.</para>
      </glossdef>
    </glossentry>
<glossentry id="glosshpmc">
      <glossterm>High Priority Machine Check (<acronym>HPMC</acronym>)</glossterm>
      <glossdef>
        <para>Fatal system error. <xref linkend="glosspdc"/> saves machine state in the <xref linkend="glosspim"/>.</para>
      </glossdef>
    </glossentry>

    <glossentry id="glosshppa">
      <glossterm>HP-PA</glossterm>
      <glossdef>
        <para>'HP-PA' (sometimes '<emphasis>hppa</emphasis>') is the short 
way to refer to <emphasis>HP ent</emphasis> architecture. It's real meaning 
isent: '<emphasis>Hewlett Packard Precision Architecture</emphasis>'. It 
is used for instance by 
<ulink url="http://www.debian.org/ports/hppa/">ent</ulink>
and <ulink url="http://www.openbsd.org/hppa.html">OpenBSD</ulink> 
to point out their ports.</para>
      </glossdef>
    </glossentry>
    <glossentry id="glossipl">
      <glossterm>Initial Program Loader (<acronym>IPL</acronym>)</glossterm>
      <glossdef>
        <para>It is the HP standardized system bootstrap responsible for 
loading the operating system's kernel on ent systems. It can be launched 
from the ent.</para>
        <glossseealso otherterm="glossbootadmin"/>
      </glossdef>
    </glossentry>
    <glossentry id="glossisl">
      <glossterm>Initial System Loader (<acronym>ISL</acronym>)</glossterm>
      <glossdef>
        <para>ISL is the executable that brings you into ent.</para>
        <glossseealso otherterm="glossipl"/>
      </glossdef>
    </glossentry>
    <glossentry id="glosslif">
      <glossterm>Logical Interchange Format (<acronym>LIF</acronym>)</glossterm>
      <glossdef>
        <para>This is a HP mass-storage format used for exchanging files 
among HP computer systems. It basically contains a header (identifying it 
as a LIF volume) and a directory of fixed size containing the files. The 
size of the directory is fixed when the volume is created, which explains 
many thingss about the way ent worksent!</para>
      </glossdef>
    </glossentry>
    <glossentry id="glosslifimage">
      <glossterm>lifimage</glossterm>
      <glossdef>
        <para>It is the name contraction of 'LIF image', which is indeed a 
file which respond to 'LIF' standard. It can be seen as the equivalent of 
an 'ISO' file, having the 'LIF' format instead of 'ISO9660'.</para>
        <glossseealso otherterm="glosslif"/>
      </glossdef>
    </glossentry>
<glossentry id="glosslpmc">
      <glossterm>Low Priority Machine Check (<acronym>LPMC</acronym>)</glossterm>
      <glossdef>
        <para>Generally a recoverable system error.</para>
      </glossdef>
    </glossentry>
    <glossentry id="glossparisc">
      <glossterm>ent</glossterm>
      <glossdef>
        <para>PA stands for Precision Architecture. It is the name of two 
generations of HP processors. They are classified as ent 1.X and ent 2.0. 
But a system based on a ent processor is commonly called a HP-PA box.</para>
        <glossseealso otherterm="glosshppa"/>
      </glossdef>
    </glossentry>
    <glossentry id="glosspalo">
      <glossterm>PA LOader (<acronym>PALO</acronym>)</glossterm>
      <glossdef>
        <para>ent is the <emphasis>ent kernel LOader</emphasis>. It was 
designed by Paul Bame as a <emphasis>LILO</emphasis> equivalent for the ent 
architecture.</para>
      </glossdef>
    </glossentry>
    <glossentry id="glosspdc">
      <glossterm>Processor-Dependent Code (<acronym>PDC</acronym>)</glossterm>
      <glossdef>
        <para>It is the firmware that handles all processor-dependent 
functionalities, including initialization and self-test procedures. Once 
it has done this, it passes control to the ISL.</para>
        <glossseealso otherterm="glossisl"/>
      </glossdef>
    </glossentry>
    <glossentry id="glosspim">
      <glossterm>Processor Internal Memory (<acronym>PIM</acronym>)</glossterm>
      <glossdef>
        <para>Machine state is saved here for HPMC, LPMC, and TOC's. See 
PDC_PIM in "PDC Procedures" chapter of PA I/O ACD.</para>
        <glossseealso otherterm="glossisl"/>
      </glossdef>
    </glossentry>
    <glossentry id="glossnetinst">
      <glossterm>netinst</glossterm>
      <glossdef>
        <para>This is not a ent specific term, though it needs 
explanations. 'Network Install', also known as 'netinst', are 
small ISOs containing everything you need to boot a computer 
and install it from network. They are based on the 
<ulink url="http://www.debian.org/">ent distribution</ulink>.</para>
      </glossdef>
    </glossentry>
    <glossentry id="glosssuckyio">
      <glossterm>SuckyIO</glossterm>
      <glossdef>
        <para><literal>(added by special request)</literal> National 
Semiconductor PC87560UBD, aka ent<emphasis>SuperIO</emphasis>ent. 
Provides IDE, USB 1.1, Floppy Disk Controller, parallel port, 2 serial 
ports, UIR (Infrared), etc.  But since National denies the existence of 
this chip and HP was the only client for this buggy PoS, the name 
entSuckyIOent has stuck.</para>
      </glossdef>
    </glossentry>
    <glossentry id="glosssuperio">
      <glossterm>SuperIO</glossterm>
      <glossdef>
        <para>Official term for entSuckyIOent</para>
        <glossseealso otherterm="glosssuckyio"/>
      </glossdef>
    </glossentry>
    <glossentry id="glosssti">
      <glossterm>Standard Text Interface (<acronym>STI</acronym>)</glossterm>
      <glossdef>
        <para>It defines a standardized way to access the graphic subsystem 
on HP-PA.</para>
      </glossdef>
    </glossentry>
    <glossentry id="glosstoc">
      <glossterm>Transfer Of Control (<acronym>TOC</acronym>)</glossterm>
      <glossdef>
        <para>Under HP/UX it would make a crash dump and reset the box. It 
can also be called from the <literal>GSP</literal>. Under Linux, it will 
save the registers and reset, saved registers will be accessible through 
<literal>PDC</literal>.</para>
      </glossdef>
    </glossentry>
  </glossary>
  <bibliography id="biblio">
    <para>These documents might prove helpful to understand the present one, 
or to open new horizonsent:</para>
    <biblioentry id="bibinstall">
      <abbrev>Raymond 2000</abbrev>
      <authorgroup>
        <author>
          <firstname>E. S.</firstname>
          <surname>Raymond</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>2000</year>
      </copyright>
      <title>
        <ulink url="http://www.tldp.org/HOWTO/Installation-HOWTO/index.html">Installation-HOWTO</ulink>
      </title>
      <abstract>
        <para>How to obtain and install Linux software. It is the first 
document which a new Linux user should read to get started.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibnfsroot">
      <abbrev>Maor 1999</abbrev>
      <authorgroup>
        <author>
          <firstname>O.</firstname>
          <surname>Maor</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>1999</year>
      </copyright>
      <title>
        <ulink url="http://www.tldp.org/HOWTO/mini/NFS-Root-Client-mini-HOWTO/index.html">NFS-Root-Client Mini-HOWTO</ulink>
      </title>
      <abstract>
        <para>How to create client root directories on a server that is 
using NFS Root mounted clients.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibnfsdiskless">
      <abbrev>Kostyrka 1997</abbrev>
      <authorgroup>
        <author>
          <firstname>A.</firstname>
          <surname>Kostyrka</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>1997</year>
      </copyright>
      <title>
        <ulink url="http://www.tldp.org/HOWTO/mini/NFS-Root.html">NFS-Root Mini-HOWTO</ulink>
      </title>
      <abstract>
        <para>How to setup a 'disk-less' Linux workstation, which mounts 
its root filesystem ent NFS.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibdisk">
      <abbrev>Harris et al. 1997</abbrev>
      <authorgroup>
        <author>
          <firstname>T.</firstname>
          <surname>Harris</surname>
        </author>
        <author>
          <firstname>K.</firstname>
          <surname>Koehntopp</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>1997</year>
      </copyright>
      <title>
        <ulink url="http://www.tldp.org/HOWTO/mini/Partition/index.html">Linux Partition HOWTO</ulink>
      </title>
      <abstract>
        <para>Teaches you how to plan and layout disk space for your 
Linux system.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibcvs">
      <abbrev>Dev 1998</abbrev>
      <authorgroup>
        <author>
          <firstname>A.</firstname>
          <surname>Dev</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>1998</year>
      </copyright>
      <title>
        <ulink url="http://www.tldp.org/HOWTO/CVS-RCS-HOWTO.html">CVS-RCS-HOWTO</ulink>
      </title>
      <abstract>
        <para>This document is a entpractical guideent to very 
quicly setup CVS/RCS source code control system.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibapt">
      <abbrev>Noronha Silva 2001</abbrev>
      <authorgroup>
        <author>
          <firstname>G.</firstname>
          <surname>Noronha Silva</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>2001</year>
      </copyright>
      <title>
        <ulink url="http://www.debian.org/doc/manuals/apt-howto/">APT HOWTO</ulink>
      </title>
      <abstract>
        <para>Will help you understand how the ent package management 
utility, APT, works.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibxc">
      <abbrev>O'Donell 2002</abbrev>
      <authorgroup>
        <author>
          <firstname>C.</firstname>
          <surname>O'Donell</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>2002</year>
      </copyright>
      <title>
        <ulink url="http://www.parisc-linux.org/toolchain/PARISC-Linux-XC-HOWTO.html">The PARISC-Linux Cross Compiler HOWTO</ulink>
      </title>
      <abstract>
        <para>This is a semi-detailed guide for building a cross 
compiler toolchain targetting HP ent systems.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibhp">
      <abbrev>Cornec 1997</abbrev>
      <authorgroup>
        <author>
          <firstname>B.</firstname>
          <surname>Cornec</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>1997</year>
      </copyright>
      <title>
        <ulink url="http://www.tldp.org/HOWTO/HP-HOWTO/index.html">HP HOWTO</ulink>
      </title>
      <abstract>
        <para>Describes the use of products available in the 
Hewlett-Packard (HP) catalog with Linux and some free software.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibdebian">
      <abbrev>Perens et al. 1996</abbrev>
      <authorgroup>
        <author>
          <firstname>B.</firstname>
          <surname>Perens</surname>
        </author>
        <author>
          <firstname>S.</firstname>
          <surname>Rudolph</surname>
        </author>
        <author>
          <firstname>I.</firstname>
          <surname>Grobman</surname>
        </author>
        <author>
          <firstname>J.</firstname>
          <surname>Treacy</surname>
        </author>
        <author>
          <firstname>A.</firstname>
          <surname>Di Carlo</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>1996</year>
      </copyright>
      <title>
        <ulink url="http://ftp.debian.org/debian/dists/woody/main/disks-hppa/current/doc/index.en.html">ent GNU/Linux 3.0 Installation Documentation Index</ulink>
      </title>
      <abstract>
        <para>Will help you to install and configure your ent 
GNU/Linux system.</para>
      </abstract>
    </biblioentry>
    <biblioentry id="bibkeyb">
      <abbrev>Brouwer 1993</abbrev>
      <authorgroup>
        <author>
          <firstname>A.</firstname>
          <surname>Brouwer</surname>
        </author>
      </authorgroup>
      <copyright>
        <year>1993</year>
      </copyright>
      <title>
        <ulink url="http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO.html">The Linux keyboard and console HOWTO</ulink>
      </title>
      <abstract>
        <para>This note contains some information about the Linux 
keyboard and console, and the use of non-ASCII characters.</para>
      </abstract>
    </biblioentry>
  </bibliography>
</book>


