Individual Entry

No Network ≠ No Net Work

Recently, I worked a gig at a site that replaced its cluster's Alpha systems with new Integrity systems — all, save for one lowly DS10L. This was a three node cluster and the DS10L only existed as the quorum tie-breaker. The DS10L had been part of the former Alpha-based cluster and had not been touched for years. In fact, the only access to the node was through its console. One of the problems I was on-site to address concerned some of their network issues with these systems and this DS10L was at the heart of it. It simply would not properly auto-negotiate on the corporate LAN. Despite its SRM settings and attempts to configure the two on-board ethernet controllers with LANCP, this Alpha insisted on being half-duplex 10 base-T. One of the things I immediately noted when working on this DS10L was that its firmware was ancient. Perhaps, with some firmware of the 21st century, this little Alpha would be more cooperative. So, I set out to upgrade the firmware. As luck would have it, this wasn't to be straight-forward ordeal.

This DS10L was bare. It had no floppy drive or CDrom drive. It had a minimal memory configuration and used an IDE drive as its system drive when it booted into the cluster. This all meant that I was not going to be able to put the firmware update on any removable media to install it on this Alpha. Generally, this isn't an issue because the firmware can be upgraded from the system's drives if the firmware is place on one of its drives. However, this little DS10L had another handicap to overcome — no networking!

The first thought was to simply configure networking on this DS10L. TCP/IP might have been a possibility, but there was no TCP/IP installed on the system nor was there a TCP/IP or UCX license. TCP/IP would also have been the easiest route because it was already installed, configured and in use on the two Integrity systems. The other option, DECnet. DECnet had NOT been configured on the two Integrity systems but that would have been a rather simple task, if necessary. However, as with TCP/IP, the DS10L had no license for DECnet — no DVNET* and no NET-APP-SUP-* PAKs in sight. It was beginning to look like there was no way to get the firmware to the DS10L.

But these little setbacks are sometimes just what we need to take a giant step forward. Which I did. Needless to say, I was a little despondent over the lack of networking. But then, in the midst of my preparation for Hari Kari it came to me. (paraphrased quote from the film, Real Genius) Infoserver! Conceptually, this could make the firmware file transfer possible; especially, since the advent of the Infoserver in OpenVMS.

Fortunately, the Integrity systems were running OpenVMS V8.3-1H1 which is current enough to have the Infoserver server functionality. As for the Alpha, and this holds true for VAX and Integrity as well, OpenVMS has had the Infoserver client for several major version generations. This was the way to go. Minimal configuration effort with minimal impact to the system's users and the corporate network. In addition to the incorporation of the Infoserver server in OpenVMS, the virtual disk driver LD (Logical Disk) has also been incorporated in OpenVMS out-of-the-box.

The Server Side

The first thing needed was to get the Infoserver and LD drivers loaded and the environment established. Two startup procedures for each appear in the directories that are listed in the translation of the SYS$STARTUP logical.

$!++
$! Initialize the LD (Logical Disk) driver.
$! Initialize the LAD (Local Area Disk) driver.
$!--
$ @SYS$STARTUP:LD$STARTUP.COM
$ @SYS$STARTUP:ESS$LAD_STARTUP.COM

I then created a logical disk which would eventually house the DS10L's firmware to be loaded. The firmware isn't a large file, so 10,000 blocks seemed a sufficient logical disk container size. The container file was connected and the logical disk was initialized and mounted.

$!++
$! Use LD control program to create and populate a virtual disk.
$!--
$ LD CREATE FIRMWARE.DSK/SIZE=10000
$ LD CONNECT FIRMWARE.DSK LDA1
$ INITIALIZE/INDEX=BEGINNING LDA1 FIRMWARE
$ MOUNT LDA1 FIRMWARE

With the logical disk now mounted, it was time to download the Alpha firmware.

