<!doctype linuxdoc system>

<!-- Bienvenue dans le monde SGML -->

<!-- 	$Id$	 -->

<article> 
  
<titlepag>
   
   <title> PLIP Install HOWTO
   <author>Gilles Lamiral, <tt>lamiral@linux-france.org</tt>
   <date>$Revision$ $Date$ 

<abstract> 

    This paper describes how to install a <bf>Gnu|Linux</bf>
    distribution on a computer without Ethernet card, or CD-ROM, but
    just a <bf>local floppy drive</bf> and a <bf>remote nfs server</bf>
    attached by a <bf>Null-Modem parallel</bf> cable. The nfs server has
    a <bf>cdrom drive</bf> mounted and exported.

    
<toc>


<p>You can find the latest release of the <bf>PLIP-Install-HOWTO</bf>,
by Gilles Lamiral, located at: <newline> <tt><url
url="http://www.linuxdoc.org/HOWTO/PLIP-Install-HOWTO.html"></tt>

If you have already read this HOWTO and you wonder what is new in this
release, first read the section <ref id="WHAT_IS_NEW" name="what's
new">.

<sect>PLIP for the impatient <label id="PLIP_IMPATIENT">
<p>

This section is used to avoid reading the document when you need to
install a plip connection in one minute. Skip it.

<sect1>Source side
<p>

<verb>
cat /proc/parport/0/hardware
insmod parport
insmod parport_pc io=0x378 irq=7 # Got those values in BIOS setup.
insmod plip
tail /var/log/messages
ifconfig plip0 192.168.0.2 pointopoint 192.168.0.1 \
         netmask 255.255.255.255 up
ifconfig plip0
ping -c1 192.168.0.2
route -n
</verb>

<sect1>Target side
<p>
<verb>
ifconfig plip1 192.168.0.1  pointopoint  192.168.0.2 \
         netmask 255.255.255.255 up
route add -host 192.168.0.2 dev plip1 # if the route is not present
</verb>

<sect1>Final tests
<p>

<verb>
ping 192.168.0.1 # from 192.168.0.2
ping 192.168.0.2 # from 192.168.0.1
</verb>

Now all TCP/IP is available between the two computer via the parallel
port. Have a nice trip !

<sect>Introduction
<p>
"PLIP is Parallel Line IP, that is, the transportation of IP packages
over a parallel port." Donald Becker (becker@super.org).
    
    Writing a PLIP install HOWTO seems useless nowadays since Ethernet
    cards are cheap: NE2000 cards cost about the same as a Null-Modem
    cable. This is true for desktop computers, but not for laptop
    computers, in which the PCMCIA card costs more than 10 times as much
    the Null-Modem cable.  Moreover, there is a parallel port on every
    computer, but not always a network card.

    Of course, this howto can be used to install Linux on every personal
    computer without loss of generality.
   
    This paper is just what I've done to install a <htmlurl
    url="http://www.debian.org" name="Debian GNU/Linux"> distribution on
    a Toshiba Port&eacute;g&eacute; 620CT laptop, from a NFS exported
    cdrom drive, via a Null-Modem cable. 

    A Null-Modem cable is also called a Null-Printer cable.

    A Null-Modem cable is also called a "LapLink" (or "Turbo Laplink")
    cable but the word "LapLink" is <htmlurl
    url="http://www.marksonline.com/app/tmsearch/find_mark?tok=laplink"
    name="trademarked"> by Traveling Software under the number 75466713
    since 1986, so I won't use it anymore.

    This HOWTO will be obsolete when every Linux distribution includes a
    PLIP install option. For example, the Debian installation only needs
    to add two commands to make this HOWTO obsolete (ifconfig +
    route). I hope one Debian maintainer will consider this point.

    I hoped this HOWTO would become obsolete but in fact it seems that
    it will never be, because some builders of some distributions do
    include PLIP installation sometimes but forget to maintain it in new
    releases (REDHAT for example).

    I would be happy to know if someone used the PLIP-Install-HOWTO
    to install other Linux distributions from other network protocols
    (ftp, http, nfs, samba, or even NT/Novell servers)
   
    Feedback with typos, bad English, comments, money, job, joy, fears,
    cries are welcome and recommended (not all with the same eagerness).

    If a translation in any language exists, please let me know, I'll be
    happy.

    <!-- He who can do more can do less. -->

<sect>License <label id="LICENCE">
    
<p>
This documentation used to be under the <url
url="http://www.opencontent.org/opl.shtml" name="OpenContent"> license.
It is not anymore. Do what you want with this document.


