1. Introduction
  2. What do I have to do to make my new Actis card boot ?
  3. What files should be on a module disk
  4. How to create a module disk
  5. How to create a user bootfile
  6. Advanced boot topics
  7. Booting from another system than the VME development system o-ded01
  8. The boot sequence

  1. Introduction
  2. The preferred and default boot mode for the Actis SBC342 cards is one where all OS-9 and ISP modules are loaded and the networking is started. No(!) automatic NFS mount is done (as was the case in 1996). A so called module disk is used to transfer (text) files (like password, startup and login files). At boot a ram disk is created (called /dd) where all the files from the module disk are copied. If no such a module disk is present, only the shell is launched.

    Actis cards can boot from a special VME development system: o-ded01, from one of the alpha systems in the online cluster, or from any other system you want to set up as a boot server.

    All the instructions here assume that you are logged in on the VMS development system o-ded01. All bootfiles reside on this machine, but can be copied to another machine if needed.


  3. What do I have to do to make my new Actis card boot ?
  4. Here are described the first steps to make you brand new Actis card boot.

    Get an IP number and name

    Before you can get started you have to ask for an IP number and name. The IP number is allocated by IT-Networking (former CN....). For the IP names we decided on the following naming scheme: ACDEL-dddfff where ACDEL- stands for ACtis DELphi (analog to FIDEL- for the fips), ddd for the detector and fff for a functional description of the subsystem. So one gets names like ACDEL-RIFHVA or ACDEL-HPCHVB. The reason we have chosen for RIFHVA rather than RIF-HVA is that if you want to use the card with the standard EP the name should be limited to 12 characters (if not it would mean a bigger modification in the EP). So that is something to bear in mind when you want to use your card with a standard EP. Requesting an IP number can be done via the
    Network Connection Request Form.

    Once you have got an IP number you should communicate this to me to update a database and prepare the VME development system to make your card boot from it.

    Check the settings of your card

    Before you can boot for the first time, you should check the settings of the Actis card. If you got the card through me, I should already have checked it. See here on how to check the setup. Make sure you don't have the automatic booting enabled for the first tests. Only after you are sure the boot procedure works correctly, you should enable the automatic booting.

    Here we go... It's first boot !

    If you now switch on the Actis card (assuming it is connected to the network properly) you can boot the card by typing IF at the prompt in the bootmenu. The card should now boot, that was easy wasn't it !

    But this is probabely not what you want

    This boot is the minimal you can do, using only the default so called bootfiles. However I guess you would like to be able to log in remotely to your system or use ftp to it. It would also be nice to have a decent shell and a decent editor available wouldn't it? And in the final configuration you would probabely like to boot automatically and launch a few processes straight after the card has booted. Well, all this is possible.

    A module disk can do it

    The problem in the points mentioned above lies in the fact that all these goodies need a disk and (plain ascii text-) files. However the only things we can transfer with a bootfile are OS-9 modules, no files. The key word to this is module disk. A module disk is an OS-9 datamodule that can be accessed is if it were a disk. Being an OS-9 module, it can be transferred at boot and being a disk, it can hold all the files we want. Great isn't it ? The only disadvantage is: you have to create it yourself !

    The next sections describe what files should be on the module disk, and how you can create such a module disk.


  5. What files should be on the module disk
  6. Here we will discuss what files should be put onto this module disk and how these files should look like. The module disk that we are going to use will be called /md0.

    Good candidates of files to be put onto the module disk are:

    Examples of these file can be found
    here and in: /dd/delpi/sbc342/boot/templates on the VME development system o-ded01.

    You are advised to create all these files in a seperate directory on the VME development system. We will go through them one by one:

    password
    This file contains username/password combinations and some additional paramaters for each user. This file is used by all processes that allow you to log in to your system (like telnet, ftp, tsmon). Leaving the password blank with a username, will allow you to log in with that username without being asked for a password. Leaving both username and password blank, will alow you to log in simply by hitting <Return> when prompted for a username. In case the password file is found, tsmon is launched (this is the thing that displays the line 1 devices online) at the end of the boot. Hit <Return> to be able to log in. If the password file is not present only the shell is launced at the end of the boot, and you will not be able to log in to your system. You can base your password file on this example (See also OS-9 manual Using Professional OS-9 page 5-24).

    .login
    This file contains a list of commands executed each time a user logs in (thus not at boot time !). Ususally this is used to set a few environment variables and launch a decent shell. The example (in the last line) launches the tsf shell, the Delphi standard shell that is also used on the fips (See also OS-9 manual Using Professional OS-9 page 5-21).

    startup
    This file contains a list of commands that are executed once at the end of the boot, just before the shell or tsmon is launched. Networking programs like telnetd and ftpd, that allow you to telnet or ftp into the system are not launched automatically, this typically something you should do in this startup file. Here you can also mount any NFS disks if you need (Note that /dd is now used for the local ram disk, so you have to use another name when mounting a disk, eg. /h0). This file is also the place to put any command to launch your particular applications that you always want to have running. You can base your copy of the startup file on this example (See also OS-9 manual Using Professional OS-9 page 8-17).

    motd
    Motd is a textfile containing a header (welcome text) that is printed each time you log in to the system. This message could contain a one or two line description on the functionality of the system. This file is not essential.

    After you have created all these files it is time to create a module disk. The following section describes how.


  7. How to create a module disk
  8. The creation of a module disk involves the following steps:

    To see the contents of the created module disk use the command:
    $ dir_mdisk
    this will give a recursive listing of your module disk.

    To see the contents of a file on the created module disk use the command:
    $ list_mdisk filename
    this will list the file filename, the path should be relative to the module disk (eg.: .login or sys/password etc.).

    After having created the file with the module disk mdisk_0 the last step is to create a user bootfile as described in the next section.


  9. How to create a user bootfile
  10. The final step now is to create a user bootfile, before that you will have to create a so called bootlist file. This file (that can have any name you want) should simply list all the files you want to include in your user bootfile. The first obvious candidate is the file with the module disk created under the previous point. Other candidates are any other modules you want to have present at boot time (eg. the application you want to start in your startup file). You can base your bootlist file on
    this example.

    Now to create a user bootfile, issue the following commands (or put them in a makefile):
    $ merge -z=bootlist >-/dd/tftpboot/os9.node
    $ attr /dd/tftpboot/os9.node -pr -a
    where:
    bootlist is the name of a file listing any additional modules to be loaded at boot time (the file you just created).
    node is the node name of your system, with any - replaced by _ (eg. acdel-rifhva becomes acdel_rifhva).

    Let's do it again... It's second boot

    After having done all this you are ready to re-boot your card. At first glance there is no much difference, but you will notice that you did not end up in the shell directly, but with the line 1 devices online, inviting you to log in (hit <Return>). Also, since it executed the startup file you will now be able to telnet or ftp to your card (the processes telnetd and ftpd are running).

    Thus by customizing the files mentioned above to your needs, it should be rather easy to make your Actis card do what you want at boot time. If you have any questions or requests, don't hesitate to contact me. The following sections cover more specialized topics, a more detailed description on what exactly happens at boot time and instructions on what files you need to make the procedure work on another boot server.


  11. Advanced boot topics
  12. This section covers more advanced topics on the boot process, don't bother with them if you are happy with the way your card is booting. If not read on and see if there is something here that can help you, otherwise just contact
    me.

    Debugging the boot

    There are several ways to get more information during the boot process:

    Special files

    Special files can be created and copied to the module disk for additional functionality during the boot.

    • The file /md0/.environ can be used to define additional environment variables, these will be known at the time startup is executed. Use of this could be to define the correct timezone:
      TZ=CET

    • The file /md0/.envparse can be used to define a set of files to be parsed for environment variables. Expressions of the type $ENV_VAR will be replaced by the actual value of the environment variable ENV_VAR. The path of the files listed in .envparse should be relative to /md0, wildcards are not allowed. Environment variables known at the time of parse are the ones defined in the file /md0/.environ and the following:
           SHELL=shell
           HOME=/dd
           CMDS=/md0/CMDS
           USER=node
           NODE=node
           
      where:
      node is the node name of the Actis card.

    • The file /md0/.cleanup can be used to define a set of files that should be deleted from the ramdisk /dd after the module disk is copied to the ramdisk.

    If you have several cards running the same program

    If you have several cards running the same program it might be more efficient to use a slightly different scheme as described above. I will try to explain the details here, but it might be anyway a good idea to discuss this with me.

  13. Booting from another system than the VME system o-ded01
  14. The following files should be copied to the alternative bootp server (on the vme system these can be found in /dd/tftpboot):
    • os9boot
    • os9.OS9modules
    • os9.ISPmodules
    • os9.node
    The last three files should reside in the same directory as the boot file.

  15. The boot sequence
  16. The standard boot sequence used by the Actis card is the following:
    • Read a bootfile from the bootserver that responds first to a boot request. The filename is the first one found in this order:
      • specified in the bootserver table (need special setup on card), or
      • os9boot.node, or
      • os9boot
    • Update the following modules with the correct IP name/number as retreived at boot:
      • socket,
      • if0,
      • rpcdb
    • Start the network (routed)
    • Load more files (if present) from the same directory as the bootfile:
      • Get additional os9 modules in os9.OS9modules
      • Get additional isp modules in os9.ISPmodules
      • Get additional user modules in os9.node (user bootfile)
    • If module disk /md0 is present,
      • Read /md0/.environ.node or /md0/.environ
      • Parse the files listed in /md0/.envparse for environment variables
      • Copy the whole of /md0 to ramdisk /dd (using dsave)
      • Delete the files listed in /md0/.cleanup from the ramdisk (/dd)
      • If present, execute /dd/startup.node or /dd/startup
    • If the file /dd/sys/password is present launch tsmon, otherwise launch shell

Last Updated: 27-Feb-1997

In case of questions, problems, remarks etc. please contact:

Andre.Augustinus@cern.ch

André Augustinus