Windows Server 2008 IA64 guest on HP Integrity VM (HP-UX)

This is a guest post by Antoni Sawicki (aka Tenox)

This is a guide on how to install Windows Server 2008 guest on HP Integrity VM. Yes, Itanium and HP-UX involved. Unlike installing HP-UX or OpenVMS guests, this is not widely documented (or at all) and a rather obscure process. I suppose Windows on HP-UX was never popular in first place and only maybe saw some use in the enterprise.

Lets say you have a HP Integrity servers like rx1600, rx2600 or higher. You have HP-UX 11.31 installed on it and want to setup a Windows guest VM just for fun…

Firstly, if you have already installed Integrity VM from a recent Apps DVD, you will likely have 6.x version. This absolutely does not support Windows. You will need to downgrade to 4.x. To do that start by removing the packages. You will need to uninstall the main HP VM package, as well as several others: Guest/Host AVIO, VMGuest*, VMKernel and VMProvider. You will also need to delete folders /opt/hpvm and /var/opt/hpvm. Otherwise you will run in to remains of some 6.x configs and databases that are unreadable to the older version.

Then you will need to install earlier version, for example 4.2.5, which is the last version that officially supports Windows guests. However HP VM 4.3 also works pretty well and has an added benefit of a “Virtual iLO” (but don’t get your hopes for a graphical console. Virtual iLO or not, all you get is a serial console to the guest. ViLO only really provides telnet access to hpvmconsole) You can download earlier HP VM versions from here. The install is pretty straight forward, just unpack the tarball and point swinstall -s /path \* at it. I did encounter a small issue with 4.3 HPVM_1105. You need to create swlock file inside catalog directory of the extracted package to get past a lock error. Reboot and run this to verify:

hpvminfo
hpvmstatus

If all good, the next step is to create a virtual switch and boot it up:

hpvmnet -c -S switch1 -n 0
hpvmnet -S switch1 -b
hpvmnet -v 

In this case -n 0 indicates lan0 interface from ifconfig.

Then you create a blank disk image, like so:

hpvmdevmgmt -A -S 20G /vm/windows.fd

Finally you create a VM and attach all the goodies:

hpvmcreate -P win64 -O windows -c 1 -r 2048
hpvmmodify -P win64 -a disk:scsi::file:/vm/windows.fd
hpvmmodify -P win64 -a dvd:scsi::file:/vm/w2k8.iso
hpvmmodify -P win64 -a network:lan::vswitch:switch1
hpvmmodify -P win64 -K x.x.x.x -L 255.255.255.0

The last bit with -K and -L is virtual iLO, only available in 4.3 and above. If using earlier version skip that part. The IP address can be on the same segment as vswitch / lan0.

Before you boot it up, I will remind you again that THERE IS NO GRAPHICAL CONSOLE. You can’t boot to the setup and click through the options. HP offers 3 types of text only mode installation:

Option A.
Using something called HP Smart Setup Media from HP Integrity Essentials Foundation Pack for Windows. I miraculously found it on HP Support Website and archived here. Insert this .iso image instead of w2k8.iso above:

hpvmmodify -P win64 -a dvd:scsi::file:/vm/smartcd.iso

If you ever need to remove it, the command is:

hpvmdevmgmt -d gdev:/path/file.iso

Then boot it up:

hpvmstart -P win64
hpvmconsole -P win64
CO

If you have virtual iLO you can also telnet to the IP address configured earlier with -K.

In the EFI console you open shell, then navigate to fs0: and efi\boot folder then launch bootia64.efi file.

You will be presented with this lovely screen:

Pick Express Setup:

After few screens you will be see this:

You will be asked to swap the cdrom in to a Windows 2008 IA64 Install CD:

hpvmmodify -P win64 -m dvd:scsi:0,0,1:file:/vm/w2k8.iso

Once it loads up, you need to type some magic spells. Wait till you see a message that says “The CMD command is now available”, type cmd, enter, then press ESC+TAB to switch to it. Then navigate to drive C: and run install. This is the information screen for reference:

The install process takes quite a while. Fortunately you can play SimCity on HP-UX IA64 while you wait!

Eventually the VM will reboot and auto load to SAC prompt again. Repeat the process where you see cmd is available, launch it then switch using ESC+TAB. You will be able to login to Windows IA64 Guest VM!

