Table of Contents
Creation of your own configuration file using a template
By default, all the CHARON templates are located in the "/opt/charon/cfg" folder. Copy the appropriate template configuration file(s) to your home directory (or to any directory intended for CHARON-VAX). Name them meaningfully and set proper privileges.
For example:
|
Please do not edit the original template configuration files since they can be updated or even removed on update/deinstallation of CHARON-VAX
Once the file has been created you can open it in your favorite editing tool and proceed with modification to reflect the exact features of the system you are going to emulate.
We will review all the parameters step by step issuing some recommendations and guidelines.
Note: lines preceeded by the comment sign "#" inside the configuration files will not be interpreted. You can use this sign to debug your configuration.
VAX model specification
The first configuration statement is the specification of the exact VAX hardware model to emulate, for example:
|
You must leave this line untouched.
If you create the CHARON-VAX configuration file from scratch it must be the very first uncommented line in the configuration file.
Configuration name
The next configuration statement is the "Configuration name" option:
|
You can optionally uncomment this line to differentiate this CHARON-VAX instance from all others in a multi-instance environment. The configuration name can be any label that is meaningful. The example below shows the configuration name incorporated into the log file name.
Log file parameters
Execution of CHARON-VAX creates one log file or a set of log files reflecting the progress of its start-up and ongoing operation - start and end time of execution, system information, license and configuration details, warnings, reports on problems that may occur, etc. In case of possible problems either with the running CHARON-VAX or the emulated system configuration (such as the absence or malfunction of certain devices), the log file(s) is the primary source to be analyzed for troubleshooting. If it becomes necessary to contact Stromasys for support, the cfg and log files often will be requested to begin problem resolution.
Here is an example of a field test CHARON-VAX log file:
|
The next group of parameters defines the name of CHARON-VAX log file and how CHARON-VAX will use it:
|
Rotating log (default)
By default CHARON-VAX utilizes a so called "rotating log". This means that a new default log file is always created each time CHARON starts and can switch to another log file if the size of the log file exceeds 64Kb (This behavior can be changed with "set session log_file_size" and "set session log_rotation_period" commands; see more details in "General Settings" chapter of this guide). This mode is turned on if all the log parameters above are disabled (commented out) or the "session_log" parameter is pointing to a directory rather than to a file. If a directory is specified, the log files will be created in that directory.
Names of the rotating log files are composed as follows:
|
If the "Configuration name" parameter described before is omitted (commented out), the log name has the following format instead:
|
Note that "xxxxxxxxx" is an increasing decimal number starting from "000000000" to separate log files with the same time of creation.
Single log
Alternatively it is possible to use just a single log file. Uncomment the "set session log" line and specify the desired CHARON-VAX log file name. Optionally, a path can be added to the log file name.
The log file can be extended ("log_method = append") or overwritten ("log_method = overwrite") by CHARON-VAX.
Below is a specification of a CHARON-VAX log file located in the "/my_logs" directory which will be overwritten each time CHARON-VAX starts:
|
TOY, ROM and EEPROM containers
The next objects to be configured are TOY, ROM and EEPROM containers (their presence depends on the VAX model). It is always recommended to enable them. If a container file of the given name does not exist, CHARON-VAX will create it. Specific paths can be added to the file name specification.
TOY means "Time of Year"; its container records time, date and some console parameters while CHARON-VAX is not running. To enable, uncomment the following line:
|
The ROM container stores an intermediate state of the Flash ROM and some console parameters. So its container is also recommended to keep uncommented:
|
EEPROM stores the NVRAM content, so its container is also recommended to keep uncommented:
|
Emulated memory (RAM) size
The next parameter defines the amount of host memory the chosen CHARON-VAX model reserves for the emulation:
|
The amount of RAM is specified in MB. It cannot exceed or be lower than certain values specific for each VAX model. It is very important to keep the listed predefined increment between possible memory values.
The following table shows all the parameters:
Hardware Model | RAM size (in MB) | |||
| Min | Max | Default | Increment |
MicroVAX_II | 1 | 16 | 16 | 1,8,16 |
MicroVAX_3600 | 16 | 64 | 16 | 16 |
MicroVAX_3900 | 16 | 64 | 16 | 16 |
VAXserver_3600 | 16 | 64 | 16 | 16 |
VAXserver_3900 | 16 | 64 | 16 | 16 |
VAXserver_3600_128 | 32 | 128 | 32 | 32 |
VAXserver_3900_128 | 32 | 128 | 32 | 32 |
MicroVAX_3100_Model_96 | 16 | 128 | 16 | 16 |
VAXstation_4000_Model_90 | 16 | 128 | 16 | 16 |
VAX_4000_Model_106 | 16 | 128 | 16 | 16 |
VAX_6000_Model_310 | 32 | 512 | 32 | 32 |
VAXserver_3600_512 | 32 | 512 | 32 | 32 |
VAXserver_3900_512 | 32 | 512 | 32 | 32 |
MicroVAX_3100_Model_98 | 16 | 512 | 16 | 16 |
VAX_4000_Model_108 | 16 | 512 | 16 | 16 |
VAX_4000_Model_700 | 64 | 512 | 64 | 64 |
VAX_4000_Model_705 | 64 | 512 | 64 | 64 |
VAX_6610 | 128 | 3584 | 128 | 128 |
VAX_6620 | 128 | 3584 | 128 | 128 |
VAX_6630 | 128 | 3584 | 128 | 128 |
VAX_6640 | 128 | 3584 | 128 | 128 |
VAX_6650 | 128 | 3584 | 128 | 128 |
VAX_6660 | 128 | 3584 | 128 | 128 |
It is possible to leave the RAM line commented out. In this case the model's default RAM amount is used.
Console
Mapping to system resources
The next step is the specification of VAX console (OPA0) serial line:
|
The goal of this configuration step is to tell CHARON-VAX what host device to use as the virtual system console. The following options are available:
Option | Description |
---|---|
physical_serial_line | Mapping to host serial line, both physical and virtual. Use the following mapping for different types of host serial lines:
|
virtual_serial_line | Mapping to an IP port of CHARON-VAX host. |
operator_console | Mapping to the current TTY console |
The default setting is "operator_console".
Note that the VAX 4000 and MicroVAX 3100 models have a 4-line QUART adapter onboard, so their configuration for the console line looks a bit different:
|
In case of VAX 4000 and MicroVAX 3100 models it is possible to configure up to 4 independent console lines: OPA0, TT0, TT1 and TT2. The main one is OPA0.
Note there are a number of additional parameters for CHARON-VAX serial line configuration. Follow this link for details.
Exit on pressing F6 button
The next parameter in the template configuration file relevant to the console is the specification of a hot key to trigger an exit from CHARON-VAX:
|
It is strongly recommended to uncomment this line to provide CHARON-VAX the ability to exit by pressing the "F6" button.
Disk subsystem
The next step is configuration of the disk subsystem and mapping it to system resources using the samples given in the template configuration files.
CHARON-VAX supports MSCP, DSSI, CI and SCSI disk controllers. The examples below are for MSCP and SCSI controllers only. DSSI controllers are discussed in details in the following section, CI controllers - in this section.
MSCP disk controllers (RQDX3, KDB50, KDM70)
Below is a typical configuration sample for MSCP disk controller RQDX3:
|
The first line ("load RQDX3 DUA") loads disk controller RQDX3 with name DUA, followed by 4 lines showing different ways of mapping to the host resources:
Type of mapping | Description |
---|---|
"<file-name>.vdisk" | Mapping to files representing physical disks of the VAX system (disk images). |
"/dev/sd<L>" | Mapping to physical disks. "L" is letter here. Be careful not to destroy all the information from the disk dedicated to CHARON-VAX by mistake! These disks can not be formatted by the host OS. It is also possible to use not a whole disk, but previously created partitions on it. In this case the syntax is the following: "/dev/sd<L><N>" where N is the number of partition to be used. Since "/dev/sd<L>" addressing is not persistent, so it is strongly recommended to use "/dev/disk/by-id/..." syntax instead to refer the disk by its WWID - especially in the enviroments utilizing FC and SAN storages (see below). |
"/dev/dm-<N>" "/dev/mapper/mpath<N>" "/dev/mapper/disk<N>" | Mapping to multipath disk. Be careful not to destroy all the information from the disk dedicated to CHARON-VAX by mistake. These disks must not be formatted by the host OS. |
"/dev/disk/by-*" | Mapping to physical disk.
Be careful not to destroy all the information from the disk dedicated to CHARON-VAX by mistake. These disks must not be formatted by the host OS. |
"/dev/sr<N>" | Mapping to CD-ROMs. There are some variants of this mapping: "/dev/cdrom<N>" or "/dev/cdrom" |
"<file-name>.iso" | Mapping to an ISO file for reading distribution CD-ROM images. |
Numbers in the square brackets represent unit numbers associated with each container of the MSCP controller. For example, line 3 of the configuration sample above creates disk "DUA2". The maximum unit number allowed is 9999, significantly more than the original hardware provided.
It is possible to load several RQDX3 controllers DUB, DUC, etc. (see lines 6-7, above) by configuring specific addresses for them on the Qbus. Use the "CONFIGURE" utility available on the VAX console to determine the addresses. Please refer to specific HP documentation for further information.
Please also refer to HP documentation for information on placement of additional KDM70 controllers on an XMI bus (VAX 6000 models) and additional KDB50 controllers on a BI bus (VAX 6310).
Note that the KDM70 controller is capable of mapping to files representing tapes (tape images) and physical tape devices:
|
Follow this link for details of (T)MSCP controllers configuration.
Back to Table of Contents
SCSI controller NCR53C94
The VAX 4000 and MicroVAX 3100 have an NCR53C94 SCSI controller onboard for support of different types of SCSI devices including disks and tapes. Optionally a second controller can be added.
Below is a typical configuration template for a preloaded "PKA" NCR53C94 SCSI controller:
|
Note that NCR53C94 SCSI controller mapping to system resources is done via specific auxiliary objects:
Mapping Object | Description |
---|---|
virtual_scsi_disk | Mapping to a file representing VAX disk (disk image) on the host physical disk:
Be careful not to destroy all the information from the disk dedicated to CHARON-VAX by mistake! These disks can not be formatted by the host OS. Since "/dev/sd<L>" addressing is not persistent, so it is strongly recommended to use "/dev/disk/by-id/..." syntax instead to refer the disk by its WWID - especially in the enviroments utilizing FC and SAN storages. It is also possible to use not a whole disk, but previously created partitions on it. In this case the syntax is the following: "/dev/sd<L><N>" where N is the number of partition to be used. |
physical_scsi_device | Mapping to a host SCSI device:
|
virtual_scsi_cdrom | Mapping to a host CD-ROM (not only SCSI) or to ISO image:
|
virtual_scsi_tape | Mapping to a file representing tape (tape image). It may contain a path, for example: "/my_tapes/backup.vtape" |
Let's look at the syntax of the mapping objects. All of them have several important parameters:
Mapping objects parameters | Description |
---|---|
scsi_bus | The name of the NCR53C94 SCSI controller. A typical value for the first and only preloaded NCR53C94 SCSI controller is "PKA" |
scsi_id | SCSI address of this particular mapped device. Note that the preloaded NCR53C94 SCSI controller claims address "7"; addresses 0-6 are vacant and useable. The resulting names of virtual SCSI devices as they are seen in VAX/VMS are made up of the VMS name of the SCSI controller and the device address. For PKA, the device names in VMS will be DKA0, DKA1 etc |
container | A keyword for specification of which host device is mapped to a particular virtual SCSI device. It can be disk or tape image, physical disk etc |
It is possible to configure another NCR53C94 SCSI controller "PKB" by uncommenting the "include kzdda.cfg" line:
|
In the example above "pkb_0" virtual SCSI device uses "PKB" controller by specifying a parameter "scsi_bus=pkb"
Note that versions of VAX/VMS older than 5.5-2H4 do not support the optional SCSI controller and might fail to boot if it is loaded.
Follow this link for details of NCR53C94 SCSI controller controllers configuration.
Tape subsystem
Some MSCP and SCSI controllers support tape devices, however CHARON-VAX also emulates specific MSCP tape devices such as TQK50 and TUK50.
Follow this link for more details of (T)MSCP controllers configuration.
TQK50 controller
Example statements to configure TQK50 are shown below:
|
The first line ("load TQK50 MUA") loads tape controller TQK50 with a name of MUA. The following 2 lines demonstrate different ways of mapping to host resources:
Type of mapping | Description |
---|---|
"<file-name>.vtape" | Mapping to files representing tapes (tape images). |
"/dev/sg<N>" | Mapping to host tape devices. |
Numbers in the square brackets represent unit numbers associated with each container of the TQK50 controller. For example, line 3 of the configuration sample above creates tape drive "MUA1". The maximum unit number allowed is 9999, significantly more than the original hardware provided
It is possible to load several TQK50 controllers (see the lines 4-5) by configuring specific addresses for them on the Qbus. Use the "CONFIGURE" utility available on the VAX console to determine the addresses. Please refer to specific HP documentation for further information.
TUK50 controller
TUK50 is a UNIBUS controller used by the VAX 6310:
|
The first line loads a UNIBUS BI adapter "DWBUA". Then configure the "TUK50" tape controller the same way as the TQK50.
Serial Lines
CHARON-VAX supports the following serial lines controllers: CXA16, CXB16, CXY08, DHQ11, DHV11, DZV11, DZQ11, DL11, DLV11, DZ11, DHW42-AA, DHW42-BA and DHW42-CA.
All of them are configured according to the following template:
|
The first 5 lines of the example above demonstrate loading serial line controllers of different types. The name of the controller (in this example) will be "TXA"
Once the controller is loaded it can be mapped to system resources (lines 6-11). The following options are available:
Option | Description |
---|---|
physical_serial_line | Mapping to host serial line, both physical and virtual. Use the following mapping for different types of host serial lines:
|
virtual_serial_line | Mapping to an IP port of CHARON-VAX. |
The example above loads a DHQ11 serial line controller with one "TXA0" line mapped to the host virtual serial line "/dev/tty0"
Look at the line "set TXA line[0]=TXA0" in the example. This one and the following lines of similar syntax map the loaded virtual controller ("TXA") to instances of host serial lines ("TXA<N>").
The number of serial lines possible for each controller depends on its type and corresponds to the HP specification on a given controller.
It is possible to load several CXA16, CXB16, CXY08, DHQ11, DHV11, DZV11, DZQ11, DL11, DLV11 and DZ11 controllers (see the lines 12-16) by configuring specific addresses for them on the Qbus. Use the "CONFIGURE" utility available on the VAX console to determine the addresses. Please refer to specific HP documentation for further information.
VAX 4000 and MicroVAX3100 support DHW42-AA, DHW42-BA and DHW42-CA serial lines adapters:
|
Configuring these adapters is the same as above, except it is possible to load one and only one instance of DHW42-AA, DHW42-BA or DHW42-CA.
Note that additional parameters exist for CHARON-VAX serial lines configuration, follow this link for details.
Networking
CHARON-VAX supports DEQNA, DESQA, DELQA, DEUNA, DELUA, DEMNA, DEBNI and PMADAA virtual network adapters.
All of them are configured in a similar way:
|
In the example above the first line loads DELQA virtual adapter with a name "XQA"; the following 2 lines map it to host network interface "eth1". Note that the mapping is performed in 2 steps:
- A mapping object "packet_port" with a name "XQA0" is loaded and connected to host interface "eth1", so CHARON-VAX will use this interface for its networking
- The loaded DELQA virtual adapter "XQA" is connected to the "packet_port" object "XQA0"
It is possible to load several DEQNA, DESQA, DELQA, DEUNA and DELUA controllers (see the lines 4-5) by configuring specific addresses for them on the Qbus. Use the "CONFIGURE" utility available on the VAX console to determine the addresses. Please refer to specific HP documentation for further information.
Some network adapters available in CHARON-VAX are preloaded (for example, the SGEC controller for the MicroVAX 3100 with the predefined name "EZA"), so their configuration is even more simple:
|
Follow this link for more details of CHARON-VAX network controllers configuration.
Auto boot
CHARON-VAX can be configured to automatically boot an operating system at start up.
MicroVAX 3100, VAX 6310 and VAX 4000 boot automatically if correct boot flags are set with VAX console:
|
Please check that the TOY, EEPROM and ROM containers (see above) are enabled so console command changes are saved between reboots.
The ROM of certain VAXes (MicroVAX II, MicroVAX 3600, MicroVAX 3900, VAXserver 3600 and VAXserver 3900) does not allow the SRM console to accept the commands to enable auto booting. In this case, use a configuration file setting instead:
|
CHARON-VAX 6000 models have a similar configuration setting:
|
Host load balance for SMP systems
VAX 6620 through VAX 6660 models emulate 2-6 CPUs respectively. In this situation, loading of the host system can be tuned with the following configuration file settings:
Setting | Description | Example | |
---|---|---|---|
affinity | This setting binds the running instance of the emulator CPUs to particular host CPUs. This should be used for soft partitioning host CPU resources or for isolating multiple CHARON instances on the same host from each other. By default the emulator instance allocates as many host CPUs as possible. “Affinity” overrides the default and allows explicit specification of which host CPUs will be used by the instance. Affinity does not reserve the CPU for exclusive use. |
| |
n_of_io_cpus | Reserves host CPUs (of those specified by “affinity” parameter, if any) for use by the emulator for I/O handling. By default the emulator instance reserves one third of available host CPUs for I/O processing (round down, at least one). The “n_of_io_cpus” overrides the default by specifying the number of I/O host CPUs explicitly. |
|