VMS:KitsNet Standard: Difference between revisions

Peter A. Smode (talk | contribs)
Created page with "<bs:pageaccess groups="kitsnet_adm"></bs:pageaccess> ==.ssh== <code>mkdir .ssh</code> then use sftp to pull in contents from another system. ==sudoers== Activate '''wheel'''..."
 
Peter A. Smode (talk | contribs)
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
<bs:pageaccess groups="kitsnet_adm"></bs:pageaccess>
__FORCETOC__
==.ssh==
<code>mkdir .ssh</code> then use sftp to pull in contents from another system.


==sudoers==
==Prep for XXXVMS==
Activate '''wheel''' with no password


==grub==
* Start InfoServer software with <code>@SYS$STARTUP:ESS$STARTUP DISK TAPE</code>
<code># vi /etc/default/grub</code>
* Bind to and mount XXXVMS volume<syntaxhighlight lang="shell-session">
<syntaxhighlight>
$ MCR ESS$LADCP BIND /SYS XXXVMS
GRUB_TERMINAL_INPUT="console serial"
%LADCP-I-BIND, service bound to logical unit DAD$XXXVMS (_DAD1:)
GRUB_TERMINAL_OUTPUT="console serial"
$ MOUNT /SYSTEM DAD$XXXVMS XXXVMS
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/V0uv029-swap rd.lvm.lv=V0uv029/root rd.lvm.lv=V0uv029/swap console=ttyS0"
%MOUNT-I-WRITELOCK, volume is write locked
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
%MOUNT-I-MOUNTED, XXXVMS mounted on _DAD1:
</syntaxhighlight>
* Decide devices for Cluster Common directory strucucture and local utilities. Use these as areguments to XXXVMS_PREP.COM. Default for each is SYS$SYSDEVICE<syntaxhighlight lang="shell-session">
$ @DAD$XXXVMS:[LOCAL_UTIL.XXXVMS]XXXVMS_PREP SYS$SYSDEVICE: SYS$SYSDEVICE:
%CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM] created
%CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.LOGFILES.VX2] created
%CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.SYSMGR] created
%CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.SYSMGR.VX2] created
%CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.SYSEXE] created
%CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.SYSLIB] created
%CREATE-I-CREATED, _VX2$DUA0:[LOCAL_UTIL] created
%CREATE-I-CREATED, _VX2$DUA0:[LOCAL_UTIL.MISC] created
%CREATE-I-CREATED, _VX2$DUA0:[LOCAL_UTIL.SYS_MISC] created
%CREATE-I-CREATED, _VX2$DUA0:[LOCAL_UTIL.XXXVMS] created
</syntaxhighlight>
</syntaxhighlight>
For RHEL 9, the GRUB_CMDLIN_LINUX needs to end with <code>console=tty0 console=ttyS0,115200</code>


<code># grub2-mkconfig -o /boot/grub2/grub.cfg</code>
== Bring in XXXVMS with LU_MISC and SYS_MISC ==
* <code>BACKUP /LOG DAD$XXXVMS:[STARTUP.SYS$STARTUP]*.* SYS$COMMON:[SYS$STARTUP]*.* /NEW_VERSION</code>
* Copy <code>SYLOGICALS.COM</code> from <code>DAD$XXXVMS:[STARTUP.SYSMGR]</code> to <code>SYS$COMMON:[SYSMGR]</code>. Tailor if necessary and execute (CLUCOM_XXXVMS and LU_DEVNAM will need to be checked at least)
* <code>DEFINE DADLUR$ DAD$XXXVMS:[LOCAL_UTIL.] /TRANSLATION=(CONCEAL)</code>
* <code>BACKUP /LOG DADLUR$:[*...]*.*;* LU_ROOT_DEV:[*...]*.*;*</code>


But for Rocky 9.3 and later, an extra qualifier is needed:
== Startup and Initial Tests ==