Hurray we have Windows IA64 VM Running!

All you have to do is run ipconfig to get the IP address and RDP to it:

Windows 2008 IA64 VM running on HP Integrity VM on HP-UX 11.31

Option B
Using Windows RTM media + unattend.xml file. The HP VM admin guide provides a sample unattend.xml file in an appendix. I have extracted and archived it here.

This is the original instruction:

The above is complete bullshit as you need an existing VM to perform this. Starting from scratch this is no go. I have opted out to just adding the unattend.xml to the original iso image using PowerISO. Simple and easy.

The rest of the procedure is quite similar to option A.

hpvmstart -P win64
hpvmconsole -P win64
CO

If you have virtual iLO you can also telnet to the IP address configured earlier with -K.

In the EFI console you open shell, then navigate to fs0: and efi\boot folder then launch bootia64.efi file.

Then at some point you will get to the SAC prompt where you will have to type cmd then press ESC+TAB to switch to it. Then in cmd.exe prompt you launch setup /unattend:d:\unattend.xml. and wait for it to do it’s job.

Once the system reboots, you will have to do the cmd esc+tab thing again, but this time you will get a login prompt. Login as administrator with the password from unattend.xml.

You will need to enable remote desktop:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

and allow it through the firewall:

netsh advfirewall firewall set rule group="remote desktop" new enable=yes

The Smart Setup CD does this automatically.

Option C
PXE+RIS etc. Which is not covered here.

Post Install Steps

You basically get the IP address either from your DHCP server or by running ipconfig in cmd.exe. Then RDP to the VM. Login in as administrator with password you set either in unattend.xml or EFI install tool.

The Smart Setup CD has some drivers and components that can be installed on a VM.

What can you run on this?

Not much. From the “big apps” there’s MS SQL server, SAP and whatnot. 7zip and bunch of utilities from Sysinternals to C-Kermit. You can port more apps by installing Platform SDK and Visual Studio Tools. The latest known is Windows 7.1 SDK for IA64. It requires .NET 4.x to be installed. All archived here.

From lesser known items there’s Services For Unix, aka Interix, which has a cc wrapper around cl.exe and can be used to port more software:

Services For Unix on Windows 2008 VM on a HP-UX 11.31 IA64 host.

Have Fun with Virtualization!

IBM AIX for IA64 (Itanium) aka Project Monterey runs again!

(This is a guest post by Antoni Sawicki aka Tenox)

Project Monterey was an attempt to unify the fragmented Unix market of the 90s in to a single, cross vendor Unix OS that would run on the upcoming Intel Itanium (and others) CPU. The main collaborators were: IBM, who brought its AIX, SCO brought UnixWare, HP was supposed to bring parts of HP-UX and Sequent DYNIX/ptx. Ironically the project shared fate of the Itanium processor – it totally failed. In the end Linux took spot of the “single Unix OS”. IBM donated pieces of AIX to Linux instead and the main legacy of Project Monterey was the famous SCO vs IBM lawsuit.

A little known fact, IBM did however produce AIX version for the Itanium architecture! According to Wikipedia, some 30+ licenses were sold in 2001-2002. For years a dedicated group of individuals were trying to locate a copy of the legendary OS. As time passed it seemed that the OS was lost forever.

…until some 21 years later friends of NCommander checked in with a set of AIX5L IA64 CDROMS! The CDs have now been dumped and you can download them here. Unfortunately downloading will not get you any closer to actually running this. As of today no publicly available virtualization or emulation platform can boot this. Yes we tried Simics, looked at QEMU IA64 and XEN/KVM for IA64, etc. The OS will not boot on modern Itanium 2 (McKinley) CPUs, only the early “pre-release” Itanium 1 aka Merced. The only emulator allegedly capable of doing so was the super elusive unobtanium called Intel SoftSDV.

It’s currently speculated that AIX5L IA64 will work on and only on so called Intel Software Development Vehicle (SDV) sometimes referred to as Intel Engineering Sample. You can see the original system overview here.

Intel Engineering Sample, image courtesy @RetroHoosk
Intel Engineering Sample, image courtesy @RetroHoosk

