changeset 0:b58b8c3c1dd2

Initial import
author Josef "Jeff" Sipek <jeffpc@josefsipek.net>
date Wed, 12 Sep 2007 23:11:15 -0400
parents
children 341e24a1a316
files hercules-s390/final-system.png hercules-s390/herc-console.png hercules-s390/herc-installer-netdev-setup.png hercules-s390/herc-installer-netdev.png hercules-s390/herc-installer-passwd.png hercules-s390/herc-installer-phase1done.png hercules-s390/herc-installer-ssh-keygen.png hercules-s390/ssh-dasd1.png hercules-s390/ssh-dasd2.png hercules-s390/ssh-download-release-file.png hercules-s390/ssh-downloading-udebs.png hercules-s390/ssh-installing-packages.png hercules-s390/ssh-menu1.png hercules-s390/ssh-partition1.png hercules-s390/ssh-partition2.png hercules-s390/ssh-partition3.png hercules-s390/ssh-partition4.png hercules-s390/ssh-partition5.png hercules-s390/ssh-passwd-real.png hercules-s390/ssh-passwd.png s390.html
diffstat 21 files changed, 444 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file hercules-s390/final-system.png has changed
Binary file hercules-s390/herc-console.png has changed
Binary file hercules-s390/herc-installer-netdev-setup.png has changed
Binary file hercules-s390/herc-installer-netdev.png has changed
Binary file hercules-s390/herc-installer-passwd.png has changed
Binary file hercules-s390/herc-installer-phase1done.png has changed
Binary file hercules-s390/herc-installer-ssh-keygen.png has changed
Binary file hercules-s390/ssh-dasd1.png has changed
Binary file hercules-s390/ssh-dasd2.png has changed
Binary file hercules-s390/ssh-download-release-file.png has changed
Binary file hercules-s390/ssh-downloading-udebs.png has changed
Binary file hercules-s390/ssh-installing-packages.png has changed
Binary file hercules-s390/ssh-menu1.png has changed
Binary file hercules-s390/ssh-partition1.png has changed
Binary file hercules-s390/ssh-partition2.png has changed
Binary file hercules-s390/ssh-partition3.png has changed
Binary file hercules-s390/ssh-partition4.png has changed
Binary file hercules-s390/ssh-partition5.png has changed
Binary file hercules-s390/ssh-passwd-real.png has changed
Binary file hercules-s390/ssh-passwd.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/s390.html	Wed Sep 12 23:11:15 2007 -0400
@@ -0,0 +1,444 @@
+<html>
+<head>
+	<title>Installing Debian under Hercules</title>
+</head>
+<body>
+<h1>Installing Debian under Hercules</h1>
+
+<p>
+If you follow this HOWTO, at the end of it you'll have:
+</p>
+
+<img src="/images/hercules-s390/final-system.png" alt="Linux on S/390" />
+
+<p>
+Yes, that's debian running on an IBM System/390 box. Very emulated one, but
+still wonderful enough to keep around :)
+</p>
+
+<p>
+The following howto assumes, that you know at least a little bit of:
+<ul>
+	<li>Debian installer on say i386 or x86_64</li>
+	<li>General networking knowledge</li>
+	<li>General Linux knowledge</li>
+</ul>
+</p>
+
+<p>
+The following software is required:
+<ul>
+	<li>iptables - to NAT the emulated machine (or machines!)</li>
+	<li>ssh client</li>
+	<li>hercules - the emulator itself</li>
+</ul>
+</p>
+
+<!--more-->
+
+<p>
+First, let's set up a place to do all the work:
+</p>
+
+<pre>
+$ mkdir zlinux
+$ cd zlinux
+$ mkdir dasd rdr prt
+</pre>
+
+<p>
+Wonderful. Now, let's get the images from which we will IPL (IPL stands for
+Initial Program Load, and it is effectively the &quot;boot&quot; process).
+</p>
+
+<p>
+There are a number of distros that support S/390 hardware, but only one of
+them is worth trying on any platform -
+<a href="http://www.debian.org">Debian</a> :)
+</p>
+
+<p>
+So, point your browser to the mirror nearest you, navigate to this rather
+long path:
+<pre>/debian/dists/Debian4.0r0/main/installer-s390/current/images/generic/</pre>
+
+and grab these files:
+<pre>
+initrd.debian
+kernel.debian
+parmfile.debian
+</pre>
+</p>
+
+<p>
+Save them into the <pre>rdr</pre> 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.
+</p>
+
+<p>
+Any serious emulator allows you to specify the exact system configuration
+via a config file. Hercules is no exception. Save the following in
+<pre>zlinux/s390.cnf</pre> or similar.
+</p>
+
+<pre>
+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
+</pre>
+
+<p>
+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.
+</p>
+
+<p>
+One thing to note, if your real hardware has only one core, you may want to
+change the NUMCPU to 1.
+</p>
+
+<p>
+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 <strong>two</strong> IP addresses. Go ahead, and
+use any <strong>valid</strong> 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.
+</p>
+
+<p>
+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
+&quot;disks&quot;. For details on how DASD works, see the internet.
+</p>
+
+<p>
+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.
+</p>
+
+<pre>
+$ dasdinit -lfs 3390.LINUX.0120 3390-3 LIN120  # /
+$ dasdinit -lfs 3390.LINUX.0121 3390-3 LIN121  # /home
+</pre>
+
+<p>
+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:
+
+<pre>
+# hercules -f s390.cnf
+</pre>
+</p>
+
+<p>
+You should see something that looks like this:
+</p>
+
+<img src="/images/hercules-s390/herc-console.png" alt="Hercules console" />
+
+<p>
+It is safe to ignore the &quot;tun0: Operation not supported&quot; message.
+</p>
+
+<p>
+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:
+
+<pre>
+# 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 &gt; /proc/sys/net/ipv4/ip_forward
+# echo 1 &gt; /proc/sys/net/ipv4/conf/all/proxy_arp
+</pre>
+</p>
+
+<p>
+If for more information about the networking, look at any number of the
+networking guides on the internet.
+</p>
+
+<p>
+Ok, now it is time to load the program - time to IPL! In Hercules, type
+<pre>ipl c</pre> and press enter. This tells the emulator to start executing
+the program from device <pre>000C</pre> which happens to be the card reader!
+</p>
+
+<p>
+Now you should see the Linux kernel booting - the installer to be exact :)
+</p>
+
+<p>
+Wait until you see:
+</p>
+
+<img src="/images/hercules-s390/herc-installer-netdev.png" />
+
+<p>
+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:
+<pre>.1</pre> 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.
+</p>
+
+<p>
+Now, you have to define the end-points for this virtual network interface:
+Select read ctc device: <pre>.1</pre>
+</p>
+
+<p>
+Select write ctc device: <pre>.2</pre>
+</p>
+
+<p>
+Select protocol - s/390: <pre>.1</pre>
+</p>
+
+<p>
+Now, enter the IP addresses for the end-points (must match the IP
+addresses in the .cnf file).
+</p>
+
+<p>
+Enter s390 box IP: <pre>.10.1.1.2</pre>
+</p>
+
+<p>
+Enter host box IP: <pre>.10.1.1.1</pre>
+</p>
+
+<img src="/images/hercules-s390/herc-installer-netdev-setup.png" />
+
+<p>
+Enter DNS server IP - choose the same your non-virtual system uses (see
+/etc/resolv.conf): <pre>.x.x.x.x</pre>
+</p>
+
+<p>
+Enter hostname: <pre>.s390</pre>
+</p>
+
+<p>
+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): <pre>.home</pre>
+</p>
+
+<p>
+Alright! Now, just sit back, and wait until your system generates a SSH key.
+This will take a few minutes.
+</p>
+
+<img src="/images/hercules-s390/herc-installer-ssh-keygen.png" />
+
+<p>
+Before long, the installer will ask you for a password for the remainder of
+the install process, just enter anything: <pre>.foo</pre>
+</p>
+
+<img src="/images/hercules-s390/herc-installer-passwd.png" />
+
+<p>
+Re-enter it to make sure. Yes, you can see the password in plain-text, but
+the installer wants it anyway :)
+</p>
+
+<p>
+When you see
+</p>
+
+<img src="/images/hercules-s390/herc-installer-phase1done.png" />
+
+<p>
+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.
+</p>
+
+<img src="/images/hercules-s390/ssh-passwd.png" />
+
+<p>
+Remember that you are using ssh which encrypts everything, and therefore
+things will be slow.
+</p>
+
+<p>
+Once you enter the right password, a more familiar looking Debian installer
+will start up:
+</p>
+
+<img src="/images/hercules-s390/ssh-menu1.png" />
+
+<p>
+Select: <strong>start menu</strong>
+</p>
+
+<p>
+Select your country and a suitable mirror.
+</p>
+
+<p>
+Leave the proxy information blank unless you have some special proxy setup.
+</p>
+
+<p>
+Now you should see:
+</p>
+
+<img src="/images/hercules-s390/ssh-download-release-file.png" />,
+
+<p>
+and shortly after, several installation components will get downloaded
+</p>
+
+<img src="/images/hercules-s390/ssh-downloading-udebs.png" />
+
+<p>
+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. :)
+</p>
+
+<p>
+Once everything is downloaded, you'll be presented with a config screen for
+DASD:
+</p>
+
+<img src="/images/hercules-s390/ssh-dasd1.png" />
+
+<p>
+DASD is "Direct Access Storage Device" - yes Debian calls it
+"<strong>Disk</strong> access storage device" oh well, they are wrong.
+</p>
+
+<p>
+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.
+</p>
+
+<p>
+Select the first, on the next screen, you'll be asked if you want to format
+it, say yes. And wait :) this will generate a large amount of disk I/O, so
+you may want to go get a cup of coffee, oh wait, I told you not to...damn :)
+</p>
+
+<p>
+When the formating completes, you'll get back to the DASD menu:
+</p>
+
+<img src="/images/hercules-s390/ssh-dasd2.png" />,
+
+<p>
+Select the other device (121), and format it as well.
+</p>
+
+<p>
+Once both volumes are formated, select "Finish".
+</p>
+
+<p>
+The following screen
+</p>
+
+<img src="/images/hercules-s390/ssh-partition1.png" />
+
+<p>
+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.
+</p>
+
+<img src="/images/hercules-s390/ssh-partition2.png" />
+
+<img src="/images/hercules-s390/ssh-partition3.png" />
+
+<img src="/images/hercules-s390/ssh-partition4.png" />
+
+<p>
+Confirm the changes:
+</p>
+
+<img src="/images/hercules-s390/ssh-partition5.png" />
+
+<p>
+Now the ext2 filesystems will get created on the DASD packs.
+</p>
+
+<p>
+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 ;)
+</p>
+
+<p>
+The next few questions have to do with locale (country & timezone), so just
+answer them to the best of your ability.
+</p>
+
+<p>
+The next question is the password for root - use something you'll remember
+:)
+</p>
+
+<p>
+Following is a series of questions about creating a new user (non-root)
+account, create yourself an account.
+</p>
+
+</body>
+</html>