<sect>How did I write this howto ?
   <p>

    I wrote this paper during the installation process but since I
    encountered several problems at the same time, my notes were
    disparate and sometimes I forgot to write the good command lines
    because I was too fed up to reboot (kernel compilations) and edit
    this file each time.

    When the installation went wrong (it did, I'm a beginner on laptops,
    plip, linux nfs, portmapper, Debian), I tried several things to fix
    the problems. When they remained too long, my brain was focused on
    solving, not writing.

    So, when the installation process finally succeeded, I decided to
    restart the process from scratch by noting everything in order to
    save <bf>your</bf> time. It was the first time I had installed Linux
    twice on the same computer.

    Then, in order to verify the document, I again restarted from
    scratch with a Slink Debian distribution (the next after the Hamm
    one). It was the first time I had installed Linux 3 times on the
    same computer. I hope it was the last time I have to do that.


    <bf>Conclusion</bf>: If you do what is in this paper, it should
    work.

  <sect>What do you need ?
   <p>
    <itemize>
     
     <item> A Personal Computer, laptop or desktop, called the target
     computer or simply <bf>target</bf>.

      <p> <item> A 3 1/4" inch floppy drive on the <bf>target</bf>.

      <p> <item> Two or three fresh floppies.  They don't need to be
      formatted. You also need one more DOS formatted floppy if you have
      to play with <tt>FIPS</tt>.

      <p><item> Another computer with a cdrom drive and nfs services,
      called source computer or simply <bf>source</bf>. It doesn't have
      to be a Linux system but just a system which can export a cdrom
      drive via nfs. In this HOWTO, I assume it is a Linux system.

      <p><item> A cdrom distribution. I took a Debian Hamm (2.0r3) from
      an old Infomagic compilation. I think every distribution can be
      installed this way, but I'm not sure.  I've read a <htmlurl
      name="French document"
      url="http://www.linux-france.org/article/sys/Install-Plip/Install-Plip.html">,
      written by Chmouel Boudjnah, saying the RedHat distribution has an
      easy installation process. Chmouel's document also deals with the
      Debian distribution, so if you read French, you can use Chmouel's
      document instead of this one.

      <p><item> A Null-Modem DB 25 cable. Is it the same as a serial
      cable? You'll find the answer in the next release.

      <p> <item> Some time: 3 hours.

      <p><item> Coffee. 1 liter.

    </itemize>
      
   <sect>The documentation
    <p>

    I recommend these good readings in case you can't figure out how to
    solve a problem. I've read them. You should too if you're curious or
    conscientious.

    Please, do not forget to consider the <htmlurl
    url="http://www.linuxdoc.org/mirrors.html" name="LDP mirrors">,
    listed at: <newline> <url
    url="http://www.linuxdoc.org/mirrors.html">

    Most HOWTOs are translated in <htmlurl
    url="http://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/"
    name="many languages">. Just go to the bottom of a mirror page and
    follow the <bf><tt>translations/</tt></bf> link.


    If you want to use Linux on a laptop, read the latest <htmlurl
    url="http://mobilix.org/howtos.html" name="Linux-Mobile-Guide">,
    by Werner Heuser, located at: <newline> <url
    url="http://mobilix.org/howtos.html">.

    If you haven't installed any distribution yet, carefully read the
    <htmlurl url="http://www.linuxdoc.org/HOWTO/Installation-HOWTO/"
    name="Installation-HOWTO">, by Eric S. Raymond, located at:
    <newline> <url
    url="http://www.linuxdoc.org/HOWTO/Installation-HOWTO/" >. And
    make more coffee :-)

    If you need information about your cdrom drive, read the <htmlurl
    url="http://www.linuxdoc.org/HOWTO/CDROM-HOWTO.html"
    name="CDROM-HOWTO">, by Jeff Tranter, located at: <newline> <url
    url="http://www.linuxdoc.org/HOWTO/CDROM-HOWTO.html">.

    If you haven't installed an nfs server yet, read the <htmlurl
    url="http://www.linuxdoc.org/HOWTO/NFS-HOWTO.html"
    name="NFS-HOWTO">, by Nicolai Langfeldt, located at: <newline> <url
    url="http://www.linuxdoc.org/HOWTO/NFS-HOWTO.html">.

    If you need to compile a new kernel on the <bf>source</bf> box, read
    the <htmlurl url="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html"
    name="Kernel-HOWTO">, by Brian Ward, located at: <newline> <url
    url="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html">.

    If you are new to PLIP, read the <htmlurl
    url="http://www.linuxdoc.org/HOWTO/mini/PLIP.html" name="PLIP
    MINI-HOWTO">, by Andrea Controzzi, located at: <newline> <url
    url="http://www.linuxdoc.org/HOWTO/mini/PLIP.html">.


    <!--

    read the <htmlurl
    url="" 
    name="">,
    by ,
    located at: <newline> <url
    url="">.

    -->

    If you plan to make your Null-Modem cable yourself, a good reading
    is the file <htmlurl
    url="file:///usr/src/linux/Documentation/networking/PLIP.txt"
    name="PLIP.txt">, by Donald Becker, located at:
    <newline><tt>/usr/src/linux/Documentation/networking/PLIP.txt</tt>
    <newline> on your <bf>source</bf> linux computer, Luke.
    Alternatively, read my notes in section "Building your own cable".

  <sect>Conventions
   <p>

    The file contents and line commands and install screen-shots are
    always in <tt>typewriter</tt> font, like this:


    <verb>
     #!/bin/bash
     #############################################
     #### This is the great file /bin/Windows ####
     #############################################
     
     while [ "1" ]; do
             echo "I do my best because I'm the best"
             echo "Very soon, next Y2Kill (the 01/01/0000)"
             echo "A new marvelous 64 bit release !"
             echo "Please wait a little more"
             sleep 18446744073709551615 # 2^64-1
     done
    </verb>

    or this:

    
    <verb>
     $ killall Windows
     Terminated
    </verb>


    The file content lines should never begin with white space. You'll
    have to remove them, if any. Sorry, I'm fed up with <tt>C-a
    M-AltGr-\</tt> (remember, I'm a French azerty writer). Tab-emacs
    reflex is untameable (coders who use Emacs always press the tabular
    key like a twitch).

    Command input lines begin with a dollar <tt>$</tt> (the prompt), you
    don't have to type the dollar, just type the rest of the line; other
    lines are the command output, you don't have to type them either.

    Because all the configuration commands are important, you'll need
    to use a system administrator shell, like root, on the
    <bf>source</bf> and the <bf>target</bf> computers.

    <verb>
     $ su
     Password: blabla
     # 
    </verb>

    The prompt will be shown as "<tt>$</tt>" in the remainder of this
    documentation "<tt>$</tt>", even if it should be "<tt>#</tt>". This
    is because "<tt>#</tt>" often means comment, so it is ambiguous. I
    don't like ambiguity in computer science.


  <sect>Building your own cable
   <p>

    
    Extract from /usr/src/linux/Documentation/networking/PLIP.txt,
    written by Donald Becker (becker@super.org):
    
    <verb>
Parallel Transfer Mode 0 Cable
==============================

The cable for the first transfer mode is a standard
printer "null" cable which transfers data four bits at a time using
data bit outputs of the first port (machine T) connected to the
status bit inputs of the second port (machine R).  There are five
status inputs, and they are used as four data inputs and a clock (data
strobe) input, arranged so that the data input bits appear as contiguous
bits with standard status register implementation.

A cable that implements this protocol is available commercially as a
"Null Printer" or "Turbo Laplink" cable.  It can be constructed with
two DB-25 male connectors symmetrically connected as follows:

    STROBE output       1*
    D0->ERROR   2 - 15          15 - 2
    D1->SLCT    3 - 13          13 - 3
    D2->PAPOUT  4 - 12          12 - 4
    D3->ACK     5 - 10          10 - 5
    D4->BUSY    6 - 11          11 - 6
    D5,D6,D7 are   7*, 8*, 9*
    AUTOFD output 14*
    INIT   output 16*
    SLCTIN      17 - 17
    extra grounds are 18*,19*,20*,21*,22*,23*,24*
    GROUND      25 - 25
* Do not connect these pins on either end

If the cable you are using has a metallic shield it should be
connected to the metallic DB-25 shell at one end only.
    </verb>

    I checked my cable twice. On both sides, pins are connected like
    this:

    <verb>
     1 -  1 Yes
     2 - 15
     3 - 13
     4 - 12
     5 - 10
     6 - 11
     7 not connected
     8 not connected
     9 not connected
    10 -  5
    11 -  6
    12 -  4
    13 -  3
    14 - 14 Yes
    15 -  2
    16 - 16 Yes
    17 - 17
    18 not connected
    19 not connected
    20 not connected
    21 not connected
    22 not connected
    23 not connected
    25 - 25 not connected to metallic shield
    </verb>

    Unlike the cable described in the kernel document, my cable has pins
    1, 14, 16 connected.  It doesn't matter, apparently, since plip
    works fine for me.

  <sect>Network parameters
   <p>

    We will make a plip point-to-point network with this IP
    configuration:
    <itemize>
     
     <item> <bf>target</bf>: 192.168.0.1 netmask 255.255.255.255
     <item> <bf>source</bf>: 192.168.0.2 netmask 255.255.255.255

    </itemize>

    You should not already have those names in your name space:

    <verb>
     $ ping source
     ping: unknown host source
     
     $ ping target
     ping: unknown host target
    </verb>

    You should not already have those IP addresses in your network space:

    <verb>
     $ ping  192.168.0.1
     PING 192.168.0.1 (192.168.0.1): 56 data bytes
     ping: sendto: Network is unreachable
     ping: wrote 192.168.0.1 64 chars, ret=-1
     
     --- 192.168.0.1 ping statistics ---
     1 packets transmitted, 0 packets received, 100% packet loss
     
     $ ping 192.168.0.2
     PING 192.168.0.2 (192.168.0.2): 56 data bytes
     ping: sendto: Network is unreachable
     ping: wrote 192.168.0.2 64 chars, ret=-1
     
     --- 192.168.0.2 ping statistics ---
     1 packets transmitted, 0 packets received, 100% packet loss
    </verb>

    If those commands don't give you errors, change the names or the
    addresses.

    You can choose other addresses, names or netmask (netmask must be the
    same on both sides). In the rest of this document, I'll suppose you
    choose these addresses and these names.


    Add a line in <bf><tt>/etc/exports</tt></bf>

    <verb>
     #### file /etc/exports ####
     ...
     /cdrom          source(ro) target(ro)
     #### EOF ####
     </verb> 


    Because the portmapper tries to resolve IP addresses, add the IP
    addresses and names in <bf><tt>/etc/hosts</tt></bf>
    
    <verb>
     #### file /etc/hosts ####
     ...
     192.168.0.1     target
     192.168.0.2     source
     #### EOF ####
    </verb>

    Verify you have the item <bf><tt>files</tt></bf> for the
    <bf><tt>hosts</tt></bf> search list in the file
    <bf><tt>/etc/nsswitch.conf</tt></bf>

    <verb>
     #### file /etc/nsswitch.conf ####
     ...
     hosts:      files nis dns
     ...
     #### EOF ####
    </verb>
    


  <sect>PLIP on the Source side
   <p>

    This section describes how to set up the <tt>plip</tt> interface in
    the <bf>source</bf> server.  If you run into trouble, I suggest that
    you read the <htmlurl
    url="http://www.linuxdoc.org/HOWTO/mini/PLIP.html" name="PLIP
    MINI-HOWTO">.


    Check that your <tt>lp</tt> device is not set. You should
    <bf>not</bf> have this entry:
    
    <verb>
     $ cat /proc/devices 
     Character devices:
     ...
     6 lp
     ...
    </verb>
    
    If you do have it, kill the <tt>lpd</tt> daemon and remove the
    <tt>lp</tt> module:

    <verb>
     $ /etc/rc.d/init.d/lpd.init stop
     Shutting down lpd: lpd

     $ rmmod lp
    </verb>

    If you can't remove the <tt>lp</tt> module then you have to
    recompile the <bf>kernel</bf> with <tt>lp</tt> service as a module.

    Now, the "<tt>6 lp</tt>" line has disappeared from the
    <tt>/proc/devices</tt> file, which is a reflection of the kernel
    capabilities.

    You are not obliged to eliminate the lp device : the scheme may work
    with lp. Without guarantee (it works for me). Check it yourself.
    
    
    Check that your parallel port is handled:

    <verb>
     $ ls /proc/parport/
     0/
     
     $ cat /proc/parport/0/hardware 
     base:   0x378
     irq:    7
     dma:    none
     modes:  SPP,ECP,ECPEPP,ECPPS2
    </verb>

    If you don't have any directory under <tt>/proc/parport/</tt> then
    you have to load the <tt>parport</tt> and <tt>parport_pc
    modules</tt>:

    <verb>
     $ insmod parport
     $ insmod parport_pc
    </verb>

    You should see this new entry in
    <bf><tt>/var/log/messages</tt></bf>:

    <verb>
     Oct  9 20:50:47 louloutte kernel:
     parport0: PC-style at 0x378 [SPP,ECP,ECPEPP,ECPPS2]

     Oct  9 20:50:47 louloutte kernel: 
     parport0: detected irq 7; 
     use procfs to enable interrupt-driven operation.
    </verb>

    I repeat the message "detected <tt>irq 7</tt>, use procfs to enable
    interrupt-driven operation", so:

    <verb>
     $ echo 7 >  /proc/parport/0/irq
    </verb>

Using a kernel 2.4 the last command is no longer available. Use instead:
<verb>
	$ insmod parport
	$ insmod parport_pc io=0x378 irq=7
</verb>


    Check that <tt>plip</tt> module is loaded:
    
    <verb>
     $ lsmod |grep plip
    </verb>
    
    If <tt>plip</tt> module is not loaded, then load it:

    <verb>
     $ insmod plip
    </verb>

    You should see something like this in
    <bf><tt>/var/log/messages</tt></bf>
     
     <verb>
     ==> /var/log/messages <==
     Oct  8 16:34:12 louloutte kernel:
     NET3 PLIP version 2.3-parport gniibe@mri.co.jp
    
     Oct  8 16:34:12 louloutte kernel: 
     plip0: Parallel port at 0x378, using IRQ 7
     </verb>

    If you can't load the <tt>plip</tt> module then you have to
    recompile the <bf>kernel</bf> with <tt>plip</tt> service as a
    module.

    The syslog message says the module is loaded on the <tt>plip0</tt>
    interface. Configure the <tt>plip0</tt> interface:
     
    <verb>
     $ ifconfig plip0 source pointopoint target netmask 255.255.255.255 up
    </verb>

    Check that everything is okay.

    <verb>
     $ ifconfig plip0
     plip0     Link encap:10Mbps Ethernet  HWaddr FC:FC:C0:A8:00:02
          inet addr:192.168.0.2  P-t-P:192.168.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0
          TX packets:0 errors:0 dropped:0 overruns:0
          Interrupt:7 Base address:0x378 
    </verb>
 

    Now you can <tt>ping</tt> locally the <bf>source</bf> server:

    <verb>
     $ ping source
     PING source (192.168.0.2): 56 data bytes
     64 bytes from 192.168.0.2: icmp_seq=0 ttl=255 time=0.3 ms
     64 bytes from 192.168.0.2: icmp_seq=1 ttl=255 time=0.2 ms
     
     --- source ping statistics ---
     2 packets transmitted, 2 packets received, 0% packet loss
     round-trip min/avg/max = 0.2/0.2/0.3 ms
    </verb>

    Verify that the route to <bf>target</bf> exists:

    <verb>
     $ route
     Kernel IP routing table
     Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     target          *               255.255.255.255 UH    0      0        0 plip0
    </verb>

    If the route doesn't exist, add it:
    
    <verb>
     $ route add -host  192.168.0.1  dev plip0
    </verb>


    When the <bf>target</bf> <em>is</em> configured you will be able to
    do a ping test:

    <verb>
     $ ping target
     PING 192.168.0.1 (192.168.0.1): 56 data bytes
     64 bytes from 192.168.0.1: icmp_seq=0 ttl=64 time=4.5 ms
     64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=4.3 ms
     
     --- 192.168.0.1 ping statistics ---
     2 packets transmitted, 2 packets received, 0% packet loss
     round-trip min/avg/max = 4.3/4.4/4.5 ms
    </verb>

    But if you try it now you should have:
   
    <verb>
     $ ping target
     PING target (192.168.0.1): 56 data bytes
     
     --- target ping statistics ---
     5 packets transmitted, 0 packets received, 100% packet loss
    </verb>

    Now, the server network is ready to work.
    Congratulations.

    
  <sect>The cdrom nfs server side
   <p>

    This section describes how to mount and export via NFS a cdrom drive.

    Mount the cdrom. If you encounter a problem with your cdrom drive,
    read the <bf><em>CDROM-HOWTO</em></bf>. I assume that the cdrom
    device is <tt>/dev/hdd</tt> but it could be <tt>/dev/sr0</tt> or
    <tt>/dev/hdb</tt> etc. The mount point I choose is <tt>/cdrom</tt>
    but you can choose the one you want:
    
    <verb>
     $ mount -t iso9660 /dev/hdd  /cdrom
    </verb> 

    You have to set up nfs services.  If something goes wrong, read the
    <bf><em>NFS-HOWTO</em></bf>

    Verify your kernel supports nfs:

    <verb>
     $ cat /proc/filesystems 
             ext2
     nodev   proc
     nodev   nfs
     nodev   ncpfs
     nodev   devpts
             iso9660
    </verb>


     Verify your portmapper can handle mountd and nfs client requests:

     
    <verb>
     $ rpcinfo -p
     program vers proto   port
     100000    2   tcp    111  portmapper
     100000    2   udp    111  portmapper
     100005    1   udp    655  mountd
     100005    1   tcp    657  mountd
     100003    2   udp   2049  nfs
     100003    2   tcp   2049  nfs
    </verb>
    
    Lines with <tt>nfs</tt> or <tt>portmapper</tt> have to be there. We
    have NFS on tcp?  progress have been made!

    It doesn't matter if you have only NFS on udp. NFS has to work,
    that's the thing you need. 

    Then, rerun <tt>portmap</tt>, <tt>mountd</tt>, <tt>nfs</tt>:
    
    <verb>
     $ /etc/rc.d/init.d/portmap.init stop
     Stopping INET services: portmap 

     $ /etc/rc.d/init.d/portmap.init start
     Starting portmapper: portmap

     $ /etc/rc.d/init.d/nfs stop
     Shutting down NFS services: rpc.mountd rpc.nfsd 

     $ /etc/rc.d/init.d/nfs start
     Starting NFS services: rpc.mountd rpc.nfsd 
    </verb>

    <tt>/etc/rc.d/init.d/</tt> is <tt>/sbin/init.d/</tt> on SuSE Linux
    systems. I had a dream last night: LSB was respected. (LDB: Linux
    Standard Base)


    Then, try to mount it "locally" (via nfs) on the <bf>source</bf> box
    and when the test is good remove the test directory:
    
    <verb>
     $ mkdir /tmp/nfstest
     $ mount -t nfs source:/cdrom /tmp/nfstest
     $ ls  /tmp/nfstest/
     README             debian/            locatedb.3         tools/
     TRANS.TBL          ftp.netscape.com/  ls_lR.3            upgrade/
     boot/              install/           realaudio/
     
     $ echo great stuff !
     $ umount /tmp/nfstest
     $ rmdir /tmp/nfstest
     </verb>
    
    Bad luck ? Read the <bf><em>NFS-HOWTO</em></bf> and
    <bf><tt>/var/log/messages</tt></bf>.
    
    Check the nfs server with those commands:
    
    <verb>
     $ rpcinfo -p
     </verb> 
    
     Run <tt>portmap</tt> with the <tt>-v</tt> flag:
      
     <verb>
      $ portmap -v
     </verb>

    kill <tt>portmap</tt>, <tt>mountd</tt>, <tt>nfsd</tt> and rerun them
    in this order: <tt>portmap</tt>, <tt>mountd</tt>, <tt>nfsd</tt>.
    Take a rest, get more coffee. Read again the
    <bf><em>NFS-HOWTO</em></bf> and restart.
     
    Now, the exported cdrom drive nfs server is ready to work.
    Congratulations.


  <sect>FIPS, PARTED, splitting of hard disk partitions
   <p>

    This section is for anybody who has only one primary FAT partition
    (DOS, Windows 3.xx, NT) and wants to keep it without loosing
    data. Make some backups because if you burn it, I won't be
    responsible - you will.

    Journey to PARTED

    Andrew Clausen (clausen@gnu.org), GNU Parted maintainer, wrote "You
    might want to mention GNU Parted in the PLIP-Install Howto." That is
    done. Since I didn't try it I can only give you the links to <url
    url="http://www.gnu.org/software/parted/" name="parted by http"> and
    <url url="ftp://ftp.gnu.org/gnu/parted/" name="parted ftp">. Help
    yourself. Parted seems very good.

    Andrew said: "GNU Parted is a *LOT* more powerful than FIPS (think
    Partition Magic).  For example, it can convert FAT16 <=> FAT32,
    change the size of the FATs, doesn't require a defragger, etc.  And
    it supports ext2, linux-swap..."
    
    Back to FIPS.

    Download <url url="ftp://ftp.debian.org/pub/debian/tools/"
    name="FIPS">. Don't forget the mirrors ftp.<bf>xx</bf>.debian.org
    where <bf>xx</bf> is your country abbreviation (fr, fi, us, uk,
    etc.). 

    At the time of this writing the archive file is called
    <bf>fips20.zip</bf>.

    The <bf>fips</bf> program is already in the debian cdrom
    distribution. I found it (yes, after downloading the
    <bf>fips20.zip</bf> file) in <tt>/cdrom/debian/tools/fips15.zip</tt>
    (It supposes your cdrom is mounted on <bf>/cdrom</bf>)

    I guess you are on a Unix world but you're not compelled to be. Go
    in a good working place on the <bf>source</bf> computer:
    
    <verb>
     $ mkdir /tmp/fips-2.0/
     $ cd /tmp/fips-2.0/
     $ unzip -l /archive/fips/fips20.zip
     ...
     $ unzip  /archive/fips/fips20.zip
     ...
     $ ls
     $ dos2unix fips.doc fips.faq  readme.1st 
    </verb>

    <enum>
     <item>Read the file readme.1st
     <item>Read the file fips.doc
     <item>Read the file fips.faq
    </enum>

    Boot your <bf>target</bf> computer. Be in pure DOS (quit Windows).

    Read again the file <bf><tt>fips.doc</tt></bf> from the section
    "5. Before you start".

    Be aware of hidden files. 

    Graham's comment: Hidden files will not be moved by DeFrag (as far as
    I know), so FIPS will reclaim less space for use by Linux.  Use the
    ATTRIB command to remove the "hidden" attribute.  Some things may
    require that files are hidden, so it will be necessary to hide the
    same files again later. I think that it would also be a good idea to
    run scandisk at this moment.  Perhaps I do not trust DOS.


    Be aware to eliminate the "virtual memory" file (swap for Win*)
    during the fips process.  In Windows 3.11 (quite up to date, no?)
    this swap file is configured from
    Program-Manager->Control-Panel->Enhanced (a i386 chip icon).

    Click, Click->Click on the chip and re-click on a button
    called "Virtual Memory". 

    Adjust the size to none, Click<-Click<-Click<-Click back plus Alt-F4
    to close all your windows. Don't you think the Gates are closed too?

    Graham's comment: I am not sure that this is a good idea.  What
    happens if "386spart.par" is not hidden?  I think that DEFRAG will
    move it, and Windows will complain next time it starts, then rebuild
    the file.  Since we are clearly keeping DOS/Windows, the user will
    require a swap file again later.  By not deleting it, the disc space
    is reserved for that time. 

    Graham's new comment: "Make sure that the file is not hidden (attrib
    -h -s 386spart.par), then delete it (del 386spart.par).  The disc
    space is then free.  Run FIPS.  Next time Windows starts, it will
    complain that the file is corrupt, and will recreate it."

    I don't what to say. I've just parroted FIPS manual because I
    succeeded with it.

    So drink coffee, and pray.

    Run <tt>SCANDISK</tt>:

    <verb>
     C:\> SCANDISK
    </verb>
    
    Correct every cluster. You should have no dead cluster now.
    
    Quit  <tt>SCANDISK</tt>


    Run <tt>DEFRAG</tt> on C:
    
    <verb>
     C:\> DEFRAG C:
    </verb>
   
    All used clusters are at the beginning of the hard disk.

    Quit <tt>DEFRAG</tt>

    Make a bootable floppy disk: 

    <verb>
     C:\> FORMAT A: /S
    </verb>

    Copy <bf><tt>AUTOEXEC.BAT</tt></bf> and <bf><tt>CONFIG.SYS</tt></bf>
    to the new floppy if you want to keep your local features (keyboard
    keys etc.). Remove the line running <tt>SMARTDRIVE.EXE</tt> in
    <tt>AUTOEXEC.BAT</tt>.  Keep a minimal <tt>AUTOEXEC.BAT</tt>
    

    On the <bf>source</bf> box: Copy the fips files
    <bf>restorrb.exe</bf>, <bf>fips.exe</bf> and <bf>errors.txt</bf> to
    this floppy disk.

    <verb>
    $ mcopy errors.txt fips.exe restorrb.exe a:
    </verb>

    Graham's comment: Doesn't this assume that mtools are installed?  If
    the floppy disc is mounted as type msdos, the standard "cp" command
    should do the job, and mtools would not be needed.  I have never
    used mtools, but I have played with DOS files from Linux.

    Yes, this assumes that mtools are installed. <tt>mcopy</tt> is
    faster to type than <tt>mkdir, mount, cp, umount, rmdir</tt>.

    Boot the <bf>target</bf> with the floppy. Run fips while reading the
    section "Using FIPS" in the file <bf>fips.doc</bf>

    <bf>Do not forget</bf> to answer <bf>yes</bf> when fips asks for a
    rootboot saving.

    When everything is ok, save your hard disk space:
    <verb>
     $ cd
     $ rm -rf /tmp/fips-2.0/
    </verb>

    Now you have a nice free space for a new operating system.
      

  <sect>Debian installation
   <p>

    I'm a Debian proselyte since it is my first Debian installation.
    Debian lovers are the same kind of people as Macintosh lovers or
    Linux lovers in the operating systems space.  Nothing else
    counts. Since I'm already a Mac and Linux lover (and French too :-)
    it was time to fall in love.

    Debian is well, clearly and internationally documented. Thanks to
    all those people who bred this really open distribution.

    I could leave you on your own during the installation process. But
    since we have to interact with a shell during it, the entire process
    will be described in detail.

    I know the description is Debian specific. I prefer to give you a
    complete example than nothing except a ``run a shell at the right
    moment and type bla bla...''. I do like concrete examples.

    Simon Forget &lt;sforget@camelot.ca&gt; told me he could not use
    this howto with his Toshiba Libretto 50CT because the kernel could
    not recognize the pcmcia floppy drive during the installation
    process. I don't know why but there is a solution using plip, if you
    already have a dos partition on the <bf>target</bf> computer. 

    This solution is simpler and faster because no floppy drive nor plip
    network is necessary during the installation process. If you are
    interested in this solution, go directly to the section <ref
    id="INSTALL_FROM_A_DOS_PARTITION" name="Installing from a DOS
    partition">. I'm keeping the old installation routine because this
    new one needs a DOS partition that becomes superfluous when you
    definitely want to leave the dark side.
    

   <sect1>Preparing the two floppies
   <p>

     On the <bf>source</bf> side, mount the cdrom and go to the install
     directory

     <verb>
      $ mount -t iso9660 /dev/hdd  /cdrom
     </verb>

     The device for your CDROM may be /dev/hdb or /dev/hdc or another
     device (SCSI), depending on where is plugged your CDROM.

     <verb>
      $ cd /cdrom/debian/dists/stable/main/disks-i386/current/
     </verb>

     Read the file install.html with a browser or install.txt with a
     more, a less, a cat (or a dog?).

     Now, record the install (alias rescue) floppy. Write a
     "<tt>resc1440.bin</tt>" label on it:

     <verb>
      $ dd if=resc1440.bin of=/dev/fd0H1440
     </verb>
    
     Write the drivers floppy. Write a "<tt>drv1440.bin</tt>" label on it:

     <verb>
      $ dd if=drv1440.bin of=/dev/fd0H1440
     </verb>

     Then make sure that the floppies are write-protected.

     Now you're ready to start the real installation process.

   <sect1>The real installation process
    <p>
     Insert the resc1440.bin floppy on <bf>target</bf> drive. Reboot
     your <bf>target</bf> box.
    
    <verb>
     Welcome to Debian GNU/Linux 2.x!
     ...</verb>
    
    Read the text.  The prompt is:
    
    <verb>
     boot:</verb>
    
    Press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Loading root.bin...........
     loading linux...
     ....</verb>

    A new screen:

    <verb>
     Next: Select Color or Monochrome display</verb>
    
      Choose yours with the arrow up/down keys and press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Next: Continue with the installation</verb>

     press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Software in the Public Interest 
             presents
      *** Debian GNU/Linux 2.1 ***
     ...</verb>
     
      Read the text Press <tt>&lt;ENTER&gt;</tt> (You see
      <tt>&lt;Continue&gt;</tt> on the screen)
     
     <verb>
     Next: Configure the Keyboard</verb>
     
      press <tt>&lt;ENTER&gt;</tt> 
      Select your country and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Next : Partition a Hard Disk</verb>
     
    Press <tt>&lt;ENTER&gt;</tt> 
     
    <verb>
     Select Disk Drive 
     usually /dev/hda</verb>

    If you have several disks choose the good one (where you want to
    install Linux) and press <tt>&lt;ENTER&gt;</tt>

    You are now using the program <tt>cfdisk</tt>. Using
    <tt>cfdisk</tt> is safe until you decide to <tt>[Write]</tt> the
    partition on disk. Leaving <tt>cfdisk</tt> with <tt>[Quit]</tt> is
    safe.

    We are going to make just two new primary partitions, a Swap one and
    a big Linux one. If you want to create more partitions, leave some
    free space or extended partitions, you can. But read the
    documentation about "Partitioning" in the
    <em>Installation-HOWTO</em>, especially if you have more than 1024
    cylinders and  an old version of LILO.

    If you previously ran the <tt>FIPS</tt> program, you see the
    <tt>hda1</tt> partition (<tt>DOSFAT16</tt>). Switch to the next free
    partition with the up/down arrow keys.

    Select <tt>[New]</tt> with the right/left arrow keys and press
    <tt>&lt;ENTER&gt;</tt>

    Select <tt>[Primary]</tt> and press <tt>&lt;ENTER&gt;</tt> 

    Enter the size of your swap partition. Twice the RAM is usual if you
    have less than 128 megabytes of ram. If you have 2 gigabytes of
    RAM, it's because you don't want to swap. In that case, no swap
    partition is needed.

    Select <tt>[Beginning]</tt> and press <tt>&lt;ENTER&gt;</tt>

    Select <tt>[Type]</tt> and press <tt>&lt;ENTER&gt;</tt>.  Type
    <tt>82</tt> (Linux Swap) and press <tt>&lt;ENTER&gt;</tt>.

    Switch to the next free partition with the up/down arrow
    keys. Select <tt>[New]</tt> and press <tt>&lt;ENTER&gt;</tt>

    Select <tt>[Primary]</tt> and press <tt>&lt;ENTER&gt;</tt> 

    Enter the size in MB (you can leave the default) and press
    <tt>&lt;ENTER&gt;</tt> Its type should be already Linux. If not,
    change to Linux (83) with <tt>[Type]</tt>

    The partition table is defined now. Verify everything looks good. If
    you're not sure, read the documentation with <tt>[Help]</tt>. If
    doubts are still there, select <tt>[Quit]</tt> and leave the
    installation process. Go for a walk and restart from the beginning
    of this section.

    I assume you are confident now.

    Select <tt>[Write]</tt>

    <verb>
     Are you sure you want to write the partition table to disk?</verb>

      Type "<tt>yes</tt>" and press <tt>&lt;ENTER&gt;</tt> 
     
      Select <tt>[Quit]</tt>  and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Next: Initialize and Activate a Swap Partition</verb>

      Press <tt>&lt;ENTER&gt;</tt> 
     
    <verb>
     Please select the partition to initialize as a swap device</verb>

     Select <tt>/dev/hda2</tt> (normally already selected).
     Press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Scan for Bad Blocks?</verb>

     select <tt>&lt;YES&gt;</tt>  and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Are you Sure?</verb>
    
     select <tt>&lt;YES&gt;</tt>  and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Initializing swap partition
     ...</verb>


    <verb>
     Next: Initialize a Linux Partition</verb>

      Press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Select Partition. Please select the partition to initialize as a
     Linux "ext2" file-system.</verb>

      Select <tt>/dev/hda3</tt> (normally already selected) and press
      <tt>&lt;ENTER&gt;</tt>.

    <verb>
     Scan for Bad Blocks?</verb>
    
    Select <tt>&lt;YES&gt;</tt>  and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Are you Sure?</verb>
    
    Select <tt>&lt;YES&gt;</tt>  and press <tt>&lt;ENTER&gt;</tt> 
    
    A new page full of numbers.  You can take a rest because it takes
    some time (especially with a big hard disk).
    
    <verb>
     Next: Mount a Previously-Initialized Partition</verb>
    
    Press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Please select the partition to mount</verb>
    
    Select <tt>/dev/hda3</tt> and press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Mount the /dev/hda3 device as the Root FileSystem?</verb>
     
     Select <tt>&lt;Yes&lt;</tt> and press <tt>&lt;ENTER&gt;</tt> 
     
    <verb>
     Next: Install Operating System Kernel and Modules</verb>
    
    Press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Please select the medium you will use to install the system</verb>
     
     
     Select <tt>/dev/fd0</tt> and press <tt>&lt;ENTER&gt;</tt> 
     
    <verb>
     Please place the Rescue Floppy in the first floppy drive</verb>
    
    The floppy is already there.<newline>
    Select <tt>&lt;Continue&gt;</tt> and press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Installing the Rescue Floppy ...
     Please place the Drivers Floppy in the first floppy drive</verb>
    
    
    Eject the Rescue Floppy and insert the Drivers Floppy, the one I
    you labelled <tt>drv1440.bin</tt> (you did it, didn't you?).<newline>
    Select <tt>&lt;Continue&gt;</tt> and press <tt>&lt;ENTER&gt;</tt>
    
    <verb>
     Installing the Drivers  Floppy ...</verb>
     
     A new screen:
     
    <verb>
     Next: Configure Device Driver Modules</verb>
    
    Press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Select Category</verb>
    
    Read the text.
    
    <verb>
     Please select the category of modules</verb>
    
    Select <tt>net</tt> and press <tt>&lt;ENTER&gt;</tt> <newline>
    Select <tt>plip</tt>.
    
    <verb>
     Module plip</verb>
    
    Select "Install the module in the kernel" and press <tt>&lt;ENTER&gt;</tt>  <newline>
    No parameters are needed.  <newline>
    Select <tt>&lt;Ok&gt;</tt> and press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Installation succeeded
     Please press ENTER when you are ready to continue.</verb>
    
    Press <tt>&lt;ENTER&gt;</tt> 
    
    Select <tt>Exit</tt> ("Finished with these modules") and press
    <tt>&lt;ENTER&gt;</tt> <newline> Then you see the same kind of
    screen again. <newline> Select <tt>Exit</tt> ("Finished with these
    modules") and press <tt>&lt;ENTER&gt;</tt>
    
    <verb>
     Next: Configure the Network</verb>
    
    Choose a name, you can use a different name than <tt>debian</tt> or
    <tt>target</tt>.<newline> Press <tt>&lt;ENTER&gt;</tt>
    
    <verb>
     Is your system connect to a network? </verb>
    
    Select <tt>&lt;No&gt;</tt> and press <tt>&lt;ENTER&gt;</tt>
    
    <bf>STOP STOP STOP</bf>.  You see now:
    
    <verb>
     Next: Install the base system</verb>
    
    Now we need a shell.
    
    Press <tt>Alt F2</tt> and <tt>&lt;ENTER&gt;</tt>
    You are in a root shell.
    
    
    
  <sect1>An installation break: PLIP on the target side
   <p>
    
    You are in a root shell.
    
    Verify the plip module is loaded:
    
    <verb>
     $ lsmod
     Module    Pages    Used by
     plip          3          0
    </verb>
    
    Find the exact name of the plip interface:
    
    <verb>
     $ dmesg
     ...
     NET3 PLIP version 2.2 gniibe@mri.co.jp
     plip1: Parallel port at 0x378, using assigned IRQ 7
    </verb>
    
    You can find the same information with
    
    <verb>
     $ cat /proc/kmsg
     ...
     <4>NET3 PLIP version 2.2 gniibe@mri.co.jp
     <4>plip1: Parallel port at 0x378, using assigned IRQ 7
     ...
     
     Ctrl-c (or ^C if you prefer)</verb>
    
    Configure the plip interface:
    
    <verb>
     $ ifconfig plip1 192.168.0.1  pointopoint  192.168.0.2 netmask 255.255.255.255 up</verb>
    
    Verify everything is ok:

    <verb>
     $ ifconfig plip1 
     plip0     Link encap:Ethernet  HWaddr FC:FC:C0:A8:00:01
          inet addr:192.168.0.1  P-t-P:192.168.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0
          Interrupt:7 Base address:0x378</verb>
     
    Verify the route to <bf>source</bf> exists:
   
    <verb>
     $ route 
     Kernel IP routing table
     Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo</verb>
 
    If not, like in the previous example, add the route to 192.168.0.2,
    the <bf>source</bf>:

    <verb>
     $ route add -host 192.168.0.2 dev plip1</verb>

    Now the route is installed:
    
    <verb>
     $ route 
     Kernel IP routing table
     Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     192.168.0.2     0.0.0.0         255.255.255.255 UH    0      0        0 plip1
     127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo</verb>
    
    
    Now you can perform a successful <tt>ping</tt> from the
    <bf>source</bf> server (<tt>ping</tt> is not available on the Debian
    install process):

    <verb>
     $ ping target
     PING target (192.168.0.1): 56 data bytes
     64 bytes from 192.168.0.1: icmp_seq=0 ttl=64 time=14.0 ms
     64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=4.3 ms
     
     --- target ping statistics ---
     2 packets transmitted, 2 packets received, 0% packet loss
     round-trip min/avg/max = 4.3/9.1/14.0 ms</verb>

    If it doesn't work, check the Null-Modem cable connection, rerun
    <tt>dmesg</tt>, <tt>ifconfig</tt>, <tt>route</tt>. Verify
    everything. Take a rest. Restart.

    When the ping is okay, return to the normal installation process:
    
    On the target: press <tt>Alt F1</tt>
    
    
  <sect1>Return to the normal install process
   <p>

    You are back to the normal installation process.  You should still
    see:
    
    <verb>
     Next: Install the base system</verb>
    
     Press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Please select the medium you will use to install the system</verb>

     Select <tt>nfs</tt> and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Please choose the NFS server and the mount path ...</verb>

    Type: <tt>192.168.0.2:/cdrom</tt><newline>
    Press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Please choose the path inside the mounted NFS filesystem</verb>

    Type /debian (normally already there) and press <tt>&lt;ENTER&gt;</tt> 

    If no error message complains about the nfs mount then bravo. You can 
    verify this mount by entering the shell again:
    
    Press <tt>Alt F2</tt>

    <verb>
     $ mount
     ...
     192.168.0.2:/cdrom on /instmnt type nfs (rw, addr=192.168.0.2)

     $ ls /instmnt/debian
     README                 README.non-US          doc/
     README.CD-manufacture  README.pgp@            hamm/
     README.mirrors.html    TRANS.TBL              tools/
     README.mirrors.txt     dists/</verb>

    Press <tt>Alt F1</tt>
    
    You're back again to the normal installation process.

    Now the plip nfs cdrom connection is done. Let's go on and finish
    our job.
  
    <verb>
     Please select the directory containing a file base2_0.tgz</verb>

    Select <tt>list</tt>  and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Please Wait 
     The installation program is building a list of ...</verb>

    A new screen:

    <verb>
     Select Archive Path
     Please select the directory that you will use to install the Base
     System from.</verb>

    Only one long item, already selected. Press <tt>&lt;ENTER&gt;</tt>

    <verb>
     The Base System is being extracted from
     /instmnt/debian/dists/.....</verb>

    Take a second rest, you deserve it 

    <verb>
     Next: Configure the Base System</verb>

    Press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Select Timezone</verb>

    Select your timezone and your directory and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Timezone Configuration</verb>

    Read and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Timezone Configuration.</verb>

    An other page.  Read, select <tt>&lt;YES&gt;</tt> and press
    <tt>&lt;ENTER&gt;</tt>

    <verb>
     Next: Make Linux Bootable Directly From Hard Disk</verb>

    Press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Create Master Boot Record?</verb>

    Read<newline>
    Select <tt>&lt;Yes&gt;</tt> and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Make Linux the Default Boot Partition?</verb>
    
    Read.<newline>
    Select <tt>&lt;No&gt;</tt> and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Next: Make a boot Floppy</verb>
    
    Press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Change Disk
     Please place a blank floppy disk in the first floppy drive.</verb>
    
    Do it and press <tt>&lt;ENTER&gt;</tt> <newline>
    The floppy is being formatted 

    <verb>
     Creating a filesystem on the floppy...
     Copying the operating system kernel...</verb>

    A new screen:

    <verb>
     Next: Reboot the System</verb>

    Press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Reboot the system ?</verb>

    Remove the floppy and press <tt>&lt;ENTER&gt;</tt> 
     
    The system reboots.  Are you still with the dark side?  I guess yes,
    so insert the boot floppy you've just made and reboot again with
    <tt>Ctrl-Alt-Del</tt>

    See the boot messages.<newline> 
    Read the text.

    <verb>
     New password:</verb>

    Enter a root password.

    <verb>
     Re-enter new password</verb>

    Do it. And learn it.

    <verb>
     Shall I create a normal user account now? [Y/n]</verb>

    Enter <tt>n</tt> and press <tt>&lt;ENTER&gt;</tt>. Unless you want
    to do it (it is safe and good, in fact).

    <verb>
     Shall I install shadow passwords? [Y/n]</verb>
    
    Enter <tt>y</tt> and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     Do you want to use a PPP connection to install</verb>

    Enter <tt>n</tt> and press <tt>&lt;ENTER&gt;</tt> 
    
    <verb>
     Now you may choose one of several selections ...
     Do you want to perform this step?</verb>
    
    Enter <tt>n</tt> and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     I'm going to start the 'dselect' program...</verb>

    Press <tt>&lt;ENTER&gt;</tt> <newline>
    Select <tt>[Q]uit</tt> and press <tt>&lt;ENTER&gt;</tt> 

    <verb>
     You may now login as 'root' at the login: prompt...
     ...
     debian login:</verb>

      Enter <tt>root</tt>.

    <verb>
     Password:</verb>

     Enter the root password.
    
    <verb>
    ...
     debian:~#</verb>
    
    The system is installed and working. CONGRATULATIONS!

    My job stops here. Read the install documentation of your
    distribution and go on with the Unix system administration job.

    When you reboot your system, the plip connection won't be in good
    shape. But now you know what to do.

    I suggest you some work:<itemize>
     <item>Configure the plip interface for the normal boot process (in
     the file <tt>/etc/init.d/network</tt>).
      
     <item>Configure <tt>/etc/fstat</tt> on the <bf>target</bf> to
     simply mount the remote <bf>source</bf> cdrom via nfs.

      <verb>
      source:/cdrom              /cdrom   nfs     noauto,intr 1 2
      </verb>

     <item>Learn Lilo. Configure it for your DOS and Linux systems and
     install it on a floppy.

     <item>When you master Lilo on the floppy, install it on your hard
      drive.
      
     <item>Install and configure the X Window System.

     <item>Have fun.

     <item>Mail me some feedback.
      
    </itemize>     
    
  <sect>Installing Slackware, Caldera
   <p>
    This section is written by Florent SAUNIER. <newline>
    sabetflo@freesurf.fr

    Here, '&' is used for the root prompt, rather than '$'.
   <p>

    I have performed a Slackware installation using PLIP very
    succesfully. I have also been able to install RedHat and Caldera
    Open linux using the very same method described below.

    As previously specified by Gilles, a Slackware installation requires
    everything specified in the chapter "What do you need?" with the time
    increased to 10 hours if you desire to install xfree(86) and some
    development tools.

    Further on, you first need to read Gilles' installation as I set up
    mine according to his method.

    Finally, I have performed Slackware and Caldera installation on
    a Twinhead 550C laptop, with 8Mb Ram, and 2Gbytes Hard drive.

   <sect1>Slakware installation
    <p>
     <itemize>
      <item>1- Make 2 disks (boot and root) and prepare a plip disk
      <item>2- Install PLIP module
      <item>3- Create a NFS drive to use PLIP with
      <item>4- Launch the Slackware (or Caldera) Installation
      <Item>5- Drink all remaining  coffee and go to bed waiting completion of
       installation. Graham said: Comment ? Du café avant de dormir ?
       Non !  Le café au petit matin, après la nuit. Avant, du vin.
     </itemize>
    </p>
    
   
    <sect2>Making boot,root and plip disks 
     <p>
      To install Slackware verion using an ATAPI CDROM from your source,
      you will need the standard kernel image bareapm.i or bare.i. If you
      want to make an install with SCSI support, use the scsinet.i image.
    
      Other images exist, such as net.i which should include the PLIP
      function but on my i486 laptop, Twinhead550C, the image does not
      work.  In my experience, the standard image always works on
      any laptop I have used.

    <sect3>  1a- creating the boot and root disks.
      <p>
       
    From DOS (PC-DOS, DR-DOS, FreeDOS, ...) create the boot disk by typing:
    <verb> 
    rawrite bareapm.i
    </verb>
    then create the root disks:
    <verb>
    rawrite color.gz.a  (if you are using a color screen)
    </verb>
   
    <sect3>   1b- Creating the PLIP disk
      <p>
      On a DOS formated disk copy the following files:
      <itemize>
        <item>1- plip.o (object program for the plip tool)
        <item>2- parport_pc
        <item>3- parport
      </itemize>
    Those modules are compulsory prior to a PLIP install, you will find
    them into the Slackware installation CDROM under the directory
    <tt>/MODULES</tt>.  The same applies to the Caldera
    installation. Run a "find" if you cannot find them.
    
    <sect3> 1c- launching the installation.
      <p>
    Insert your boot disk in your Laptop and start the computer. 
    Follow the installation procedure and wait until the system ask for 
    the root disk.
    Insert it and wait for the prompt login: "Slackware login".

    To start the Slackware installation you must log in as root. Type
    "root" at the prompt. Be aware that at the time of installation your
    keyboard is still qwerty.
    </sect2>
    <sect2>2a- Install PLIP module
    <p>
    Install your source computer according to Gilles' instructions, 
      from chapter 7 to 9.    

    Install PLIP on the target.  To install the PLIP module you need to
    launch the program from your PLIP disk.  Remember you did it, no !!!

    Access your floppy disk with:
    <verb>
          $ mount /dev/fd0h1440 /floppy
          $ cd /floppy
          $ insmod parport      # it will install your parallel port
          $ insmod parport_pc   # it will set it up
          $ insmod plip         # it will install plip module
    </verb>
    If during the PLIP installation you encounter an error,  it means that
    your parallel port has not been correctly installed. You may type again
    the instruction above, it does work sometimes !!, or go to the parport 
    directory and write the appropriate setting.
    <verb>
      $ cd /proc/parport/0
      $ vi IRQ            # Verify that 7 is written in it if you are using
                          # that interrupt'
     </verb>
     See the chapter "PLIP on the source side" to get the proper setting.

      You should not bother too much as at 95% on the 5 laptops I have
      installed everyting went smoothly.  (Comment peut-on avoir "95% de
      cinq", said rational Graham)
     

    </sect2>
     <sect2>3a- Now create your NFS drive.
     
     <p>From that point I have chosen to use the creation of a NFS drive
     on the target computer. Then I will make an installation using the
     "From directory" option rather than from nfs.

     Do not forget you still have a US keyboard layout.  Of course you
     have set up your source according to chapter "Network parameters".
     You did then ping your source, but you cannot yet ping the target.

     So the first step is to configure your PLIP connection:
      On the target type:   <label
       id="SLACKWARE_TARGET_IP_ADRESS_IFCONFIG">

      <verb>
       $ ifconfig plip0 192.168.0.1 pointopoint 192.168.0.2 netmask 255.255.255.255 up
      </verb> 
      
     Test your Plip configuration by pinging the target from the source
     
      <verb>
     $ ping target
     </verb>
     then mount  your nfs drive on the target:
     <verb>
     $ cd /
     $ mkdir nfstest
     $ mount -t nfs 192.168.0.2:/cdrom /nfstest
     </verb>
     <it>You have just configured a drive linked to your source
     directory /cdrom were you suppose to have the Slackware CDROM
     connected, from your target directory called nfstest</it>.
     
     Now everything is set up and you are ready to launch the Slackware
     installation program, by typing "setup".

     <bf>note:</bf>if you do not have enough memory, below 8MB
     setup will not be launched, then you will have to make a swap
     space to allow the program to work.
     First, create your disk partition with your swap by typing
     <verb>
       $ fdisk
      </verb>
      
      Note which is your swap partition (e.g. /hda3), then quit fdisk with
      'w'. Once it's done, type:
      
      <verb>
       $ mkswap -c /dev/hda3
       $ swapon /dev/ha3
      </verb>
      
     Your swap is now set up.
     You may then launch the "setup" program.
     
    <sect2>4a- Installing Slakware
     <p>
     the setup programm shows various menu items:
      <itemize>
       <item>HELP - Help file
       <item>KEYMAP - Keyboard select (Azerty at last !!!)
       <item>ADDSWAP - Create and select swap
       <item>TARGET - Select target
       <item>SOURCE - select the source
       <item>SELECT - Select packages to install
       <item>CONFIGURE - Set up your Linux system and make LILO
       <item>EXIT - bye bye setup 
      </itemize>
      
      4b- Select your keyboard, for French take -Fr-latin1.map
      
      4c- Select your swap partition if not already configured
      
      4d- Select the target, default is '/' 
      
      4e- Select the source. tricky stuff: choose "Installing from a
      drive", then type the drive so : /nfstest/slackware
      <it>'/slackware' because your drive must point to your slackware
      CDROM directory</it>
     
      4f- Select packages to install
    
      4g- Wait, Wait, Wait and Wait........
      
   <sect1>Caldera Installation
    <p>     
     I told you that Caldera works also with that install. In fact, as 
     Caldera automatically launches its Setup program, once you arrived
     at the menu where you are supposed to choose your source disks, type
     ALT F2, go to another screen, then log on as root and make your 
     nfs drive as described above in points 2 to 4.
     Then go back to the installation screen with ALT F1, and type 
     the famous nfstest as your source directory. Caldera will then
     install without problem.
    </p>
     </sect1>  

   
   <sect1>Troubleshooting
    <p>If you are experiencing any trouble with that installation you may
     report it to me and I'll try to help as best as I can.
    </p>
   </sect1>
 

  <sect>Installing RedHat 6.x
   <p>
    This section is written by Dr. Tilmann Bubeck,
    bubeck@think-at-work.de

   <p>
   I tried hard to install a laptop through PLIP with a RedHat 6.2 but
   the installer from RedHat is buggy and could not be used for
   PLIP. I verified that it was already broken in RedHat 6.1, but
   works in RedHat 5.2 as desired. Patches have been sent to RedHat
   and will hopefully be applied to the upcoming RedHat 7.0.

   So if you want to install a RedHat 6.x over PLIP you <bf>must</bf>
   follow these instructions.

   The problem is the "bootnet" disk. This disk should be used for
   PLIP installation but has 2 serious errors:

   <itemize>
    <item>it does not contain the necessary driver "parport_pc"
    <item>it does not allow you to specify important module
          parameters to "parport_pc" (especially "iobase" and "irq").
   </itemize>

  <sect1>Using a fixed "bootnet" disk

   <p>Probably the easiest way to solve the above problem is to use a
   fixed "bootnet" disk. You can get a fixed "bootnet" disk for RedHat
   6.2 from <htmlurl
   url="http://www-ti.informatik.uni-tuebingen.de/~bubeck/bootnet-plip-62.img"
   name="http://www-ti.informatik.uni-tuebingen.de/~bubeck/bootnet-plip-62.img">
   
   Use the following command to copy the downloaded image to an empty disk:

   <tt>dd if=bootnet-plip-62.img of=/dev/fd0</tt>. 

   Then insert the disk and turn your computer on. When you come to
   the point where you must choose your network device driver please
   do:
 
   <itemize>
     <item>1- Choose "Parallel Port Module for PC" and select "specify
     module parameters".

     <item>2- Enter iobase and interrupt for your parallel
     port. Typical values are iobase=0x378 or iobase=0x3bc. Interrupt most
     often is "irq=7".
     
     <item>3- Validate that the kernel loads the module and finds the
     parallel port. Use ALT+F4 to switch to kernel messages and look
     for a line saying: "parport: ... irq: 7".

     <item>4- The installation will then try to access the network
     which is still not available. So the installer asks again for the
     installation method. Choose your method again.

     <item>5- Now choose the "plip" module without any
     parameters. Again verify the loading of the module in the kernel
     messages.

     <item>6- Network should be up and running, installation should
     proceed. If not, then check the modules parameters to
     "parport_pc".
   </itemize>

  <sect1>Building your own "bootnet" disk

  <p>If the above bootnet disk is not suitable for your needs, I will
  present a small description of how to transform a standard bootnet
  disk for using "plip". This description is quite short and is
  addressed to the advanced user.

  <itemize>
    <item>1- make a copy of the standard bootnet disk by using "dd".

    <item>2- insert this copy of standard bootnet disk and mount it
             with: <tt>mount /dev/fd0 /mnt</tt>

    <item>3- gunzip initial ramdisk with <tt>cp /mnt/initrd.img
             /tmp/initrd.img.gz; gunzip /tmp/initrd.img.gz</tt>

    <item>4- Mount initial ramdisk with <tt>mkdir /mnt2; mount -o loop
             /tmp/initrd.img /mnt2</tt>

    <item>5- gunzip and extract modules directory with: <tt>cd /tmp;
             zcat /mnt2/modules/modules.cgz | cpio -ivd</tt>

    <item>6- You should now have a directory called with your kernel
             version number (e.g. "2.2.14-5.0BOOT") containing a lot
             of modules. Check if the modules "parport_pc.o" is
             included in this directory (it is unfortunately NOT
             included in RedHat 6.0-6.2). If you can not find it, then
             please build a custom kernel with the EXTRAVERSION number
             like your bootnet disk (in this case: "5.0BOOT") and
             "parport" support as module. Copy the newly created
             parport_pc.o module to your new modules directory: <tt>cp
             .../parport_pc.o /tmp/2.2.14-5.0BOOT</tt>.

    <item>7- delete a normally unused module, so that you have
             additional space on the disk: <tt>rm
             /tmp/2.2.14-5.0BOOT/sktr.o</tt> (driver for token ring
             network adapter).

    <item>8- rebuild modules archive with: <tt>find
             /tmp/2.2.14-5.0BOOT | cpio -ov -H crc | gzip &gt;
             /mnt2/modules/modules.cgz</tt>

    <item>9- insert a new modules dependency line into modules.dep
             saying that module "parport_pc" needs module "parport":
             <tt>echo "parport_pc: parport" &gt;&gt;
             /mnt2/modules/modules.dep</tt>

    <item>10- insert entry for parport_pc module into module-info so
              that the user can select the parport_pc module during
              installation. Append the following text to the end of
              /mnt2/modules/module-info: <verb>
parport_pc
        plip
        "Parallel Port Module for PC"
        io "Base I/O address"
        irq "IRQ level"
</verb>


    <item>11- unmount and gzip initial ramdisk with: <tt>umount /mnt2;
              gzip -9 /tmp/initrd.img</tt>

    <item>12- copy initial ramdisk to bootnet disk and unmount: <tt>
              cp /tmp/initrd.img.gz /mnt/initrd.img; umount /mnt</tt>
   </itemize>

   By following these instructions, you get a bootnet disk containing
   all necessary modules and therefore allowing for a PLIP
   installation. Please follow the instructions elsewhere in this how-to
   on how to do the installation with the new disk.

  <sect>Installing RedHat 7.0
   <p>
    This section is written by <url name="Leonard den Ottolander"
    url="mailto:leonardjo@hetnet.nl">
    
    To install RedHat 7.0 over PLIP the easiest way to go is to use a
    patched bootnet.img which is available via the url <url
    url="http://home.hetnet.nl/&tilde;ottolander">. This saves the need
    for a driver disk, which might be useful when installing on a
    machine which floppy drive stops functioning after boot (I made this
    bootnet-plip.img to do an install to a Toshiba Libretto 30 which has
    a funny PCMCIA floppy drive that is no longer available after boot).

    This disk is a full bootnet.img for RedHat 7.0, with the modules
    necessary for PLIP added to it. Since there was enough disk space,
    no modules had to be deleted. So you can use this image as if it
    were a full featured bootnet.img. No need for different disks.

    I am not going into detail on the actual installation procedure, but
     there are a few things to note:

    <itemize>
     <item><p>
      The parport module should be loaded before the PLIP
      module. Specify i/o address and irq parameters for the parallel
      port when inserting the parallel port module.
     <item><p>
      After inserting the parport_pc module the installer will show the
      "Installation method" screen a second time. This is expected
      behaviour. Choose the PLIP module this second time. No parameters
      need to be specified when inserting the PLIP module.
      <item><p>
      When specifying network parameters, do not use a netmask of
      255.255.255.255 as you might normally do for a PLIP connection. If
      you do this by accident you will have to reboot to be able to
      mount the installation directory succesfully. Going back and
      respecifying the parameters will not help you out.
     <item><p>
      When doing an NFS install with RedHat 7.0 make sure all files from
      the RedHat directories from both CD's are copied to the NFS mount
      point (cp -a RedHat for both CD's). It is not possible to use the
      mounted CD's.
    </itemize>

    
   <sect1>Creating your own bootnet-plip disk
    <p>
     This section is a slightly adapted copy of the procedure to create
     a bootnet-plip image for RedHat 6.2 described by Tilmann
     Bubeck. Thanx Tilmann!
     
     <itemize>
      <item><p>
       1) Mount a copy of the standard bootnet disk and copy all files to
       a temporary directory:
       <verb>
	mount -o loop -t vfat /tmp/bootnet.img /mnt/bootnet
	cp -a /mnt/bootnet /tmp
       </verb>
      <item><p>
       2) Gunzip the initial ramdisk, mount it and copy all files to a
       temporary directory:
       <verb>
	mv /tmp/bootnet/initrd.img /tmp/bootnet/initrd.gz
	gzip -d /tmp/bootnet/initrd.gz
	mount -o loop /tmp/bootnet/initrd /mnt/initrd
	cp -a /mnt/initrd /tmp
       </verb>
       
      <item><p>
       3) Gunzip and extract the modules directory with:
       <verb>
	cd /tmp
	zcat /tmp/initrd/modules/modules.cgz | cpio -ivd 
       </verb>
       
      <item><p>
       4) Install the kernel-BOOT-2.2.16-22 rpm and copy the modules
       parport.o, parport_pc.o and plip.o from /lib/modules/2.2.16-22BOOT
       to /tmp/2.2.16-22BOOT, or use the midnight commander to extract
       these files from rpm. When building modified boot disks you will
       always need the modules from the kernel-BOOT rpm.
       
      <item><p>
       5) If you need additional space on your bootnet-plip disk, delete
       an unused module from the modules directory, fe:
       <verb>
	rm /tmp/2.2.16-22BOOT/old_tulip.o
       </verb>
       
       Note that this is not necessary for the RedHat 7.0 bootnet
       disk. There is enough space left for the added modules. Do *not*
       delete modules like sunrpc.o, lockd.o, nfs.o, fat.o, vfat.o and
       the like. This will make your disk useless. Use common sense.
       
      <item><p>
       6) Rebuild the modules archive:
       <verb>
	find /tmp/2.2.16-22BOOT | cpio -ov -H crc | gzip > \
	/tmp/initrd/modules/modules.cgz 
       </verb>
       
      <item><p>
       7) Insert a new modules dependency line into modules.dep saying
       that module "parport_pc" needs module "parport":
       <verb>
	echo "parport_pc: parport" >> /tmp/initrd/modules/modules.dep 
       </verb>
       
      <item><p>
       8) Insert entries for the parport_pc and plip modules into
       module-info. These entries should look like this:
       
       <verb>
    parport_pc
        plip
        "Parallel Port, Insert Before PLIP"
        io "Base I/O address"
        irq "IRQ level"
    plip
        plip
        "PLIP (Parallel Link Interface Protocol)"
        io "Base I/O address"
        irq "IRQ level"
      </verb>
      
       You probably may omit the io and irq entries for plip.  Also
       delete any entries that refer to modules that you removed from
       the archive (ie old_tulip in the previous example).

      <item><p>      
      9) Copy the modified module files to the initial ramdisk:
       <verb>
       cp -a /tmp/initrd/modules/module* /mnt/initrd/modules
       </verb>

      <item><p>     
       10) Unmount and gzip the initial ramdisk and copy it to the disk
       image:
       <verb>
	umount /mnt/initrd
	gzip -9 /tmp/bootnet/initrd
	cp /tmp/bootnet/initrd.gz /mnt/bootnet/initrd.img
	umount /mnt/bootnet
       </verb>

      <item><p>     
       11) The file /tmp/bootnet.img is now your new
       bootnet-plip.img. You might want to clean up your temporary
       files:
       
       <verb>
	rm -r /tmp/2.2.16-22BOOT
	rm -r /tmp/initrd
	rm -r /tmp/bootnet   
       </verb>
       
     </itemize>
     