<code># grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline</code>
* Add <code>STARTUP_P2="DC"</code> TO SYS$SYSTEM:MODPARAMS.DAT
==dnf and files in /etc/yum.repos.d==
* Use SYSGEN to <code>USE CURRENT</code> parameters to set <code>STARTUP_P2</code> to <code>"DC"</code> and <code>WRITE CURRENT</code>
<syntaxhighlight lang="shell-session">
* Reboot to test
# yum install wget
* Sanity check with <code>@SYS_MISC:CHECK_BOOT</code> and detailed review with <code>TYPE /PAGE=SAVE SYS$SYSTEM:STARTUP.LOG</code>
#
* Add files to SYSMAN STARTUP<syntaxhighlight lang="shell-session">
# #for CentOS
$ MCR SYSMAN START ADD FILE /PHASE=LPBEGIN XXXVMS$CONSOLE_ENABLE.COM
# mv CentOS-Linux-AppStream.repo CentOS-Linux-AppStream.repo-ORIG
$ MCR SYSMAN START ADD FILE /PHASE=LPBEGIN XXXVMS_LAT$STARTUP.COM /MODE=SPAWN
# echo > CentOS-Linux-AppStream.repo
$ MCR SYSMAN START SHOW FILE
# mv CentOS-Linux-BaseOS.repo CentOS-Linux-BaseOS.repo-ORIG
%SYSMAN-I-COMFIL, contents of component database on node VX2
# echo > CentOS-Linux-BaseOS.repo
Phase        Mode  File
# wget http://wort/KitsNet/KitsNet-v8.repo
------------ ------ ---------------------------------
#
LPBEGIN      DIRECT XXXVMS$CONSOLE_ENABLE.COM
# #for Rocky v8
LPBEGIN      SPAWN  XXXVMS_LAT$STARTUP.COM
# mv Rocky-AppStream.repo Rocky-AppStream.repo-ORIG
# echo > Rocky-AppStream.repo
# mv Rocky-BaseOS.repo Rocky-BaseOS.repo-ORIG
# echo > Rocky-BaseOS.repo
# wget http://wort/KitsNet/KitsNet-Rv8.repo
#
# #for Rocky v9
# wget http://wort/KitsNet/KitsNet-Rv9.repo
# mv rocky.repo rocky.repo-ORIG
# cp rocky.repo-ORIG rocky.repo
# #manually edit rocky.repo to comment out [baseos] and [appstream] stanzas
#
# dnf clean all
# dnf list
</syntaxhighlight>
</syntaxhighlight>
* Reboot to test


==Packages, packages, packages...==
== Basic Redirects and Queue Manager ==
<syntaxhighlight lang="shell-session">
# dnf install -y epel-release
# dnf config-manager --set-enabled powertools #(prior to Rocky Linux 9.0)
# dnf config-manager --enable crb #(Rocky Linux 9.0 onward)
# dnf install -y yum-utils net-tools lsof rsync vnstat screen sysstat ncdu vim bind-utils python3 vim dnf-automatic glances
</syntaxhighlight>''The first KitsNet build with Rocky Linux v8.4 generated a system without rsyslog installed nor syslog started. As a result, most logs from <code>/var/log</code> were missing. <code>dnf install rsyslog</code> installed the missing packages and enabled and started the service.''


