# HG changeset patch # User Josef 'Jeff' Sipek # Date 1220223386 14400 # Node ID 1d96f0b77f236ce44a925d40ad456a516e34c863 # Parent a590fc5fb55c1456160745d272469fc96eee56c7 revamp of the build system + zvm-centos4 howto begining diff -r a590fc5fb55c -r 1d96f0b77f23 .hgignore --- a/.hgignore Thu Jan 03 02:59:07 2008 -0500 +++ b/.hgignore Sun Aug 31 18:56:26 2008 -0400 @@ -1,1 +1,4 @@ -^s390\.html$ +^hercules-s390\.html$ +^zvm-centos4\.html$ +\.swp$ +^index\.html$ diff -r a590fc5fb55c -r 1d96f0b77f23 Makefile --- a/Makefile Thu Jan 03 02:59:07 2008 -0500 +++ b/Makefile Sun Aug 31 18:56:26 2008 -0400 @@ -1,11 +1,31 @@ SHORTLOG_LEN=1 -all: s390.html +HOWTOS=hercules-s390.html zvm-centos4.html + +COMMON=head.html tail.html + +all: $(HOWTOS) + +index.html: $(HOWTOS) head-index.html tail-index.html + cat head-index.html > $@ + echo "

Installing CentOS 4.x under z/VM

" >> $@ + echo "

Installing Debian under Hercules

" >> $@ + sed -e 's/@@YEAR@@/2007-2008/g' < tail-index.html >> $@ -.PHONY: s390.html -s390.html: head.html body.html tail.html - cat head.html > $@ - hg log -l$(SHORTLOG_LEN) | sed -e 's/>/\>/g' -e 's/> $@ - cat body.html >> $@ - hg log | sed -e 's/>/\>/g' -e 's/> $@ - cat tail.html >> $@ +hercules-s390.html: body-hercules-s390.html $(COMMON) + sed -e 's/@@HEAD@@/Installing Debian under Hercules/g' < head.html > $@ + hg log -l$(SHORTLOG_LEN) body-hercules-s390.html | sed -e 's/>/\>/g' -e 's/> $@ + cat body-hercules-s390.html >> $@ + hg log body-hercules-s390.html | sed -e 's/>/\>/g' -e 's/> $@ + sed -e 's/@@YEAR@@/2007-2008/g' < tail.html >> $@ + +zvm-centos4.html: body-zvm-centos4.html $(COMMON) + sed -e 's/@@HEAD@@/Installing CentOS 4.x under z\/VM/g' < head.html > $@ + hg log -l$(SHORTLOG_LEN) body-zvm-centos4.html | sed -e 's/>/\>/g' -e 's/> $@ + cat body-zvm-centos4.html >> $@ + hg log body-zvm-centos4.html | sed -e 's/>/\>/g' -e 's/> $@ + sed -e 's/@@YEAR@@/2008/g' < tail.html >> $@ + +.PHONY: clean +clean: + rm -f $(HOWTOS) diff -r a590fc5fb55c -r 1d96f0b77f23 body-hercules-s390.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/body-hercules-s390.html Sun Aug 31 18:56:26 2008 -0400 @@ -0,0 +1,507 @@ + +
+

Let's get started

+ +

+If you follow this HOWTO, at the end of it you'll have: +

+ +Linux on S/390 + +

+Yes, that's debian running on an IBM System/390 box. Very emulated one, but +still wonderful enough to keep around :) +

+ +

+The following howto assumes, that you know at least a little bit of: +

+

+ +

+The following software is required: +

+

+ +

+On my laptop (3.06GHz Pentium 4, 1GB RAM) the install take about 3 hours (2 +hours for minimal system, and about an hour extra for what Debian considers +some useful packages). The minimal install downloads about 66MB, and the +additional software is about 42MB on top of that. +

+ + + +

+First, let's set up a place to do all the work: +

+ +
+$ mkdir zlinux
+$ cd zlinux
+$ mkdir dasd rdr prt
+
+ +

+Wonderful. Now, let's get the images from which we will IPL (IPL stands for +Initial Program Load, and it is effectively the "boot" process). +

+ +

+There are a number of distros that support S/390 hardware, but only one of +them is worth trying on any platform - +Debian :) +