Later SDV was sold under several OEM branded versions: IBM IntelliStation Z Pro 6894, HP i2000 Workstation, SGI 750, Dell Precision Workstation 730 and Fujitsu-Siemens Celsius 880. They all look alike because all of them were in fact produced by Intel.

Intel Itanium Software Development Vehicle Lineup

The IBM Z pro is probably most suitable for running AIX. Finding one of these is no easy task. Luckily I was able to score a working HP i2000. Surprisingly AIX IA64 booted on a first try. The install went smoothly and I was able to log in!

AIX 5L IA64 on HP i2000 Workstation – boot loader
AIX 5L IA64 on HP i2000 Workstation – logged in

The OS feels like a standard AIX 5L. Nothing particularly special about it, except that it runs on Itanium. This RedBook outlines differences between the Power and IA64 versions. A few most interesting facts are that: Itanium AIX uses ELF object files. There is a new device driver model called UDI (Uniform Device Interface) with it’s own DDK. It came from SCO UnixWare. Also according early adopters guide, AIX5L IA64 introduces JFS2 file system.

Initially I was not able to get the onboard NIC working. AIX5L IA64 supports only two network cards:

adapter 23100020 IBM 10/100 Mbps Ethernet PCI Adapter (23100020)
adapter ae120200 10/100/1000 Base-T Ethernet PCI Adapter (ae120200)

The AIX Itanium Early Adopters Release Notes mentions a few other cards but I do not see drivers for these in the OS. The doc mentions Extended Hardware Drivers CD which we don’t have.

Luckily again I was able to find a working NIC on eBay!

The system comes with X11 and CDE but so far I was not able to get any GPU working beyond basic text mode. I tried many different video cards from that era but there simply doesn’t appear to be any driver in the OS except for basic VGA / LFT. I think the key to getting video working is the previously mentioned extended hardware drivers cd.

Finally, if you want to read more I have found some interesting pieces on ibmfiles and various mirrors here and here.

Update: Thanks to efforts of TRN we now have a working GCC and ports of lots of apps!

Update 2: After going through a pile of video cards I now have local X11 and CDE!

AIX IA64 local X11 with CDE

This was the lucky winner:

Update 3: SimCity is now available for AIX IA64! You will also need other stuff mentioned here.

Confessions of a paranoid DEC Engineer: Robert Supnik talks about the great Dungeon heist!

What an incredible adventure!

Apparently this was all recorded in 2017, and just now released.

It’s very long, but I would still highly recommend watching the full thing.

Bob goes into detail about the rise of the integrated circuit versions of the PDP-11 & VAX processors, the challenges of how Digital was spiraling out of control, and how he was the one that not only championed the Alpha, but had to make the difficult decisions that if the Alpha succeeded that many people were now out of a job, and many directions had to be closed off.

He goes into great detail how the Alpha was basically out maneuvered politically and how the PC business had not only dragged them down by management not embracing the Alpha but how trying to pull a quick one on Intel led to their demise.

Also of interest was his time in research witnessing the untapped possibilities of AltaVista, and how Compaq had bogged it down, and ceded the market to the upstart Google, the inability to launch a portable MP3 player (Although to be fair the iPod wasn’t first to market by a long shot, it was the best user experience by far).

What was also interesting was his last job, working at Unisys and getting them out of the legacy mainframe hardware business and into emulation on x86, along with the lesson that if you can run your engine in primary CPU cache it’s insanely fast (in GCC land -Os is better than -O9).

The most significant part towards the end of course is where he ‘rewinds’ his story to go into his interest in simulations, and of course how he started SIMH when he had some idle time in the early 90’s. SIMH of course has done an incredible amount of work to preserve computing history of many early computers. He also touches on working with the Warren’s TUHS to get Unix v0 up and running on a simulated PDP-7 and what would have been a challenge in the day using an obscure Burroughs disk & controller modified from the PDP-9.

Yes it’s 6 hours long! But really it’s great!

SIMH on the Itanium…

So I figured it’d be as good time as any to see how various compilers (mostly Microsoft) stack up on the Itanium. So I built SIMH, and loaded up 4.2 BSD & the old dhrystone benchmark.