==Fix glances==
* Edit SYLOGICALS.COM and activate the following logical names. Execute and test.
As per [https://github.com/giampaolo/psutil/issues/1354 disk_io_counters() fails on Linux kernel 4.19], there is a bug in the '''psutil''' python module that causes it to fail on reporting Disk I/O counters in newer kernels. This in turn causes the glances utility to fail to report Disk I/O counters. The fix is to patch the <code>_pslinux.py</code> file in the psutil module.<syntaxhighlight lang="shell-session">
** ACCOUNTNG
# ls -al /usr/lib64/python3.6/site-packages/psutil/_pslinux.py
** LAN$NODE_DATABASE
-rw-r--r--. 1 root root 74870 Jul  3 09:56 /usr/lib64/python3.6/site-packages/psutil/_pslinux.py
** NETNODE_REMOTE
# grep "fields_len == 14" /usr/lib64/python3.6/site-packages/psutil/_pslinux.py
** NETNODE_UPDATE
        elif fields_len == 14:
** NETOBJECT
# sed -i 's#fields_len == 14:#fields_len == 14 or fields_len == 18:#g' /usr/lib64/python3.6/site-packages/psutil/_pslinux.py
** NETPROXYdir dad$xxxvms
# grep "fields_len == 14" /usr/lib64/python3.6/site-packages/psutil/_pslinux.py
** NET$PROXY
        elif fields_len == 14 or fields_len == 18:
** QMAN$MASTER
** VMSMAIL_PROFILE
* Start the queue manager and intitiaize the queue database<syntaxhighlight lang="shell-session">
$ START /QUEUE /MANAGER /NEW_VERSION QMAN$MASTER
%%%%%%%%%%%  OPCOM  12-APR-2025 00:44:20.29  %%%%%%%%%%%
Message from user JOB_CONTROL on VX2
%JBC-I-CREATED, XXXVMS_CLUCOM:[SYSEXE]QMAN$MASTER.DAT; created
</syntaxhighlight>
* Initialize basic queues and start them<syntaxhighlight lang="shell-session">
$ @LU_ROOT_DEV:[XXXVMS]XXXVMS_INIT_QUEUE_BATCH
$ SHOW QUEUE /BATCH
Generic batch queue OPERATOR$BATCH, stopped
  <Operator tasks generic queue>
Batch queue OPERATOR$VX2_BATCH, stopped, autostart inactive, on VX2::
  <Operator tasks execution queue on 'this_node'>
Batch queue VX2_BATCH, stopped, autostart inactive, on VX2::
   
Batch queue XXXVMS$STARTUP_SLOW_VX2, stopped, on VX2::
  <System startup tasks (slow)>
   
Batch queue XXXVMS$STARTUP_VX2, stopped, on VX2::
  <System startup tasks (fast)>
$ START /QUEUE OPERATOR$BATCH
$ START /QUEUE OPERATOR$VX2_BATCH
%JBC-I-AUTONOTSTART, queue is auto start active, but not started
$ START /QUEUE VX2_BATCH
%JBC-I-AUTONOTSTART, queue is auto start active, but not started
$ START /QUEUE XXXVMS$STARTUP_SLOW_VX2
$ START /QUEUE XXXVMS$STARTUP_VX2
</syntaxhighlight>
</syntaxhighlight>


== Startup Files ==


==python==
* Add more<syntaxhighlight lang="shell-session">
<code># alternatives --set python /usr/bin/python3 #Prior to Rocky Linux 9 only</code>  
$ MCR SYSMAN START ADD FILE /PHASE=LPMAIN /MODE=BATCH DECW$STARTUP.COM
$ MCR SYSMAN START ADD FILE /PHASE=LPMAIN /MODE=BATCH XXXVMS$START_QUEUES.COM
$ MCR SYSMAN START SHOW FILE
%SYSMAN-I-COMFIL, contents of component database on node VX2
Phase        Mode  File
------------ ------ ---------------------------------
LPBEGIN      DIRECT XXXVMS$CONSOLE_ENABLE.COM
LPBEGIN      SPAWN  XXXVMS_LAT$STARTUP.COM
LPMAIN      BATCH  DECW$STARTUP.COM
LPMAIN      BATCH  XXXVMS$START_QUEUES.COM
</syntaxhighlight>
* Create <code>XXXVMS$END_NOWAIT.COM</code> to submit <code>ESS$STARTUP.COM</code> and add it to startup in the END phase as a SPAWN
* Copy <code>DAD$XXXVMS:[STARTUP.VAX]SYSTARTUP_VMS.COM</code> to <code>SYS$COMMON:[SYSMGR]</code>
* Reboot and test


==chrony/ntp configuration==
== More Databases ==
See https://www.golinuxcloud.com/configure-chrony-ntp-server-client-force-sync/ for more information.


Edit <code>/etc/chrony.conf</code> to bypass <code>pool</code>, enable <code>log</code> and <code>allow 192.168.0.0/16</code> statements
* DECnet proxy database<syntaxhighlight lang="shell-session">
 
$ SET DEFAULT SYS$SYSTEM
As of 10/3/2023, radix has defined CNAMEs for time, time1 and time2, pointing to wort, courvoisier and radix respectively. Probably should be using these in the server statements, unless DHCP is actually passing the NTP servers properly. server statement should have the iburst parameter as well to make initial sync more timely.<syntaxhighlight lang="shell-session">
$ MCR AUTHORIZE CREATE /PROXY
# systemctl restart chronyd
# systemctl status chronyd
# timedatectl
# chronyc tracking
# chronyc activity
</syntaxhighlight>
</syntaxhighlight>


==logwatch==
== Install DECwindows ==
<syntaxhighlight lang="shell-session">
DECwindows is installed with the OS for ALpha systems. For VAX, if it was not installed during OS install, now is a good time<syntaxhighlight lang="shell-session">
# dnf install -y logwatch
$ MCR ESS$LADCP BIND VMS073LP
# vi /etc/logwatch/conf/logwatch.conf
%LADCP-I-BIND, service bound to logical unit DAD$VMS073LP (_DAD2:)
</syntaxhighlight>Add line: <code> Format = html</code>
$ MOUNT DAD$VMS073LP VMS073LP
 
%MOUNT-I-WRITELOCK, volume is write locked
==rsyslog==
%MOUNT-I-MOUNTED, VMS073LP mounted on _DAD2:
Add to the end of <code>/etc/rsyslog.conf</code> the line: <code>*.* @192.168.15.80:514</code> and restart the rsyslog service.
$ DIR DAD$VMS073LP:[DWMOTIF_VAX124.KIT]
 
==postfix==
Directory DAD$VMS073LP:[DWMOTIF_VAX124.KIT]
Update <code>/etc/aliases</code> with '''reroot@lan.kitsnet.us''' then<syntaxhighlight lang="shell-session">
# dnf install -y postfix
DEC-VAXVMS-DWMOTIF-V0102-4-1.PCSI;1    DWMOTIFVAXU4012.A;1 DWMOTIFVAXU4012.B;1
# newaliases
DWMOTIFVAXU4012.C;1 DWMOTIFVAXU4012.D;1 DWMOTIFVAXU4012.E;1 DWMOTIFVAXU4012.F;1
# systemctl enable postfix --now
DWMOTIFVAXU4012.G;1 DWMOTIFVAXU4012.H;1 DWMOTIFVAXU4012.I;1 DWMOTIFVAXU4012.J;1
# systemctl status postfix
DWMOTIFVAXU4012.K;1 DWMOTIFVAXU4012.L;1 PCSI_INSTALLATION.COM;1
VAXMOTF02_U4012.A;1
Total of 15 files.
$ PRODUCT INSTALL DWMOTIF /SOURCE=DAD$VMS073LP:[DWMOTIF_VAX124.KIT]
The following product has been selected:
    DEC VAXVMS DWMOTIF V1.2-4              Layered Product
Do you want to continue? [YES]
Configuration phase starting ...
You will be asked to choose options, if any, for each selected product and for
any products that may be installed to satisfy software dependency requirements.
DEC VAXVMS DWMOTIF V1.2-4: DECwindows Motif
    Copyright Digital Equipment Corporation 1988, 1996. All rights reserved.
    Digital Equipment Corporation
    This product uses the PAK: DW-MOTIF
Do you want the defaults for all options? [YES]
Do you want to review the options? [NO]
Execution phase starting ...
The following product will be installed to destination:
    DEC VAXVMS DWMOTIF V1.2-4              DISK$VX2_SYS:[VMS$COMMON.]
Portion done: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
The following product has been installed:
    DEC VAXVMS DWMOTIF V1.2-4              Layered Product
</syntaxhighlight>
</syntaxhighlight>


==Zabbix client==
* Customize DECW$PRIVATE_SERVER_SETUP.COM
<syntaxhighlight lang="shell-session">
** Copy SYS$MANGER:DECW$PRIVATE_SERVER_SETUP.TEMPLATE to SYS$COMMON:[SYSMGR]*.COM
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.15.64/32" port protocol="tcp" port="10050" accept'
** Add TCPIP to the supported transports: <code>decw$server_transports == "DECNET,LOCAL,TCPIP"</code>
# firewall-cmd --permanent --add-rich-rule='rule family="ipv6" port port="10050" protocol="tcp" accept'
** Set the display density to an appropriate value:  <code>decw$server_density == "110"</code>
# firewall-cmd --reload
** To get all the fonts, you really need a font server. If there is no other one on the network that can be used, add these lines:<syntaxhighlight lang="text">
# dnf install -y https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
$ DECW$START_FONT_SERVER == "TRUE"
# #(for Rocky 9 use https://repo.zabbix.com/zabbix/5.0/rhel/9/x86_64/zabbix-release-5.0-3.el9.noarch.rpm)
$ DECW$FONT_SERVERS == "tcp/127.0.0.1:7100" ! Or use your specific node/port mapping
# #(for CentOS 7 use https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm)
# dnf clean all
# dnf install -y zabbix-agent2
# vi /etc/zabbix/zabbix_agent2.conf
</syntaxhighlight>Change the two lines with server IP address and Hostname directove:<syntaxhighlight lang="shell-session">
Server=192.168.15.0/24,zoco.lan.kitsnet.us,2603:7000:9800:4742::e04,fd06:8328:ea57::e04
ServerActive=zabbix.lan.kitsnet.us
#Hostname=Zabbix server
</syntaxhighlight>save and then:<syntaxhighlight lang="shell-session">
# systemctl enable zabbix-agent2 --now
</syntaxhighlight>
</syntaxhighlight>
 
* For VAX systems, add additional fonts<syntaxhighlight lang="shell-session">
==Automatic updates==
$ copy DECW$EXAMPLES:DECW$FONT_ALIAS_CHARTER.DAT  SYS$COMMON:[SYSFONT.DECW.USER_75DPI] /log
The configuration file is <code>/etc/dnf/automatic.conf</code> Set <code>apply_updates = yes</code> <syntaxhighlight lang="shell-session">
$ copy DECW$EXAMPLES:DECW$FONT_ALIAS_LUCIDA.DAT SYS$COMMON:[SYSFONT.DECW.USER_75DPI] /log
# sudo systemctl enable --now dnf-automatic.timer
$!
# systemctl list-timers *dnf-*
$ copy DECW$EXAMPLES:DECW$FONT_ALIAS_CHARTER_100DPI.DAT SYS$COMMON:[SYSFONT.DECW.USER_100DPI] /log
$ copy DECW$EXAMPLES:DECW$FONT_ALIAS_LUCIDA_100DPI.DAT SYS$COMMON:[SYSFONT.DECW.USER_100DPI] /log
</syntaxhighlight>
</syntaxhighlight>
* Add DECwindows startup to system startup in phase LPMAIN. Be sure to force P1 and P2 to “”
* Copy SYS$SPECIFIC:[TCPIP$XDM]XACCESS.TEMPLATE to SYS$SPECIFIC:[TCPIP$XDM]XACCESS.TXT. By default, this will enable all systems to get a login prompt.
* Enable XDM in TCP/IP Services with SYS$MANAGER:TCPIP$CONFIG.COM


==Backup==
=== DECwindows and display on PC ===
===Install Veeam and scripts===
On PC, Xming can be used to provide a display environment for X-Windows. It supports single-window and multi-window mode suitable for running the full DECwindows session manager (Motif or CDE) and for running individual applications.  
<syntaxhighlight lang="shell-session">
# #do either
# dnf install -y http://wort/KitsNet/Veeam/veeam-release-el8-1.0.8-1.x86_64.rpm  && dnf check-update -y
# #or
# dnf install -y http://wort/KitsNet/Veeam/veeam-release-el9-1.0.8-1.x86_64.rpm  && dnf check-update -y
# dnf install -y veeam nfs-utils KNveeam
</syntaxhighlight>Clean install with Rocky 9 was weird last time (3/17/2023). The wrong version of blksnap installed. To get it right, I had to explicitly reference blksnap at the head of the dnf install list that included veeam.


===Prep NFS export on \\bkup===
AnX-Windows does not do security very well, so some things are best run in this day and age only on trusted networks (e.g. XDMCP broadcast). Thus the secure approach is simply to run X-Windows through an SSH tunnel.
<syntaxhighlight lang="shell-session">
# mkdir /backups/Linux/newhost
# vi /etc/exports
</syntaxhighlight>Add line: <code>/backups/Linux/''newhost''        ''newhost''(rw,sync,no_root_squash,no_all_squash)          192.168.15.''##''(rw,sync,no_root_squash,no_all_squash)</code><syntaxhighlight lang="shell-session">
# exportfs -ra
</syntaxhighlight>


===Configure Veeam Backup Job===
Note that draco has a '''''very good''''' keyboard map that is loaded through <code>LU_MISC:LOGIN.PSMODE</code>
*Jobname <code><''Newhost''>-all</code>
*Destination: Shared folder to NFS path <code>bkup/ backups/Linux/<''newhost''></code>
*Advanced, Scripts, Post-job <code>/usr/local/sbin/veeam_backup_status-email</code>
*For Active Directory Domain Controllers, specify a the Pre-job script as <code>/usr/local/sbin/backup_samba-ad-dc</code>
*A reboot is necessary before running the first backup on el9 based systems in order to load the necessary modules to support snapshots


==Housekeeping==
==== XDMCP Broadcast ====
 
There is no special setup on the VMS side beyond the standard steps above. On the PC side, the Xming program Xlaunch is send to construct a session profile with characteristics:
===Install miscellaneous KitsNet tools===
<syntaxhighlight lang="shell-session">
# dnf install -y KNsysmisc
</syntaxhighlight>


===Schedule check for current kernel version===
* Single window
Add the following entry to the root crontab<syntaxhighlight lang="text">
* XDMCP Broadcast
0 0 * * * sleep $(( RANDOM \% 14400)); /usr/local/sbin/KernelCurrent -r
* blah, blah
</syntaxhighlight>This form will reboot the system if the kernel is found to be out of date.

Latest revision as of 22:24, 10 August 2026


1 Prep for XXXVMS[edit | edit source]

  • Start InfoServer software with @SYS$STARTUP:ESS$STARTUP DISK TAPE
  • Bind to and mount XXXVMS volume
    $ MCR ESS$LADCP BIND /SYS XXXVMS
    %LADCP-I-BIND, service bound to logical unit DAD$XXXVMS (_DAD1:)
    $ MOUNT /SYSTEM DAD$XXXVMS XXXVMS
    %MOUNT-I-WRITELOCK, volume is write locked
    %MOUNT-I-MOUNTED, XXXVMS mounted on _DAD1:
    
  • Decide devices for Cluster Common directory strucucture and local utilities. Use these as areguments to XXXVMS_PREP.COM. Default for each is SYS$SYSDEVICE
    $ @DAD$XXXVMS:[LOCAL_UTIL.XXXVMS]XXXVMS_PREP SYS$SYSDEVICE: SYS$SYSDEVICE:
    %CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM] created
    %CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.LOGFILES.VX2] created
    %CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.SYSMGR] created
    %CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.SYSMGR.VX2] created
    %CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.SYSEXE] created
    %CREATE-I-CREATED, _VX2$DUA0:[XXXVMS_CLUCOM.SYSLIB] created
    %CREATE-I-CREATED, _VX2$DUA0:[LOCAL_UTIL] created
    %CREATE-I-CREATED, _VX2$DUA0:[LOCAL_UTIL.MISC] created
    %CREATE-I-CREATED, _VX2$DUA0:[LOCAL_UTIL.SYS_MISC] created
    %CREATE-I-CREATED, _VX2$DUA0:[LOCAL_UTIL.XXXVMS] created
    

