ChorusOS 4.0 UltraSPARC-IIi Target Family Guide

How to Build and Boot a System Image on the Target


Note -

UltraSPARC-IIi target systems do not boot archives directly, but instead require the inetboot application to boot.

As a result, the boot procedure that follows differs from the procedure described in the ChorusOS 4.0 Installation Guide for Solaris Hosts, and requires that you use a boot server that reads local files instead of the NISTM database.


Building a ChorusOS 4.0 System Image

The following procedure assumes that the ChorusOS 4.0 product has already been correctly installed on the host workstation. See the ChorusOS 4.0 Installation Guide for Solaris Hosts.

  1. Create and change to a build directory where you will build system images:


    $ mkdir build_dir
    $ cd build_dir
    
  2. Set an environment variable to use with the configure(1CC) command as a shortcut to the base directory.

    For example:

    Set the environment variable... 

    To the family-specific product directory. The default value is... 

    DIR

    /opt/SUNWconn/SEW/4.0/chorus-usparc 

  3. Make sure your PATH has been set correctly to include the directory install_dir/4.0/chorus-usparc/tools/host/bin, where the default install_dir is /opt/SUNWconn/SEW. Also make sure that your PATH includes /usr/openwin/bin, which contains the imake utility.

  4. Configure the build directory, using the configure(1CC) command:

    If you are building from a binary distribution:


    $ configure -b $DIR/kernel \ 
    $DIR/os \ 
    $DIR/tools \ 
    -s $DIR/src/nucleus/bsp/drv \ 
    $DIR/src/nucleus/bsp/usparc \ 
    $DIR/src/nucleus/bsp/usparc/cp1500 \ 
    $DIR/src/iom
    

    Note -

    The above command configures the build directory to include components installed during a "Default Install". It does not include optional components, such as the X library or code examples, that you may choose to install separately on Solaris host workstations. For example, in order to include everything in your build environment:


    $ configure -b $DIR/kernel \ 
    $DIR/os \ 
    $DIR/opt/X11 \ 
    $DIR/opt/jvm \ 
    $DIR/tools \ 
    -s $DIR/src/nucleus/bsp/drv \ 
    $DIR/src/nucleus/bsp/usparc \ 
    $DIR/src/nucleus/bsp/usparc/cp1500 \ 
    $DIR/src/iom \ 
    $DIR/src/opt/examples
    

    If you are building from the source distribution, see the ChorusOS 4.0 Production Guide.

    As a result of configuration, build_dir now contains a Makefile, which is used to generate the build environment, and a Paths file, which specifies paths to files required by and created in the build environment.

  5. Generate the build environment:


    $ make
    
  6. Build a system image:


    $ make chorus
    

    The resulting system image file is located in the build directory, build_dir and is called chorus.obp.


    Note -

    You can also make a smaller system image that includes only the operating system kernel:


    $ make kernonly
    

Configuring the Boot Server

Note -

The target system and boot server must be on the same subnet.

See the ChorusOS 4.0 Installation Guide for Solaris Hosts for instructions on how to enable TFTP and RARP services on the boot server.


  1. Become root on the boot server:


    $ su
    Password: root_password
    # 
  2. Copy the inetboot.sun4u file, install_dir/4.0/chorus-usparc/opt/unsupported/inetboot.sun4u where install_dir is /opt/SUNWconn/SEW by default, to the /tftpboot directory.

  3. Create a soft link from the inetboot.sun4u file to a file called /tftpboot/target_IP_address_in_hex.ChorusOS.4.0. For example, the file for the target system with IP address 129.157.197.88 is called 819DC558.ChorusOS.4.0, and is constructed as follows:

    • 129 in decimal translates to 81 in hexadecimal

    • 157 in decimal translates to 9D in hexadecimal

    • 197 in decimal translates to C5 in hexadecimal

    • 88 in decimal translates to 58 in hexadecimal

    • (optional) .ChorusOS.4.0 identifies the release, and is appended to the concatenation of the IP address expressed in hexadecimal.


    Note -

    The system first attempts to find the configuration file with the .ChorusOS.4.0 extension. If it fails to find one, however, it attempts to find a configuration file without the .ChorusOS.4.0 extension.


    To create the soft link for the above example:


    # ln -s /tftpboot/inetboot.sun4u 819DC558.ChorusOS.4.0
    
  4. Create a /tftpboot/export/root/target/platform/sun4u directory on the boot server.

  5. Copy the system image, chorus.obp, to the directory you just created.

  6. Edit /etc/bootparams to include the following, creating the file if it does not exist yet:

    target root=boot_server:/tftpboot/export/root/target
    

    Where target is the target system hostname and boot_server is the boot server hostname.

  7. Edit /etc/hosts to include the following:

    target_IP_address     target
    

    Where target_IP_address is the target IP address, such as 129.157.197.88, and target is the target system hostname.

  8. Edit /etc/ethers to include the following:

    target_Ethernet_address     target
    

    Where target_Ethernet_address is the target IP address such as 8:0:20:a7:d6:f3 and target is the target system hostname.

  9. Add the following line to /etc/dfs/dfstab:

    share -F nfs -o rw -d "ChorusOS boot"  /export/home
  10. Edit /etc/nsswitch.conf so that the hosts, ethers, and bootparams entries read files rather than NIS databases. For example:

    #
    # /etc/nsswitch.nis:
    #
    # An example file that could be copied over to /etc/nsswitch.conf; it
    # uses NIS (YP) in conjunction with files.
    #
    # "hosts:" and "services:" in this file are used only if the
    # /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
    
    # the following two lines obviate the "+" entry in /etc/passwd and /etc/group.
    passwd:     files nis
    group:      files nis
    
    # consult /etc "files" only if nis is down. 
    hosts:      files [NOTFOUND=return] nis
    networks:   nis [NOTFOUND=return] files
    protocols:  nis [NOTFOUND=return] files
    rpc:        nis [NOTFOUND=return] files
    ethers:     files [NOTFOUND=return] nis
    netmasks:   nis [NOTFOUND=return] files	
    bootparams: files [NOTFOUND=return] nis
    publickey:  nis [NOTFOUND=return] files
    
    netgroup:   nis
    
    automount:  files nis
    aliases:    files nis
    
    # for efficient getservbyname() avoid nis
    services:   files nis
    sendmailvars:   files
  11. Reboot the boot server.

Booting the Target System

    Boot the target by entering the following in the target system console:


    # ok boot net /platform/sun4u/chorus.obp