<sect> Installing Suse <label id="INSTALL_SUSE">
<p>

The Suse installation process includes PLIP support (Network type
configuration). If you encounter a problem installing a Suse distibution
using PLIP, feel free to report them.

  <sect> Installing from a DOS partition <label
     id="INSTALL_FROM_A_DOS_PARTITION">

   <p>
    You can use this section if you already have a DOS partition on your
    <bf>target</bf> computer. I think it is a faster installation
    method.
    
     Read the section 5.3.1 "Installing from a DOS partition" from
     <htmlurl
     url="http://www.debian.org/releases/stable/i386/install.txt"
     name="install.txt">. This section is also available on the Debian
     CD in the html file <htmlurl
     url="file:///cdrom/dists/stable/main/disks-i386/current/ch-install-methods.html#s-install-drive"
     name="ch-install-methods.html">.

     I am just going to help you to make the first point&nbsp;: "1. Get the
     following files from your nearest Debian repository"

     The transfer is easy with the floppy-disc based Linux from&nbsp;
     <htmlurl url="http://www.toms.net/rb/home.html" name="tomsrtbt">.

     Export the <bf>source</bf> cdrom drive via nfs.

     Read the file <htmlurl name="tomsrtbt.FAQ"
      url="http://www.toms.net/rb/tomsrtbt.FAQ"> 

     Create the floppy under  DOS or Linux, you have the choice.
     
     <verb>
     Linux installation:
     a) extract the .tar.gz archive
     b) Be root
     c) Be in the tomsrtbt-&lt;version&gt; directory
     d) Have a blank floppy with no bad sectors
     e) Do './install.s'
     </verb>

     Boot the <bf>target</bf> with the floppy. Login as root.
     
     <verb>
      $ insmod plip
      $ ifconfig plip1 192.168.0.1 pointopoint 192.168.0.2 \
      netmask 255.255.255.255 up
      $ route add -host 192.168.0.2 dev plip1
      $ mount -t nfs 192.168.0.2:/cdrom /cdrom
      $ mkdir /c
      $ mount -t msdos /dev/hda1 /c
      $ mkdir /c/debian
      $ cd /cdrom/dists/stable/main/disks-i386/current/
      $ cp resc1440.bin drv1440.bin base2_1.tgz root.bin linux \
      install.bat loadlin.exe /c/debian
     </verb>
     
     The <tt>\</tt> means the command line continues on the next line.
     The <tt>cp</tt> command takes some time. When finished, remove the
     floppy and then&nbsp;:
     <verb>
      $ reboot
     </verb>
     
     Boot under DOS.

     <verb>
      C:\> cd debian
      C:\DEBIAN> install
     </verb>
    
    Now you start to install Debian from a DOS partition. You do not
    need plip or floppy during the installation process. Everything
    deals with the hard drive. Read the Debian install documentation, it
    is very good and clear.
     

  <sect>Install the plip interface permanently
   <p>

   <sect1>On the source side
    <p>

    I use an old Linux RedHat 4.1 distribution. The location of the
    files can be different on other GNU/Linux distributions but the
    philosophy is the same (The Unix System V convention).

    Create the file <tt>/etc/rc.d/init.d/plip</tt> with this content:

    <verb>