+ +

+So, point your browser to the mirror nearest you, navigate to this rather +long path: +

/debian/dists/stable/main/installer-s390/current/images/generic/
+ +and grab these files: +
+initrd.debian
+kernel.debian
+parmfile.debian
+
+ +I used Debian 4.0r2 to write this howto, but a newer version should work +just as well. +

+ +

+Save them into the

rdr
directory. The first two files' names +gives away their contents - the first is an initrd, and the second is the +kernel image itself. The last file contains the kernel command line options, +which on systems like i386, you specify via a keyboard to the bootloader. +

+ +

+Any serious emulator allows you to specify the exact system configuration +via a config file. Hercules is no exception. Save the following in +

zlinux/s390.cnf
or similar. +

+ +
+CPUSERIAL 000069        # CPU serial number
+CPUMODEL  9672          # CPU model number
+MAINSIZE  256           # Main storage size in megabytes
+XPNDSIZE  0             # Expanded storage size in megabytes
+CNSLPORT  3270          # TCP port number to which consoles connect
+NUMCPU    2             # Number of CPUs
+LOADPARM  0120....      # IPL parameter
+OSTAILOR  LINUX         # OS tailoring
+PANRATE   SLOW          # Panel refresh rate (SLOW, FAST)
+ARCHMODE  ESAME         # Architecture mode ESA/390 or ESAME
+
+# .-----------------------Device number
+# |     .-----------------Device type
+# |     |       .---------File name and parameters
+# |     |       |
+# V     V       V
+#---    ----    --------------------
+
+# console
+001F    3270
+
+# terminal
+0009    3215
+
+# reader
+000C    3505    ./rdr/kernel.debian ./rdr/parmfile.debian ./rdr/initrd.debian autopad eof
+
+# printer
+000E    1403    ./prt/print00e.txt crlf
+
+# dasd
+0120    3390    ./dasd/3390.LINUX.0120
+0121    3390    ./dasd/3390.LINUX.0121
+
+# tape
+0581    3420
+
+# network                               s390     realbox
+0A00,0A01  CTCI -n /dev/net/tun -t 1500 10.1.1.2 10.1.1.1
+
+ +

+The top part of the config file specifies the processor features, and the +bottom part specifies devices attached. Each device has a device number +(left more column), a device type (middle column), and optionally arguments +(right column). I'd suggest you read a bit of information from the Hercules +website or many other websites dedicated to the IBM System/390 and zSeries +architectures. It is just far too much to explain here. +

+ +

+One thing to note, if your real hardware has only one core, you may want to +change the NUMCPU to 1. +

+ +

+Another thing you may want to change is the last line, which defines a +Channel To Channel (CTC, see internet for description of what Channels are) +device which will be used as a network bridge to allow the virtual machine +access to the LAN and therefore the internet. The first IP address is the +address that the virtual machine running s/390 linux will use, and the +second address is one which will be used by the real hardware. This means, +that the real box will have two IP addresses. Go ahead, and +use any valid addresses in the non-routable range +10.0.0.0/8 or 192.168.0.0/16 (this is not a networking guide, so go to the +net if you need help with it). Once we start the emulator, it will set up a +tun/tap device on the real box which will be connected to the ctc device +within S/390. +

+ +

+Next step is to generate the DASD devices. DASD stands for Direct Access +Storage Device, and it is the S/390 name for very beefed up versions of +"disks". For details on how DASD works, see the internet. +

+ +

+We defined two so called packs. The first, device number 120, will contain +the root file system, and the second, device 121, will contain your home +directory. Execute the following two commands in the dasd directory. Each +will create a file about 2.7GB in size. +

+ +
+$ dasdinit -lfs -linux 3390.LINUX.0120 3390-3 LIN120  # /
+$ dasdinit -lfs -linux 3390.LINUX.0121 3390-3 LIN121  # /home
+
+ +

+Congratulations! You are ready to start the emulator now. Since, the default +configuration on any reasonable Linux box will require you to be root to set +up tun/tap connections, let's start hercules as root with the config file: + +

+# hercules -f s390.cnf
+
+

+ +

+You should see something that looks like this: +

+ +Hercules console + +

+It is safe to ignore the "tun0: Operation not supported" message. +

