INTRO ============ First I want to do short recapitulation of features offered by hercules, then I will talk about emulated devices, the configuration file and how to start an installation of Fedora based distribution and I will also show the result. ============ RECAPITULATION Hercules is a software implementation of historical and recent mainframe architectures, ranging from S/360 from the 19 hundred sixties to recent z10 mainframes. The range of emulated devices is limited mainly by the available documentation, so some newer devices can be missing. Main goal of the developers it to be precise as much as possible, the speed of emulation is only a secondary goal. What speed of emulation you can expect? My tests say that 1 GHz of real CPU (or better 1 core) makes about 10 MIPS in the emulated hardware. ============ DEVICES The devices that are important for us trying to install a Linux distribution in Hercules are: - dasd, which is an IBM synonym for harddisk - network devices and card reader Hercules can emulate a tape too, either as a file on the host machine or directly accessing a SCSI tape. There are network devices that are useful when running Linux in Hercules - they are CTC (channel-to-channel adapter) and LCS (lan channel station). CTC is a point-to-point connection between the guest and the host and it is done with the tun device in the host. LCS Besides the now mentioned devices, Hercules emulates terminal, printers, etc, but they are useful when you try to run a classic mainframe OS like MVS or z/OS. Complete list of devices can be found in the Hercules configuration guide. ============ REQUIREMENTS Last Hercules version 3.05 was released in 2007 and it can be used for running RHEL and CentOS in version 4. Kernels newer then 2.6.18 (but I am not sure about the exact version) are using some features that are not implemented in 3.05, so a snapshot from CVS must be used when you want to run RHEL 5 or the not-yet-released Fedora. ============ HOST PREPARATION Here you can see the directory structure that I am using for my guest machines and that will be used the presented config files. the dasd directory for the files containing emulated disk storage the images directory contains the installation kernel, ramdisk image and installation parameters file And you must run Hercules as root, otherwise it cannot create and setup networking on the host machine. ============ INSTALLATION The source media for the selected distro must be accessible via NFS or FTP or HTTP somewhere on the host machine or on the network. Then you copy the content of the images directory into your allocated space. ============ HERCULES.CNF I am using this hercules.cnf. It contains 2 disks, a card reader for booting and a LCS device for network connectivity. RHEL 5 installation media (and Fedoras) already contains a tape definition file, so it is possible to use a tape device for booting. Other interesting values are the memory size (MAINSIZE - here 512 MB), number of CPUs (2) and the architecture mode (here ESAME which represents recent 64 bits machines) ============ GENERIC.PRM And this parameters file will make the 1. part of the installation really comfortable - all required information is preset there. The network addresses are taken from my network setup, so they should be modified for other environments. ============ LIVE DEMO - INSTALLATION CentOS 4.6 Now I will start the installation of CentOS 4 sudo hercules -f hercules.cnf ? type question mark for help about available commands and the keys pgup/pgdown are used for scrolling thru the output ipl c Commands that should be passed into the guest must be prepended with a dot. . ls mount ssh root@10.1.1.18 Now you can see the familiar anaconda instalator. The whole process with a minimal installation takes about 4 or 5 hours. But there are few points where some crypto operations are being done and it looks like that the installation is stuck. They come during the installation of the NSS library in both 32 and 64 bit versions. ============ POST-INSTALL NOTES ============ LIVE DEMO - BOOT RHEL 5.2 You just use the device #120 as the boot device. sudo hercules -f hercules.cnf ipl 120 ssh root@10.1.1.18 ============ USEFULL URLS And at the end, some useful web locations.