$ SET DEFAULT DAD$FIRMWARE:[FIRMWARE]
$ CREATE/DIRECTORY []
$ FTP ftp.hp.com
Name (g1u1697.austin.hp.com:system): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password: eponymous
230-The response 'eponymous' is not valid
230-Next time please use your e-mail address as your password
230- for example: joe@mail.your-domain.com
230 Guest login ok, access restrictions apply.
FTP> cd pub/alphaserver/firmware/current_platforms/v7.3_release/DS10/
250 CWD command successful.
FTP> dir
150 Opening ASCII mode data connection for /bin/ls.
total 25306
drwxrwxr-x 2 32227 4436 1024 Nov 23 2008 .
drwxrwxr-x 11 32227 4436 1024 Nov 23 2008 ..
-rw-rw-r-- 1 32227 4436 762101 Mar 2 2007 ds10_disk1.zip
-rw-rw-r-- 1 32227 4436 918580 Mar 2 2007 ds10_disk2.zip
-rw-rw-r-- 1 32227 4436 892893 Mar 2 2007 ds10_disk3.zip
-rw-rw-r-- 1 32227 4436 2066944 Apr 3 2007 ds10_v7_2.exe
-rw-rw-r-- 1 32227 4436 2067456 Apr 3 2007 ds10_v7_2.sys
-rw-rw-r-- 1 32227 4436 2067968 Mar 14 2007 ds10_v7_3.exe
-rw-rw-r-- 1 32227 4436 2068480 Mar 14 2007 ds10_v7_3.sys
-rw-rw-r-- 1 32227 4436 1536 Apr 3 2007 ds10fw.sys
-rw-rw-r-- 1 32227 4436 884 Apr 3 2007 ds10fw.txt
-rw-rw-r-- 1 32227 4436 1536 Apr 3 2007 ds10io.sys
-rw-rw-r-- 1 32227 4436 869 Apr 3 2007 ds10io.txt
-rw-rw-r-- 1 32227 4436 767488 Apr 3 2007 ds10srm.rom
-rw-rw-r-- 1 32227 4436 768000 Apr 3 2007 ds10srm.sys
-rw-rw-r-- 1 32227 4436 4705 Mar 14 2007 floppy_readme.txt
-rw-rw-r-- 1 32227 4436 1575 Mar 14 2007 fwreadme.txt
-rw-rw-r-- 1 32227 4436 557208 Apr 3 2007 pc264nt.rom

226 Transfer complete.
1292 bytes received in 00:00:00.00 seconds (1.23 Mbytes/s)
FTP> image
200 Type set to I.
FTP> get ds10_v7_3.exe
200 PORT command successful.
150 Opening BINARY mode data connection for ds10_v7_3.exe (2067968 bytes).
226 Transfer complete.
local: $1$LDA1:[FIRMWARE]DS10_V7_3.EXE;1 remote: ds10_v7_3.exe
2067968 bytes received in 00:00:03.46 seconds (582.66 Kbytes/s)
FTP> exit

At this point, the Alpha firmware is now available via the logical drive. The only thing now left to do on the Integrity server is make it available for serving with the OpenVMS Infoserver.

$ DISMOUNT LDA1
$ MOUNT/SYSTEM/NOWRITE LDA1 FIRMWARE
$
$!++
$! Use INFOSERVER control to define service
$!--
$ MCR ESS$INFOSERVER CREATE SERVICE FIRMWARE LDA1/NOWRITE
$

The Client Side

With everything setup and established on the server side, it was now possible to mount the Infoserver service on the Alpha and copy the firmware image to facilitate the update. If you missed the Infoserver era, this may be new to you, so I will elaborate the necessary steps.

Like the server side, supporting drivers must be loaded and the environment must be establish. This is accomplished with another procedure available via the SYS$STARTUP logical name.

$!++
$! Initialize the LAST (Local Area Service Transport) driver.
$!--
$ @SYS$STARTUP:ESS$STARTUP DISK

With the driver loaded and environment established, the disk service defined on the server can now be mounted on the client. The commands to make this remotely served device available on the client are as follows.

$!++
$! Connect Disk to the service and mount it.
$!--
$ MCR ESS$LADCP BIND FIRMWARE
$ MOUNT/SYSTEM/NOWRITE DAD$FIRMWARE FIRMWARE

After I verified that I could, indeed, see the file on the DAD$FIRMWARE mounted device, I copied the firmware code onto the DS10L's system drive. Note, this must be a contiguous file, so the copy should maintain the /CONTIGUOUS qualifier.

$ COPY DAD$FIRMWARE:[FIRMWARE]DS10_V7_3.EXE -
_$ SYS$SYSDEVICE:[SYS0.SYSEXE]DS10_V7_3.EXE
$ COPY/CONTIGUOUS SYS$SYSDEVICE:[SYS0.SYSEXE]DS10_V7_3.EXE -
_$ SYS$SYSDEVICE:[SYS0.SYSEXE]FWUPDATE.EXE

That's it. The only thing left to do was shutdown the DS10L and reboot it with the appropriate boot flags to convince it to execute the firmware update executable.

The FAR Side (Fixed And Running)

Happily, after going though this exercise in creative-networking, the ethernet controllers finally respected the wishes of the SRM console variables to establish themselves as auto-negotiate. The firmware update cured many of the problems formerly experienced because, now, this little DS10L quorum tie-breaker was running full-duplex 100 base-T.

Reader Comment

This immediately struck me as a neat way to get stuff into VMS running on SIMH or Alpha emulators.

by: PaulSture (Email ) on 13-Feb-2012 08:28


Comments?


To thwart automated comment SPAM, you must answer this question to post.

Comment moderation is enabled. Your comment(s) will not be visisble until approved.
Remember personal info?
Notify?
Hide email?
All html tags, with the exception of <b> and <i>, will be removed from your comment. You can make links by simply typing the url or email-address.
Powered by…