+ +

+Now, by default, the emulated network interface is not routed through, the +following commands will take care of things if you use 10.1.1.x IP addresses +as I do: + +

+# iptables -t nat -A POSTROUTING -o eth0 -s 10.1.1.0/24 -j MASQUERADE  
+# iptables -A FORWARD -s 10.1.1.0/24 -j ACCEPT
+# iptables -A FORWARD -d 10.1.1.0/24 -j ACCEPT
+# echo 1 > /proc/sys/net/ipv4/ip_forward
+# echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
+
+

+ +

+If for more information about the networking, look at any number of the +networking guides on the internet. +

+ +

+Ok, now it is time to load the program - time to IPL! In Hercules, type +

ipl c
and press enter. This tells the emulator to start executing +the program from device
000C
which happens to be the card reader! +

+ +

+Now you should see the Linux kernel booting - the installer to be exact :) +

+ +

+Wait until you see: +

+ + + +

+Wonderful! The installer is asking us to select the type of the network +interface. Select ctc (Channel to Channel - for description of what exactly +channels are, see plenty of other documentation on the subject) by typing: +

.1
Note, that the dot is important. Without the dot, anything you +type will be interpreted by Hercules (the emulator). The dot tells Hercules +to send the remainder of the string to the emulated system. +

+ +

+Now, you have to define the end-points for this virtual network interface: +Select read ctc device:

.1
+

+ +

+Select write ctc device:

.2
+

+ +

+Select protocol - s/390:

.1
+

+ +

+Now, enter the IP addresses for the end-points (must match the IP +addresses in the .cnf file). +

+ +

+Enter s390 box IP:

.10.1.1.2
+

+ +

+Enter host box IP:

.10.1.1.1
+

+ + + +

+Enter DNS server IP - choose the same your non-virtual system uses (see +/etc/resolv.conf):

.x.x.x.x
+

+ +

+Enter hostname:

.s390
+

+ +

+Enter your domain name; to specify no domain name, you need to enter the empty +string, but due to the way Hercules handles input, you will need to enter a +dot followed by a space):

.home
+

+ +

+Alright! Now, just sit back, and wait until your system generates a SSH key. +This will take a few minutes. +

+ + + +

+Before long, the installer will ask you for a password for the remainder of +the install process, just enter anything:

.foo
+

+ + + +

+Re-enter it to make sure. Yes, you can see the password in plain-text, but +the installer wants it anyway :) +

+ +

+When you see +

+ + + +

+you'll know you are on the right track! Now, open a new terminal, and ssh +into installer@10.1.1.2, if everything you did was right, ssh will ask you +for a password. +

+ + + +

+Remember that you are using ssh which encrypts everything, and therefore +things will be slow. +

+ +

+Once you enter the right password, a more familiar looking Debian installer +will start up: +

+ + + +

+Select: start menu +

+ +

+Select your country and a suitable mirror. +

+ +

+Leave the proxy information blank unless you have some special proxy setup. +

+ +

+Now you should see: +

+ +, + +

+and shortly after, several installation components will get downloaded +

+ + + +

+Just be patient and wait...or maybe go get some non-caffeinated beverage, +because chances are you've been sipping on that coffee/tea since the +beginning of the installation. :) +

+ +

+Once everything is downloaded, you'll be presented with a config screen for +DASD: +

+ + + +

+DASD is "Direct Access Storage Device" - yes Debian calls it +"Disk access storage device" oh well, they are wrong. +

+ +

+You'll see two DASD packs, 0.0.0120 and 0.0.0121. The first will be used for +the system root and the second for your /home. +

+ +

+Select the first, on the next screen, you'll be asked if you want to format +it, say no. You'll get back to the DASD menu: +

+ +, + +

+Select the other device (121), and do not format it. (If you happen to say +yes to formating, all that'll do it waste a lot of your time doing IO. +However, nothing bad will happen.) +

+ +

+Once both volumes are configured, select "Finish". +

+ +

+The following screen +

+ + + +

+should seem familiar to anyone who installed Debian before and chose manual +partitioning. You want to create one partition on each DASD, both ext2 to +avoid "double-journaling", and save some clock cycles. +

+ + + + + + + +

+Confirm the changes: +

+ + + +

+Now the ext2 filesystems will get created on the DASD packs. +

+ +

+Since we didn't define any swap space, the installer will ask us if we want +to go back to the partitioner, we don't want to go back because we know what +we are doing ;) +