2 Bring in XXXVMS with LU_MISC and SYS_MISC[edit | edit source]

  • BACKUP /LOG DAD$XXXVMS:[STARTUP.SYS$STARTUP]*.* SYS$COMMON:[SYS$STARTUP]*.* /NEW_VERSION
  • Copy SYLOGICALS.COM from DAD$XXXVMS:[STARTUP.SYSMGR] to SYS$COMMON:[SYSMGR]. Tailor if necessary and execute (CLUCOM_XXXVMS and LU_DEVNAM will need to be checked at least)
  • DEFINE DADLUR$ DAD$XXXVMS:[LOCAL_UTIL.] /TRANSLATION=(CONCEAL)
  • BACKUP /LOG DADLUR$:[*...]*.*;* LU_ROOT_DEV:[*...]*.*;*

3 Startup and Initial Tests[edit | edit source]

  • Add STARTUP_P2="DC" TO SYS$SYSTEM:MODPARAMS.DAT
  • Use SYSGEN to USE CURRENT parameters to set STARTUP_P2 to "DC" and WRITE CURRENT
  • Reboot to test
  • Sanity check with @SYS_MISC:CHECK_BOOT and detailed review with TYPE /PAGE=SAVE SYS$SYSTEM:STARTUP.LOG
  • Add files to SYSMAN STARTUP
    $ MCR SYSMAN START ADD FILE /PHASE=LPBEGIN XXXVMS$CONSOLE_ENABLE.COM
    $ MCR SYSMAN START ADD FILE /PHASE=LPBEGIN XXXVMS_LAT$STARTUP.COM /MODE=SPAWN
    $ MCR SYSMAN START SHOW FILE
    %SYSMAN-I-COMFIL, contents of component database on node VX2
    Phase        Mode   File
    ------------ ------ ---------------------------------
    LPBEGIN      DIRECT XXXVMS$CONSOLE_ENABLE.COM
    LPBEGIN      SPAWN  XXXVMS_LAT$STARTUP.COM
    
  • Reboot to test