#!/bin/sh

##############################
# file /etc/rc.d/init.d/plip #
##############################

# See how we were called.
case "$1" in
  start)
        # Start daemons.
        /bin/echo "Starting plip interface: "
	/bin/echo "Doing /sbin/ifconfig plip0 source pointopoint target netmask 255.255.255.255 up"
	/sbin/ifconfig plip0 source pointopoint target netmask 255.255.255.255 up
	/bin/echo  "Doing /bin/ping -q -c 4 target"
	/bin/ping -q -c 4 target
	/bin/echo "Starting plip interface: done"
        ;;
  stop)
        # Stop daemons.
        /bin/echo  "Shutting down plip interface:"
	/bin/echo  "Doing /sbin/ifconfig plip0 source pointopoint target netmask 255.255.255.255 down"
	/sbin/ifconfig plip0 source pointopoint target netmask 255.255.255.255 down
	/bin/echo  "Doing /sbin/modprobe  -r plip "
	/sbin/modprobe  -r plip
        /bin/echo "Shutting down plip interface: done"
        ;;
  *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac

exit 0

# === End of File ===

    </verb>
    
     Only the ifconfig lines are strictly necessary. Perhaps you will
     need to add some <tt>modprobe</tt> commands if you don't use
     <tt>kerneld</tt> or the <tt>kmod</tt> feature of new kernels 2.2.x

     Create the symbolic links in the <tt>rc*.d</tt> directories:

     <verb>
      
      $ cd /etc/rc.d/rc0.d/
      $ ln -s ../init.d/plip K97plip
      
      $ cd /etc/rc.d/rc1.d/
      $ ln -s ../init.d/plip K92plip
      
      $ cd /etc/rc.d/rc3.d/
      $ ln -s ../init.d/plip S11plip


      $ cd /etc/rc.d/rc5.d/
      $ ln -s ../init.d/plip S11plip
     </verb>
     
     You can choose other numbers. Make sure that the two-digit number
     after 'K' is greater than the number of every other file that stops
     a service depending on plip.

     Make sure that the two-digit number after 'S' is less than the
     number of every other file that start a service depending on plip:
     nfs, nis, ftp, http etc.

     Update the <tt>/etc/conf.modules</tt> file, choosing the correct
     IRQ number (7 is mine, yours may be different):

     <verb>