+ +

+The next few questions have to do with locale (country & timezone), so just +answer them to the best of your ability. +

+ +

+The next question is the password for root - use something you'll remember +:) +

+ +

+Following is a series of questions about creating a new user (non-root) +account; so create yourself an account. Once you finish, the installer will +spend quite some time installing all the packages. At the end, you will be +asked if you want to reboot your computer. Say that you do. When the system +stops, in the Hercules console, enter

ipl 120
. Now, wait a bit, +and after not too long, try to ssh into username@10.1.1.2 +(where username is what you entered during the non-root user account +creation). You should get a shell. It is Linux. It is a mainframe. It is +yours. Have fun! :) +

+ +

+When you've had enough fun for the day, just shutdown the Linux system +(halt, shutdown, whatever way you prefer), and then run

quit
in +the Hercules window. +

+ +

+If you decide to play with a system you already installed, start Hercules: + +

# hercules -f s390.cnf
+ +Set up iptables: + +
+# iptables -t nat -A POSTROUTING -o eth0 -s 10.1.1.0/24 -j MASQUERADE  
+# iptables -A FORWARD -s 10.1.1.0/24 -j ACCEPT
+# iptables -A FORWARD -d 10.1.1.0/24 -j ACCEPT
+# echo 1 > /proc/sys/net/ipv4/ip_forward
+# echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
+
+ +and IPL from device 120 (the system DASD): + +
ipl 120
+ +When Linux starts up, you should be able to SSH in without any problems. +

+ +

+The system you now have is running with a 31-bit kernel. If you want a +64-bit kernel, simply run: + +

+# aptitude install kernel-image-2.6-s390x
+
+ +This will install the right image, and set up zIPL (the bootloader) to do +the right thing. The original kernel image will remain installed, and you +can select it in the bootloader (right after you issue ipl on the Hercules +console). +

+ +

Final Note

+

+I hope this HOWTO helped you get started with a mainframe of your own. I +tried to be as accurate and specific with the details where I thought it was +necessary - the S/390 specific parts. If you have any suggestions, or +comments (content, spelling, etc.) feel free to contact me via email: +jeffpc@josefsipek.net. +

+ +
+

Full history

+
diff -r a590fc5fb55c -r 1d96f0b77f23 body-zvm-centos4.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/body-zvm-centos4.html	Sun Aug 31 18:56:26 2008 -0400
@@ -0,0 +1,165 @@
+
+
+

Let's get started

+ +

+If you follow this HOWTO, at the end of it you'll have a 31-bit CENTOS 4.6 +running under z/VM. +

+ +

+The following howto assumes, that you know at least a little bit of: +

+

+ +

+The following software is required: +

+

+ +

+The install can take anywhere from half hour to a couple of hours depending +on a couple of things, including your internet connection speed, as well as +how much CPU time your VM guest gets. +

+ + + +

+First of all, you'll need to get the installation files to get things going. +

+ +

+So, point your browser to the mirror nearest you, navigate to this rather +long path: +

XXX
+ +and grab these files: +
+redhat.exec
+kernel.img
+initrd.img
+generic.prm
+
+ +I used CentOS 4.6 to write this howto, but a newer version should work just +as well. +

+ +

+Login to your VM id, and start CMS

ipl cms
. Then transfer the +files you got to your A minidisk. You can either use FTP, or IND$FILE +through your 3270 terminal emulator. I used the IND$FILE method via c3270.
+
+Note: The .img files should be transfered as binaries, and the other two +need to be converted to EBCDIC. Both, FTP and IND$FILE support converting +between ASCII and EBCDIC. + +
+transfer host=vm ... mode=binary localfile=kernel.img "hostfile=kernel img a"
+transfer host=vm ... mode=binary localfile=initrd.img "hostfile=initrd img a"
+transfer host=vm ... mode=ascii localfile=redhat.exec "hostfile=redhat exec a"
+transfer host=vm ... mode=ascii localfile=generic.prm "hostfile=generic prm a"
+
+ +As one might easily guess, the first is the kernel image, and the second is +the initrd. The third file is a short REXX script that'll punch the files in +the proper order to your rdr, and then IPLs from device 000c - which by +convention is your rdr. The last file contains the kernel command line +options, which on systems like i386, you specify via a keyboard to the +bootloader. +