4 Basic Redirects and Queue Manager[edit | edit source]

  • Edit SYLOGICALS.COM and activate the following logical names. Execute and test.
    • ACCOUNTNG
    • LAN$NODE_DATABASE
    • NETNODE_REMOTE
    • NETNODE_UPDATE
    • NETOBJECT
    • NETPROXYdir dad$xxxvms
    • NET$PROXY
    • QMAN$MASTER
    • VMSMAIL_PROFILE
  • Start the queue manager and intitiaize the queue database
    $ START /QUEUE /MANAGER /NEW_VERSION QMAN$MASTER
    %%%%%%%%%%%  OPCOM  12-APR-2025 00:44:20.29  %%%%%%%%%%%
    Message from user JOB_CONTROL on VX2
    %JBC-I-CREATED, XXXVMS_CLUCOM:[SYSEXE]QMAN$MASTER.DAT; created
    
  • Initialize basic queues and start them
    $ @LU_ROOT_DEV:[XXXVMS]XXXVMS_INIT_QUEUE_BATCH
    $ SHOW QUEUE /BATCH
    Generic batch queue OPERATOR$BATCH, stopped
      <Operator tasks generic queue>
     
    Batch queue OPERATOR$VX2_BATCH, stopped, autostart inactive, on VX2::
      <Operator tasks execution queue on 'this_node'>
     
    Batch queue VX2_BATCH, stopped, autostart inactive, on VX2::
     
    Batch queue XXXVMS$STARTUP_SLOW_VX2, stopped, on VX2::
      <System startup tasks (slow)>
     
    Batch queue XXXVMS$STARTUP_VX2, stopped, on VX2::
      <System startup tasks (fast)>
    $ START /QUEUE OPERATOR$BATCH
    $ START /QUEUE OPERATOR$VX2_BATCH
    %JBC-I-AUTONOTSTART, queue is auto start active, but not started
    $ START /QUEUE VX2_BATCH
    %JBC-I-AUTONOTSTART, queue is auto start active, but not started
    $ START /QUEUE XXXVMS$STARTUP_SLOW_VX2
    $ START /QUEUE XXXVMS$STARTUP_VX2
    