And before we get to the numbers, I’m using a 900Mhz Itanium 2, clearly the bottom of the barrel. I ended up loading Windows 2003 server, as XP for the Itanium can’t even install Internet Explorer 7. If you thought a world of Internet Explorer 6 was fun, it’s hell when it is your only browser.

In addition, Visual C++ 2005 was never released on the Itanium, they made it as far as Beta 2, before discontinuing native support. However I like it’s debugger so I’m using the Beta 2 version.

Microsoft (R) C/C++ Optimizing Compiler Version 13.10.2240.8 for IA-64 (from the Feb 2003 platform SDK)

Dhrystone(1.1) time for 500000 passes = 77
This machine benchmarks at 6493 dhrystones/second

Dhrystone(1.1) time for 500000 passes = 76
This machine benchmarks at 6578 dhrystones/second

Microsoft (R) C/C++ Optimizing Compiler Version 14.00.50215.44 for Itanium (Visual Studio 2005 beta)

Dhrystone(1.1) time for 500000 passes = 64
This machine benchmarks at 7812 dhrystones/second

Dhrystone(1.1) time for 500000 passes = 65
This machine benchmarks at 7692 dhrystones/second

Intel(R) C++ IA-64 Compiler for applications running on IA-64, Version 10.1 Build 20080112 Package ID: w_cc_p_10.1.014

Dhrystone(1.1) time for 500000 passes = 53
This machine benchmarks at 9433 dhrystones/second

Dhrystone(1.1) time for 500000 passes = 53
This machine benchmarks at 9433 dhrystones/second

And for some sense of what the emulation is like…

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 10.20.6166 for 80×86 (visual C++ 4.2)

Dhrystone(1.1) time for 500000 passes = 92
This machine benchmarks at 5434 dhrystones/second

Dhrystone(1.1) time for 500000 passes = 91
This machine benchmarks at 5494 dhrystones/second

Not to bad, the Intel compiler is 2x the speed of an i386 executable, while it’s easily 18% + faster then the Microsoft Compiler. I built everything with /Ox flags (Which the Intel compiler honers!).. Executable sizes varied as much as the performance.

1,672,704 Intel C vax780.exe
986,624 Vax780feb2003.exe
495,616 Vax780visualc4.exe
1,232,896 vax780visualstudio2005b2.exe

And of course the larger the executable the faster it ran. No wonder EPIC was driving people insane!

Itanium….

This isn’t virtual, but rather the real deal. I scored an HP zx2000.

HP Itanium

My HP zx2000

Just got it out of the box, I had to remove the funky sides to get it under my desk… And I’ve just installed Windows XP onto it now. My first observation is that the included DVD drive from HP, the HL-DT-ST GDR8160B has got to be one of the slowest drives I’ve dealt with in a while. And kinda finicky as the first attempt at installing XP failed with all kinds of errors, while a swift kick and a power cycle got the thing running. And let’s see it in action..

This thing likes to tell you over and over that it’s the 64bit version. It may look like XP but it’s not the 32bit version. It is however much like the x86_64 version with no NTVDM, no WOW. But worse, no Virtual PC. It can run i386 win32 exe’s but at a performance penalty. I saw mention that the Itanium C compiler can be found in the November 2001 Platform SDK, so I downloaded that, and installed it.

It’s slow.

It’s annoyingly slow.

All that talk of EPIC, and moving the complexity to the compiler isn’t a joke. Did I mention, it is *SLOW*? I thought it was running an i386 version of the compiler but the taskman didn’t show any stars next to the processes so I’m assuming not, but I’m not sure. I also am assuming that the November 2001 SDK is timed with the “Windows 2000 Advanced Server Limited Edition” for the Itanium. So I figured for a quick test, I’d build some dungeon… Except the f2c interpreter broke in some strange manner. I’d first think it’s something to do with integer sizes, but it worked on x86_64.. So I cheated, used the i386 version of f2c, and built the library and dungeon. Also I found out about this flag, /As32 which builds exe’s in the 32bit address space. f2c will run once it’s built like that. And although compiling f2c takes forever, once built it is FAST.

It worked. The exe is over 900kb! Without at doubt when they called it EPIC they meant the compiler speed, and exe size. For the crazy, you too can play zork on your Itanium here.

And yes my attempt at building SDL bombed too. But I’ll have to spend more time with the box.