+ +

+At this point, your CMS A minidisk should look like something like +this:
+CMS listing the files on A
+
+The RHEL5.CONF file contains configuration options for the installer. +

+FIXME: example conf file
+
+

+ +

+Now, it is time to run the REXX script. Just type

redhat
and +press enter. You'll see the reader getting purged, and then three files +getting punched:
+Files punched to RDR +

+ +

+FIXME: do I need to IPL by hand?
+Shortly after, you'll see the kernel banner displayed. Since I installed +CentOS 4.x, the kernel version is 2.6.9. If you use 5.x, the version will be +obviously different.
+Kernel banner +

+ +

+After a few screen-fulls of output, you should be prompted for ... FIXME. +FIXME: Include a screenshot. +

+ +

+Some more scrolling later, you'll see a message prompting you to telnet or +ssh into the system, and continue with the installation process:
+SSH/telnet prompt
+SSH or telnet in as root. The password is the empty string, so when +prompted, simply press the enter key.
+
+At this point, the install process is much like network install on any other +architecture. +

+ +

+The regular CentOS installer will kicks. It'll prompt you for the type of +install (http, ftp, nfs - FIXME: verify + image). I went with HTTP.
+
+The next screen prompts you for the hostname and path on the HTTP server +that contains the CentOS packages:
+SSH/telnet prompt
+Right after, the installer tries to grab stage 2 of itself: +Stage2 being downloaded
+

+ +

+FIXME: partitions +

+ +

+Most of the questions the installer normally asks you get answered by the +options in the RHEL5.CONF file (FIXME: rename). And before long, you'll see +the install process doing its thing:
+Install! +

+ +

+Although this howto was aimed at 31-bit CentOS...
+

+

+ +

Final Note

+

+I hope this HOWTO helped you get started with CentOS under z/VM. I tried to +be as accurate and specific with the details where I thought it was +necessary - the S/390 specific parts. If you have any suggestions, or +comments (content, spelling, etc.) feel free to contact me via email: +jeffpc@josefsipek.net. +

+ +
+

Full history

+
diff -r a590fc5fb55c -r 1d96f0b77f23 body.html
--- a/body.html	Thu Jan 03 02:59:07 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,507 +0,0 @@
-
-
-

Let's get started

- -

-If you follow this HOWTO, at the end of it you'll have: -

- -Linux on S/390 - -

-Yes, that's debian running on an IBM System/390 box. Very emulated one, but -still wonderful enough to keep around :) -

- -

-The following howto assumes, that you know at least a little bit of: -

-

- -

-The following software is required: -

-

- -

-On my laptop (3.06GHz Pentium 4, 1GB RAM) the install take about 3 hours (2 -hours for minimal system, and about an hour extra for what Debian considers -some useful packages). The minimal install downloads about 66MB, and the -additional software is about 42MB on top of that. -

- - - -

-First, let's set up a place to do all the work: -

- -
-$ mkdir zlinux
-$ cd zlinux
-$ mkdir dasd rdr prt
-
- -

-Wonderful. Now, let's get the images from which we will IPL (IPL stands for -Initial Program Load, and it is effectively the "boot" process). -

- -

-There are a number of distros that support S/390 hardware, but only one of -them is worth trying on any platform - -Debian :) -

- -

-So, point your browser to the mirror nearest you, navigate to this rather -long path: -

/debian/dists/stable/main/installer-s390/current/images/generic/
- -and grab these files: -
-initrd.debian
-kernel.debian
-parmfile.debian
-
- -I used Debian 4.0r2 to write this howto, but a newer version should work -just as well. -

- -

-Save them into the

rdr
directory. The first two files' names -gives away their contents - the first is an initrd, and the second is the -kernel image itself. The last file contains the kernel command line options, -which on systems like i386, you specify via a keyboard to the bootloader. -

- -

-Any serious emulator allows you to specify the exact system configuration -via a config file. Hercules is no exception. Save the following in -

