What follows is a chronicle of my efforts in getting Suse SLES 11 installed in Hercules. Hopefully it will be of use to others who need to deal with this ridiculous 31 bit platform.
Recently I received a request to build a product for a rather ridiculous platform, S380. Needless to say, this is one of those IBM platforms where they try to create their own standards, breaking all conventions when doing so, and selling it at 100x the cost.
Ranting aside, we have some customers using our product on this platform. The builds they are running were created on a machine that was loaned out to us, but we no longer have access to it.
Enter Hercules. This is a straight emulator for the S380/zSeries platform. Since the platform is so different from anything that’s considered sane or normal, the emulator does things the hard way by emulating the entire processor and machine. Modern virtualization solutions tend to perform tricks that let the hardware of the vm host run the code directly. Unfortunately that isn’t an option here, so anything running in Herc will be dog slow. I’m not trying to knock the developers, because they did a good job, that’s just the reality of the situation.
First off I downloaded Suse SLES 11 zLinux from the Suse webpage. There are two DVDs, but you’ll only need the first one in order to do a basic installation.
Next, you need to install Hercules on your host system. I’ve used Ubuntu Server 10.04 LTS and 8.04 LTS. For the latter, you’ll need to compile Hercules from source, because I ran into networking issues with Herc versions lower than 3.05. For 10.04, you can simply use the versions in the repos:
$ sudo apt-get install hercules
You’ll also need to install
apache2. The reason being is that The SuSE installation disk does not come with mountable tape images, so you’ll need to do a network install. This requires a working http server.
$ sudo apt-get install apache2
Next we need to mount the disk image we downloaded:
$ sudo mkdir -p /var/www/install/DVD1 $ sudo mount -o loop SUSE-DVD1.iso /var/www/install/DVD1
Now it’s time to setup Hercules. This is the
hercules.cnf I used to set up the system.
ARCHMODE ESAME OSTAILOR QUIET LOADPARM 0120.... CPUSERIAL 000069 CPUMODEL 2064 LPARNAME HERCULES MAINSIZE 512 SYSEPOCH 1900 PANRATE FAST NUMCPU 2 CNSLPORT 3270 XPNDSIZE 0 HTTPROOT /usr/local/share/hercules/ HTTPPORT 8081 NOAUTH 0120 3390 /srv/zlinux/root.0120 0121 3390 /srv/zlinux/swap.0121 0E20.2 3088 CTCI 10.1.1.2 10.1.1.3 #Leave commented for now, we'll come back to it later. #0E26.2 3088 LCS 172.29.9.148 -m 3E:31:C5:59:36:DC
I won’t go into it too much, as the options are described on the hercules webpage. Note, however that the devices
0121 are pointing towards two files. These are going to be your disk images. Feel free to change them to whatever location you want. Next, we’ll actually create the disk images:
$ sudo dasdinit -lfs root.0120 3390 ROOT 8000 $ sudo dasdinit -lfs swap.0121 3390 SWAP 500
The last number in the command is the size of the disk in cylinders. Each cylinder is approximately 800KB (852480 bytes/cyl to be exact) though I found that there was slightly less usable disk space than I expected. Regardless, 8000 cylinders should be enough for your installation. You can always add more disks later.