Professional Documents
Culture Documents
Contents v
Chapter 18. FAQs. . . . . . . . . . 151 Usage . . . . . . . . . . . . . . . 159
Do I have a G3 or above processor? . . . . . . 151 Parameters . . . . . . . . . . . . . 160
How do I edit a file using the hardware or 3215 Additional keywords . . . . . . . . . . 160
consoles? . . . . . . . . . . . . . . . 151 dasdfmt . . . . . . . . . . . . . . . 161
How do I set up TCP/IP under VM using IUCV? 152
Setting up TCP/IP on the VM host with IUCV 152 Chapter 21. File system .tar file
Modify parm line . . . . . . . . . . . 153 contents . . . . . . . . . . . . . 163
Modify your user directory . . . . . . . . 153 initfs_small.tgz . . . . . . . . . . . . . 163
How do I boot from a VM reader? . . . . . . 153 initfs_big.tgz . . . . . . . . . . . . . 164
How do I enter CP commands in a running LINUX
environment? . . . . . . . . . . . . . 154
Is the network interface card working on my Part 6. Appendixes . . . . . . . . 167
MP3000? . . . . . . . . . . . . . . . 154
Appendix. Notices . . . . . . . . . 169
Chapter 19. LINUX for S/390 GNU General Public Licence, Version 2, June 1991 170
references. . . . . . . . . . . . . 155 Preamble . . . . . . . . . . . . . . 170
LINUX documents . . . . . . . . . . . 155 GNU General Public Licence: Terms and
S/390 documents . . . . . . . . . . . . 155 conditions for copying, distribution and
modification . . . . . . . . . . . . . 171
Trademarks . . . . . . . . . . . . . . 175
Chapter 20. execs, shell scripts, and
tools . . . . . . . . . . . . . . . 157 Glossary . . . . . . . . . . . . . 177
netsetup . . . . . . . . . . . . . . . 157
silo . . . . . . . . . . . . . . . . . 159
Version 2.2.15 of the LINUX kernel is ported in this release of LINUX for S/390. If
you are using another version of the kernel, some of your kernel’s parameters may
be different to the parameters described in this book.
You will probably need additional documentation to effectively use your LINUX
for S/390 system. The type of document you need depends on your knowledge of
LINUX and whether you are new to S/390 or an established expert. See
“Chapter 19. LINUX for S/390 references” on page 155 for some suggested titles.
Assumptions
The following general assumptions are made about your background knowledge:
v You have an understanding of LINUX and S/390 terminology.
v You have an understanding of basic computer architecture, operating systems,
and programs.
Edition 6 changes
New and Changed Information
v The file names used when downloading the kernel (for tape or VM reader),
RAM disk initial file system, and complete file system (for DASD or minidisk)
have been changed. The files are renamed once they have been transferred from
the web site.
Edition 5 changes
New Information
v Added new section describing LINUX and S/390 concepts and architecture to
help introduce LINUX for S/390 to new readers.
v Added new sections describing building an IPL-able tape for native installation
using OS/390 or VSE/ESA.
v Added new section describing installation differences for a Multiprise 3000.
v Added new section introducing Tuning concepts.
v Added new section describing a device driver for expanded storage (XPRAM).
v Added new section listing the contents of initfs_small.tgz and
initfs_big.tgz.
v Added new FAQ describing TCP/IP setup under VM using IUCV.
v Information has been added to describe new capabilities of the DASD device
driver to support additional device types - FBA and MDSK. Enhanced partition
support is described and the default for the DASD device driver is probeonly
which writes the results to a log file instead of registering the DASDs.
v Information has been added to describe restrictions on main memory and swap
space size to a maximum of 2 GB.
v Information has been added to describe CTC limitations and workarounds.
v Information has been added to describe APARs required when using IEEE FPU
under VM. APARs are VM62337 and VM62410. VM61762 is required if the
version of VM is V2R3.0. Also, APAR PQ34318 is required when using TCP/IP
under VM.
Edition 4 changes
New Information
v A new description has been written for the installation process in VM using the
reader. This method uses the initfs_small.tgz or initfs_big.tgz file system
archive. This replaces the original description which used the initmd.bin file
system archive.
Changed Information
v The file names used when downloading the kernel (for tape or VM reader),
RAM disk initial file system, and complete file system have been changed. The
files are renamed once they have been transferred from the web site.
Edition 3 changes
New Information
v A statement has been added to indicate that the compressed RAM disk initial
file system file initrd.bin.gz is uncompressed automatically during IPL.
v A suggested method for upgrading from kernel 2.2.13 to kernel 2.2.14 has been
added.
v A description of how to set up a cross build environment has been added.
v An FAQ describing how to determine whether you have a G3 or later processor
has been added.
v The blocksize used to format minidisk B when installing using VM has been
changed to 512 bytes. A note has been added to indicate that the blocksize used
for initmd.txt must match the minidisk B blocksize.
v The locsite fix command used when transferring initmd.txt has been
changed to 512 bytes.
v A note has been added indicating where the content of the lin.exec, lipl.exec,
and putdisk.exec files can be found in this document.
v A better description has been written of the recovery method used after
forgetting your root password.
v The time-delay period that allows the OSA-2 card to reset after an IPL has been
increased to 2 minutes (ipldelay=2m)
v The description of silo has been expanded.
Edition 2 changes
New Information
v A new CTC kernel parameter is provided to deactivate automatic channel
selection. This parameter (ctc=noauto) prevents conflicts occurring with other
I/O devices.
v The recovery procedure used after a CTC device connection crashes in a native
installation is described
v Alternative utilities have been described for transferring data to a tape device.
For example, filedef
v A caution has been added to raise awareness of potential problems occurring
when running LINUX for S/390 on a shared environment
v The hardware console does not recognize a reboot.
Changed Information
v The size of the large file system has increased because of the additional packages
that have been ported. You now need approximately 800 MB of free hard disk
space to unpack (tar) the initfs_big.tgz file. This means you now need
approximately 1000 cylinders on an IBM 3390
v The default password has been standardized for all occasions it is required. It is
now pass4root
v The DASD major number has been changed from 80 to 94
Summary of changes xi
v The DASD names have been changed from dd<letter><number> to
dasd<letter><number>. For example, dda1 is now dasda1
v The DASD default blocksize is now 4096 (4 KB)
v The gcc version used by this release is now 2.95.2
v The VM minidisk major number has been changed from 64 to 95
v The VM boot parameter file syntax and format have been simplified. The
keyword EBCDIC is no longer required. Only the virtual device is necessary in the
mdisk=parameter command (the makeparm.exec is no longer required
Note that ″old″ minidisk drivers can still use markeparm.exec, however any
minidisks formatted with this current LINUX for S/390 patch do not require the
executable
v The oper tape utility is not normally available outside IBM and its description
has been removed.
S/390 introduction
S/390 machines do not support all of the devices known in the personal computer
and workstation world. Devices such as floppy diskette drives, sound cards, mice,
keyboards, or graphics cards are not available to S/390 applications. This means
that there are fewer drivers required to take care of running LINUX for S/390
when compared to (PC) LINUX. Also, SCSI and IDE hard drives are not visible to
LINUX for S/390 so the S/390 disks cannot be reached via /dev/hda or /dev/sda.
VM
When operating in VM, the machine mode must be set to ESA.
Console
LINUX for S/390 has two console drivers:
v A 3215 console driver which can be used on a 3270 terminal or in a 3270
emulation session.
v The hardware console driver (HWC) is used for the Stand Alone Support
Element (SA/SE) or the Hardware Management Console (HMC).
Both devices are line-mode consoles - so they should only be used to configure all
basic setup operations before logging-on to LINUX via Telnet. Note that there is a
special feature that allows you to enter some basic control-key combinations on the
consoles. Please have a look at “Using the 3215” on page 146 and “Hardware
console” on page 147 for further details. The console devices can be reached via
/dev/console.
Hard disks
S/390 hard disks are visible as Direct Accessible Storage Devices (DASDs) for all
S/390 operating systems. LINUX for S/390 has two hard disk drivers:
v The DASD driver is able to access ECKD-style DASDs (3380, 3390, 9345) directly
with its own management (using channel programs) and can be used for
dedicated disks or VM minidisks. The devices controlled by the DASD driver
can be reached via /dev/dasd (for the non-partitioned device) and /dev/dasd1,
etc. (for the partitions).
With the current shipment, the DASD driver incorporates the former VM minidisk
driver and is able to access CMS reserved minidisks with its own management via
DIAG 250 commands. Note that you cannot IPL LINUX for S/390 from CMS
reserved minidisks. Refer to “DASD” on page 135 for more information.
Expanded storage
The S/390 architecture supports more RAM than can be accessed as main memory.
The S/390 main memory is limited to 2 GB. However, additional memory can be
declared as expanded storage. The S/390 architecture allows applications to access
up to 16 TB of expanded storage (although the current hardware can only be
equipped with up to 64 GB memory). Memory in the expanded storage range can
be copied in 4 KB blocks to, or from, the main memory.
The current release of the kernel patches provide a new driver called XPRAM. This
is a block device driver that supports LINUX for S/390 allowing it to access the
expanded storage. Thus XPRAM can be used as a basis for fast swap devices
and/or fast file systems.
Network
LINUX for S/390 supports network connections via OSA-2 and OSA Express cards
using the LAN Channel Station protocol (LCS).
The network interfaces appear as tr0, tr1, etc. or eth0, eth1, etc. respectively. Note
that there are some configuration parameters for the LCS driver. Refer to the
LINUX for S/390: LCS Device Driver document.
LINUX for S/390 also provides network interfaces via Channels - either Parallel
Channels, ESCON Channels or virtual channels. Under VM, inter-guest
communication with IUCV is supported as well. The network interfaces appear as
ctc0, ctc1, etc. or escon0, escon1, etc. respectively.
Some LINUX options are not supported in this release of LINUX for S/390. IP
Multicasting is not supported, and the NFS server has never been tested.
OS concepts
The three Operating Systems which are based on the S/390 architecture are:
v OS/390 - this has proprietary batch and on-line interfaces (JCL, TSO/E, ISPF)
and also a UNIX System Services which mostly run on large mainframes.
v VSE/ESA - this is a system that consists of a basic operating system
(VSE/Advanced Functions) and any IBM supplied and user-written programs
required to meet the data processing needs of a user. VSE and the hardware it
controls form a complete computing system.
v VM/ESA - this is a system which manages the resources of a single computer so
that multiple S/390 systems appear to exist. Each virtual machine is the
functional equivalent of a real machine.
The following terms can be found in the glossary section: VM CP/CMS, VM guest,
VM reader/punch/printer, VM minidisk.
S/390 devices
The S/390 devices are addressed by their device numbers in the form of CUU
(Control Unit and Unit Address) which could be:
v a disk - DASD of following types:
– 3380
– 3390
v a connection channel like:
– OSA
– CTC (which can be virtual or real)
– or ESCON
– or a virtual connection IUCV
v a terminal device like:
– 3270
– 3215
LINUX terminology
OS concepts
The following are LINUX and S/390 equivalents:
v kernel is known as the nucleus on OS/390 or the supervisor on VSE/ESA and
VM. The kernel module is the nucleus or supervisor module.
v boot is known as IPL (Initial Program Load) on S/390 OSs.
v boot parameter line has the same function as the IPL Load parameters on S/390.
v boot sector is known as the IPL boot record on S/390.
v user mode/kernel mode is equivalent to the problem state/supervisor state.
v system call is called a SVC (supervisor call instruction).
v swap space (file/device) on LINUX is represented by a page or swap dataset.
v user ID, group ID are the same in both operating systems.
v root is known as the super-user.
Linkage format (ELF) exists only on LINUX. On S/390, the source members or files
are complied into objects and link-edited into a OS/390 module or a VSE/ESA
phase.
Source files (.c), header files (.h), and object files (.o) are stored in datasets or VSE
libraries.
The counterparts of static libraries (.a), and shared libraries (.so) on LINUX are
system datasets in the system linklist or LPA of OS/390, or shared libraries stored
in the System or Partition GETVIS Area of VSE/ESA.
File system
The following are file system terms that are the same for LINUX and S/390 except
where indicated:
v file system is known as the dataset.
v files/directories are known as dataset/member.
v root file system is the partition organized and sequential dataset.
v mount/unmount is known as attach/detach.
v mount points - not available in S/390.
v loopback mount (loopback device).
v ext2, NFS, iso9660, ...
v database products (VSAM, DB2, IMS, DL/I, ...)
Network
The following are networking terms that are the same for LINUX and S/390 except
where indicated:
v Network (TCP/IP) is used in both LINUX and S/390. S/390 additionally uses
the SNA protocol and VTAM.
v network interface.
v host address (IP).
v network address.
v network mask.
v broadcast address.
v router/gateway.
v DNS - name server.
v DNS - search domain.
The SNA/VTAM related terminologies are PUs (Physical Unit), LUs (Logical Unit),
sessions, and applications.
Configuration files
start-up control/system configuration:
v /etc/inittab
v /etc/rc.d/*
v /etc/fstab
v /etc/syslog.conf
v /etc/modules.conf
authentication/security:
v /etc/passwd
v /etc/group
v /etc/shadow
v /etc/securetty
v /etc/hosts.allow
v /etc/hosts.deny
network:
v /etc/nsswitch.conf
v /etc/resolv.conf
v /etc/host.conf
v /etc/hosts
v /etc/services
v /etc/networks
v /etc/protocols
While OS/390 or VSE/ESA have configuration scripts telling the OS which devices
to regard or disregard, LINUX does not. All it has is the kernel parameter list or
the parameters passed to a driver with insmod. Unless configured otherwise,
LINUX for S/390 will try to autosense all the devices accessible. While this is
usually the desired behavior when running native or as guest under VM/ESA, it
might not be desirable when running in a LPAR environment with shared CHPIDs.
This behavior may lead to sharing problems. This is not specific to LINUX, but is
also the case with misconfigured OS/390, VM/ESA, and VSE/ESA systems.
However, it might become more quickly visible with LINUX’s autosensing mode.
If you have an LPAR environment with shared CHPIDs there are two possible
approaches that will prevent sharing problems:
v Ensure that the IOCDS grants access only to the devices that do not need to be
physically shared between LINUX and another S/390 operating system. This is
the preferred solution.
v Ensure that the LINUX device drivers are configured to only use well known
devices, for example, specific OSA ports for network connectivity, or the DASDs
your LINUX file systems reside on. An example of a suitable kernel parameter
line is:
root=/dev/dasda ro dasd=200 ctc=noauto
This allows access only to the ECKD DASD with device number 200 - no other
devices are specified. Note that in LINUX, the parameter line file must be one
line only if you are IPL-ing from tape or disk.
The CTC driver is told to disregard all channel devices - no devices are specified
and auto-detection is turned off.
Please follow either of the two configuration methods to ensure that LINUX for
S/390 cannot disturb a production environment residing in another LPAR.
Network specification
Make sure that you know the network parameters of your LINUX for S/390
system. These are:
v host name
v IP-address
v net mask
v network-address
v broadcast address
v gateway address
v IP-address of the DNS server
v DNS search domain.
Copy the kernel and initial RAM disk files to your local workstation (UNIX or
Windows NT) using, for example FTP. Or just simply download the files directly
by using your web browser.
Note that the initial RAMdisk file (initrd.bin that you renamed initrd.txt) is a
compressed file that the kernel will uncompress during IPL.
Similarly, copy the parameter file to your local workstation (or create a new file).
Note that in LINUX, the parameter line file must be one line only if you are
IPL-ing from tape or disk. The contents of the parameter file should be:
dasd=from-to root=/dev/ram0 ro ipldelay=xyz
where from-to is the range of your DASD devices (for example, 150–151).
You will transfer these three files to your IPL tape during the installation process.
You also need a utility, for example DITTO or filedef, to build the IPL tape.
Copy the archive to your local workstation (UNIX or Windows NT) using, for
example FTP. Or just simply download it using your web browser.
Hardware information
You need a list of your computer’s hardware configuration and networking
information. Most of this information can be found in the system documentation
supplied with your system. You will need to know about your:
v Disk drives, memory, and network card
v IP-address, net mask, gateway IP-address, name-server IP-address(es), domain
name, and host name.
Further information
There are several different sources of information available:
v “Chapter 4. Installation - native single image and LPAR - OS/390” on page 21:
This provides information about the native installation using OS/390 to build
the IPL tape
v “Chapter 5. Installation - native single image and LPAR - VM/ESA” on page 35:
This provides information about the native installation using VM/ESA to build
the IPL tape
v “Chapter 6. Installation - native single image and LPAR - VSE/ESA” on page 49:
This provides information about the native installation using VSE/ESA to build
the IPL tape
v “Chapter 7. Installation using VM - IPL from the VM reader” on page 63: This
provides information about the installation steps required using the VM reader
to get LINUX running as a VM guest
v “Chapter 8. Installation using VM - IPL from tape” on page 75: This provides
information about the installation steps required using an IPL tape to get LINUX
running as a VM guest
v The help command in VM provides additional information about the installation
process
v Linux Network Administrator’s Guide — Olaf Kirch, Andy Oram (Editor) —
O’Reilly & Associates; also available from the LDP website at
http://www.linuxdoc.org/
v Linux System Administrator’s Guide; available from the LDP website at
http://www.linuxdoc.org/
v IBM Online Library S/390 Rainbow Collection: SK2T-2177-10; contains information
that will help you to customize your environment for running LINUX for S/390:
– I/O configuration data set (IOCDS): Useful when customizing the S/390
Hardware from the SE
– VM/ESA: When administering VM as a hosting OS
– Devices: Detailed information about the devices attached to your system.
These documents can be ordered from your local IBM representative, see
“Chapter 19. LINUX for S/390 references” on page 155.
You can install LINUX for S/390 natively using any of the operating systems
OS/390, VSE/ESA, or VM/ESA as illustrated in Figure 2.
The tasks you need to perform when installing LINUX for S/390 natively are:
1. Choose the installation method, obtain information about your network
environment and the IPL method, and gain access to an S/390 operating
system suitable for building the IPL tape
2. Create the tape:
v Locate the LINUX for S/390 files and transfer them to a local system
On the operating system you have chosen to install LINUX for S/390 with
you will need to:
v Build a parameter line file
v Transfer the parameter line file and the LINUX for S/390 files to tape
3. Prepare your root file system for initial IPL
4. IPL from tape
5. Low-level format your hard disks and build file systems on them
6. Populate the new root file system
7. Customize the configuration files of the new file system
8. Get a new kernel appropriate to your needs
9. Prepare the new IPL medium
You should choose this method if you are not able to setup an NFS server or if you
only want to take a short look, or ″peek″, at LINUX for S/390. Mounting the root
file system from an NFS sever is simple in theory, but difficult to perform in
practice without introducing errors - because of this, it is not discussed in this
document.
Although network access is not required for the initial RAM disk installation
method, we recommend you attach your LINUX for S/390 to a network for
populating the file systems.
It is possible to compile your own kernel for IPL from tape, how to do this is
described in “Compiling for IPL from tape” on page 104.
Getting the image of the root file system for initial IPL
To create the initial root file system to be used for the initial IPL from RAM you
need this file:
v initrd
This is an image of the file system that you should rename to initrd.txt and
put on an initial RAMdisk. It is a compressed file that the kernel will
uncompress during IPL and is a maximum of 8 MB in size when it is
uncompressed.
Where:
v dasd=from-to|devno[,...]
from, to and devno are hexadecimal device numbers of the DASD devices that
you want to be used by LINUX for S/390. You may omit the dasd=...
statement, but in this case LINUX for S/390 will assume that you want to
dedicate all of your DASDs to LINUX. This might be dangerous if you have
disks, in particular the A-disk, which need to be accessed by another S/390
operating system when you are running under VM
where xyz is the delay period. For example, 30s means a delay of thirty seconds
between the IPL and the initialization of the OSA-2 card, 2m means a delay of
two minutes. The value xyz must be a number followed by either s or m.
Note that when IPL-ing from tape using an ASCII encoded parameter file which
you have generated on a UNIX or PC operating system, make sure that your parm
line contains no special characters (for example, tabs or new lines). In particular
your parameter file cannot span over more than one line and must not be larger
than 1023 Byte.
Check the network settings again. If they are still incorrect, your network
device has probably not been detected by LINUX for S/390.
If you only wanted to have a ″peek″ at LINUX for S/390, you are finished now. If
you proceed, you will make permanent changes to your system.
This will erase any information on that device including the label area, VTOC,
and so on. The device name corresponding to your DASD device number is
specified in your parameter line (see “Hints, Tips, and Troubleshooting:” on
page 32).
2. If the device node for the DASD device is missing (in /dev), create it by
issuing:
mknod <devicenodename> b 94 <minor_number>
Where (94) is the dasd device number and the minor number is found in the
file /proc/dasd/devices.
3. Create a file system on the disks using the mke2fs utility. Note that you should
only do this for volumes that are not to be used as full volume swapfiles. On
all devices you have low-level formatted and want LINUX for S/390 to use,
issue:
mke2fs -b 4096 /dev/dasd<letter>1
Ensure you do not build the file system on the whole device
/dev/dasd<letter> but on the logical device /dev/dasd<letter>1. This ensures
that you do not overwrite the label area and IPL records. The IPL records are
added at a later stage by the silo utility.
For example:
dd if=/dev/zero of=/mnt/dasda/swapfile bs=1M count=128
For example:
/sbin/mkswap -c /mnt/dasda/swapfile
For example:
chmod 600 /mnt/dasda/swapfile
For example:
swapon /mnt/dasda/swapfile
Note that the <swap space> is the name of the volume or file you created earlier.
For example /dev/dasd<letter>1 or /mnt/dasda/swapfile.
v etc/sysconfig/network and etc/resolv.conf
Adapt them according to your network environment
v etc/sysconfig/network-scripts/ifcfg-<netdevice>
Adapt it according to your network environment.
Place this new kernel on the volume (DASD) that you intend to IPL from.
The dasd<letter>1 parameter used in our example is dasda. Note that this is
only an example and your parameter may be different.
Ensure that either the dasd=... parameter is the same as when booting the
initial kernel, or the device letter is adapted to the new order of DASD devices.
The noinitrd statement is required because the kernel was compiled with
initial RAM disk support enabled.
Remember that when IPL-ing from disk using an ASCII encoded parameter file
which you have generated on a UNIX or PC operating system, make sure that
your line contains no special characters (for example, tabs or new lines). In
particular your parameter file cannot span over more than one line and must
not be larger that 1023 Byte.
2. Write the boot record by using the silo command (see “silo” on page 159). You
can use the silo command in two ways:
v You can run it in a test-mode to see whether everything looks all right. To
test enter the silo command as follows:
[root@your_host /mnt/dasda/boot/]# ../sbin/silo -f <kernel> -d /dev/dasda
-p <parameter file> -b ipleckd.boot
A message will inform you about what the silo command would have done.
v You can run the command to really write the boot record. To do this add the
-t2 option to the silo command as follows:
[root@your_host /mnt/dasda/boot/]# ../sbin/silo -f <kernel> -d /dev/dasda
-p <parameter file> -b ipleckd.boot -t2
Make sure that the kernel image and the parameter file reside on the volume
(DASD) that you intend to IPL from.
3. Adapt the first fstab entry to the root device. fstab is located in
mnt/dasda/etc/fstab. For example:
/dev/dasda1 / ext2 defaults,errors=remount-ro 0 1
<swap space> swap swap defaults 0 0
none /proc proc defaults 0 0
Note that the <swap space> is the name of the volume or file you created
earlier. For example /dev/dasdb1 or /mnt/dasda/swapfile.
Check the operating system messages of your system, which should appear on
your system console. Check that LINUX for S/390 boots properly. Unless you have
deleted the link to the netsetup script, you will be prompted for your network
information as described in “Obtaining information about your network
environment” on page 22. If the LINUX system boots properly, you will be
prompted for your password.
When prompted for a password, log into your system using the
default_root_password pass4root.
Installation is complete!
If you do not include the parameter, the DASDs are not made available to LINUX
for S/390 and a log message is written.
You can also inspect the /proc/dasd/devices file to find out the DASD minor
number (dasd<letter>).
Refer to “DASD” on page 135 for a full description of the DASD device driver.
You can install LINUX for S/390 natively using any of the operating systems
OS/390, VSE/ESA, or VM/ESA as illustrated in Figure 5.
The tasks you need to perform when installing LINUX for S/390 natively are:
1. Choose the installation method, obtain information about your network
environment and the IPL method, and gain access to an S/390 operating
system suitable for building the IPL tape
2. Create the tape:
v Locate the LINUX for S/390 files and transfer them to a local system
On the operating system you have chosen to install LINUX for S/390 with
you will need to:
v Build a parameter line file
v Transfer the parameter line file and the LINUX for S/390 files to tape
3. Prepare your root file system for initial IPL
4. IPL from tape
5. Low-level format your hard disks and build file systems on them
6. Populate the new root file system
7. Customize the configuration files of the new file system
8. Get a new kernel appropriate to your needs
You should choose this method if you are not able to setup an NFS server or if you
only want to take a short look, or ″peek″, at LINUX for S/390. Mounting the root
file system from an NFS sever is simple in theory, but difficult to perform in
practice without introducing errors - because of this, it is not discussed in this
document.
Although network access is not required for the initial RAM disk installation
method, we recommend you attach your LINUX for S/390 to a network for
populating the file systems.
It is possible to compile your own kernel for IPL from tape, how to do this is
described in “Compiling for IPL from tape” on page 104.
Getting the image of the root file system for initial IPL
To create the initial root file system to be used for the initial IPL from RAM you
need this file:
v initrd
This is an image of the file system that you should rename to initrd.txt and
put on an initial RAM disk. It is a compressed file that the kernel uncompresses
during IPL and is a maximum of 8 MB in size when it is uncompressed.
You can create the parameter file in EBCDIC format on a VM system or by using
LINUX. In both cases, the contents of the file are the same.
Where:
v dasd=from-to|devno[,...]
where from, to and devno are hexadecimal device numbers of the DASD devices
that you want to be used by LINUX for S/390. You may omit the dasd=...
statement, but in this case LINUX for S/390 will assume that you want to
dedicate all of your DASDs to LINUX. This might be dangerous if you have
disks, in particular the A-disk, which need to be accessed by another S/390
operating system when you are running under VM
v root=/dev/ram0 ro
This tells LINUX where to IPL from. This is a temporary RAMdisk (ram0) used
only to get a mini-LINUX system running so that you can perform the rest of
the IPL tasks. Use the root statement as given here when mounting the root file
system from initrd.
where xyz is the delay period. For example, 30s means a delay of thirty seconds
between the IPL and the initialization of the OSA-2 card, 2m means a delay of
two minutes. The value xyz must be a number followed by either s or m.
Note that when IPL-ing from tape using an ASCII encoded parameter file which
you have generated on a UNIX or PC operating system, make sure that your parm
line contains no special characters (for example, tabs or new lines). In particular
your parameter file cannot span over more than one line and must not be larger
than 1023 Byte.
Use the DITTO/ESA data entry window (shown in Figure 9) to copy the three files
one at a time in the following order:
1. Kernel image
2. Parameter line file
3. Initial root file system (RAM disk) file
If you are certain that you do not want to supply a parameter line, you must write
a tape mark to the tape instead.
Note that you do not have to uncompress the initial RAM disk file (initrd that
you renamed initrd.txt) because the kernel will detect the compressed file and
uncompress it during IPL.
Check the network settings again. If they are still incorrect, your network
device has probably not been detected by LINUX for S/390.
If you only wanted to have a ″peek″ at LINUX for S/390, you are finished now. If
you proceed, you will make permanent changes to your system.
This will erase any information on that device including the label area, VTOC,
and so on. The device name corresponding to your DASD device number is
specified in your parameter line (see “Hints, Tips, and Troubleshooting:” on
page 47).
2. If the device node for the DASD device is missing (in /dev), create it by
issuing:
mknod <devicenodename> b 94 <minor_number>
Ensure you do not build the file system on the whole device
/dev/dasd<letter> but on the logical device /dev/dasd<letter>1. This ensures
that you do not overwrite the label area and IPL records. The IPL records are
added at a later stage by the silo utility.
For example:
dd if=/dev/zero of=/mnt/dasda/swapfile bs=1M count=128
For example:
/sbin/mkswap -c /mnt/dasda/swapfile
For example:
chmod 600 /mnt/dasda/swapfile
For example:
swapon /mnt/dasda/swapfile
Note that the <swap space> is the name of the volume or file you created earlier.
For example /dev/dasd<letter>1 or /mnt/dasda/swapfile.
v etc/sysconfig/network and etc/resolv.conf
Adapt them according to your network environment
v etc/sysconfig/network-scripts/ifcfg-<netdevice>
Adapt it according to your network environment.
Place this new kernel on the volume (DASD) that you intend to IPL from.
The dasd<letter>1 parameter used in our example is dasda. Note that this is
only an example and your parameter may be different.
Ensure that either the dasd=... parameter is the same as when booting the
initial kernel, or the device letter is adapted to the new order of DASD devices.
The noinitrd statement is required because the kernel was compiled with
initial RAM disk support enabled.
Remember that when IPL-ing from disk using an ASCII encoded parameter file
which you have generated on a UNIX or PC operating system, make sure that
A message will inform you about what the silo command would have done.
v You can run the command to really write the boot record. To do this add the
-t2 option to the silo command as follows:
[root@your_host /mnt/dasda/boot/]# ../sbin/silo -f <kernel> -d /dev/dasda
-p <parameter file> -b ipleckd.boot -t2
Where, for example, /dev/dasda is the DASD that you want to IPL from and
ipleckd.boot contains the boot sector.
Make sure that the kernel image and the parameter file reside on the volume
(DASD) that you intend to IPL from.
3. Adapt the first fstab entry to the root device. fstab is located in
mnt/dasda/etc/fstab. For example:
/dev/dasda1 / ext2 defaults,errors=remount-ro 0 1
<swap space> swap swap defaults 0 0
none /proc proc defaults 0 0
Note that the <swap space> is the name of the volume or file you created
earlier. For example /dev/dasdb1 or /mnt/dasda/swapfile.
Check the operating system messages of your system, which - under VM - appear
on your system console. Check that LINUX for S/390 boots properly. Unless you
have deleted the link to the netsetup script, you will be prompted for your
network information as described in “Obtaining information about your network
environment” on page 36. If the LINUX system boots properly, you will be
prompted for your password.
When prompted for a password, log into your system using the
default_root_password pass4root.
Installation is complete!
If you do not include the parameter, the DASDs are not made available to LINUX
for S/390 and a log message is written.
The device names start with /dev/dasda and continue with the last letter being
incremented for each device.
You can also inspect the /proc/dasd/devices file to find out the DASD minor
number (dasd<letter>).
Refer to “DASD” on page 135 for a full description of the DASD device driver.
You can install LINUX for S/390 natively using any of the operating systems
OS/390, VSE/ESA, or VM/ESA as illustrated in Figure 10.
Figure 10. Installing on native S/390 or in an LPAR using OS/390, VM/ESA, or VSE/ESA
The tasks you need to perform when installing LINUX for S/390 natively are:
1. Choose the installation method, obtain information about your network
environment and the IPL method, and gain access to an S/390 operating
system suitable for building the IPL tape
2. Create the tape:
v Locate the LINUX for S/390 files and transfer them to a local system
On the operating system you have chosen to install LINUX for S/390 with
you will need to:
v Build a parameter line file
v Transfer the parameter line file and the LINUX for S/390 files to tape
3. Prepare your root file system for initial IPL
4. IPL from tape
5. Low-level format your hard disks and build file systems on them
6. Populate the new root file system
7. Customize the configuration files of the new file system
8. Get a new kernel appropriate to your needs
9. Prepare the new IPL medium
You should choose this method if you are not able to setup an NFS server or if you
only want to take a short look, or ″peek″, at LINUX for S/390. Mounting the root
file system from an NFS sever is simple in theory, but difficult to perform in
practice without introducing errors - because of this, it is not discussed in this
document.
Although network access is not required for the initial RAM disk installation
method, we recommend you attach your LINUX for S/390 to a network for
populating the file systems.
Where:
v dasd=from-to|devno[,...]
from, to and devno are hexadecimal device numbers of the DASD devices that
you want to be used by LINUX for S/390. You may omit the dasd=...
statement, but in this case LINUX for S/390 will assume that you want to
dedicate all of your DASDs to LINUX. This might be dangerous if you have
disks, in particular the A-disk, which need to be accessed by another S/390
operating system when you are running under VM
where xyz is the delay period. For example, 30s means a delay of thirty seconds
between the IPL and the initialization of the OSA-2 card, 2m means a delay of
two minutes. The value xyz must be a number followed by either s or m.
Note that when IPL-ing from tape using an ASCII encoded parameter file which
you have generated on a UNIX or PC operating system, make sure that your parm
line contains no special characters (for example, tabs or new lines). In particular
your parameter file cannot span over more than one line and must not be larger
than 1023 Byte.
Using the supplied kernel: To use a supplied kernel, go to one of the LINUX for
S/390 websites and find the following file:
v DRV11_smp_tape.img
This kernel is configured for using an initial RAM disk as initial root file system.
It is a bootable image that loads an initial file system in RAMdisk (a virtual disk
in memory) referred to as initrd.
It is possible to compile your own kernel for IPL from tape, how to do this is
described in “Compiling for IPL from tape” on page 104.
Using FTP to get the kernel and initial RAMdisk files (FTPJOB)
Copy the kernel image and the RAMdisk files to the IMAGE and INITRD files you
created earlier. For example, use the following job to FTP the files:
* $$ JOB JNM=getfiles,CLASS=0,DISP=D,NTFY=YES
// JOB getfiles ftp FILES
// DLBL IMAGE,'LINUX.IMAGE.FILE',,VSAM, X
CAT=VSESPUC
// DLBL INITRD,'LINUX.INITRD.TXT',,VSAM, X
CAT=VSESPUC
// EXEC FTP,PARM='IP=<ip_address_of_download_site>,PORT=21,ID=00'
<your_user_id>
<your_password>e
<iccf_user_id>
<iccf_password> BINARY
cd <to_the_download_site>
GET image.vm.bin FILE
GET initrd.bin TXT
QUIT
/*
/&
* $$ EOJ
Check the network settings again. If they are still incorrect, your network
device has probably not been detected by LINUX for S/390.
If you only wanted to have a ″peek″ at LINUX for S/390, you are finished now. If
you proceed, you will make permanent changes to your system.
This will erase any information on that device including the label area, VTOC,
and so on. The device name corresponding to your DASD device number is
specified in your parameter line (see “Hints, Tips, and Troubleshooting:” on
page 61).
2. If the device node for the DASD device is missing (in /dev), create it by
issuing:
mknod <devicenodename> b 94 <minor_number>
Ensure you do not build the file system on the whole device
/dev/dasd<letter> but on the logical device /dev/dasd<letter>1. This ensures
that you do not overwrite the label area and IPL records. The IPL records are
added at a later stage by the silo utility.
For example:
dd if=/dev/zero of=/mnt/dasda/swapfile bs=1M count=128
For example:
/sbin/mkswap -c /mnt/dasda/swapfile
For example:
chmod 600 /mnt/dasda/swapfile
For example:
swapon /mnt/dasda/swapfile
Note that the <swap space> is the name of the volume or file you created earlier.
For example /dev/dasd<letter>1 or /mnt/dasda/swapfile.
v etc/sysconfig/network and etc/resolv.conf
Adapt them according to your network environment
v etc/sysconfig/network-scripts/ifcfg-<netdevice>
Adapt it according to your network environment.
Place this new kernel on the volume (DASD) that you intend to IPL from.
The dasd<letter>1 parameter used in our example is dasda. Note that this is
only an example and your parameter may be different.
Ensure that either the dasd=... parameter is the same as when booting the
initial kernel, or the device letter is adapted to the new order of DASD devices.
The noinitrd statement is required because the kernel was compiled with
initial RAM disk support enabled.
Remember that when IPL-ing from disk using an ASCII encoded parameter file
which you have generated on a UNIX or PC operating system, make sure that
A message will inform you about what the silo command would have done.
v You can run the command to really write the boot record. To do this add the
-t2 option to the silo command as follows:
[root@your_host /mnt/dasda/boot/]# ../sbin/silo -f <kernel> -d /dev/dasda
-p <parameter file> -b ipleckd.boot -t2
Where, for example, /dev/dasda is the DASD that you want to IPL from and
ipleckd.boot contains the boot sector.
Make sure that the kernel image and the parameter file reside on the volume
(DASD) that you intend to IPL from.
3. Adapt the first fstab entry to the root device. fstab is located in
mnt/dasda/etc/fstab. For example:
/dev/dasda1 / ext2 defaults,errors=remount-ro 0 1
<swap space> swap swap defaults 0 0
none /proc proc defaults 0 0
Note that the <swap space> is the name of the volume or file you created
earlier. For example /dev/dasdb1 or /mnt/dasda/swapfile.
Check the operating system messages of your system, which should appear on
your system console. Check that LINUX for S/390 boots properly. Unless you have
deleted the link to the netsetup script, you will be prompted for your network
information as described in “Obtaining information about your network
environment” on page 50. If the LINUX system boots properly, you will be
prompted for your password.
When prompted for a password, log into your system using the
default_root_password pass4root.
Installation is complete!
If you do not include the parameter, the DASDs are not made available to LINUX
for S/390 and a log message is written.
The device names start with /dev/dasda and continue with the last letter being
incremented for each device.
You can also inspect the /proc/dasd/devices file to find out the DASD minor
number (dasd<letter>).
Refer to “DASD” on page 135 for a full description of the DASD device driver.
The tasks performed when installing LINUX for S/390 on a VM system fall into
four categories:
v Initial activities: Creating a VM guest user ID: Checking the CMSUSER profile
v Setting up LINUX for S/390 on VM: Preparing the user profile: Preparing the
minidisks: Transferring the LINUX boot files
v Booting the system: Creating a LINUX file system: Creating a swap space
v Post-installation tasks: Starting and stopping the system.
Minidisks
You need to allocate space for the LINUX for S/390 files (kernel, parameters, etc.)
on a CMS-formatted disk. This can be a new disk or you can use some free space
on a normal CMS disk where you already have read/write-access. This disk is
used to store the files before they are placed in the VM reader. You also need a
separate VM-minidisk for the LINUX for S/390 root file system. This lets you IPL
with your root file system on the minidisk. If you are installing a full system, you
need a part of this second minidisk for the swap space. Note that there is a limit of
2 GB on the size of the swap space.
Assuming that the disk drives are IBM 3390s, the minidisk sizes you require are:
v Small system: 100 cylinders for the LINUX for S/390 files and 200 cylinders for
the LINUX for S/390 file system
v Full system: 200 cylinders for the LINUX for S/390 files, and approximately 1000
cylinders for the LINUX for S/390 file system. The swap space will require an
additional 200 cylinders (of the second minidisk).
The following description assumes that you are installing the simple system, that
have a new LINUX for S/390 user ID, that the minidisk used for the LINUX for
S/390 files is device 191, and the one used for the file system is device 192. Ask
your VM system administrator to assign these devices to your VM guest user ID.
The minidisks in the examples are assigned as minidisk a and minidisk b.
Note that the initial tasks of setting up the user directory, checking the CMSUSER
profile, and preparing the VM guest user profile also apply to the installation of a
full system. Refer to “Chapter 8. Installation using VM - IPL from tape” on page 75
for a description of installing a full system under VM using tape for IPL and
DASD for the file system storage.
Note also that the description used in this chapter uses the VM minidisk device
driver.Note that, because minidisks are used for installation in this chapter, the
description also uses the minidisk device driver. You can also use the DASD
device driver to register your minidisks:
v If you have old minidisks, or want to install more than 255 logical volumes,
you must use this driver.
v If however, you have newer minidisks and require less than 255 logical
volumes, you can use the DASD device driver.
Network connection
To run LINUX for S/390 with a network connection you need to define a network
device. This can be either:
v One port of an OSA-2 card (Token Ring or Ethernet)
v A port of a CTC/ESCON card
v A virtual CTC device.
If you are using CTC you have to set up your system connections to correctly
handle the TCP/IP-traffic. Refer to the CTC/ESCON device driver description for
more details.
Your network device has two addresses (send and receive). Ask your VM system
administrator to dedicate these addresses to your VM guest user ID.
User directory
The statements in your user directory should match the following example:
USER MYLINUX password 128M 256M G
*---------------------------------------------------------------------*
INCLUDE CMSUSER
CPU 0 CPUID 100003 NODEDICATE
CPU 1 CPUID 200003 NODEDICATE
MACHINE ESA 2
DEDICATE 7800 7800
DEDICATE 7801 7801
MDISK 0191 3390 1501 100 LNXU01 MR Rpassword Wpassword Mpassword
MDISK 0192 3390 1601 200 LNXU01 MR Rpassword Wpassword Mpassword
OPTION QUICKDSP
At this point, the initial tasks have been completed and you are ready to set up
your system. However, your VM administrator has to assign an IP address to your
VM guest user ID. Therefore it is a good idea to keep a note of the details that
have just been defined.
Log-on to your VM guest user ID on your VM host and then prepare your user
profile:
1. Define a minimum storage area on the VM guest memory that is suitable for
your needs (a reasonable memory size is 128MB) by using the command
DEFINE STORAGE 128M
2. Link to a VM TCP/IP disk to be used for the VM client, and then access that
device. For example:
link <disk name> <disk address> <virtual address> RR
access <virtual address> <free file mode>
These steps can be performed automatically the next time you log-on by creating a
PROFILE EXEC file containing the commands as shown below. The file can be
updated at any time during a subsequent session, so you can add the three
commands later:
/* Program: PROFILE EXEC A */
/* Author : "your name" */
/* Version: 15.05.00 */
/* Changed: 15.05.00 by "your name" */
vmfclear /* vmfclears screen */
/* set fullscreen on*/
say "***********************************************"
SAY "* WELCOME TO USER "MYLINUX" AT "123ABCD" *"
say "***********************************************"
SAY "SYSTEM-INFORMATION:"
indicate /* display system resources */
set msg on /* able to receive messages from users */
set emsg on /* error-messages are active */
set impcp on /* enable implicit cp commands under cms */
set run on /* */
SAY "ACTIVATE CP PARAMETERS"
DEFINE STORAGE 128M
cp term chardel off /* to use @ in internet addresses */
SAY "ACTIVATE ACCESS TO TOOLS/DISKS ETC."
link tcpip 198 198 RR /* link to the disk to be used for tcp/ip */
acc 198 Z /* access the disk to be used for tcp/ip */
exit /* ends program */
You can specify a block size of 512 bytes, 1KB, 2KB, or 4KB. The recommended
size is 4KB. Note that the blocksize used to format minidisk B must be the same as
used for the initfs_small.tgz or initfs_big.tgz file system archive.
Use the reserve command to allocate all available blocks of a formatted CMS
minidisk to a unique CMS file:
reserve linux mdisk b
You must locate the LINUX for S/390 boot files and transfer them to minidisk A.
The following commands show how to do this:
ftp 12.12.12.12
user=user ID
password=password
cd download directory
bin
locsite fix 80
get initrd.bin initrd.txt
get image.vm.bin vmlinux.txt
quit
The second command in the example describes the location of the root file system.
root=/dev/ram0 ro
The root file system is mounted on a RAMdisk in the directory /dev/ram0
and is defined as a read-only file system by using the command ro
Create the lin.exec, and lipl.exec files on minidisk a. Refer to “Files stored on
minidisk A” for the content of these files.
When IPL-ing from the vitual reader of VM/ESA, and your parameter file spans
more than one line, make sure that a blank character preceeds any kernel
parameter. To avoid errors you should start on column 2 of the parameter line.
The system responds with a summary of the information you have just entered
and asks you to confirm that the information is correct.
Note that the lcs module option is only required for network types
1) osa token ring or 2) osa ethernet
3. When the boot routine has completed, you must enter the default_root_password
pass4root to start LINUX for S/390 in maintenance mode.
The boot messages are not completely accurate for a LINUX for S/390
installation. You cannot enter Ctrl+D to launch LINUX for S/390 because of the
way in which the system is set up.
At a later stage, when your VM guest user ID has been assigned an IP address,
you issue commands to re-boot the system via Telnet.
4. To exit LINUX for S/390 and leave the system running, use the command
#cp disc.
For example, use the following commands to generate the swap file (you must be
the root user to do this):
dd if=/dev/zero of=<swap_file_path_and_name> bs=<blocksize> count=<number_of_blocks>
For example:
dd if=/dev/zero of=/mnt/swapfile bs=1M count=128
For example:
/sbin/mkswap -c /mnt/swapfile
For example:
chmod 600 swapfile
For example:
swapon /mnt/swapfile
Use the screen editor utility in LINUX (sed) to change dasda1 to mnda. Use a
temporary file to store the changes:
sed 's/dasda1/mnda/g' fstab > fstab2
Replace the contents of /mnt/etc/fstab file with the contents of the temporary file:
mv fstab2 fstab
Finishing off
Stop the running LINUX for S/390 system:
halt
The S/390 CPU enters a disabled wait state and (in VM) is in the CP environment.
To enter CMS commands, you must IPL CMS.
Using VM, change the values in your PARM LINE file to ensure that future IPL will
be from the minidisk:
mdisk=192 root=/dev/mnda ro noinitrd
Use lin.exec to re-boot the LINUX for S/390 system. Enter the command:
lin
Re-enter your network parameters (the same values as you entered before) see,
“Booting with LIN EXEC” on page 70.
At this point, you have finished your tasks, however, the VM administrator has to
complete the process of setting up the LINUX for S/390 system, see “Assigning an
IP address to the VM guest user ID” on page 66.
Remember that, with the system halted, the S/390 CPU enters a disabled wait state
and (in VM) is in the CP environment. To enter CMS commands, you must IPL
CMS.
If, at a later time, you forget this new password, you can use the following method
to access the password file:
1. IPL from a temporary medium (for example, use the VM reader or the initial
boot tape) using the default_root_password
2. Mount the volume containing your root file system from your standard
installation
3. Access the password file on your standard installation and replace the
encrypted password (the one you forgot) by the encrypted password (the initial
one) from /etc/passwd (in your temporary root file system)
4. Exit the temporary IPL
5. IPL from the medium containing your standard root file system using the
default_root_password
6. Change your password.
The tasks performed when installing LINUX for S/390 on a VM system fall into
four categories:
v Initial activities: Creating a VM guest user ID: Checking the CMSUSER profile
v Setting up LINUX for S/390 on VM: Preparing the user profile: Preparing the
DASDs: Transferring the LINUX boot files
v Booting the system: Creating a LINUX file system: Creating a swap space
v Post-installation tasks: Starting and stopping the system.
DASDs
You need to allocate space for the LINUX for S/390 files (kernel, parameters, root
file system, etc.) on a DASD. This can be a new DASD or you can use some free
space on a normal DASD where you already have read/write-access. This lets you
IPL with your root file system on the DASD. If you are installing a full system, you
need a second DASD or part of the first DASD for the swap space. Note that there
is a limit of 2 GB on the size of the swap space.
Assuming that the disk drives are IBM 3390s, the DASD sizes you require are:
v Small system: 100 cylinders for the LINUX for S/390 files and 200 cylinders for
the LINUX for S/390 file system
v Full system: 200 cylinders for the LINUX for S/390 files, and approximately 1000
cylinders for the LINUX for S/390 file system. The swap space will require an
additional 200 cylinders.
The following description assumes that you are installing the full system, that you
have a new LINUX for S/390 user ID, that the DASD used for the LINUX for
S/390 files is dasda, and (if used) the one used for the swap space is dasdb. Ask
your VM system administrator to assign these devices to your VM guest user ID.
Note that the initial tasks of setting up the user directory, checking the CMSUSER
profile, and preparing the VM guest user profile also apply to the installation of a
small system. Refer to “Chapter 7. Installation using VM - IPL from the VM
reader” on page 63 for a description of installing a small system under VM using
the reader for IPL and minidisks for the file system storage.
Note that, because DASDs are used for installation in this chapter, the
description also uses the DASD device driver. You can also install LINUX for
S/390 using tape for IPL and minidisks for the file system storage:
v If you have old minidisks, or want to install more than 255 logical volumes,
you must use the minidisk driver.
v If however, you have newer minidisks and require less than 255 logical
volumes, you can use the DASD device driver.
Be aware that you can encounter problems using the incorrect driver.
Network connection
To run LINUX for S/390 with a network connection you need to define a network
device. This can be either:
v One port of an OSA-2 card (Token Ring or Ethernet)
v A port of a CTC/ESCON card
v A virtual CTC device.
Your network device has two addresses (send and receive). Ask your VM system
administrator to dedicate these addresses to your VM guest user ID.
User directory
The statements in your user directory should match the following example:
USER MYLINUX password 128M 256M G
*---------------------------------------------------------------------*
INCLUDE CMSUSER
CPU 0 CPUID 100003 NODEDICATE
CPU 1 CPUID 200003 NODEDICATE
MACHINE ESA 2
DEDICATE 7800 7800
DEDICATE 7801 7801
DASD 0191 3390 1501 100 LNXU01 MR Rpassword Wpassword Mpassword
DASD 0192 3390 1601 200 LNXU01 MR Rpassword Wpassword Mpassword
OPTION QUICKDSP
At this point, the initial tasks have been completed and you are ready to set up
your system. However, your VM administrator has to assign an IP address to your
VM guest user ID. Therefore it is a good idea to keep a note of the details that
have just been defined.
These steps can be performed automatically the next time you log-on by creating a
PROFILE EXEC file containing the commands as shown below. The file can be
updated at any time during a subsequent session, so you can add the three
commands later:
/* Program: PROFILE EXEC A */
/* Author : "your name" */
/* Version: 15.05.00 */
/* Changed: 15.05.00 by "your name" */
vmfclear /* vmfclears screen */
/* set fullscreen on*/
say "***********************************************"
SAY "* WELCOME TO USER "MYLINUX" AT "123ABCD" *"
say "***********************************************"
SAY "SYSTEM-INFORMATION:"
indicate /* display system resources */
set msg on /* able to receive messages from users */
set emsg on /* error-messages are active */
set impcp on /* enable implicit cp commands under cms */
set run on /* */
SAY "ACTIVATE CP PARAMETERS"
DEFINE STORAGE 128M
cp term chardel off /* to use @ in internet addresses */
SAY "ACTIVATE ACCESS TO TOOLS/DISKS ETC."
link tcpip 198 198 RR /* link to the disk to be used for tcp/ip */
acc 198 Z /* access the disk to be used for tcp/ip */
exit /* ends program */
USER:
username
331 Password required for username.
Password: ********
230 User username logged in.
bin
TYPE i
200 Type set to I.
exit
You can create the parameter file in EBCDIC format on a VM system or by using
LINUX. In both cases, the contents of the file are the same.
Where:
v dasd=from-to|devno[,...]
where from, to and devno are hexadecimal device numbers of the DASD devices
that you want to be used by LINUX for S/390. You may omit the dasd=...
statement, but in this case LINUX for S/390 will assume that you want to
dedicate all of your DASDs to LINUX. This might be dangerous if you have
disks, in particular the A-disk, which need to be accessed by another S/390
operating system when you are running under VM
v root=/dev/ram0 ro
This tells LINUX where to IPL from. This is a temporary RAMdisk (ram0) used
only to get a mini-LINUX system running so that you can perform the rest of
the IPL tasks. Use the root statement as given here when mounting the root file
system from initrd.bin.
v If you have problems with your OSA-2 card after the IPL, you might want to
insert a delay to allow the card to settle down. The recommended delay time is
two minutes. The following entry should be used in the parm.line file:
ipldelay=xyz
where xyz is the delay period. For example, 30s means a delay of thirty seconds
between the IPL and the initialization of the OSA-2 card, 2m means a delay of
two minutes. The value xyz must be a number followed by either s or m.
Note that when IPL-ing from tape using an ASCII encoded parameter file which
you have generated on a UNIX or PC operating system, make sure that your line
contains no special characters (for example, tabs or new lines). In particular your
parameter file cannot span over more than one line and must not be larger that
1023 Byte.
Operating under VM in your CMS-session, use the attach command, or ask your
operator to attach the tape to your VM guest.
For example:
attach 0649 to your_VM_guest_ID as 0181
Rewind the tape to make sure it is at the beginning. Use the command:
rew 181
Note that the initial RAMdisk file (initrd.bin) is a compressed file that the kernel
will uncompress during IPL.
There are several utilities you can use to transfer the files to your tape for example
ditto or filedef.
Select the desired task or enter a DITTO function code, then press Enter.
Use the Menu key to display the menu panel with DITTO function groups.
1. Browse data
2. Edit or update data
3. Work with VTOC
4. Work with VSAM catalog
5. Backup/restore CMS files
6. Print data
7. Copy data +------ Copy Functions ------+
8. Locate data | |
9. Change data | Select type of input data: |
10. Create data | |
11. Position a ta| 1. Tape data |
12. Tape specific| 2. VSAM data |
13. Set processin| 3. MVS/VSE SAM data |
14. Start VSE DIT| 4. CMS file +------ Copy CMS File -------+
| 5. Virtual read| |
| | Select desired output: |
| F1=Help F3=Exit F12=C| 1. Tape data |
+----------------------| 2. VSAM data |
| |
| F1=Help F3=Exit F12=Cancel |
+----------------------------+
Use the ditto data entry window (see below) to copy all three files in the correct
order. The files are copied one at a time, and the example shows the information
required for the first file.
Process View Options Help
------------------------------------------------------------------------------
DITTO/ESA for VM FT - CMS File to Tape
Tapes: 0181
Rewind the tape to the beginning and define the storage size as (at least) 16 MB.
rew 181
define store 16M
Rewind the tape to the beginning and define the storage size as (at least) 16 MB.
rew 181
define store 16M
For example:
#cp detach 0238
A large number of screen messages appear with no requirement for user input.
Eventually, the system requests information about your network.
Note that the lcs module option is only required for network types
1) osa token ring or 2) osa ethernet
The system responds with a confirmation of the information you have just entered
and asks you to confirm that information.
Configuration will be:
LCS parameter : your_lcs_module_parameter
Host name : your_host_name
IP address : your_IP_address
Net mask : your_net_mask
Net address : your_network_address
Broadcast address: your_broadcast_address
Gateway address : your_gateway_address
DNS IP address : your_DNS_server_address
DNS search domain: your_DNS_search_domain
Is this correct (Yes/No) ? yes
yes
Starting LINUX
Operating under LINUX for S/390, the system provides you with information
about the LINUX boot and asks you to enter a password to start up LINUX. This
is currently set to pass4root and is called the default_root_password in this
document.
[root@your_host /root]#
Trying your_IP_address...
Connected to your_IP_address.
Escape character is '|]'.
Linux 2.2.15 (your_host_name) (ttyp0)
The formatting process can take quite a long time. Please do not enter additional
commands until the prompt reappears. Then continue by entering the following
command:
[root@your_host /root]# dasdfmt -f /dev/dasdb -b 4096
ftp> dir
drwxr-x--- 2 root root 1024 May 13 21:14 .
drwxr-xr-x 15 root root 1024 May 15 18:10 ..
-rw------- 1 root root 1058 May 6 17:08 .bash_history
ftp> bin
200 Type set to I.
ftp> put initfs_big.tgz /mnt/dasda/initfs.tgz
local: initfs.tgz remote: /mnt/dasda/initfs.tgz
226 Transfer complete.
ftp> quit
221 Goodbye.
Edit the parameter file (PARM LINE) in the /mnt/dasda/boot directory of your
LINUX file system. Ensure that it contains the following information (you might
find it easier to use the vi editor):
dasd=150-151 root=/dev/dasda1 ro noinitrd
where 150–151 is the range of DASD devices (in this case there are only two, 150
and 151). You might want to use ipldelay=1m to delay the boot process for one
minute (this allows the system components time to stabilize after the IPL).
Remember that when IPL-ing from disk using an ASCII encoded parameter file
which you have generated on a UNIX or PC operating system, make sure that
your line contains no special characters (for example, tabs or new lines). In
particular your parameter file cannot span over more than one line and must not
be larger that 1023 Byte.
Write the boot record by using the silo command (see “silo” on page 159). You can
use the silo command in two ways:
v You can run it in a test-mode to see whether everything looks all right. To test
enter the silo command as follows:
[root@your_host /mnt/dasda/boot/]# ../sbin/silo -f <kernel> -d /dev/dasda
-p <parameter file> -b ipleckd.boot
Where, for example, /dev/dasda is the DASD that you want to IPL from and
ipleckd.boot contains the boot sector.
Make sure that the kernel image and the parameter file reside on the volume
(DASD) that you intend to IPL from.
Adapt the first fstab entry to the root device (you might have to use the vi
editor). fstab is located in /etc/fstab. For example:
/dev/dasda1 / ext2 defaults,errors=remount-ro 0 1
/dev/dasdb1 swap swap defaults 0 0
none /proc proc defaults 0 0
Shut down your LINUX for S/390 system using the command:
[root@your_host /root/mnt/dasda]# shutdown -h now
You are prompted again for the network information. Refer to “Entering network
information” on page 83 for more details.
Installation is complete!
There are some important differences in the area of network connections and I/O
device driver setup, and these differences are described in example format in this
chapter.
Before installing LINUX for S/390 on a Multiprise 3000, you should be familiar
with the technical architecture of the machine. Two ITSO Redbooks are available:
v Multiprise 3000 Technical Introduction: SG24-5633
v Multiprise 3000 Basic Emulated I/O Definitions: SG24-5669
A microcode fix (MCF P6433051) can solve certain types of problem that occur
during IPL. For example, the LCS device can fail to start up after you have
successfully performed an IPL from tape on a LPAR, stopped LINUX, and then
re-booted from tape.
I/O settings
The following example assumes that two Token Ring adapters are being used,
where the MPTS Logical Adapter number 0 is used for OS/2 exclusively and
MPTS Logical Adapter number 1 is used by LINUX for S/390.
The following shows the definition within MPTS in OS/2 which will be used in
the Support Element TCP/IP settings:
IBM PCI Token Ring Family Adapter (IBMTRP.OS2)
0 - IEEE802.2
0 - IBM OS/2 NETBIOS
0 - TCP/IP
Now you have to define the TCP/IP settings in the Support Element:
1. Log-on to the Support Element as
v user ACDADMIN
v default password is PASSWORD
2. Select the View window and click on Console Actions
3. Select 'Support Element Settings' and click on the 'Enable LAN Connection'
check box.
4. You will be asked to provide the Adapter Number.
v Enter 0 for the Logical Adapter number specified within MPTS in OS/2
v Click Apply.
Please also refer to the Redbook Multiprise 3000 Basic Emulated I/O Definitions
Chapter 4.
Please note that you cannot use the same LAN adapter with OS/2 TCP/IP and
LINUX for S/390 TCP/IP.
The Token Ring adapter which is used by LINUX for S/390 must be defined
without the TCP/IP protocol driver. You will need the logical adapter number later
in order to configure the LINUX for S/390 TCP/IP definitions. You have to
configure the appropriate IOCDS definitions for read and write channels:
...
...
CHPID PATH=FC,TYPE=EIO,SHARED
...
...
CNTLUNIT CUNUMBR=0E22,PATH=(FC),UNIT=3088,UNITADD=((22))
CNTLUNIT CUNUMBR=0E23,PATH=(FC),UNIT=3088,UNITADD=((23))
...
...
IODEVICE ADDRESS=(0E22),CUNUMBR=(0E22),UNIT=3088,PARTITION=(LINUX390)
IODEVICE ADDRESS=(0E23),CUNUMBR=(0E23),UNIT=3088,PARTITION=(LINUX390)
...
...
You have to enter the definitions in the emulated I/O DEVMAP where the
addresses refer to your settings in the IOCDS. In this example, Device Driver
Manager 9 is LCS3172, but it can be another number depending on your
configuration.
Adr Device Label Atype Size Mgr FN/P
22 3088 9
23 3088 9
This means that the LCS device driver uses device number 0xe22 for the read
channel and the write channel device number is implicitly 0xe23 (read channel
device number + 1).
becomes:
/dev/dasda1 / ext2 defaults,errors=remount-ro 0 1
7. Change the insmod line in /etc/rc.d/rc.sysinit from:
insmod /lib/modules/2.2.13/net/osa2lan.o
to:
insmod /lib/modules/2.2.15/net/lcs.o
8. If you want to IPL from DASD then rerun silo: "silo -f -d -p -
b ipleckd.boot"
The ELF ABI name for the dynamic linker has been changed from ld-linux.so.2
to ld.so.1. If you want to use old binaries with the new glibc make a link in /lib
cd /lib
ln -s ld-2.1.2.so ld-linux.so.2
IEEE emulation
G5 and G6 (or newer) versions of S/390 are capable of performing floating point
calculations according to the IEEE standard. On S/390 this format is called Binary
Floating Point (BFP) format. BFP calculations are always possible in native single
image or LPAR mode. If you want to use the IEEE hardware FPU using VM,
ensure you have APARs VM62337 and VM62410 installed before bringing up
LINUX under VM. Anyone IPL-ing LINUX under VM/ESA V2R3.0 will need
VM61762, too. It already exists in the 2.4.0 base.
G3 and G4 versions use software emulation to provide the IEEE facility. You need
to set the kernel configuration option, IEEE FPU emulation, to (Y) when you
compile your own kernel. Refer to “IEEE FPU emulation” on page 123 for more
details.
Because the software emulation is noticeable slower than the hardware FPU, you
should try to avoid intensive use of floating point calculations with G3 or G4
versions.
Networking
Virtual CTC devices are used to provide high speed internal connections between
any two operating systems running under VM. ESCON devices are used to
provide these connections under VM or in an LPAR. For example, you can connect
two LINUX for S/390 systems together or a LINUX for S/390 and a OS/390
system. Refer to “CTC/ESCON” on page 141 for more details.
It is essential to define the correct MTU size for the channel device, otherwise it
will not work properly. The same MTU size (default 1500) must be used for the
LINUX for S/390 side of the channel as is used on the remote side. For high
performance, the MTU size must be as large as possible, for example 32 K for
communications between LINUX for S/390 and OS/390.
For outgoing network traffic, one of three types of OSA card is used:
v OSA-2 ENTR
v OSA-2 FENET
v OSA Express Fast Ethernet
The MTU size is fixed for Ethernet, so (apart from normal networking
good-practice) the only way to tune the network performance is to choose the card
most suitable for your requirements:
v The Ethernet and Token Ring (OSA-2 ENTR) card is limited to a data transfer
speed of 10 Mbit/s (Ethernet) or 16 Mbit/s (Token Ring) and is suitable for a
lightly loaded web server or a moderate number of Telnet sessions.
v The Fast Ethernet (OSA-2 FENET) card has been mainly superseded by the OSA
Express Fast Ethernet (OSA Express Fast Ethernet) card. This card operates at
For information about setting-up Token Ring networks and improving Ethernet
performance by workload planning, refer to the Linux Network Administrators’ Guide
available on the World Wide Web from the Linux Documentation project at
http://www.linuxdoc.org/
DASD
For optimum performance in most cases you should use a 4K block size with your
DASDs. However, because each file takes up a multiple of 4 KB, if you have a
large number of small files, you may want to use a smaller block size.
Note however that the DASD used for IPL must have a block size of 2K or 4K. It
is also important to use a 4K block size for the swap space.
It is better to use dedicated channels to the DASD rather than sharing channels
with another operating system. For example, if OS/390 is using a channel that
LINUX for S/390 requires, the channel must be closed (by OS/390) and then
reopened (by LINUX for S/390) before it can be used.
Memory optimization
The S/390 system slows down when there is a lot of paging to the DASD. The
amount of paging to DASD can be reduced by the use of a RAM-disk used as a
swap device. The S/390 architecture supports up to 64 GB of XPRAM but LINUX
for S/390 can directly access only 2 GB. This would normally limit the size and
usefulness of the RAM-disk. However, the additional memory can be declared as
expanded storage and used with the XPRAM driver as a file system. XPRAM is a
block device driver and should be used to control the additional memory. Refer to
“XPRAM” on page 139 for more details.
Compiler optimization
Compiler optimization can provide useful speed enhancements, however you must
be careful if you need to debug because some optimization options can make it
impossible to recognize the code. The –03 option will still let you debug the code.
The –mno–backchain option removes the need to write a backchain and it is then
impossible to locate the calling spec of any function. This option provides a 5%
speed enhancement but you can no longer read the code.
Communication between LINUX for S/390 and other S/390 operating systems
(OS/390, VSE or VM) can be established using standard TCP/IP (or UDP/IP)
connections. Based on TCP/IP or UDP/IP, you can run remote applications, for
example, Telnet, rlogin, FTP, http, NFS, etc. [reference to general TCP/IP book].
Your build system must have the following software installed (as a minimum):
v kernel source 2.2.15 with the LINUX for S/390 patch
v gcc version 2.95.2 or newer supporting LINUX for S/390
v binutils version 2.9.1 or newer supporting LINUX for S/390
v glibc 2.1.2 or newer supporting LINUX for S/390
v sed
v bash
v make version 3.77 or newer.
If you decide to modify your LINUX for S/390 kernel, you should use the
instructions outlined in the following sections. In this way you will be sure of
completing all of the tasks necessary to ensure the system runs properly when you
have finished. For example, you might have to install and link additional modules
after you have compiled and installed the kernel.
1. “Preliminary steps”
2. “Configuring the parameters” on page 102
3. “Checking the configuration” on page 103
4. “Checking the dependencies” on page 103
5. “Compiling the kernel” on page 103
6. “Installing the modules” on page 104
7. “Finishing off” on page 104
Preliminary steps
Before working with the kernel, there are a number of precautions that you should
take:
v Make a backup copy of the current kernel and all modules corresponding to this
kernel. It is important to make a backup even if you are replacing your kernel
with a new version. This is because the new system might not run properly and
you can use the backup to reload the old system
v Decide whether you want to modify the complete kernel, or only change some
modules. If you only change some modules, you might not have to build the
kernel.
In make config, you select what you want to include in the resident kernel and
what features you want to have available as dynamically loadable modules. See
“Chapter 13. Using ’config’ or ’oldconfig’” on page 107 for an example of a
make config listing. You will generally select the minimal resident set that is
needed to boot:
v The type of file system used for your root partition (for example, ext2)
v Normal hard disk drive support (for example, DASD)
v Network support
v TCP/IP support.
The set of modules is constantly increasing, and you will be able to select the
option (M) when responding to the prompts shown in make config for those
features that the current kernel can offer as loadable modules. You can completely
enable or disable the use of your set of modules by using the CONFIG_MODVERSIONS
option during make config.
make config requires bash to allow it work. Bash will be searched for in $BASH,
/bin/bash and /bin/sh (in that order), so it must be located in one of these
directories for it to work. make config must be performed even if you are only
upgrading to the next patch. New configuration options are added in each release,
and odd problems will turn up if the configuration files are not set up as expected.
If you want to upgrade your existing configuration with minimal work, use
make oldconfig, which will keep your old kernel and only ask you questions about
new or modified options.
make checkconfig checks the source tree for missing instances of #include <linux>.
This needs to be done occasionally, because the C preprocessor will silently give
bad results if these symbols haven’t been included (it treats undefined symbols in
preprocessor directives as defined to 0). Superfluous uses of #include <linux> are
also reported, but you can ignore these, because smart CONFIG_* dependencies
make them harmless. You can run make checkconfig without configuring the
kernel. Also, make checkconfig does not modify any files.
make checkhelp checks the source tree for options that are in Config.in files but
are not documented in scripts/Configure.help. Again, this needs to be done
occasionally. If you have hacked the kernel and changed configuration options or
are adding new ones, it is a good idea to make checkhelp (and add help as
necessary) before you publish your patch. Also, make checkhelp does not modify
any files.
Enter make dep to set up all the dependencies correctly. make dep is a synonym for
the long form, make depend. This command performs two tasks:
v It computes dependency information about which .o files depend on which .h
files. It records this information in a top-level file named .hdepend and in one
file per source directory named .depend.
v If you have CONFIG_MODVERSIONS enabled, make dep computes symbol version
information for all of the files that export symbols (note that both resident and
modular files can export symbols). If you do not enable CONFIG_MODVERSIONS,
you only have to run make dep once, right after the first time you configure the
kernel. The .hdepend files and the .depend file are independent of your
configuration. If you do enable CONFIG_MODVERSIONS, you must run make dep
because the symbol version information depends on the configuration.
If you want to IPL from tape, ensure that the following configuration settings are
used:
v CONFIG_IPL is set
v CONFIG_IPL_TAPE is set
v CONFIG_BLK_DEV_RAM is set
v CONFIG_BLK_DEV_INITRD is set.
Additionally you should keep the default configuration settings to make sure that
all requirements to get a running LINUX for S/390 kernel are met.
You create the modules by entering the command make modules. This will compile
all of the modules and update the linux/modules directory. This directory will now
contain a set of symbolic links, pointing to the various object files in the kernel
tree.
After you have created all your modules, you must enter make modules_install.
This will copy all of the newly made modules into subdirectories under
/lib/modules/kernel_release/, where kernel_release is 2.2.15 (the current kernel
version).
As soon as you have rebooted the newly made kernel, you can use the utilities
insmod and rmmod to install and remove modules without recompiling the kernel.
Read the man-pages for insmod and rmmod to find out how to configure and
remove a module.
Finishing off
You should always keep a backup LINUX for S/390 kernel available in case
something goes wrong. This backup must also include the modules corresponding
to that kernel. If you are installing a new kernel with the same version number as
your working kernel, make a backup of your modules’ directory before you do a
make modules_install.
In order to boot your new kernel, you’ll need to copy the kernel image (found in
/usr/src/linux/arch/s390/boot/image after compilation) to the place where your
regular bootable kernel is located. This will be on your IPL tape.
Use make config or make oldconfig when you only have access to a line based
console. If you can use a screen based console, you might find make menuconfig
gives you a better interface (see “Chapter 14. Using ’menuconfig’” on page 111).
The following output listing shows an example of the complete configuration script
that results from a make config. See “Chapter 15. Kernel parameter options” on
page 123 for more information about individual options.
Some options can be built directly into the kernel. Other options can be made into
dynamically loadable modules. Some options can be completely removed
altogether. There are also certain kernel parameters which are not really selectable
options (Y) or (N), but instead values must be entered for them or selected from a
list (decimal or hexadecimal numbers or possibly text).
The menu items begin with various types of bracket to indicate that the features:
v [*] are configured to be built in to the kernel.
v [ ] are configured to be removed from the kernel.
v <M> are configured to be modularized.
v < > are module capable features.
v <*> could have been modules, but have been built into the kernel.
Modules are linked to the kernel after booting.
Some menu items contain subordinate options that are displayed only when the
menu item has been selected.
File handling
You can revise your settings up until you save the configuration. You will be given
a last chance to confirm them prior to exiting menuconfig, see “Exit ’menuconfig’”
on page 121.
If menuconfig quits with an error while saving your configuration, you can look in
the file /usr/src/linux/.menuconfig.log for information which can help you
determine the failure cause.
You can also save the current configuration to a file of your choice, or load a
previously saved configuration, see “Save configuration to an alternate file” on
page 121 and “Load an alternate configuration file” on page 120.
Menuconfig supports the use of alternate configuration files for those who, for
various reasons, find it necessary to switch between different kernel configurations.
At the end of the main menu you will find two options. One is for saving the
current configuration to a file of your choosing. The other option is for loading a
previously saved alternate configuration. Even if you don’t use alternate
configuration files, but during a session you decide to restore your previously
saved settings from .config, you can use the Load Alternate... to do so without
restarting menuconfig.
The LINUX for S/390 Processor Type and Features menu option is described in the
following section:
v “IEEE FPU emulation” on page 123.
General setup
The General Setup options configure your kernel’s interaction with certain external
programs, this includes:
v kernel networking support
v the synchronization and exchange of information between kernel and program
v instructing the kernel to write process accounting information to a file
v dynamically changing certain kernel parameters and variables on the fly.
Linux Kernel v2.2.15 Configuration
──────────────────────────────────────────────────────────────────────────────
┌───────────────────────────── General setup ─────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus --->. │
│ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, │
│ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help. │
│ Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ [*] Fast IRQ handling │ │
│ │ [*] Builtin IPL record support │ │
│ │ (tape) IPL method generated into head.S │ │
│ │ [*] Networking support │ │
│ │ [*] System V IPC │ │
│ │ [ ] BSD Process Accounting │ │
│ │ [ ] Sysctl support │ │
│ │ <*> Kernel support for ELF binaries │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > │
└─────────────────────────────────────────────────────────────────────────┘
Note that the Support for DIAG access to CMS reserved minidisk option is
available only when the Support for VM minidisk option is not selected.
The S/390 Block Device Drivers menu options unique to LINUX for S/390 are
described in the following sections:
v “Support for VM minidisk” on page 124
v “Support for synchronous read-write” on page 125
v “Support for DASD devices” on page 125
v “Support for ECKD disks” on page 125.
v “Support for FBA disks” on page 126
v “Support for DIAG access to CMS reserved minidisk” on page 126
v “XPRAM device support” on page 126
The S/390 Network device support menu options unique to LINUX for S/390 are
described in the following sections:
v “LCS device support” on page 127
v “CTC device support” on page 127
v “IUCV device support” on page 127.
Networking options
The Networking options allow the kernel to interact with the network devices
attached to your S/390 and also lets you optimize the performance of
communications within and outside your system.
Linux Kernel v2.2.15 Configuration
──────────────────────────────────────────────────────────────────────────────
┌────────────────────────── Networking options ───────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus --->. │
│ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, │
│ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help. │
│ Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ <*> Packet socket │ │
│ │ [*] Kernel/User netlink socket │ │
│ │ [ ] Routing messages │ │
│ │ < > Netlink device emulation │ │
│ │ [ ] Network firewalls │ │
│ │ [ ] Socket Filtering │ │
│ │ <*> Unix domain sockets │ │
│ │ [*] TCP/IP networking │ │
│ │ [ ] IP: multicasting │ │
│ │ [ ] IP: advanced router │ │
│ │ [ ] IP: kernel level autoconfiguration │ │
│ │ [ ] IP: optimize as router not host │ │
│ │ < > IP: tunneling │ │
│ │ < > IP: GRE tunnels over IP │ │
│ │ [ ] IP: aliasing support │ │
│ │ [ ] IP: TCP syncookie support (not enabled per default) │ │
│ │ --- (it is safe to leave these untouched) │ │
│ │ < > IP: Reverse ARP │ │
│ │ [*] IP: Allow large windows (not recommended if <16Mb of memory) │ │
│ │ < > The IPv6 protocol (EXPERIMENTAL) │ │
│ │ --- │ │
│ │ < > The IPX protocol │ │
│ │ < > Appletalk DDP │ │
│ │ < > CCITT X.25 Packet Layer (EXPERIMENTAL) │ │
│ │ < > LAPB Data Link Driver (EXPERIMENTAL) │ │
│ │ [ ] Bridging (EXPERIMENTAL) │ │
│ │ [ ] 802.2 LLC (EXPERIMENTAL) │ │
│ │ < > Acorn Econet/AUN protocols (EXPERIMENTAL) │ │
│ │ < > WAN router │ │
│ │ [ ] Fast switching (read help!) │ │
│ │ [ ] Forwarding between high speed interfaces │ │
│ │ [ ] CPU is too slow to handle full bandwidth │ │
│ │ QoS and/or fair queueing ---> │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > │
└─────────────────────────────────────────────────────────────────────────┘
Filesystems
The Filesystems options allow you to define the filesystems used to access your
storage devices (hard disk, CDROM etc.).
Linux Kernel v2.2.15 Configuration
──────────────────────────────────────────────────────────────────────────────
┌────────────────────────────── Filesystems ──────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus --->. │
│ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, │
│ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help. │
│ Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ [ ] Quota support │ │
│ │ < > Kernel automounter support │ │
│ │ < > ADFS filesystem support (read only) (EXPERIMENTAL) │ │
│ │ < > Amiga FFS filesystem support │ │
│ │ < > Apple Macintosh filesystem support (experimental) │ │
│ │ < > DOS FAT fs support │ │
│ │ < > ISO 9660 CDROM filesystem support │ │
│ │ < > Minix fs support │ │
│ │ < > NTFS filesystem support (read only) │ │
│ │ < > OS/2 HPFS filesystem support (read only) │ │
│ │ [*] /proc filesystem support │ │
│ │ < > QNX filesystem support (EXPERIMENTAL) │ │
│ │ < > ROM filesystem support │ │
│ │ <*> Second extended fs support │ │
│ │ < > System V and Coherent filesystem support │ │
│ │ < > UFS filesystem support │ │
│ │ < > SGI EFS filesystem support (read only) (experimental) │ │
│ │ Network File Systems ---> │ │
│ │ Partition Types ---> │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > │
└─────────────────────────────────────────────────────────────────────────┘
Partition types
The Partition Types options lets you gain access to the hard disk partitions of other
device types.
Linux Kernel v2.2.15 Configuration
──────────────────────────────────────────────────────────────────────────────
┌──────────────────────────── Partition Types ────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus --->. │
│ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, │
│ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help. │
│ Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ [ ] BSD disklabel (BSD partition tables) support │ │
│ │ [ ] Macintosh partition map support │ │
│ │ [ ] SMD disklabel (Sun partition tables) support │ │
│ │ [ ] Solaris (x86) partition table support │ │
│ │ [ ] Unixware slices support (EXPERIMENTAL) │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ Enter the name of the configuration file you wish │
│ to load. Accept the name shown to restore the │
│ configuration you last retrieved. Leave blank to │
│ abort. │
│ ┌─────────────────────────────────────────────────┐ │
│ │arch/s390/defconfig │ │
│ └─────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────┤
│ < Ok > < Help > │
└─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ Enter a filename to which this configuration │
│ should be saved as an alternate. Leave blank to │
│ abort. │
│ ┌─────────────────────────────────────────────────┐ │
│ │ │ │
│ └─────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────┤
│ < Ok > < Help > │
└─────────────────────────────────────────────────────┘
Exit ’menuconfig’
When you have completed your modifications to the kernel, you are asked
whether you want to save the new kernel configuration. Normally, you would
respond by selecting the Yes option, but you might have made modifications that
you do not want to keep. In that case you can exit the configuration process
without saving the changes by selecting the No option.
┌──────────────────────────────────────────────────────────┐
│ Do you wish to save your new kernel configuration? │
├──────────────────────────────────────────────────────────┤
│ < Yes > < No > │
└──────────────────────────────────────────────────────────┘
LINUX was originally designed for the Intel PC architecture which uses two
cascaded 8259 programmable interrupt controllers (PIC) that allow a maximum of
15 different interrupt lines. All devices attached to that type of system share those
15 interrupt levels (or IRQs). In addition, the bus systems (ISA, MCA, EISA, PCI,
etc.) might allow shared interrupts, different polling methods, DMA processing,
etc.
In order to avoid the introduction of a new I/O concept to the common LINUX
code, LINUX for S/390 preserves the IRQ concept and semantically maps the
ESA/390 subchannels to LINUX as IRQs. This allows LINUX for S/390 to support
up to 64K different IRQs, each representing a unique device.
The unified I/O access method used by LINUX for S/390 allows the operating
system to implement all of the hardware I/O attachment functionality that each
device driver would otherwise have to provide itself. A common I/O device driver
is provided which uses a functional layer to provide a generic access method to
the hardware. The driver comprises a set of I/O support routines, some of which
are common LINUX interfaces, while others are LINUX for S/390 specific:
get_dev_info()
Allows a device driver to find out what devices are attached (visible) to
the system, and to determine their current status.
request_irq()
Assigns the ownership of a specific device to a device driver.
free_irq()
Releases the ownership of a specific device.
DASD
S/390 disk devices, DASDs (Direct Access Storage Device) are managed by LINUX
for S/390 via the DASD device driver. It is valid for all types of DASDs and
represents them to LINUX for S/390 as block devices, namely ″dasd″. Currently
the DASD driver uses a single major number (94) and 4 minor numbers per
volume (1 for the physical volume and 3 for partitions). Thus you can have up to
64 DASD devices in your system.
Features
The driver currently supports ECKD-devices, FBA-devices, and (under VM/ESA)
any DASD devices supported by VM/ESA, by means of DIAG 250 access.
Limitations
We performed our testing on IBM 3380 and 3390 type disks of different sizes,
under VM and on the bare hardware (LPAR), using internal disks of the Multiprise
as well as a RAMAC virtual array. Additionally we have 9345 beta-support,
although it appears to be stable, we have not tested an IPL from 9345. Virtual
ECKD-type disks exported by an Enterprise Storage Server (Seascape), or by
RAMAC and RAMAC RVA, should work fine as well.
We currently implement one partition per volume, which is the whole volume,
skipping the first blocks according to the scheme outlined in Figure 16 on page 136.
These are reserved for IPL records and IBM’s volume label to assure accessibility of
the DASD from other operating systems (OS). In a later stage we will provide
support of partitions, perhaps VTOC oriented or using a kind of partition table in
the label record.
Note that the dasdfmt utility is only able to format DASDs that have already been
formatted using another disk formatting utility. If you have unformatted DASD in
your system, use a device support facility such as ICKDSF to initially format the
DASD.
Because the full set of S/390 error recovery actions are not implemented, you may
encounter problems if you use DASDs with faulty tracks or records, particularly
old 3380 and 3390 devices.
The size of any swap device or file may not exceed 2 GB. Similarly, the limit for
the main memory that can be defined is slightly less than 2 GB. Refer to “XPRAM”
on page 139 for information about the expanded memory capability.
where:
v range is either of the form from-to or devno.
v autodetect | probeonly determines whether DASDs are actually registered to
LINUX for S/390 (autodetect) or whether you are just inspecting the set of
DASDs to see if they can be registered (probeonly).
probeonly is the default and causes messages to be written to the log for each
device that can be accessed by LINUX for S/390. autodetect causes the devices
to be ordered by subchannel number in ascending order.
An additional DASD parameter causes the DASD driver to use DIAG 250
commands to perform I/O on the devices included in the range:
dasd_force_diag=range[,...]
The specified devices must be CMS formatted and it is strongly recommended that
they are also CMS reserved. The device numbers should have been included in a
preceding dasd=range statement to avoid confusion.
Example
dasd=192-195,5a10 dasd_force_diag=194
This reserves minor numbers 0, 4, 8, and 12 for device numbers 192, 193, 194, and
195 respectively. Device 5a10 is made accessible at minor number 16 (/dev/dasde)
and the storage available for the file system is made available at minor number 17
(/dev/dasde1).
Device 194 is accessed by means of VMs CMS opcode DIAG 250 instead of by
channel programs.
Using DASD
Before using an ECKD type DASD as a LINUX for S/390 hard disk you have to
low-level format the disk. This should be done using LINUX for S/390 by issuing
an ioctl called BIODASDFORMAT on the file descriptor of the opened volume
/dev/dasd<letter>. The provided utility dasdfmt is an interface to this ioctl which
does some additional checks.
Caution: Using dasdfmt as well as the raw ioctl can accidentally destroy your
running LINUX for S/390 and you will have to reinstall from scratch. See the
help given by dasdfmt - help for further information. The dasdfmt utility consists
of several processes. Take care to allow sufficient time for each process to end
before attempting to enter an additional command. The formatting process can
take quite a long time depending on the size of the hard disk.
Before using a DASD as a LINUX for S/390 disk, you have to create a file system
on it. You should build an ext2-file system on each device unless you want to use
it as a swap device or paging space. Then you should create a swap-file system on
that device.
Note that the blocksize of the file system must be larger than (or equal to) the
blocksize given to the dasdfmt command. It is recommended that the two
blocksize values are equal.
VM minidisk
Under VM it is possible to divide DASDs into logical partitions, so-called
minidisks. These minidisks have a unique 16 bit identification, the virtual device
number. Each virtual device can be formatted from VM and used with the CMS
file system. Also, it is possible to create a reserved minidisk, which creates one big
file the size of the whole virtual device. This reserved file can be written to under
CMS and be accessed with a special Opcode DIAG 250 in a block device manner.
Features
A reserved minidisk must be formatted with a blocksize of 512 bytes, 1KB, 2KB or
4KB. It may have any size.
It is possible to have more than one mdisk= statement in the LINUX PARM file, the
assignment to the minor number of device will be in order of the statements.
Example
The command:
mdisk=193,194
Optional items
A reserved minidisk is created with the following steps:
1. Format minidisk with blocksize x
2. Reserve minidisk
Example:
format 192 b (blksize 4096
reserve mnda mnda b
XPRAM
The S/390 architecture supports more RAM than can be accessed as main memory.
The LINUX for S/390 main memory is limited to 2 GB. However, additional
memory can be declared as expanded storage. The S/390 architecture allows
applications to access up to 16 TB of expanded storage (although the current
hardware can only be equipped with up to 64 GB memory). Memory in the
expanded storage range can be copied in 4 KB blocks to, or from, the main
memory.
The XPRAM device driver is a block device driver that supports LINUX for S/390
allowing it to access the expanded storage. Thus XPRAM can be used as a basis for
fast swap devices and/or fast file systems.
Features
XPRAM automatically detects whether expanded storage is available on the
system. The expanded storage can be subdivided into up to 32 partitions, the
default being a single partition. The XPRAM device driver has major number 35.
The partitions have minor numbers 0 through 31. The hard sector size of XPRAM
is set to 4096 bytes.
Limitations
If expanded storage is not available, XPRAM cannot be used. Its initialization fails
gracefully with a log message reporting the lack of expanded storage.
Any partition defined with a non-zero size is allocated the amount of memory
specified by its non-negative_integer parameter.
You can automatically allocate the remaining memory between a set of partitions
by specifying zero for the size of each partition in the set. The following formula is
used to calculate the size for each of these partitions:
(available expanded storage - sum of all non-zero sizes specified)
computed size = ----------------------------------------------------------------
number of partitions with zero sizes
This formula is only a good approximation of the actual size allocated to each
partition. Because of the requirement to assign blocks in multiples of 4K, partitions
can be larger or smaller than the estimate produced by the calculation. In addition,
there might be an amount of memory left as a ″guard space″ between two
partitions.
Example
xpram_parts=4,0x800M,0,0,0x1000M
This allocates the extended storage into four partitions. Partition 1 has 2 GB,
partition 4 has x 4 GB, and partitions 2 and 3 use equal parts of the remaining
storage. If the total amount of extended storage was 16 GB, then partitions 3 and 4
would each have approximately 5 GB.
where:
v number_of_devices is used to define the number of partitions.
v size is a non-negative integer that defines the partition’s size. Only decimal
values are allowed and no magnitudes are accepted. The size will be interpreted
in KB.
Example
devs=4 sizes=2097152,8388608,4194304,2097152
The current implementation of the CTC network device driver can handle up to 8
CTC connections and/or 8 ESCON connections. In autosense mode the driver
always picks 16 parallel/ESCON channels with the lowest sub-channel IDs. When
a CTC definition is in the kernel parameter file, the channels have to be in the first
64 CTC/ESCON sub-channel ID’s. This value (MAX_CHANNEL_DEVICES) can be
changed in the ctc.c file.
Features
Can be configured from a kernel parameter line.
Limitations
This CTC option cannot be specified in the kernel parameter file which is used as
input for SILO on native systems. If it is specified, LINUX for S/390 cannot be
booted. A solution for this problem is to define the CTC Adapters as two adjacent
3088s in the IOCS. The following example defines the CTC IODEVICE for the two
systems:
v System A:
IODEVICE ADDRESS=(500,2),CUNUMBR=001, x
UNIT=CTC,UNITADD=0
Where:
v rrrr is the read channel address
v wwww is the write channel address
v dddd is the network device (ctc0 to ctc7 for a parallel channel, escon0 to escon7
for ESCON channels).
To switch the automatic channel selection off, use the ctc= keyword with the
parameter noauto. This might be necessary if your installation uses 3271 devices or
other devices that use the CTC device type and model, but operate with a different
protocol.
ctc=noauto
Note that the CTC kernel parameter must be written to the parameter file:
v If you are using a native installation, this is parameter -p in the silo parameter
file
v For a VM installation, include the parameter in the parm.line file
Example
For one network drive:
ctc=0,0x600,0x601,ctc0
You can write the def and couple commands into the profile dataset.
Instead of connecting to the VM TCP/IP user ID, you can also connect to
another VM user ID, where a LINUX for S/390, OS/390 or VSE is running.
Where:
10.0.51.3
is the IP address of the local network device. (ctc0 to ctc7 or escon0 to
escon7)
10.0.50.1
is the IP address of the remote side.
Remember that the keyword in the ifconfig command changes from ctc to
escon when a native installation is performed. For example:
ifconfig escon0 10.0.0.1 pointopoint 10.0.50.1 netmask 255.0.0.0 mtu 32760
The communication takes place over a predefined linkage called a path. Each
virtual machine can have multiple paths and can receive and send multiple
messages on the same path simultaneously.
The LINUX for S/390 IUCV device driver is a network device, which uses IUCV to
connect LINUX kernels running on different VM user IDs or to connect a LINUX
kernel to a TCP/IP service machine. The TCP/IP service machine serves as a
gateway to the network, if properly configured.
The following picture shows the possible connection of two LINUX for S/390
machines:
Limitations
To use this driver, a running TCP/IP service machine is required on the one side,
and on the other side, LINUX for S/390 must be running under VM.
Optional items
VM side (TCP/IP service machine)
The standard definitions in the VM TCP/IP configuration files apply.
For more information of the VM TCP/IP configuration see: TCP/IP V2R4 for VM:
Plan and Cust (SC31608203)
(on guest 0)
Enter:
ifconfig iucv0 <guest 1 TCP address> pointopoint <guest 0 TCP address>
If both the 3215 and Hardware console are compiled into the kernel, the
appropriate console will be chosen at run-time according to the environment:
v In VM, the 3215 console will be enabled and the Hardware console suppressed.
v In an LPAR or native environment, the Hardware console will be enabled and
the 3215 suppressed.
The intended use of the 3215 terminal device driver is solely to launch LINUX.
When LINUX is running, the user should access LINUX for S/390 via Telnet,
because the terminal is a line-mode terminal and is unable to support applications
such as vi. Therefore it is strongly recommended that you assign dump to the TERM
environment variable so that at least applications like less give appropriate
output.
Features
v Provides a line mode typewriter terminal.
v Console output on the first 3215 terminal.
Limitations
This driver only works in combination with VM. In a single image or in LPAR
mode the 3215 terminal device driver initialization function just exists without
registering the driver.
where cuu is the device Control Unit and Unit address, and is a hexadecimal
number (preceded by 0x).
Example
condev=0x001f
This forces the 3215 device driver to use the device number 0x1f for its 3215
device (the prefix 0x denotes a hexadecimal number).
Special characters:
The 3215 terminal does not have a control key. That makes it impossible to enter
control characters directly. To be able to enter at least some of the more important
control characters, the character | can have a special meaning. There are four cases:
v The two character input line |c is interpreted as a Ctrl+C. This is used to cancel
the process that is currently running in the foreground of the terminal.
v The two character input line |d is interpreted as a Ctrl+D. This is used to
generate an end of file (EOF) indication.
v The two character input line |z is interpreted as a Ctrl+Z. This is used to stop a
process.
v The two characters |n at the end of an input line suppresses the automatic
generation of a new line. This makes it possible to enter single characters, for
example those characters that are needed for yes/no answers in the ext2 file
system utilities.
If the special characters don’t seem to work, make sure you have the correct
codepage in your terminal emulator. One that works is codepage 037 United States.
3270 emulation
If you are accessing the console using x3270, then you should add the following
settings to the .XDefaults file in order to get the correct code translation:
! X3270 keymap and charset settings for Linux
x3270.charset: us-intl
x3270.keymap: circumfix
x3270.keymap.circumfix: :<key>asciicircum: Key("|")\n
The intended use of the hardware console device driver is solely to launch LINUX.
When LINUX is running, the user should access LINUX for S/390 via Telnet,
because the console is a line-mode terminal and is unable to support applications
such as vi. Therefore it is strongly recommended that you assign dump to the TERM
environment variable so that at least applications like less give appropriate
output.
The hardware console driver code is separated into three different files plus header
files - one for the low level hardware console handling, another one to make use of
the low level driver as a LINUX console and the third one as a bridge between the
generic terminal code of the kernel and the low level hardware console driver.
Note that there are different options that must be selected during kernel
configuration to enable the LINUX terminal on the Hardware console and to
enable the LINUX console on the Hardware console.
The feature of the hardware console driver is the ability to support the kernel and
user space in parallel. Accordingly there are two different interfaces within the
kernel: console and terminal (short: TTY) to interact with the hardware console
driver. The TTY processes all output requests from outside of the kernel - user
space - the consoles write only kernel messages, but are not able to get input from
the operator.
Features
The hardware console uses a small subset of the hardware console API to interact
with a command interface on the SA/SE (stand alone support element) or a
connected HMC (hardware management console).
Special characters:
The Hardware console does not have a control key. That makes it impossible to
enter control characters directly. To be able to enter at least some of the more
important control characters, the character | can have a special meaning. There are
four cases:
v The two character input line |c is interpreted as a Ctrl+C. This is used to cancel
the process that is currently running in the foreground of the terminal.
v The two character input line |d is interpreted as a Ctrl+D. This is used to
generate an end of file (EOF) indication.
v The two character input line |z is interpreted as a Ctrl+Z. This is used to stop a
process.
v The two characters |n at the end of an input line suppresses the automatic
generation of a new line. This makes it possible to enter single characters, for
example those characters that are needed for yes/no answers in the ext2 file
system utilities.
Under VM make sure that the 3270 emulator session (e.g. PCCOM) is configured
correctly with the codepage 037 United States in order to accept the special keys
(Ctrl-keys like |c, |d, etc.).
Limitations
v Displaying large files might cause some missing sections within the output
because of the latency of the hardware interface employed by the device.
v In native or LPAR environments, you occasionally have to use the Delete button
of the GUI on the Service Element or Hardware Management Console to enable
further output. This is relevant to:
– SE version 1.6.1 or older on G5, G6, and Multiprise 3000.
– SE version 1.5.2 or older on G3, G4, and Multiprise 2000.
v Messages concerning the Hardware console operation that are generated by the
Hardware console driver, cannot be provided to the syslog and are therefore
unavailable with dmesg.
v Output from the head/top is deleted if the amount exceeds approximately 30
Kbyte per LPAR (or image) on SE or HMC.
v Applications such as vi are not supported because of the HWC’s line-mode
nature.
Usage
When you use the hardware console driver running under VM it is important to
consider how the input is handled. Instead of writing into the suitable field within
the graphical user interface at the service element you have to use the
VInput-command provided by VM. Please have a look at the following examples
that are written at the input line of a 3270-Terminal or 3270-Terminal-Emulation
(for example, x3270).
Note that, in the examples, capitals within VInput and its parameters processed by
VM/CP mask the entries you have to make. The lower case letters are optional
and are shown for readability.
VInput VMSG ls -l
(the bash will call ls -l after this command was sent via VInput to the hardware
console as a non-priority command - VMSG).
(the bash will execute echo * after this command was sent via VInput to the
hardware console as a priority command - PVMSG).
Now let us have a look at some features of VInput (found out experimentally).
1. Use ″ twice if you mean a single ″.
VInput example: VInput PVMSG echo ""Hello world, here is ""$0
(normally: echo "Hello world, here is "$0)
2. Do not use # within VInput commands.
# is interpreted as a comment character by VInput. This character and all
following characters are cut off by VInput and are invisible for the hardware
console and the hardware console driver.
3. All characters in lower case are converted by VM to upper case.
If you type VInput VMSG echo $PATH, the driver will get ECHO $PATH and will
convert it into echo $path. LINUX and the bash are case sensitive and cannot
execute such a command. To resolve this problem, the Hardware console uses a
defined character (%) under VM to distinguish between upper and lower case
characters. This behavior and the defined character (%) are adjustable at
build-time by editing the driver sources, or at run-time by use of the
ioctl-interface. Some examples:
v input: VInput VMSG ECHO $PATH
output: echo $path
v input: vi vmsg echo $%PATH%
output: echo $PATH
v input: #cp vi pvmsg echo ""%%%H%ello, here is ""$0 #name of this
process
output: CP VI PVMSG ECHO "%%%H%ELLO, HERE IS "$0
NAME OF THIS PROCESS
HCPCMD001E Unknown CP command: NAME
echo "%Hello, here is "$0
%Hello, here is -bash
Answer: Try the following. If you get an operation exception similar to that shown
in the example below, you do not have an immediate-and-relative-instruction
facility installed.
00: SYS CLEAR
00: Storage cleared - system reset.
00: ST 8000 A71A0123 A71A0321
00: Store complete.
00: ST P 80000 80008000
00: Store complete.
00: TR INST
00: B
00: -> 00008000 AHI A71A0123
00: *** 00008000 PROG 0001 -> 00000000 OPERATION
Answer: Occasionally, you might have to edit a text file by using a line mode
console. In this case, you will have to rely on the ed editor. In other circumstances,
you might be able to use a different editor, but in the worst case scenario, you will
have to use ed.
The content of the file has changed (the changes are in bold):
NETWORKING=yes
FORWARD_IPV4=no
HOSTNAME=newname.domain
GATEWAYDEV=/dev/tr0
GATEWAY=12.12.12.12
You can find some more instructions on using ed at the www address:
http://nl.linux.org/doc/user/node161.html
If you go to any UNIX or LINUX system, including LINUX for S/390, you can
enter the command man ed and get a comprehensive set of information about the
ed editor.
Answer: The installation instructions assumed that you already had a TCP/IP
connection, but an example of using IUCV connections has been written by
Gordon Wolfe of Boeing. The following description is based on his information.
LINUX can communicate with other hosts using TCP/IP. There are many ways to
connect TCP/IP to LINUX for S/390, including
v real CTC
v real 3172s or CISCO routers attached to the virtual machine
v virtual CTC between the LINUX for S/390 virtual machine and the TCP/IP
machine on the host
v IUCV between TCP/IP and the LINUX virtual machine
The last two require no additional hardware, and of the two, IUCV provides
almost two and a half times the speed, up to about 500 Mb/sec. The following
describes how to set up an IUCV connection between LINUX for S/390 under VM
and the VM host’s TCP/IP stack.
First, you will have to go to your TCP/IP communications staff and have them
assign you some IP addresses that are not being used, and create a subnet of your
In PROFILE TCPIP in the TCP/IP user ID on your VM host, add the following lines
in the appropriate sections:
HOME
<your_IP_address> <your_host_name>
;
DEVICE <your_host_name> IUCV 0 0 <your_host_name> B
LINK <your_host_name> IUCV ) <your_host_name>
;
BSDROUTINGPARMS TRUE
<your_host_name> 9216 0 <your_subnet_mask> <your_IP_address>
ENDBSDROUTINGPARMS
;
START <your_host_name>
Refer to, for example, “Creating additional files” on page 68 for more information
about parameter line files.
The IUCV statements are required to communicate with TCP/IP on your VM host.
Answer: You need to perform certain tasks to be able to IPL from the reader:
1. FTP the kernel image.vm.bin and rename it vmlinux.txt with record format
fixed 80.
FTP the RAM disk initrd.bin (if you have one) and rename it initrd.txt with
record format fixed 80.
2. Create a parameter file linux.parm (up to 3 records, simple text).
For example:
mdisk=192 root=/dev/mnda ro
in your PROFILE EXEC. If you have not defined enough storage, the kernel will
generate a prog 7 addressing exception at the beginning of the start up process
(before the console is running properly) and the console will not be able to
report the error.
Answer: Enter #cp commands on your 3215 or hardware console. For example,
#cp q userid gives you the guest name and the VM System Identifier.
Answer: Make sure that OS/2 does not take the interface for its own TCP/IP stack.
If that is the case, either remove TCP/IP from the card or assign TCP/IP to
another card. If you reassign TCP/IP, the card must use Multi-Protocol Transport
Services (MPTS) and it must not be the first interface. The scenario that applies to
TCP/IP also applies to the NetBIOS protocol.
LINUX documents
Many useful documents have been written about LINUX, and of course UNIX
books in general are quite useful. Information is also available on-line in electronic
form if you have access to an on-line network like the Internet. A good place to
start is www.linuxresources.com.
Special mention must be made of the books of the Linux Documentation Project
which are available via anonymous FTP from the FTP site sunsite.unc.edu in the
/pub/Linux/docs subdirectory. They are also available in HTML format from its
home page on the World Wide Web at http://www.linuxdoc.org/
There are too many publications available to allow a definitive selection, but the
type of document you might find useful includes the following titles:
v Linux for Dummies — Jon ″maddog″ Hall / IDG Books Worldwide
v Linux in a Nutshell : A Desktop Quick Reference (Nutshell Handbook) — Ellen
Siever, et al / O’Reilly & Associates
v Running Linux — Matt Welsh, Lar Kaufman / O’Reilly & Associates
v Linux, Second Edition: Installation, Configuration, and Use — Michael Kofler /
Addison-Wesley Pub Co
v Red Hat Linux Unleashed — David Pitts, et al / MacMillan Publishing Company
v Slackware Linux Unleashed — Tim Parker(Editor), Timothy Parker / Sams
Publishing
v SuSE Linux 6 Unleashed (Unleashed) —Billy Ball, Daniel Robbins / Sams
Publishing
v Caldera OpenLinux 2.2 Unleashed (Unleashed) — David Skoll, Lyle Taylor / Sams
Publishing.
Many other large publishers have produced books for LINUX. These are available
from all good computer bookstores (both bricks-and-mortar and on-line).
S/390 documents
Documents about S/390 systems are available as on-line books via the IBMlink
home page of the World Wide Web at http://www.elink.ibmlink.ibm.com/pbl/pbl.
Alternatively, to order IBM publications on CD-ROM, contact your IBM
representative or write to the IBM branch office serving your locality.
Some of the most useful titles are compilations of documents for VM and for
S/390. These are available as printed and on-line media and include a
comprehensive set of documents from subject introductions to highly detailed
technical descriptions.
v IBM VM Collection on CD: Online Library Omnibus Edition: SK2T-2067-16
v IBM Online Library S/390 Rainbow Collection: SK2T-2177-10
v IBM S/390 Redbooks Collection: SK2T-217-21.
netsetup
This shell script is used to set up the network.
#! /bin/bash
#
# readln reads a line into $ans.
#
function readln () {
echo -n "$1"
IFS='@' read ans || exit 1
ans=′echo $ans | sed -e 's/| *//'′
}
#
# yes_no reads either a yes or a no into $ans
#
function yes_no () {
while :; do
readln "$1"
case "$ans" in
[yY] | [yY]es) ans=yes
break;;
[nN] | [nN]o) ans=no
break;;
esac
done
}
echo
echo "Welcome to Linux for S/390"
confok=0
while [ $confok = 0 ]; do
yes_no "Is your machine connected to a network (Yes/No) ? "
if [ "$ans" = "yes" ]; then
while :; do
echo "Select the type of your network device"
echo "1) for osa token ring"
echo "2) for osa ethernet"
echo "3) for channel to channel"
readln "Enter your choice (1-3): "
case "$ans" in
1)
ip_dev=tr0
echo "Please type in the options for the lcs module, e.g. to select"
echo "relative port 1 on device 0xfd00 you should enter: "
echo "noauto=1 devno_portno_pairs=0xfd00,1"
readln "lcs parameter: "
lcs_parm=$ans
break;;
2)
ip_dev=eth0
echo "Please type in the options for the lcs module, e.g. to select"
echo "relative port 1 on device 0xfd00 you should enter: "
echo "noauto=1 devno_portno_pairs=0xfd00,1"
readln "lcs parameter: "
lcs_parm=$ans
rm /etc/rc.d/init.d/netsetup
rm /etc/rc.d/rc3.d/S00netsetup
exit
silo
This tool is used to make DASDs (direct access storage devices) bootable. It takes a
kernel image, a parameter file, a bootsector file, and the device node as input.
Additionally, the file /etc/silo.conf, or the file specified by using the -F file name
parameter, is parsed for additional options.
The parameter line in the parameter file should contain the following entries (note
that you should avoid additional whitespace separating the entries, because the
overall size of a kernel parameter line is limited):
v dasd=from-to|devno[,...]
v root=/dev/... (this has to match the DASD parameter)
v ro
v noinitrd (only necessary if the kernel was compiled with initial RAM disk
support on).
From the config-file /etc/silo.conf, you can specify:
append= [any optional parameter], for example, noinitrd ro
Usage
silo -d ipldevice [-hV?] [-t[#]] [-v[#]]
[-F config-file] [-b bootsector]
[-f image] [-p parameterfile] [-B bootmap]
Additional keywords
Some additional entries for the config-file:
ramdisk=ramdisk image
Optionally specifies the name of a ramdisk image to be used as an initial
ramdisk.
root=device node
Specifies the device holding the root device of the IPL-ed system.
where xyz is the delay period. For example, 30s means a delay of thirty
seconds immediately after the IPL and before initializing the OSA-2 card,
2m means a delay of two minutes. The value xyz must be a number
followed by either s or m. A value of 2m is recommended as a minimum.
This setting is not DASD specific.
dasdfmt
This tool is used to low-level format direct access storage devices (DASD). Note
that dasdfmt is only able to format DASDs that have already been formatted using
another disk formatting utility. If you have unformatted DASD in your system, use
a device support facility such as ICKDSF to initially format the DASD.
dasdfmt uses an ioctl call to the DASD driver to format tracks. A start and end
track for formatting can be specified, as well as a blocksize (hard sector size).
Remember that the formatting process can take quite a long time. The syntax of
the utility is as follows:
dasdfmt [-tvy] [-s start_track] [-e end_track] [-b blocksize] -f dev_filename
| -n 390_devno
The following parameters are necessary, however, if you do not specify their
values, you are prompted for them. You can use the default values by pressing the
<enter> key:
v -s specifies the start track of the formatting. A value of 0 (first track of disk) is
the default value.
v -e specifies the last track of the formatting. A value of -1 means the last track on
the disk and is the default value.
v -b specifies the blocksize. Default value is blocksize of 4096.
initfs_small.tgz
The following packages are contained in the initfs_small.tgz collection:
setup-2.0.5-1.noarch.rpm
filesystem-1.3.5-1.noarch.rpm
basesystem-6.0-4.noarch.rpm
ldconfig-1.9.5-15.s390.rpm
glibc-2.1.3-0.s390.rpm
glibc-profile-2.1.3-0.s390.rpm
glib-1.2.5-1.s390.rpm
shadow-utils-19990827-2.s390.rpm
mktemp-1.5-1.s390.rpm
termcap-9.12.6-15.s390.rpm
libtermcap-2.0.8-18.s390.rpm
bash-1.14.7-16.s390.rpm
ncurses-4.2-18.s390.rpm
cracklib-2.7-5.s390.rpm
cracklib-dicts-2.7-5.s390.rpm
pwdb-0.60-1.s390.rpm
info-3.12h-2.s390.rpm
zlib-1.1.3-5.s390.rpm
bdflush-1.5-10.s390.rpm
bison-1.27-3.s390.rpm
bzip2-0.9.0c-1.s390.rpm
chkconfig-1.0.7-2.s390.rpm
e2fsprogs-1.15-3.s390.rpm
ed-0.2-12.s390.rpm
file-3.26-6.s390.rpm
fileutils-4.0-1.s390.rpm
findutils-4.1-31.s390.rpm
flex-2.5.4a-6.s390.rpm
gawk-3.0.3-7.s390.rpm
gdbm-1.8.0-2.s390.rpm
getty_ps-2.0.7j-7.s390.rpm
nscd-2.1.3-0.s390.rpm
grep-2.3-2.s390.rpm
gzip-1.2.4-14.s390.rpm
less-332-6.s390.rpm
libtool-1.3.3-1.noarch.rpm
m4-1.4-12.s390.rpm
make-3.77-6.s390.rpm
mingetty-0.9.4-10.s390.rpm
vixie-cron-3.0.1-40.s390.rpm
modutils-2.1.121-12.s390.rpm
logrotate-3.3.2-1.s390.rpm
mount-2.9o-1.s390.rpm
losetup-2.9o-1.s390.rpm
net-tools-1.51-3.s390.rpm
portmap-4.0-15.s390.rpm
netkit-base-0.10-29.s390.rpm
procps-2.0.2-2.s390.rpm
psmisc-18-3.s390.rpm
routed-0.10-14.s390.rpm
sed-3.02-4.s390.rpm
sysklogd-1.3.31-12.s390.rpm
tcp_wrappers-7.6-7.s390.rpm
initfs_big.tgz
The following packages are contained in the initfs_big.tgz collection:
setup-2.0.5-1.noarch.rpm
filesystem-1.3.5-1.noarch.rpm
basesystem-6.0-4.noarch.rpm
ldconfig-1.9.5-15.s390.rpm
glibc-2.1.3-0.s390.rpm
glibc-profile-2.1.3-0.s390.rpm
glib-1.2.5-1.s390.rpm
shadow-utils-19990827-2.s390.rpm
mktemp-1.5-1.s390.rpm
termcap-9.12.6-15.s390.rpm
libtermcap-2.0.8-18.s390.rpm
bash-1.14.7-16.s390.rpm
ncurses-4.2-18.s390.rpm
cracklib-2.7-5.s390.rpm
cracklib-dicts-2.7-5.s390.rpm
pwdb-0.60-1.s390.rpm
info-3.12h-2.s390.rpm
zlib-1.1.3-5.s390.rpm
bdflush-1.5-10.s390.rpm
bison-1.27-3.s390.rpm
bzip2-0.9.0c-1.s390.rpm
chkconfig-1.0.7-2.s390.rpm
e2fsprogs-1.15-3.s390.rpm
ed-0.2-12.s390.rpm
file-3.26-6.s390.rpm
fileutils-4.0-1.s390.rpm
findutils-4.1-31.s390.rpm
flex-2.5.4a-6.s390.rpm
gawk-3.0.3-7.s390.rpm
gdbm-1.8.0-2.s390.rpm
getty_ps-2.0.7j-7.s390.rpm
nscd-2.1.3-0.s390.rpm
grep-2.3-2.s390.rpm
gzip-1.2.4-14.s390.rpm
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions, therefore, this statement may not apply
to you.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those Web
sites. The materials at those Web sites are not part of the materials for this IBM
product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it
believes appropriate without incurring any obligation to you.
This information contains examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples include the
names of individuals, companies, brands, and products. All of these names are
fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
Preamble
The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users. This General Public License applies to most of the
Free Software Foundation’s software and to any other program whose authors
commit to using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to your
programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom to
distribute copies of free software (and charge for this service if you wish), that you
receive source code or can get it if you want it, that you can change the software
or use pieces of it in new free programs; and that you know you can do these
things.
To protect your rights, we need to make restrictions that forbid anyone to deny
you these rights or to ask you to surrender the rights. These restrictions translate
to certain responsibilities for you if you distribute copies of the software, or if you
modify it.
For example, if you distribute copies of such a program, whether gratis or for a
fee, you must give the recipients all the rights that you have. You must make sure
that they, too, receive or can get the source code. And you must show them these
terms so they know their rights.
Also, for each author’s protection and ours, we want to make certain that everyone
understands that there is no warranty for this free software. If the software is
modified by someone else and passed on, we want its recipients to know that what
they have is not the original, so that any problems introduced by others will not
reflect on the original authors’ reputations.
The precise terms and conditions for copying, distribution and modification follow.
Activities other than copying, distribution and modification are not covered by this
License; they are outside its scope. The act of running the Program is not
restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made by
running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program’s source code as
you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this License and
to the absence of any warranty; and give any other recipients of the Program
a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may
at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus
forming a work based on the Program, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that you
also meet all of these conditions:
a. You must cause the modified files to carry prominent notices stating that
you changed the files and the date of any change.
b. You must cause any work that you distribute or publish, that in whole or
in part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of this
License.
c. If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the
most ordinary way, to print or display an announcement including an
appropriate copyright notice and a notice that there is no warranty (or
else, saying that you provide a warranty) and that users may redistribute
the program under these conditions, and telling the user how to view a
copy of this License. (Exception: if the Program itself is interactive but does
not normally print such an announcement, your work based on the
Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be
Thus, it is not the intent of this section to claim rights or contest your rights to
work written entirely by you; rather, the intent is to exercise the right to
control the distribution of derivative or collective works based on the
Program.
In addition, mere aggregation of another work not based on the Program with
the Program (or with a work based on the Program) on a volume of a storage
or distribution medium does not bring the other work under the scope of this
License.
3. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections 1 and 2
above provided that you also do one of the following:
a. Accompany it with the complete corresponding machine-readable source
code, which must be distributed under the terms of Sections 1 and 2 above
on a medium customarily used for software interchange; or,
b. Accompany it with a written offer, valid for at least three years, to give any
third party, for a charge no more than your cost of physically performing
source distribution, a complete machine-readable copy of the corresponding
source code, to be distributed under the terms of Sections 1 and 2 above on
a medium customarily used for software interchange; or,
c. Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only for
noncommercial distribution and only if you received the program in object
code or executable form with such an offer, in accord with Subsection b
above.)
The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all the
source code for all modules it contains, plus any associated interface definition
files, plus the scripts used to control compilation and installation of the
executable. However, as a special exception, the source code distributed need
not include anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the operating
system on which the executable runs, unless that component itself accompanies
the executable.
To do so, attach the following notices to the program. It is safest to attach them to
the start of each source file to most effectively convey the exclusion of warranty;
and each file should have at least the ″copyright″ line and a pointer to where the
full notice is found.
<one line to give the program’s name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this
program; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
The hypothetical commands ′show w' and ′show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may be
called something other than ′show w' and ′show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school,
if any, to sign a ″copyright disclaimer″ for the program, if necessary. Here is a
sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program ′Gnomovision'
(which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may consider it
more useful to permit linking proprietary applications with the library. If this is
what you want to do, use the GNU Library General Public License instead of this
License.
Trademarks
The following terms are trademarks of International Business Machines
Corporation in the United States, other countries, or both:
UNIX is a registered trademark in the United States and other countries licensed
exclusively through The Open Group.
Other company, product, and service names may be trademarks or service marks
of others.
ELF binaries. executable and linkable format binaries. HFS. hierarchical file system.
Developed by Sun Microsystems as a default executable
format for LINUX. I
EOF. end of file. A coded character recorded on a data
IDCAMS. OS/390, VM/ESA, and VSE/ESA utility
medium to indicate the end of the medium.
that allows users to define, manipulate, or delete
ESA. Enterprise Systems Architecture. An architecture VSAM data sets, define and manipulate integrated
defined for the IBM product family. catalog facility dialogs, and copy, print, or convert SAM
and ISAM data sets to VSAM data sets.
ESA/390. Enterprise Systems Architecture for S/390.
IEBGENER. OS/390 data set utility used to create a IUCV. inter-user communication vehicle. A VM facility
backup of a sequential data set or a member of a for passing data between virtual machines and VM
sequential data set. Can produce a partitioned data set components.
or member of a partitioned data set from a sequential
data set. Can expand, edit, print, and manipulate
partitioned and sequential data sets.
J
JCL. job control language. A control language used to
IEEE FPU. Institute of Electrical and Electronics
identify a job to an operating system and to describe
Engineers floating point unit. The default floating point
the job’s requirements.
format definition for most modern operating systems.
Glossary 179
editor resolves cross references among the modules and the system works. (3) The software that deals with the
phases available as input. The program can catalog the most basic operations that a computer performs.
newly built phases.
OS/390. An IBM licensed program that not only
LINUX for S/390. LINUX is a version of UNIX that includes and integrates functions previously provided
runs on x86, Alpha and PowerPC machines. LINUX for by many IBM software products (including the MVS
S/390 is the port of LINUX to the IBM S/390 operating system) but also (a) is an open, secure
mainframe architecture. operating system for the IBM S/390 family of
enterprise servers, (b) complies with industry
LPAR. logical partition. A fixed-size division of standards, (c) is Year 2000 ready and enabled for
storage. network computing and e-business, and (d) supports
technology advances in networking server capability,
LU. logical unit. A type of network accessible unit that parallel processing, and object-oriented programming.
enables end users to gain access to network resources
and communicate with each other. OSA-2. Open Systems Adapter-2. A common S/390
network interface card.
M
P
MAC. medium access control. In LANs, the sublayer
of the data link control layer that supports PTF. program temporary fix. A temporary solution or
medium-dependent functions and uses the services of bypass of a problem diagnosed by IBM in a current
the physical layer to provide services to the logical link unaltered release of the program.
control (LLC) sublayer. The MAC sublayer includes the
method of determining when a device has access to the PIC. programmable interrupt controller. A hardware
transmission medium. device that processes external interrupts.
major node (number). In VTAM, a set of resources PLP. Packet Layer Protocol.
that can be activated and deactivated as a group. The
number assigned to that group. /proc file system. A virtual file system providing
information about the status of a system. The files are
minidisk. In VM, a direct access storage device or a created on the fly when accessed.
logical subdivision of a direct access storage device that
has its own virtual device number, consecutive virtual PU. physical unit. The component that manages and
cylinders (starting with virtual cylinder 0), and a monitors the resources (such as attached links and
volume table of contents (VTOC) or disk label adjacent link stations) associated with a node.
identifier.
NFS. Network File System. A protocol developed by RAID. redundant array of independent disks. A disk
Sun Microsystems, Incorporated, that allows any host subsystem that provides increased performance and/or
in a network to mount another host’s file directories. fault tolerance. Performance is improved by disk
Once mounted, the file directory appears to reside on striping, which interleaves bytes or groups of bytes
the local host. across multiple drives, so more than one disk is reading
and writing simultaneously. Fault tolerance is achieved
NIC. network interface card. by mirroring or parity. Mirroring is 100% duplication of
the data on two drives (RAID 1), and parity calculates
O the data in two drives and stores the result on a third
drive (a bit from drive 1 is XOR’d with a bit from drive
OS. operating system. (1) Software that controls the 2, and the result bit is stored on drive 3).
execution of programs. An operating system may
provide services such as resource allocation,
scheduling, input/output control, and data
management. (2) A set of programs that control how
Glossary 181
VM/CMS. virtual machine/conversational monitor VTAM. Virtual Telecommunications Access Method.
system. See CMS. IBM software that controls communication and the flow
of data in an SNA network by providing the SNA
VM/ESA. Virtual Machine/Enterprise Systems application programming interfaces and SNA
Architecture (VM/ESA). An IBM licensed program that networking functions. An SNA network includes
manages the resources of a single computer so that subarea networking, Advanced Peer-to-Peer
multiple computing systems appear to exist. Each Networking (APPN), and High-Performance Routing
virtual machine is the functional equivalent of a real (HPR).
machine.