zlinux/s390.cnf
or similar. -

- -
-CPUSERIAL 000069        # CPU serial number
-CPUMODEL  9672          # CPU model number
-MAINSIZE  256           # Main storage size in megabytes
-XPNDSIZE  0             # Expanded storage size in megabytes
-CNSLPORT  3270          # TCP port number to which consoles connect
-NUMCPU    2             # Number of CPUs
-LOADPARM  0120....      # IPL parameter
-OSTAILOR  LINUX         # OS tailoring
-PANRATE   SLOW          # Panel refresh rate (SLOW, FAST)
-ARCHMODE  ESAME         # Architecture mode ESA/390 or ESAME
-
-# .-----------------------Device number
-# |     .-----------------Device type
-# |     |       .---------File name and parameters
-# |     |       |
-# V     V       V
-#---    ----    --------------------
-
-# console
-001F    3270
-
-# terminal
-0009    3215
-
-# reader
-000C    3505    ./rdr/kernel.debian ./rdr/parmfile.debian ./rdr/initrd.debian autopad eof
-
-# printer
-000E    1403    ./prt/print00e.txt crlf
-
-# dasd
-0120    3390    ./dasd/3390.LINUX.0120
-0121    3390    ./dasd/3390.LINUX.0121
-
-# tape
-0581    3420
-
-# network                               s390     realbox
-0A00,0A01  CTCI -n /dev/net/tun -t 1500 10.1.1.2 10.1.1.1
-
- -

-The top part of the config file specifies the processor features, and the -bottom part specifies devices attached. Each device has a device number -(left more column), a device type (middle column), and optionally arguments -(right column). I'd suggest you read a bit of information from the Hercules -website or many other websites dedicated to the IBM System/390 and zSeries -architectures. It is just far too much to explain here. -

- -

-One thing to note, if your real hardware has only one core, you may want to -change the NUMCPU to 1. -

- -

-Another thing you may want to change is the last line, which defines a -Channel To Channel (CTC, see internet for description of what Channels are) -device which will be used as a network bridge to allow the virtual machine -access to the LAN and therefore the internet. The first IP address is the -address that the virtual machine running s/390 linux will use, and the -second address is one which will be used by the real hardware. This means, -that the real box will have two IP addresses. Go ahead, and -use any valid addresses in the non-routable range -10.0.0.0/8 or 192.168.0.0/16 (this is not a networking guide, so go to the -net if you need help with it). Once we start the emulator, it will set up a -tun/tap device on the real box which will be connected to the ctc device -within S/390. -

- -

-Next step is to generate the DASD devices. DASD stands for Direct Access -Storage Device, and it is the S/390 name for very beefed up versions of -"disks". For details on how DASD works, see the internet. -

- -

-We defined two so called packs. The first, device number 120, will contain -the root file system, and the second, device 121, will contain your home -directory. Execute the following two commands in the dasd directory. Each -will create a file about 2.7GB in size. -

- -
-$ dasdinit -lfs -linux 3390.LINUX.0120 3390-3 LIN120  # /
-$ dasdinit -lfs -linux 3390.LINUX.0121 3390-3 LIN121  # /home
-
- -

-Congratulations! You are ready to start the emulator now. Since, the default -configuration on any reasonable Linux box will require you to be root to set -up tun/tap connections, let's start hercules as root with the config file: - -

-# hercules -f s390.cnf
-
-

- -

-You should see something that looks like this: -

- -Hercules console - -

-It is safe to ignore the "tun0: Operation not supported" message. -

- -

-Now, by default, the emulated network interface is not routed through, the -following commands will take care of things if you use 10.1.1.x IP addresses -as I do: - -

-# iptables -t nat -A POSTROUTING -o eth0 -s 10.1.1.0/24 -j MASQUERADE  
-# iptables -A FORWARD -s 10.1.1.0/24 -j ACCEPT
-# iptables -A FORWARD -d 10.1.1.0/24 -j ACCEPT
-# echo 1 > /proc/sys/net/ipv4/ip_forward
-# echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
-
-

- -

-If for more information about the networking, look at any number of the -networking guides on the internet. -

- -

-Ok, now it is time to load the program - time to IPL! In Hercules, type -