5 Startup Files[edit | edit source]

  • Add more
    $ MCR SYSMAN START ADD FILE /PHASE=LPMAIN /MODE=BATCH DECW$STARTUP.COM
    $ MCR SYSMAN START ADD FILE /PHASE=LPMAIN /MODE=BATCH XXXVMS$START_QUEUES.COM
    $ MCR SYSMAN START SHOW FILE
    %SYSMAN-I-COMFIL, contents of component database on node VX2
    Phase        Mode   File
    ------------ ------ ---------------------------------
    LPBEGIN      DIRECT XXXVMS$CONSOLE_ENABLE.COM
    LPBEGIN      SPAWN  XXXVMS_LAT$STARTUP.COM
    LPMAIN       BATCH  DECW$STARTUP.COM
    LPMAIN       BATCH  XXXVMS$START_QUEUES.COM
    
  • Create XXXVMS$END_NOWAIT.COM to submit ESS$STARTUP.COM and add it to startup in the END phase as a SPAWN
  • Copy DAD$XXXVMS:[STARTUP.VAX]SYSTARTUP_VMS.COM to SYS$COMMON:[SYSMGR]
  • Reboot and test

6 More Databases[edit | edit source]

  • DECnet proxy database
    $ SET DEFAULT SYS$SYSTEM
    $ MCR AUTHORIZE CREATE /PROXY
    