# /etc/conf.modules
...
alias parport_lowlevel parport_pc
post-install parport_pc echo 7 >  /proc/parport/0/irq
...
     </verb>

     Test the plip shell:

     <verb>
      $ /etc/rc.d/init.d/plip 
      Usage: /etc/rc.d/init.d/plip {start|stop}

      $ /etc/rc.d/init.d/plip stop
      Shutting down plip interface: 
      Doing /sbin/ifconfig plip0 source pointopoint target netmask 255.255.255.255 down 
      Doing /sbin/modprobe  -r plip 
      Shutting down plip interface: done

      $ /etc/rc.d/init.d/plip start
      Starting plip interface: 
      Doing /sbin/ifconfig plip0 source pointopoint target netmask 255.255.255.255 up 
      Doing /bin/ping -q -c 4 target
      PING target (192.168.0.1): 56 data bytes
      
      --- target ping statistics ---
      4 packets transmitted, 4 packets received, 0% packet loss
      round-trip min/avg/max = 4.4/8.3/14.0 ms
      Starting plip interface: done
     </verb>
     
     Updating the start scripts is a good occasion to reboot a Unix
     system, to check the modifications. Do it:

     <verb>
      $ init 6 # or "shutdown -r now" or "reboot"
     </verb>

     

   <sect1>On the target side
    <p>

     Update the file <tt>/etc/init.d/network</tt>:

     <verb>
      #! /bin/sh
      #######################
      # /etc/init.d/network #
      #######################

      ifconfig lo 127.0.0.1
      route add -net 127.0.0.0
      
      ifconfig plip1 192.168.0.1 pointopoint 192.168.0.2 netmask 255.255.255.255 up
      route add -host 192.168.0.2 dev plip1
     </verb>
     
     That's all because the parport features are directly in the kernel.
 
     Updating the start scripts is a good occasion to reboot a Unix
     system, to check the modifications. Do it:

     <verb>
      $ init 6
     </verb>

  <sect>Compatibility with a printer (lp)
   <p>
    I use the same parallel port for printing on a printer and
    networking with my laptop without big problems. It takes less than
    one second to switch from printing to networking. I just add a cheap
    manual switch between the parallel port, the printer and the
    laptop. The cable between the switch and the desktop computer is a
    fully connected one. The switch is just the one used to shared
    printers when no network is available. It works.

    Sometimes, the kernel is not very happy because it can't finish its
    network job. In that case, I shut down the plip interface and restart
    it when needed.

    I bought a new parallel card last year but it is still in its
    box. I'll write an "install a second parallel port" when I succeed
    in opening the box and add that beautiful card in the last connector
    I have left.
     

  <sect>Need to compile a new kernel ?
   <p>
     
    Several times during the <bf>source</bf> server configuration we
    mentioned that a kernel compilation on the <bf>source</bf> computer
    could be needed.

    I list the things you need to change or set.  If you have never
    compiled a kernel, read the <em>Kernel-HOWTO</em>.

    <verb>
    Loadable module support  --->
        [*] Enable loadable module support

    General setup  --->
        [*] Networking support
        <M> Parallel port support
        <M>    PC-style hardware

    Networking options  --->
        [*] TCP/IP networking
    
    Network device support  --->
        [*] Network device support
        <*> Dummy net driver support
        <M> PLIP (parallel port) support
        <*> or <M>  PPP (point-to-point) support 

    Character devices  --->
        <M> Parallel printer support

     
    Filesystems  --->
        [*] /proc filesystem support
        <*> or <M> ISO 9660 CDROM filesystem support
        Network File Systems  --->
            <*> or <M> NFS filesystem support
     
     
    </verb>