ipl c
and press enter. This tells the emulator to start executing -the program from device
000C
which happens to be the card reader! -

- -

-Now you should see the Linux kernel booting - the installer to be exact :) -

- -

-Wait until you see: -

- - - -

-Wonderful! The installer is asking us to select the type of the network -interface. Select ctc (Channel to Channel - for description of what exactly -channels are, see plenty of other documentation on the subject) by typing: -

.1
Note, that the dot is important. Without the dot, anything you -type will be interpreted by Hercules (the emulator). The dot tells Hercules -to send the remainder of the string to the emulated system. -

- -

-Now, you have to define the end-points for this virtual network interface: -Select read ctc device:

.1
-

- -

-Select write ctc device:

.2
-

- -

-Select protocol - s/390:

.1
-

- -

-Now, enter the IP addresses for the end-points (must match the IP -addresses in the .cnf file). -

- -

-Enter s390 box IP:

.10.1.1.2
-

- -

-Enter host box IP:

.10.1.1.1
-

- - - -

-Enter DNS server IP - choose the same your non-virtual system uses (see -/etc/resolv.conf):

.x.x.x.x
-

- -

-Enter hostname:

.s390
-

- -

-Enter your domain name; to specify no domain name, you need to enter the empty -string, but due to the way Hercules handles input, you will need to enter a -dot followed by a space):

.home
-

- -

-Alright! Now, just sit back, and wait until your system generates a SSH key. -This will take a few minutes. -

- - - -

-Before long, the installer will ask you for a password for the remainder of -the install process, just enter anything:

.foo
-

- - - -

-Re-enter it to make sure. Yes, you can see the password in plain-text, but -the installer wants it anyway :) -

- -

-When you see -

- - - -

-you'll know you are on the right track! Now, open a new terminal, and ssh -into installer@10.1.1.2, if everything you did was right, ssh will ask you -for a password. -

- - - -

-Remember that you are using ssh which encrypts everything, and therefore -things will be slow. -

- -

-Once you enter the right password, a more familiar looking Debian installer -will start up: -

- - - -

-Select: start menu -

- -

-Select your country and a suitable mirror. -

- -

-Leave the proxy information blank unless you have some special proxy setup. -

- -

-Now you should see: -

- -, - -

-and shortly after, several installation components will get downloaded -

- - - -

-Just be patient and wait...or maybe go get some non-caffeinated beverage, -because chances are you've been sipping on that coffee/tea since the -beginning of the installation. :) -

- -

-Once everything is downloaded, you'll be presented with a config screen for -DASD: -

- - - -

-DASD is "Direct Access Storage Device" - yes Debian calls it -"Disk access storage device" oh well, they are wrong. -

- -

-You'll see two DASD packs, 0.0.0120 and 0.0.0121. The first will be used for -the system root and the second for your /home. -

- -

-Select the first, on the next screen, you'll be asked if you want to format -it, say no. You'll get back to the DASD menu: -

- -, - -

-Select the other device (121), and do not format it. (If you happen to say -yes to formating, all that'll do it waste a lot of your time doing IO. -However, nothing bad will happen.) -

- -

-Once both volumes are configured, select "Finish". -

- -

-The following screen -

- - - -

-should seem familiar to anyone who installed Debian before and chose manual -partitioning. You want to create one partition on each DASD, both ext2 to -avoid "double-journaling", and save some clock cycles. -

- - - - - - - -

-Confirm the changes: -

- - - -

-Now the ext2 filesystems will get created on the DASD packs. -

- -

-Since we didn't define any swap space, the installer will ask us if we want -to go back to the partitioner, we don't want to go back because we know what -we are doing ;) -

- -

-The next few questions have to do with locale (country & timezone), so just -answer them to the best of your ability. -

- -

-The next question is the password for root - use something you'll remember -:) -

- -

-Following is a series of questions about creating a new user (non-root) -account; so create yourself an account. Once you finish, the installer will -spend quite some time installing all the packages. At the end, you will be -asked if you want to reboot your computer. Say that you do. When the system -stops, in the Hercules console, enter

ipl 120
. Now, wait a bit, -and after not too long, try to ssh into username@10.1.1.2 -(where username is what you entered during the non-root user account -creation). You should get a shell. It is Linux. It is a mainframe. It is -yours. Have fun! :) -