7 Install DECwindows[edit | edit source]

DECwindows is installed with the OS for ALpha systems. For VAX, if it was not installed during OS install, now is a good time

$ MCR ESS$LADCP BIND VMS073LP
%LADCP-I-BIND, service bound to logical unit DAD$VMS073LP (_DAD2:)
$ MOUNT DAD$VMS073LP VMS073LP
%MOUNT-I-WRITELOCK, volume is write locked
%MOUNT-I-MOUNTED, VMS073LP mounted on _DAD2:
$ DIR DAD$VMS073LP:[DWMOTIF_VAX124.KIT]
 
Directory DAD$VMS073LP:[DWMOTIF_VAX124.KIT]
 
DEC-VAXVMS-DWMOTIF-V0102-4-1.PCSI;1     DWMOTIFVAXU4012.A;1 DWMOTIFVAXU4012.B;1
DWMOTIFVAXU4012.C;1 DWMOTIFVAXU4012.D;1 DWMOTIFVAXU4012.E;1 DWMOTIFVAXU4012.F;1
DWMOTIFVAXU4012.G;1 DWMOTIFVAXU4012.H;1 DWMOTIFVAXU4012.I;1 DWMOTIFVAXU4012.J;1
DWMOTIFVAXU4012.K;1 DWMOTIFVAXU4012.L;1 PCSI_INSTALLATION.COM;1
VAXMOTF02_U4012.A;1
 