<sect>Known problems<label id="KNOWN_PROBLEMS">
<p>

<sect1>plip 2.2.14 versus 2.2.16
<p>

>From "Matt Haycraft" Matt.Haycraft@dakotaimaging.com

Both sides have the right thing show up with ifconfig and route but ping
(or anything else does not work) However what blows my mind is that the
ifconfig section for both machines DOES show that packets are being
received/transmitted.


However it turned out to be a compatibility issue between 2.2.14 and
2.2.16 and the plip code for each kernel version.  2.2.16 had some
differences.  To address the issue, I copied the plip.c from the 2.2.16
kernel to the source tree of 2.2.14 and recompiled the kernel module.
Then everything worked!

<sect>What's new<label id="WHAT_IS_NEW">
<p>
This tag is automatic so it IS the reference.  (Sometimes I forget to
update the version number and the date)

$Id$

<verb>
$Log$
Revision 1.40  2002/07/07 23:46:32  gilles
Corrected tag problem

Revision 1.39  2002/07/07 23:42:27  gilles
Added Richard Barrington in "acknowledgements" section.

Revision 1.38  2002/07/07 23:15:53  gilles
Added a "Known problems" section
Added "plip 2.2.14 versus 2.2.16" section. Thanks Matt.

Revision 1.37  2002/07/07 22:56:44  gilles
Adapted insmod parport_pc to 2.4 kernel