- -

-When you've had enough fun for the day, just shutdown the Linux system -(halt, shutdown, whatever way you prefer), and then run

quit
in -the Hercules window. -

- -

-If you decide to play with a system you already installed, start Hercules: - -

# hercules -f s390.cnf
- -Set up iptables: - -
-# iptables -t nat -A POSTROUTING -o eth0 -s 10.1.1.0/24 -j MASQUERADE  
-# iptables -A FORWARD -s 10.1.1.0/24 -j ACCEPT
-# iptables -A FORWARD -d 10.1.1.0/24 -j ACCEPT
-# echo 1 > /proc/sys/net/ipv4/ip_forward
-# echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
-
- -and IPL from device 120 (the system DASD): - -
ipl 120
- -When Linux starts up, you should be able to SSH in without any problems. -

- -

-The system you now have is running with a 31-bit kernel. If you want a -64-bit kernel, simply run: - -

-# aptitude install kernel-image-2.6-s390x
-
- -This will install the right image, and set up zIPL (the bootloader) to do -the right thing. The original kernel image will remain installed, and you -can select it in the bootloader (right after you issue ipl on the Hercules -console). -

- -

Final Note

-

-I hope this HOWTO helped you get started with a mainframe of your own. I -tried to be as accurate and specific with the details where I thought it was -necessary - the S/390 specific parts. If you have any suggestions, or -comments (content, spelling, etc.) feel free to contact me via email: -jeffpc@josefsipek.net. -

- -
-

Full history

-
diff -r a590fc5fb55c -r 1d96f0b77f23 head-index.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/head-index.html	Sun Aug 31 18:56:26 2008 -0400
@@ -0,0 +1,6 @@
+
+
+	Linux on s/390 HOWTOs
+
+
+

Linux on s/390 HOWTOs

diff -r a590fc5fb55c -r 1d96f0b77f23 head.html --- a/head.html Thu Jan 03 02:59:07 2008 -0500 +++ b/head.html Sun Aug 31 18:56:26 2008 -0400 @@ -1,9 +1,9 @@ - Installing Debian under Hercules + @@HEAD@@ -

Installing Debian under Hercules

+

@@HEAD@@

Changes since last version

diff -r a590fc5fb55c -r 1d96f0b77f23 tail-index.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tail-index.html	Sun Aug 31 18:56:26 2008 -0400
@@ -0,0 +1,8 @@
+

+If you have any suggestions, or comments (content, spelling, etc.) feel free +to contact me via email: jeffpc@josefsipek.net. +

+
+Copyright ©@@YEAR@@ Josef "Jeff" Sipek <jeffpc@josefsipek.net> + + diff -r a590fc5fb55c -r 1d96f0b77f23 tail.html --- a/tail.html Thu Jan 03 02:59:07 2008 -0500 +++ b/tail.html Sun Aug 31 18:56:26 2008 -0400 @@ -1,6 +1,6 @@

-Copyright ©2007 Josef "Jeff" Sipek <jeffpc@josefsipek.net> +Copyright ©@@YEAR@@ Josef "Jeff" Sipek <jeffpc@josefsipek.net> diff -r a590fc5fb55c -r 1d96f0b77f23 zvm-centos4/install1.png Binary file zvm-centos4/install1.png has changed diff -r a590fc5fb55c -r 1d96f0b77f23 zvm-centos4/install2.png Binary file zvm-centos4/install2.png has changed diff -r a590fc5fb55c -r 1d96f0b77f23 zvm-centos4/install3.png Binary file zvm-centos4/install3.png has changed diff -r a590fc5fb55c -r 1d96f0b77f23 zvm-centos4/install5.png Binary file zvm-centos4/install5.png has changed diff -r a590fc5fb55c -r 1d96f0b77f23 zvm-centos4/install7.png Binary file zvm-centos4/install7.png has changed diff -r a590fc5fb55c -r 1d96f0b77f23 zvm-centos4/install8.png Binary file zvm-centos4/install8.png has changed diff -r a590fc5fb55c -r 1d96f0b77f23 zvm-centos4/install9.png Binary file zvm-centos4/install9.png has changed