This chapter describes how to build and boot a ChorusOS system for UltraSPARC IIi/IIe processor families. For information on the system requirements and the packages available with UltraSPARC IIi/IIe targets, see the ChorusOS 5.0 Target Family Guide (SPARC Platform Edition).
UltraSPARC IIi/IIe target systems do not boot system images directly, but instead require inetboot to boot.
As a result, the boot procedure that follows differs from the procedure described in Chapter 5, Setting Up a Boot Server, and requires that you use a boot server that reads local files instead of the NIS database.
This chapter includes the following sections:
The following procedure assumes that the Sun Embedded Workshop software has already been correctly installed on the host workstation. See Chapter 1, Installing on the Host for installation instructions.
Create and change to a build directory where you will build the system image:
$ mkdir build_dir $ cd build_dir |
The file system containing the build_dir directory must be accessible by NFS from the remote ChorusOS target.
Set an environment variable to use with the configure(1CC) command as a shortcut to the directory.
For example:
$ export DIR=/opt/SUNWconn/SEW/5.0-UltraSPARC/chorus-usparc |
Verify that the PATH environment variable has been set correctly to include the directory:
install_dir/chorus-usparc/tools/host/bin
where the default install_dir is /opt/SUNWconn/SEW/5.0-UltraSPARC.
The PATH environment variable must include /usr/openwin/bin, which contains the imake utility.
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 \ $DIR/src/nucleus/bsp/usparc/cpxxxx |
The preceding command configures the build directory to include components installed during a "Default Install". This command does not include optional components, such as the X library or code examples, that you may choose decide to install separately on Solaris host workstations. For example, to include everything in your build environment:
$ configure -b $DIR/kernel \ $DIR/os \ $DIR/opt/X11 \ $DIR/tools \ -s $DIR/src/nucleus/bsp \ $DIR/src/nucleus/bsp/usparc/cpxxxx \ $DIR/src/opt/examples |
If you are building the system image from a source distribution, see the ChorusOS 5.0 Source Delivery Guide.
As a result of the configuration, build_dir contains the Makefile, which generates the build environment, and the Paths file, which specifies paths to files required by and created in the build environment.
Generate the build environment:
$ make |
Define the target board using the TARGET feature using the configurator(1CC):
$ configurator -set TARGET=CP1500 |
The following options are available with the TARGET feature:
CP1500 (default)
CP2000
Build the system image:
$ make chorus |
The resulting system image file, chorus.obp, is located in the build_dir directory.
You can also make a smaller system image that includes only the operating system microkernel:
$ make kernonly |
Generate the NFS root file system:
$ make root |
This command creates a root directory in the build directory. The root directory contains binary and configuration files that are accessed by the target system.
The following procedure requires that the target system and boot server must be on the same subnet.
See Chapter 5, Setting Up a Boot Server. for instructions on how to enable TFTP and RARP services on the boot server.
Become superuser on the boot server:
$ su Password: superuser_password # |
Copy the inetboot.sun4u file, that is, install_dir/chorus-usparc/opt/unsupported/inetboot.sun4u to the /tftpboot directory, where, the install_dir is /opt/SUNWconn/SEW/5.0-UltraSPARC.
Create a soft link from the inetboot.sun4u file to a file called /tftpboot/target_IP_address_in_hex.
For example, the file for the target system with IP address 129.157.197.88 is called 819DC558, 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
To create the soft link for the preceding examples, use the following commandS:
# ln -s /tftpboot/inetboot.sun4u 819DC558 |
Create a /tftpboot/export/root/target/platform/sun4u directory on the boot server.
Copy the system image, chorus.obp, to the directory you just created.
Edit /etc/bootparams to include the following:
target root=boot_server:/tftpboot/export/root/target
where target is the target system hostname and boot_server is the boot server hostname.
Create the bootparams file if it doesn't exist.
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.
Edit /etc/ethers to include the following:
target_Ethernet_address target
where target_Ethernet_address is the target Ethernet address (such as 8:0:20:a7:d6:f3) and target is the target system hostname.
Edit /etc/dfs/dfstab to include the following:
share -F nfs -o rw -d "ChorusOS boot" /export/home
For the directory to be shared, you must stop and then restart the NFS server on the host workstation as follows:
$ su Password: superuser_password # /etc/init.d/nfs.server stop # /etc/init.d/nfs.server start |
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 next 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
Reboot the boot server.
The ChorusOS system image is running on the target.
For information on what to do next, see About ChorusOS 5.0 Documentation, which will guide you to the appropriate information for your task.