</verb>

<descrip>

<tag>v1.36, 3 December 2001
<p>
<itemize>

<item>Changed the <ref name="licence" id="LICENCE">. Do what you want.

<item>Added a <ref name="Suse" id="INSTALL_SUSE"> section. Thanks
Graham.

<item>Added a <ref name="PLIP for the impatient" id="PLIP_IMPATIENT">
section.

<item>Changed my email address. 

</itemize>

<tag>v1.31, 21 April 2001
      
<p>
      <itemize>
      
       <item>Corrected a bad url in section "Installing RedHat
       7.0". Thanks Leonard.
	
       <item>Corrected broken links find by the nice <url
       url="http://www.jmarshall.com/tools/cl/" name="clink"> software.
      
      </itemize>

     <tag>v1.30, 13 April 2001
      
     <p>
      <itemize>
       <item>Added section "Installing RedHat 7.0". Thanks Leonard.
      </itemize>

     <tag>v1.28, 18 December 2000
      
     <p>
      <itemize>
       <item>Corrected more mistakes in my English. Thanks again Graham.
      </itemize>


     <tag>v1.27, 11 August 2000
      
     <p>
      <itemize>
     
       <item>The SLIP line was not needed, SLIP is serial line
	oriented. The PPP line was partly wrong, we need PPP support by
	the kernel.

  	<p> <item> Corrected more mistakes in my English, though I know
  	that more remain and new ones come every time I write a
  	sentence...
	
	<p> <item> Added a "compatibility with a printer" section.
		
	<p> <item> Added a Null-Printer == Null-Modem comment.
	
	<p> <item> Added a "build your own cable" section.
	
	<p> <item> Corrected a bug in the Slackware section. <ref
	id="SLACKWARE_TARGET_IP_ADRESS_IFCONFIG" name="Here"> (inverted
	IP adresses). Thanks to Brad Rigby.
	
	<p> <item> Removed obsolete paragraph from the "Introduction" section.
	
	<p> <item> Added request for information about translations in
	the "Introduction" section.
	
	<p> <item> Mentioned the "what's new section" at the top of the
	document.
	
	<p> <item> Added a vc-header in the What's new section
	
	<p> <item> Added the WHAT_IS_NEW label
	
	<!-- 

       <p> <item>
	
	-->
	


      </itemize>
     </p>
    </descrip>

    <descrip>
     <tag>v1.22, 16 June 2000
     <p>
      <itemize>
    
       <item> Added a mention to PARTED
         http://www.gnu.org/software/parted as told by Andrew Clausen
         (clausen@gnu.org).

	<p> <item> Added section Installing Slackware, RedHat, or
	Caldera, by Florent SAUNIER.
 	
	<p> <item> Corrected some English faults, thanks to Graham and
	Tomas.
    

      </itemize>
     </p>
    </descrip>

    <descrip>
     <tag>v1.15,  26 November 1999</tag>
     <p>
      <itemize>
     
       <item>The section "What's new". It is this section.
	
	<p> <item>The section  "Install the plip interface permanently".
      
	<p> <item>The section "List of contributors and acknowledgements".

	<p> <item>Joined the different chapters dealing with the
	detailed Debian installation to form a single chapter with the
	actual chapters as just subsections.

	<p> <item> Made a new section "Installing from a DOS
	partition". A simpler and faster method.

      </itemize>
     </p>
    </descrip>

  <sect>To do
   <p>

    <itemize>
    
     <item>Check a kernel compilation from scratch (no last
     <tt>.config</tt> file) with only the options I gave. Add the
     missing ones if any.