Total of 15 files.
$ PRODUCT INSTALL DWMOTIF /SOURCE=DAD$VMS073LP:[DWMOTIF_VAX124.KIT]
 
The following product has been selected:
    DEC VAXVMS DWMOTIF V1.2-4              Layered Product
 
Do you want to continue? [YES]
 
Configuration phase starting ...
 
You will be asked to choose options, if any, for each selected product and for
any products that may be installed to satisfy software dependency requirements.
 
DEC VAXVMS DWMOTIF V1.2-4: DECwindows Motif
 
    Copyright Digital Equipment Corporation 1988, 1996. All rights reserved.
 
    Digital Equipment Corporation
 
    This product uses the PAK: DW-MOTIF
 
Do you want the defaults for all options? [YES]
 
Do you want to review the options? [NO]
 
Execution phase starting ...
 
The following product will be installed to destination:
    DEC VAXVMS DWMOTIF V1.2-4              DISK$VX2_SYS:[VMS$COMMON.]
 
Portion done: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
 
The following product has been installed:
    DEC VAXVMS DWMOTIF V1.2-4              Layered Product
  • Customize DECW$PRIVATE_SERVER_SETUP.COM
    • Copy SYS$MANGER:DECW$PRIVATE_SERVER_SETUP.TEMPLATE to SYS$COMMON:[SYSMGR]*.COM
    • Add TCPIP to the supported transports: decw$server_transports == "DECNET,LOCAL,TCPIP"
    • Set the display density to an appropriate value: decw$server_density == "110"
    • To get all the fonts, you really need a font server. If there is no other one on the network that can be used, add these lines:
      $ DECW$START_FONT_SERVER == "TRUE"
      $ DECW$FONT_SERVERS == "tcp/127.0.0.1:7100"  ! Or use your specific node/port mapping
      
  • For VAX systems, add additional fonts
    $ copy DECW$EXAMPLES:DECW$FONT_ALIAS_CHARTER.DAT  SYS$COMMON:[SYSFONT.DECW.USER_75DPI] /log
    $ copy DECW$EXAMPLES:DECW$FONT_ALIAS_LUCIDA.DAT SYS$COMMON:[SYSFONT.DECW.USER_75DPI] /log
    $!
    $ copy DECW$EXAMPLES:DECW$FONT_ALIAS_CHARTER_100DPI.DAT SYS$COMMON:[SYSFONT.DECW.USER_100DPI] /log
    $ copy DECW$EXAMPLES:DECW$FONT_ALIAS_LUCIDA_100DPI.DAT SYS$COMMON:[SYSFONT.DECW.USER_100DPI] /log
    
  • Add DECwindows startup to system startup in phase LPMAIN. Be sure to force P1 and P2 to “”
  • Copy SYS$SPECIFIC:[TCPIP$XDM]XACCESS.TEMPLATE to SYS$SPECIFIC:[TCPIP$XDM]XACCESS.TXT. By default, this will enable all systems to get a login prompt.
  • Enable XDM in TCP/IP Services with SYS$MANAGER:TCPIP$CONFIG.COM

7.1 DECwindows and display on PC[edit | edit source]

On PC, Xming can be used to provide a display environment for X-Windows. It supports single-window and multi-window mode suitable for running the full DECwindows session manager (Motif or CDE) and for running individual applications.

AnX-Windows does not do security very well, so some things are best run in this day and age only on trusted networks (e.g. XDMCP broadcast). Thus the secure approach is simply to run X-Windows through an SSH tunnel.

Note that draco has a very good keyboard map that is loaded through LU_MISC:LOGIN.PSMODE

7.1.1 XDMCP Broadcast[edit | edit source]

There is no special setup on the VMS side beyond the standard steps above. On the PC side, the Xming program Xlaunch is send to construct a session profile with characteristics:

  • Single window
  • XDMCP Broadcast
  • blah, blah