The installation/configuration of a REX system requires:

1)  Installation of the QNX real time OS.
2)  Installation/configuration of the TCP/IP Network Utilities for QNX.
3)  Installation of the WATCOM C compiler.
4)  Installation of the appropriate REX hardware (dummy terminal, NIC, etc.).
5)  Installation/configuration of the REX software.  


QNX 4.23 Installation

1)  Boot from QNX Boot Disk

2)  Type "install" from the command prompt.

3)  Follow the prompts to answer the questions about keyboard type, etc.  They're pretty straight forward until FDISK.

4)  In FDISK:
a)  Remove any partitions using the "delete" option.
b)  Create a new QNX partition using "change" option.    The QNX partition type is 77.  When deciding the partition size, keep in mind QNX can handle only 8 gigs per install.  (Actually, QNX can handle more than 8 gigs, but it can keep track of only 1024 cylinders.  Unless you change the way BIOS does your hard drive memory mapping,  it will likely have the mapping such that 1024 cylinders will map to 8 gigs.)
c)  Remember to save any changes you make before exiting using the "save" option or the will not take effect.

5)  After the partitioning, the install sequence insists you run a scan of the hard disk to check for bad blocks.  Run whichever one you want, but keep in mind that, depending on the option you choose, the scan will take anywhere from 1 to 25s per MB, so you might be in for a considerable wait.

6)  After the scan, the install sequence prompts for the 'Operating System Install Disks'.  The first disk is supposed to contain licensing information.  It gives you 4 tries to insert the disk with the correct licensing, after which point it doesn't seem to care about licensing and installs the OS anyways using the 4 install disks.  (There wasn't any licensing information on the first installation disk I used, but it can be found on the first disk of the 4.22 installation set)

7)  After the install, some network configuration questions are asked.
a)  Most likely you will want to use 32-bit drivers.
b)  Unless you are adding this system to an already existing QNX network, you will want to set this system's node number to 1, which is the default.
c)  Set your time to the appropriate time zone.
d)  Again, unless you are planning to run a network of QNX machines, you will want to indicate that this is not being added to a network.


TCP/IP Networking Installation/Configuration

1)  Insert disk 1 and type install.

2)  Indicate a new install (a).  Follow prompts to complete the install sequence.

3)  If any of the required drivers are on an accompanying floppy, copy them to the hard drive into the /bin/ directory.  A useful process to start is Dosfsys.  It allows you to read from a DOS floppy.  You can either insert the line "Dosfsys &" in the sysinit.1 file located in /etc/config/, which will cause the process to be started in the background every time the system is booted, or you can simply type the line "Dosfsys &" at the command prompt.  Once the Dosfsys process is running, any located on an inserted DOS floppy will appear in the /dos/a/ directory and can be copied/modified from there.  (Also note that the -r flag is required during a copy in order to copy subdirectories.)

4)  Find and edit the host file, which should be located in /etc/hosts.  The host file should contain the line: "127.0.0.1 localhost localhost.my.domain", as well as lines consisting of an ip address and the corresponding hostname that the ip is supposed be mapped to.  An example hostfile:

127.0.0.1 localhost localhost.my.domain
130.15.149.218 ruby
130.15.104.200 sol9
130.15.149.249 grey
etc...

It is critical that you enter the correct ip address and the name of the localhost because following instructions assume this step has been performed correctly.  Note that any lines beginning with a hash symbol (#) are comment lines which are ignored during execution.  The hosts file on a fresh install of QNX should only require you to add the lines mapping hostnames to addresses.

OPTIONAL
5)  Find and edit the resolv file, which should be located in /etc/resolv.  This step tells the network card where to look when given a hostname that it can't resolve using the hosts file.  (Actually, I'm told there's a bug in QNX 4.23a that has the resolv file referred to first instead of the host file.  So if you perform this step, be prepared to have to type in the full hostname of the host when performing network functions instead of the name given in the hosts file.  E.g. ruby.queensu.ca instead of just ruby, or something to that effect.)  The resolve file contains information about the DNS servers that this host should refer to when trying to resolve hostnames to ip addresses.  The first line should contain the the full hostname of the local host and the following lines should contain the ip addresses of the DNS servers.  Here's an example resolv file:

domain ruby.queensu.ca
nameserver 130.15.126.7
nameserver 130.15.126.54

6)  There are a few processes that need to be started in order to use a network card for TCP/IP communication over a network.  These processes include drivers which are specific to the network card you are using.  The card will not work correctly with the wrong driver so make sure you determine which driver is required to communicate with your card.  The drivers are located in /bin/Previously we have been using an ether21x4x class card, so the appropriate process was "Net.ether21x4x".  The driver process specific to your card may be different.  The following lines should be added to the sysinit.1 file. (this example uses ruby as the local host name as in previous examples, but in your sysinit.1 file, ruby should be replaces with the name of your system as specified in the hosts file):

Net &
Net.ether21x4x &
Socket ruby &
ifconfig en1 ruby up 

IMPORTANT:
It's always a good idea to try and start processes that you plan to add to the sysinit.1 file before you actually add them and reboot (This can be done from the command prompt by typing the process name followed by an '&'.  The & simply tells QNX to run the process in the background so that the command prompt is returned to you.).  The sysinit.1 file is what the system refers to when starting up.  It executes each of the commands listed in the file, so if one of the processes started does something unexpected, the system could crash during startup and you might not be able to repair it without a fresh install.


JOVE Installation

1)  Create a /usr/local/ directory if it doesn't already exist.  Copy the usrlocal.tar file from sol1/n/dave/ into the /usr/local/ directory.  Make sure you are in the /usr/local/ directory and type "tar -xvf usrlocal.tar" to unpack the archive.


WATCOM C/C++ Installation

1)  Insert installation CD

2)  Move to the /cd0/ directory, which contains a list of the files on the inserted CD (or it might possibly be the /cd/ directory) .  Type install_watcom.

3)  Instructions on how to perform the install are given.  There are some hoops to jump through about source/destination directories.  Follow the prompts and answer the questions, they're all pretty straight forward.

4)  Install the compiler license.  To do this, insert the licensing diskette and from the root type "license /dev/fdO".

5)  Refresh the license file by typing, from the root, "license -r".


REX Hardware Installation

1)  Install the appropriate REX compatible peripherals.  Refer to the accompanying manuals or a previously setup REX system for the correct jumper settings on the cards.

2)  Connect a terminal to the QNX system using a serial null modem cable.


REX Software Installation/Configuration

1)  Unpack a tar image of REX in the appropriate directory.

2)  You need to copy 4 library files from ?.
socket.h goes into  /usr/include/sys/
in.h goes into /usr/include/netinet/
inet.h goes into /usr/include/arpa/
netdb.h goes into /use/include/

**3)  Link the make file in /bin/ to the appropriate qmake.  A copy of the qmake file can be found in sol1/n/dave/.  Copy it to the /bin/ directory.

4)  Add the following lines to sysinit.1 to initialize the dummy terminal communicating via a serial cable:

int10 &
Iso9660fsys &
tinit -t /dev/ser1 &

DO NOT MESS WITH config.tar.



After all these steps are taken, your sysinit.1 file should look something like this:

set -i
export TZ=est05edt04,M4.1.0/2,M10.5.0/2
rtc -l hw
Dev &
Dev.ansi -Q -n 4 &
reopen //0/dev/con1
Dev.ser &
Dev.par &
Dev.pty &
Fsys.floppy &
Pipe &
emu87 &
nameloc &
int10 &
Iso9660fsys &
Net16 &
Net16.ether21x4x &
Socket rose &
ifconfig en1 rose up
freeze -cdz /etc/logo.F
tinit -T /dev/con* -t /dev/con1 &
tinit -t /dev/ser1 &