<p> <item>Make the Mandrake, Turbo Linux, and Stampede detailed
installation chapters. Contributions are welcome. Gilles Lamiral won't
do that job unless given new computers and CDs.

<p>Debian (done), Red Hat (redone by Tilmann Bubeck), Slackware (done),
Caldera OpenLinux (done), SuSE (done).

      <p> <item>Make "The CD-ROM NFS server side" chapter become simply
      "the server side" chapter with subsections like "cdrom medium",
      "zip medium", "hard disk medium", and "ftp server" "nfs server",
      "samba server" "http server". Again, contributions are welcome.

      <!-- 

     <p> <item>
      
      -->

    </itemize>     


    
  <sect>List of contributors and acknowledgements
   <p>

    I thank all the people in this list of contributors or projects. If
    you think I forgot someone, do not hesitate to complain.
    
    <descrip>
     <tag>Werner Heuser &lt;wehe@snafu.de&gt; </tag> 
     <p>
      He said: "yesterday I had time enough to read your document. It's
      great and in the next issue of my HOWTO (probably 2. December) I
      will make a link to it."  
     </p>
      
      He did.

    </descrip>

    <descrip>
     <tag>LDP &lt;linux-howto@metalab.unc.edu&gt;
     </tag>
     <p>
      The Linux Documentation Project accepted the PLIP-Install-HOWTO
      without any hesitation.
     </p>
    </descrip>

    <descrip>
     <tag>
      Graham Bosworth &lt;graham@bozikins.connectfree.co.uk&gt;
     </tag>
     <p>
      Graham corrected my bad English all over the document. Several
      times. Graham told me that Suse includes a PLIP installation
      process.
    </descrip>

    <descrip>
     <tag>Simon Forget &lt;sforget@camelot.ca&gt;
     </tag>
     <p>
      Simon had a problem with his pcmcia floppy drive. So he led me
      search for a solution that is, in fact, simpler and faster (the
      DOS one).
     </p>
    </descrip>

  
    <descrip>
     <tag>Andrew Clausen &lt;clausen@gnu.org&gt;
     </tag>
     <p>
      Andrew suggested that I talk about parted
      http://www.gnu.org/software/parted
     </p>
    </descrip>

    
    <descrip>
     <tag>Florent SAUNIER &lt;FlorentSAUNIER@sabetflo.freesurf.fr&gt;
     </tag>
     <p>
      Florent wrote the section called "Installing Slackware/Caldera".
     </p>
    </descrip>

    <descrip>
     <tag>
      Tomas Pospisek  &lt;tpo@spin.ch&gt;
     </tag>
     <p>
      Tomas also corrected my bad english.
     </p>
    </descrip>

    <descrip>
     <tag>
     Brad Rigby  &lt;brigby@rocketmail.com&gt;
     </tag>
     <p>
     Brad corrected a bug in the Slackware section (inverted IP
     adresses).
     </p>
    </descrip>

    <descrip>
     <tag>
     Donald Becker  &lt;becker@super.org&gt;
     </tag>
     <p>
      Donald wrote the PLIP kernel  documentation<newline>
      /usr/src/linux/Documentation/networking/PLIP.txt

     </p>
    </descrip>

    <descrip>
     <tag>
     Tilmann Bubeck  &lt;bubeck@think-at-work.de&gt;
     </tag>
     <p>
      Tilmann wrote the section called  "Installing RedHat 6.x".

     </p>
    </descrip>

    <descrip>
     <tag>
      Leonard den Ottolander  &lt;leonardjo@hetnet.nl&gt;
     </tag>
     <p>
      Leonard wrote the section called  "Installing RedHat 7.x".

     </p>
    </descrip>


<descrip>
<tag>
Richard Barrington (rich_b_nz@clear.net.nz)
</tag>

<p>
"Under linux 2.4, the described method of setting irq doesn't work. it
needs insmod parport_pc io=0x378 irq=7 otherwise it will default to no
irq." Thanks Richard.
</descrip>


<descrip>
<tag>
Matt Haycraft (Matt.Haycraft@dakotaimaging.com)
</tag>
<p>
Matt discovered and resolved a plip problem between 2.2.14 and 2.2.16
kernels. See <ref id="KNOWN_PROBLEMS" name="Known problems"> section.

</p>
</descrip>


    

 </article> 
 
 

