extension of linuxrc.s390, the initial network setup for RHEL on System z

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I'm sending an extension of the existing linuxrc.s390 -- the script
implementing the initial installation dialog for RHEL on System z.

INTRODUCTION

After booting the installation environment on System z, there are no
local storage devices such as a CD/DVD drive available to install RHEL
from. Hence, only installation from network sources is possible, which
requires an initial setup of a network device to reach such an
installation source.

Due to the possibly large number of hardware network devices
(hundreds) and the way they are configured in the hardware setup,
Linux does not automatically detect and allocate all available network
devices. There is need for a dialog from which the user can choose a
sensible device configuration.

The least common multiple of console devices on System z is limited in
functionality -- it only supports line mode. The initial network setup
also provides the ability for users to login over the network from a
curses capable text terminal, to provide an X window display, or to
use VNC in order to continue installation.

DOWNSIDES OF CURRENT LINUXRC.S390

The initial network setup was done with a simple error-prone dialog
without any possibility for the user to correct wrong input. On
getting stuck, the only option for the user was a reboot, which of
course means that he had to manually enter values all over again.

The user was asked various questions and had to know exactly what
answers to provide for a successful network setup. Linuxrc.s390
provided no guidance or support to simplify the choice of correct
answers for the user.

Configuration happened after the user had answered all questions which
could lead to situations where configuration failed due to an earlier
incorrect answer the user was not informed about.

User feedback has shown, that these downsides can be an obstacle for a
successful installation of RHEL on System z.

IMPROVEMENTS OF NEW LINUXRC.S390

- dialog allows the user to correct single answers
- dialog allows to restart configuration,
  providing previous answers as default values
- dialog provides a sub shell for problem determination
- cut-down question text prevents frequent scrolling on line mode
  terminal
- explaining help text is shown for each question on user demand
- automated decision which questions the user has to answer
- semi-automatic configuration of network devices by providing
  a selection list of possible hardware configurations
- manual configuration remains possible as before
- sensible default answers are provided where possible
- superfluous questions (NETWORK, BROADCAST) have been removed
- answers by the user are strictly checked for syntax and semantics
- whenever possible, each answer is used to do a configuration step
  and provide timely feedback to the user in case of an error
- user transparent support of System z device blacklist (cio_ignore)
  for short boot times on systems with many (thousands) devices
- basic support for installation from FCP-attached CD/DVD drive
  (our version of linuxrc.s390 is based on rhel5.3-snap1-20081029)
- basic support for installation over IPv6
  (full functionality would require further support in loader)
- prints answers in a format which can directly be used for parm/conf
  file (as a complement to /root/anaconda-ks.cfg)
- may serve as a specification on how to configure network devices on
  System z outside of an installer, e.g. in init scripts or
  configuration tools such as system-config-network

Otherwise, our version is fully compatible with the current version
including the processing of parm/conf files. We made sure that
existing parm/conf files from users are processed with the same
outcome as previously. Also the interactive mode asks the user
questions in the same order as before, so users do not have to adapt
to a completely new structure of the initial network configuration.

TEST

The attached version of linuxrc.s390 and the helper script lsznet.raw
(called by linuxrc.s390 to enumerate sensible network hardware
configurations) have been tested within an installer initrd taken from
RHEL 5.2. Full installation cycles both without and with kickstart
mode have been performed. We considered different network hardware
(both real and virtual) and installed from sources accessible over
different protocols (FTP, HTTP, NFS).

ATTACHMENTS

- Two bash scripts implementing our improvements:

linuxrc.s390: initial installation dialog for RHEL on System z
              (sorry, had to gzip it due to mailing list size limit)

lsznet.raw: list sensible network device hardware setups for Linux on
System z

- Console logs showing capabilities of the user interface by example:

guest2auto.txt : using auto detection, GuestLAN (QDIO) in layer 2 mode
=> does not ask for MAC address since it detected a virtual NIC.

osa2man.txt : manual configuration (e.g. by an expert knowing all
parameter values), OSA network device in layer 2 mode => does ask for
MAC address since it detected a real OSA, DNS servers could not be
reached by ping due to our network environment denying ICMP echo to
those hosts => user chose to continue anyway since he knows better.

lcsks.txt : unattended installation with parm & conf file and
kickstart file, LCS network device, succeeds without user interaction.

guest3err.txt : manual configuration with many intentional error
inputs, chose layer 2 mode on purpose even though GuestLAN (QDIO) was
configured as layer 3 => device cannot be set online => user restarts
whole configuration dialog to correct the previous wrong input for
layer mode, finally succeeds, using sub shell to verify that necessary
devices have been removed from blacklist so that the devices can
actually be used.

OUTLOOK

Feedback is welcome and I'm happy to answer any questions that may
arise.


Kind regards
Steffen Maier

Linux on System z Development

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Erich Baier
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294

Attachment: linuxrc.s390.gz
Description: GNU Zip compressed data

#! /bin/bash

# lsznet.raw: list sensible network device hardware setups for Linux on s390(x)
# Copyright (C) IBM Corp. 2008
# Author: Steffen Maier <maier@xxxxxxxxxx>
#
# 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; version 2 of the License only.
#
# 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

readonly SYSFS=/sys
# DEBUG=0 turns off debugging. >=1 means increasing debugging.
readonly DEBUG=0

# nothing to be changed below here

export TEXTDOMAIN=lsznet.raw

readonly CMD=${0##*/}

function error() {
    echo $"$CMD: ERROR: $*" 1>&2
    exit 1;
}

# currently requires bash version 3.0 or later
# (this seems reasonable since bash-3.0 has been shipped with
#  RHEL 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7;
#  bash-3.1 with RHEL 5.0, 5.1; and bash-3.2 with RHEL 5.2)
if [ ${BASH_VERSINFO[0]} -lt 3 -o \
    ${BASH_VERSINFO[1]} -lt 0 ]; then
    error $"only works with BASH version 3.0 or later (current version used is ${BASH_VERSION})"
fi

# the script was designed for Linux kernel 2.6 and might work with newer ones
kernel_version=$(uname -r)
IFS=.
read krn_ver krn_patch krn_foo <<< "$kernel_version"
unset IFS
if [ $krn_ver -lt 2 -o $krn_patch -lt 6 ]; then
    error $"only works for kernel versions 2.6 or probably later"
fi

# The following combinations of control unit type and model were taken from the
# Linux network device drivers for s390 on 2008-06-09 from Linux 2.6.25.4.
# The list (among other things) should be adapted, if any of those device
# drivers start supporting different CU types/models.
# (Alternatively, the list could be generated by reading the modaliases
#  directly out of the device driver modules:
#  modinfo qeth/cu3088 | fgrep 'alias:'
#  However, this would still require a list of device driver modules.)
readonly -a CU=(
    1731/01
    1731/05
    3088/08
    3088/1f
    3088/1e
    3088/01
    3088/60
    3088/61
)

# $CU_CARDTYPE array is the only one which may contain entries with spaces
readonly -a CU_CARDTYPE=(
    "OSA (QDIO)"
    "HiperSocket"
    "CTC adapter"
    "escon channel"
    "ficon channel"
    "LCS p390"
    "LCS OSA"
    "LCS CLAW"
)

readonly -a CU_DEVDRV=(
    qeth
    qeth
    ctc
    ctc
    ctc
    lcs
    lcs
    lcs
)

readonly -a CU_DEVNAME=(
    eth
    hsi
    ctc/mpc
    ctc/mpc
    ctc/mpc
    eth
    eth
    eth
)

readonly -a CU_GROUPCHANNELS=(
    3
    3
    2
    2
    2
    2
    2
    2
)
readonly -a CHPIDTYPES=(
    [10]=OSE
    [11]=OSD
    [24]=IQD
)

readonly PREFIXFORMAT=[[:xdigit:]]*
readonly SSIDFORMAT=[0-3]
readonly BUSIDFORMAT=[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]
readonly IDFORMAT=$PREFIXFORMAT.$SSIDFORMAT.$BUSIDFORMAT
readonly SUBCHANNEL_TYPE_IO=0

function debug() {
    level=$1
    shift
    [ $DEBUG -ge $level ] && echo "$*" 1>&2
}

# Searches for a match of argument 1 on the array $CU and sets $cu_idx
# to the matched array index on success.
# Returns 0 on success, 1 on failure.
function search_cu() {
    local scu=$1
    local i
    for ((i=0; i < ${#CU[@]}; i++)); do
        if [ $scu == ${CU[i]} ]; then
            cu_idx=$i
            return 0
        fi
    done
    return 1
}

# Returns symbolic name of CHPID type in $chpidtype_symbolic,
# if an entry in the array $CHPIDTYPES has been found at index of argument 1.
# Returns "?" otherwise.
# Always succeeds and returns 0.
function search_chpt() {
    local chpidtype_number=$1
    chpidtype_symbolic=${CHPIDTYPES[$chpidtype_number]}
    if [ "$chpidtype_symbolic" == "" ]; then
        chpidtype_symbolic="?"
    fi
    return 0
}

# build_list:
#
# Prints list on standard output consisting of all subchannels and
# ccwdevices whose control unit type/model match supported network
# device types on s390.  Each matching entry is accompanied with
# (almost all) corresponding attributes.
#
function build_list() {
    # use /sys/devices/css*/ for startpath
    readonly STARTPATH=$SYSFS/devices
    # change to base directory so path globbing length with find is minimal
    cd $STARTPATH
    # fail out gracefully, if there is not expected sysfs environment
    # (could even fail out near the top, if $(uname -m) != s390x)
    csses=css$PREFIXFORMAT
    for d in $csses; do
        [ -d $d ] || exit
    done
    find $csses -name "$IDFORMAT" |
    while read dir; do
        debug 6 " examining sysfs directory $dir"
        # must not use $...FORMAT (file globs) here since this is a regex:
        [[ "$dir" =~ ^css\([[:xdigit:]]+\)/\([[:xdigit:]]+.[0-3].[[:xdigit:]]{4}\)/\([[:xdigit:]]+.[0-3].[[:xdigit:]]{4}\)$ ]]
        case $? in
            0)
                # string matched the pattern
                debug 6 " ${BASH_REMATCH[@]}"
                prefix=${BASH_REMATCH[1]}
                subch=${BASH_REMATCH[2]}
                devbusid=${BASH_REMATCH[3]}
                subch_p=css$prefix/$subch
                dev_p=$subch_p/$devbusid
                debug 6 " $subch_p $dev_p"
                ;;
            1)
                # string did not match the pattern
                continue
                ;;
            2)
                error $"syntax error in regex of match operator =~, code needs to be fixed"
                ;;
            *)
                error $"unexpected return code of regex match operator =~, code needs to be fixed"
                ;;
        esac
        debug 5 " sysfs directory matched regex $dir"
        # skip non-I/O-subchannels, i.e. chsc and message subchannels
	if [ -f $subch_p/type ]; then
	    read type < $subch_p/type
            if [ $type != $SUBCHANNEL_TYPE_IO ]; then
                debug 3 " skip non-I/O subchannel"
                continue
            fi
	fi
        # get subchannel information...
        # ATTENTION: hex values from sysfs are WITHOUT leading 0x prefix!
        read chpid_list < $subch_p/chpids
        read -a chpids <<< "$chpid_list"
        if [ ${#chpids[@]} -ne 8 ]; then
            error $"sysfs reported ${#chpids[@]} CHPIDs instead of expected 8"
        fi
        read pim pam pom foo < $subch_p/pimpampom
        pimchpidZ=""
        local chp
        for ((chp=0; chp < 8; chp++)); do
            mask=$((0x80 >> chp))
            if (( 0x$pim & $mask )); then
                pimchpidZ=${pimchpidZ}${chpids[chp]}
            else
                pimchpidZ=${pimchpidZ}"ZZ"
            fi
        done
        # get device information...
        read cutype < $dev_p/cutype
        read active < $dev_p/online
        # skip already active subchannels and those that are already in a
        # ccwgroup and thus not available any more:
        [ $active == "1" ] && continue
        [ -h $dev_p/group_device ] && continue
        # get chpid information...
        pimchpids=${pimchpidZ//ZZ/}
        [ $pimchpids == "" ] && continue
        # Taking the first 2 hex digits as CHPID relies somewhat on the fact
        # that network adaptors don't use multipathing and only have one CHP.
        # Anyway it's OK since we're only interested in CHPID type and I guess
        # this should be equal for all possible multipaths to the same device.
        chpid=${pimchpids:0:2}
        chpid_p=css$prefix/chp$prefix.$chpid
        read chptype < $chpid_p/type
        # filter and output...
        if search_cu $cutype; then
            if [ "${CU_DEVDRV[$cu_idx]}" == "ctc" ]; then
                # assume CTC are mostly virtual and ignore chpid from sysfs
                chpidtype_symbolic="-"
            else
                search_chpt $chptype
            fi
            echo $pimchpids $devbusid $STARTPATH/$dev_p $cutype $chpidtype_symbolic $chptype ${CU_DEVDRV[$cu_idx]} ${CU_DEVNAME[$cu_idx]} ${CU_GROUPCHANNELS[$cu_idx]} $cu_idx ${CU_CARDTYPE[$cu_idx]}
        else
            debug 5 " skip non-network device $devbusid CU $cutype"
        fi
    done
}

# search_groups:
# 
# Prints enumeration list on standard output consisting of possible
# hardware configurations (ccwgroups) for network devices on s390.
# Each configuration suggestion includes corresponding attributes
# that are of potential interest for the user and fit in a fixed column
# table on an 80 column screen.
#
# PRECONDITION: Standard input has to be stably sorted by device bus IDs and
# then by CHPIDs, i.e. grouped by CHPIDs.
#
function search_groups() {
    local w_prefix w_ssid w_devno
    local d_prefix d_ssid d_devno 
    local prefix ssid devno x
    local chp devbusid dev_p cutype chpidtypename chptype devdrv devname groupchs cu_idx cardtype
    # remembered last state variables for possible ccwgroup:
    local r_prefix="Z"
    local r_ssid="Z"
    local r_devno="ZZZZ"
    local r_chp="ZZ"
    local r_cutype="ZZZZ/ZZ"
    local count=0
    local item=1
    local skipped=0
    # currently unused are: dev_p,chptype, cu_idx.
    while read chp devbusid dev_p cutype chpidtypename chptype devdrv devname groupchs cu_idx cardtype; do
        debug 1 " # $chp $devbusid $dev_p $cutype $chpidtypename $chptype $devdrv $devname $groupchs $cu_idx $cardtype"
        IFS=.
        read prefix ssid devno x <<< "$devbusid"
        unset IFS
        if [ $r_chp != $chp \
            -o $r_prefix != $prefix \
            -o $r_ssid != $ssid \
            -o $r_cutype != $cutype ]; then
            # restart with new read channel info and remember it
            r_prefix=$prefix
            r_ssid=$ssid
            r_devno=$devno
            r_chp=$chp
            r_cutype=$cutype
            count=1
            debug 2 " INFO: restart on different CHPID or prefix or CUtype/model"
            continue
        fi
        count=$((count + 1))
        if [ $count -eq 2 ]; then
            # about to check if write channel is one above read channel
            if [ $((0x$devno)) -ne $((0x$r_devno + 1)) ]; then
                # start with new read channel info
                r_prefix=$prefix
                r_ssid=$ssid
                r_devno=$devno
                r_chp=$chp
                r_cutype=$cutype
                count=1
                skipped=$((skipped + 1))
                # unimplemented possible packed channel usage option:
                # remember unused channels for later use as data channel
                debug 2 " INFO: restart on unmatching read channel"
                continue
            fi
            w_prefix=$prefix
            w_ssid=$ssid
            w_devno=$devno
        elif [ $count -eq 3 ]; then
            # remember data channel info
            d_prefix=$prefix
            d_ssid=$ssid
            d_devno=$devno
        fi
        debug 2 " INFO: groupchs=$groupchs count=$count"
        if [ $count -ne $groupchs ]; then
            debug 2 " INFO: skip"
            continue
        fi
        # found possible ccwgroup
        case $count in
            2)
                chlist=$r_prefix.$r_ssid.$r_devno,$w_prefix.$w_ssid.$w_devno
                ;;
            3)
                chlist=$r_prefix.$r_ssid.$r_devno,$w_prefix.$w_ssid.$w_devno,$d_prefix.$d_ssid.$d_devno
                ;;
            *)
                error $"unknown number of channels for group, code needs to be fixed"
                ;;
        esac
        echo $item $cutype $chp $chpidtypename $devdrv $devname $chlist "$cardtype"
        item=$((item + 1))
        # restart after successful detection
        r_prefix="Z"
        count=0
    done
    debug 1 " STATISTIC: skipped $skipped devnos because of unmatching read channel"
}

build_list |
# stable sort by device bus IDs and then by CHPIDs => grouped by CHPIDs
# (sorting only works since keys are fixed no. of digits with leading zeros!)
sort -s -k 1,1 -k 2,2 |
#cat ; exit # move at desired line and uncomment to see intermediate output
search_groups
Linux version 2.6.18-92.el5 (brewbuilder@xxxxxxxxxxxxxxxxxxxxx) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-41)) #1 SMP Tue Apr 29 13:16:58 EDT 2008
We are running under VM (64 bit mode)
Detected 3 CPU's
Boot cpu address  0
Built 1 zonelists.  Total pages: 262144
Kernel command line: root=/dev/ram0 ro ip=off ramdisk_size=40000 cio_ignore=all,!0.0.0009            CMSDASD=191 CMSCONFFILE=rh52osa_.conf
...

Starting the zSeries initrd to configure networking. Version is 1.2
file not found
Could not read conf file rh52osa_.conf on CMS DASD 191.
Scanning for available network devices...
Autodetection found 0 devices.
Note: There is a device blacklist active! (Clearing might take long)
c) clear blacklist, m) manual config, r) rescan, s) shell:
r
Scanning for available network devices...
Autodetection found 0 devices.
Note: There is a device blacklist active! (Clearing might take long)
c) clear blacklist, m) manual config, r) rescan, s) shell:
c
Clearing device blacklist...
Scanning for available network devices...
Autodetection found 14 devices.

NUM CARD           CU      CHPID TYPE DRIVER IF      DEVICES
  1 CTC adapter    3088/08 00    -    ctc    ctc/mpc 0.0.1000,0.0.1001
  2 escon channel  3088/1f 00    -    ctc    ctc/mpc 0.0.1002,0.0.1003
  3 ficon channel  3088/1e 00    -    ctc    ctc/mpc 0.0.1004,0.0.1005
  4 OSA (QDIO)     1731/01 00    OSD  qeth   eth     0.0.f500,0.0.f501,0.0.f502
  5 OSA (QDIO)     1731/01 01    OSD  qeth   eth     0.0.f503,0.0.f504,0.0.f505
  6 OSA (QDIO)     1731/01 02    OSD  qeth   eth     0.0.1010,0.0.1011,0.0.1012
  7 HiperSocket    1731/05 03    IQD  qeth   hsi     0.0.1013,0.0.1014,0.0.1015
  8 OSA (QDIO)     1731/01 04    OSD  qeth   eth     0.0.1017,0.0.1018,0.0.1019
  9 OSA (QDIO)     1731/01 76    OSD  qeth   eth     0.0.f5f0,0.0.f5f1,0.0.f5f2
 10 LCS OSA        3088/60 8a    OSE  lcs    eth     0.0.1240,0.0.1241
 11 HiperSocket    1731/05 fb    IQD  qeth   hsi     0.0.8024,0.0.8025,0.0.8026
 12 HiperSocket    1731/05 fc    IQD  qeth   hsi     0.0.8124,0.0.8125,0.0.8126
 13 HiperSocket    1731/05 fd    IQD  qeth   hsi     0.0.8224,0.0.8225,0.0.8226
 14 HiperSocket    1731/05 fe    IQD  qeth   hsi     0.0.8324,0.0.8325,0.0.8326

<num>) use config, m) manual config, r) rescan, s) shell:
r
Scanning for available network devices...
Autodetection found 14 devices.

NUM CARD           CU      CHPID TYPE DRIVER IF      DEVICES
  1 CTC adapter    3088/08 00    -    ctc    ctc/mpc 0.0.1000,0.0.1001
  2 escon channel  3088/1f 00    -    ctc    ctc/mpc 0.0.1002,0.0.1003
  3 ficon channel  3088/1e 00    -    ctc    ctc/mpc 0.0.1004,0.0.1005
  4 OSA (QDIO)     1731/01 00    OSD  qeth   eth     0.0.f500,0.0.f501,0.0.f502
  5 OSA (QDIO)     1731/01 01    OSD  qeth   eth     0.0.f503,0.0.f504,0.0.f505
  6 OSA (QDIO)     1731/01 02    OSD  qeth   eth     0.0.1010,0.0.1011,0.0.1012
  7 HiperSocket    1731/05 03    IQD  qeth   hsi     0.0.1013,0.0.1014,0.0.1015
  8 OSA (QDIO)     1731/01 04    OSD  qeth   eth     0.0.1017,0.0.1018,0.0.1019
  9 OSA (QDIO)     1731/01 76    OSD  qeth   eth     0.0.f5f0,0.0.f5f1,0.0.f5f2
 10 LCS OSA        3088/60 8a    OSE  lcs    eth     0.0.1240,0.0.1241
 11 HiperSocket    1731/05 fb    IQD  qeth   hsi     0.0.8024,0.0.8025,0.0.8026
 12 HiperSocket    1731/05 fc    IQD  qeth   hsi     0.0.8124,0.0.8125,0.0.8126
 13 HiperSocket    1731/05 fd    IQD  qeth   hsi     0.0.8224,0.0.8225,0.0.8226
 14 HiperSocket    1731/05 fe    IQD  qeth   hsi     0.0.8324,0.0.8325,0.0.8326

<num>) use config, m) manual config, r) rescan, s) shell:
6

* NOTE: To enter default or empty values press enter twice. *

Portname (1..8 characters, or ? for help). Default is no portname:


Relative port number for OSA (0, 1, or ? for help). Default is 0:


Layer mode (0 for layer3, 1 for layer2, or ? for help). Default is 0:
1
Activating network device...
Detected: GuestLAN based on OSA (QDIO)

Hostname of your new Linux guest (FQDN e.g. s390.redhat.com or ? for help):
h4245010.qdio2.local

IPv4 address / IPv6 addr. (e.g. 10.0.0.2 / 2001:0DB8:: or ? for help)
10.0.2.10

IPv4 netmask or CIDR prefix (e.g. 255.255.255.0 or 1..32 or ? for help). Default is 255.0.0.0:
255.255.255.0

IPv4 address of your default gateway or ? for help:
10.0.2.10
Trying to reach gateway 10.0.2.10...

IPv4 addresses of DNS servers (separated by colons ':' or ? for help):
127.0.0.1
Trying to reach DNS servers...

DNS search domains (separated by colons ':' or ? for help):
local

DASD range (e.g. 200-203,205 or ? for help). Default is autoprobing:
eb1d-eb1d
Initial configuration completed.

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
p

NETTYPE=qeth
IPADDR=10.0.2.10
NETMASK=255.255.255.0
GATEWAY=10.0.2.10
HOSTNAME=h4245010.qdio2.local
SUBCHANNELS=0.0.1010,0.0.1011,0.0.1012
LAYER2=1
DNS=127.0.0.1
SEARCHDNS=local
DASD=eb1d-eb1d

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
n
eth0      Link encap:Ethernet  HWaddr 02:42:45:00:00:19
          inet addr:10.0.2.10  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::42:45ff:fe00:19/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:468 (468.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:336 (336.0 B)  TX bytes:336 (336.0 B)

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
127.0.0.1       0.0.0.0         255.255.255.255 UH    0      0        0 lo
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         10.0.2.10       0.0.0.0         UG    0      0        0 eth0

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
c

Starting telnetd and sshd to allow login over the network.

Connect now to 10.0.2.10 and login as user root to start the installation.
E.g. using: ssh -X root@xxxxxxxxx
Linux version 2.6.18-92.el5 (brewbuilder@xxxxxxxxxxxxxxxxxxxxx) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-41)) #1 SMP Tue Apr 29 13:16:58 EDT 2008
We are running under VM (64 bit mode)
Detected 3 CPU's
Boot cpu address  0
Built 1 zonelists.  Total pages: 262144
Kernel command line: root=/dev/ram0 ro ip=off ramdisk_size=40000 cio_ignore=all,!0.0.0009            CMSDASD=191 CMSCONFFILE=rh52hg_.conf
...

Starting the zSeries initrd to configure networking. Version is 1.2
file not found
Could not read conf file rh52hg_.conf on CMS DASD 191.
Scanning for available network devices...
Autodetection found 0 devices.
Note: There is a device blacklist active! (Clearing might take long)
c) clear blacklist, m) manual config, r) rescan, s) shell:
m

* NOTE: To enter default or empty values press enter twice. *

Network type (qeth, lcs, ctc, iucv, ? for help). Default is qeth:
qeth

Read,write,data channel (e.g. 0.0.0300,0.0.0301,0.0.0302 or ? for help).
0.0.f5f0,0.0.f5f1,0.0.f5f2
Device 0.0.f5f0 not present, trying to clear from blacklist and resense...
Device 0.0.f5f1 not present, trying to clear from blacklist and resense...
Device 0.0.f5f2 not present, trying to clear from blacklist and resense...

Portname (1..8 characters, or ? for help). Default is no portname:
foo

Relative port number for OSA (0, 1, or ? for help). Default is 0:
0

Layer mode (0 for layer3, 1 for layer2, or ? for help). Default is 0:
1
Activating network device...
Detected: OSA card in OSD mode, Gigabit Ethernet

Unique MAC address (e.g. 02:00:00:00:00:00, ? for help). Default is none:
02:00:00:00:00:00

Hostname of your new Linux guest (FQDN e.g. s390.redhat.com or ? for help):
h4245010.boeblingen.de.ibm.com

IPv4 address / IPv6 addr. (e.g. 10.0.0.2 / 2001:0DB8:: or ? for help)
*.*.108.140

IPv4 netmask or CIDR prefix (e.g. 255.255.255.0 or 1..32 or ? for help). Default is 255.0.0.0:
255.255.252.0

IPv4 address of your default gateway or ? for help:
?
 Help text for IPv4 default gateway:
  For HiperSockets with internal traffic only you may want to leave this empty
  and choose continue afterwards to go on without gateway.
  Depending on your network design patterns, the default gateway
   might be *.*.108.1 or *.*.111.254

IPv4 address of your default gateway or ? for help:
*.*.108.1
Trying to reach gateway *.*.108.1...

IPv4 addresses of DNS servers (separated by colons ':' or ? for help):
*.*.120.241:*.*.64.172
Trying to reach DNS servers...
Could not ping DNS server: *.*.120.241
Could not ping DNS server: *.*.64.172
0) redo this parameter, 1) continue, 2) restart dialog, 3) halt, 4) shell
1

DNS search domains (separated by colons ':' or ? for help):
boeblingen.de.ibm.com:de.ibm.com:ibm.com

DASD range (e.g. 200-203,205 or ? for help). Default is autoprobing:
eb1d-eb1d
Initial configuration completed.

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
p

NETTYPE=qeth
IPADDR=*.*.108.140
NETMASK=255.255.252.0
GATEWAY=*.*.108.1
HOSTNAME=h4245010.boeblingen.de.ibm.com
SUBCHANNELS=0.0.f5f0,0.0.f5f1,0.0.f5f2
LAYER2=1
MACADDR=02:00:00:00:00:00
PORTNAME=FOO
PORTNO=0
DNS=*.*.120.241:*.*.64.172
SEARCHDNS=boeblingen.de.ibm.com:de.ibm.com:ibm.com
DASD=eb1d-eb1d

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
c

Starting telnetd and sshd to allow login over the network.

Connect now to *.*.108.140 and login as user root to start the installation.
E.g. using: ssh -X root@*.*.108.140
Linux version 2.6.18-92.el5 (brewbuilder@xxxxxxxxxxxxxxxxxxxxx) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-41)) #1 SMP Tue Apr 29 13:16:58 EDT 2008
We are running under VM (64 bit mode)
Detected 3 CPU's
Boot cpu address  0
Built 1 zonelists.  Total pages: 262144
Kernel command line: root=/dev/ram0 ro ip=off ramdisk_size=40000 cio_ignore=all,!0.0.0009            CMSDASD=191 CMSCONFFILE=rh52lcs.conf                                            cmdline RUNKS=1 ks=http://10.20.10.63/ks/steffenm/anaconda-ks.cfg
...

Starting the zSeries initrd to configure networking. Version is 1.2
* NOTE: To enter default or empty values press enter twice. *
Device 0.0.1240 not present, trying to clear from blacklist and resense...
Device 0.0.1241 not present, trying to clear from blacklist and resense...
Detected: OSA LCS card
Activating network device...
route: SIOC?ADD|DELÙRT: Network is unreachable
Could net set default route on device eth0 via gateway 127.0.0.1
Trying to reach DNS servers...
Initial configuration completed.

Starting telnetd and sshd to allow login over the network.
%G12:03:55 INFO    : 1026544 kB are available
12:03:55 INFO    : modules to insert cramfs fat vfat sunrpc lockd fscache nfs_acl nfs loop isofs floppy edd pcspkr squashfs
...
12:03:57 INFO    : getting kickstart file
12:03:57 INFO    : only have one network device: eth0
12:03:57 INFO    : dnsservers is 127.0.0.1
12:03:57 INFO    : setting specified hostname of h4245010.lcs.local
12:03:57 INFO    : doing kickstart... setting it up
12:04:03 WARNING :     no network link detected on eth0
12:04:03 INFO    : file location: http://10.20.10.63/ks/steffenm/anaconda-ks.cfg
12:04:03 INFO    : transferring http://10.20.10.63//ks/steffenm/anaconda-ks.cfg to a fd
12:04:03 INFO    : setting up kickstart
12:04:03 INFO    : kickstartFromUrl
12:04:03 INFO    : results of url ks, url ftp://***:***@10.20.10.63//RHEL5.2/DVD
12:04:03 INFO    : setting language to en_US.UTF-8
12:04:03 INFO    : need to set up networking
12:04:03 INFO    : going to pick interface
12:04:03 INFO    : going to do getNetConfig
12:04:03 INFO    : dnsservers is 127.0.0.1
12:04:03 INFO    : setting specified hostname of h4245010.lcs.local
12:04:03 INFO    : doing kickstart... setting it up
12:04:08 WARNING :     no network link detected on eth0
12:04:08 INFO    : starting to STEP_URL
12:04:08 INFO    : URL_STAGE_MAIN - url is ftp://***:***@10.20.10.63//RHEL5.2/DVD
12:04:08 ERROR   : got to setupCdrom without a CD device
12:04:08 INFO    : transferring ftp://10.20.10.63///RHEL5.2/DVD/images/updates.img to a fd
12:04:08 INFO    : transferring ftp://10.20.10.63///RHEL5.2/DVD/disc1/images/updates.img to a fd
12:04:08 INFO    : transferring ftp://10.20.10.63///RHEL5.2/DVD/images/product.img to a fd
12:04:08 INFO    : transferring ftp://10.20.10.63///RHEL5.2/DVD/disc1/images/product.img to a fd
12:04:08 INFO    : 1026544 kB are available
12:04:08 INFO    : transferring ftp://10.20.10.63///RHEL5.2/DVD/images/stage2.img to a fd
12:04:10 INFO    : mntloop loop0 on /mnt/runtime as /tmp/ramfs/stage2.img fd is 19
12:04:10 INFO    : got url ftp://***:***@10.20.10.63///RHEL5.2/DVD
12:04:10 INFO    : Loading SELinux policy
12:04:10 INFO    : getting ready to spawn shell now
%G12:04:10 INFO    : modules to insert ide-cd
...
12:04:11 INFO    : load module set done
12:04:11 INFO    : looking for USB mouse...
12:04:11 INFO    : Running anaconda script /usr/bin/anaconda
Running anaconda, the Red Hat Enterprise Linux Server system installer - please wait...
Retrieving installation information...
In progress...    Completed Completed
Checking dependencies in packages selected for installation...
In progress...
Setting up swapspace version 1, size = 2080370 kB
Formatting / file system...
...
Formatting /boot file system...
...
Starting install process.  This may take several minutes...
Preparing transaction from installation source...
In progress...
Installing libgcc-4.1.2-42.el5...  Done ?1/515Ù
...
Installing Deployment_Guide-en-US-5.2-9...  Done ?516/515Ù
Performing post install configuration...
Installing bootloader...
In interactive step complete, can't continue

00:
CP I CMS
Linux version 2.6.18-92.el5 (brewbuilder@xxxxxxxxxxxxxxxxxxxxx) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-41)) #1 SMP Tue Apr 29 13:16:58 EDT 2008
We are running under VM (64 bit mode)
Detected 3 CPU's
Boot cpu address  0
Built 1 zonelists.  Total pages: 262144
Kernel command line: root=/dev/ram0 ro ip=off ramdisk_size=40000 cio_ignore=all,!0.0.0009            CMSDASD=191 CMSCONFFILE=rh52hg_.conf
...

Starting the zSeries initrd to configure networking. Version is 1.2
file not found
Could not read conf file rh52hg_.conf on CMS DASD 191.
Scanning for available network devices...
Autodetection found 0 devices.
Note: There is a device blacklist active! (Clearing might take long)
c) clear blacklist, m) manual config, r) rescan, s) shell:
m

* NOTE: To enter default or empty values press enter twice. *

Network type (qeth, lcs, ctc, iucv, ? for help). Default is qeth:
foo
Incorrect format or value for network type (NETTYPE): foo

Network type (qeth, lcs, ctc, iucv, ? for help). Default is qeth:
?
 Help text for network type:
  qeth: OSA-Express Fast Ethernet, Gigabit Ethernet (including 1000Base-T),
        High Speed Token Ring, and ATM (running Ethernet LAN emulation)
        features in QDIO mode.
        ?defaultÙ
  lcs:  OSA-2 Ethernet/Token Ring, OSA-Express Fast Ethernet in non-QDIO mode,
        OSA-Express High Speed Token Ring in non-QDIO mode and Gigabit Ethernet
        in non-QDIO mode.
  ctc:  No longer officially supported.
  iucv: No longer officially supported.

Network type (qeth, lcs, ctc, iucv, ? for help). Default is qeth:


Read,write,data channel (e.g. 0.0.0300,0.0.0301,0.0.0302 or ? for help).
?
 Help text for qeth channels:
  Enter the device bus ID of your CCW devices.
  QETH needs three channels for read, write, and data,
  e.g. 0.0.0300,0.0.0301,0.0.0302

Read,write,data channel (e.g. 0.0.0300,0.0.0301,0.0.0302 or ? for help).
0.0.0300,0.0.0301,0.0.0301
Device 0.0.0300 not present, trying to clear from blacklist and resense...
Device 0.0.0300 does not exist
Device 0.0.0301 not present, trying to clear from blacklist and resense...
Device 0.0.0301 does not exist
Device 0.0.0301 not present, trying to clear from blacklist and resense...
Device 0.0.0301 does not exist
0) redo this parameter, 1) continue, 2) restart dialog, 3) halt, 4) shell
0

Read,write,data channel (e.g. 0.0.0300,0.0.0301,0.0.0302 or ? for help).
0.0.F5f0,0.0.1018,0.0.1241
Device 0.0.f5f0 not present, trying to clear from blacklist and resense...
Device 0.0.1018 not present, trying to clear from blacklist and resense...
Device 0.0.1018 does not have the same CHPIDs as device 0.0.f5f0
Device bus ID of write channel (dev 0.0.1018) must be one larger than
 that of read channel (dev 0.0.f5f0)
Device 0.0.1241 not present, trying to clear from blacklist and resense...
Device 0.0.1241 has control unit type 3088/60,
 which does not match your selected network type qeth
0) redo this parameter, 1) continue, 2) restart dialog, 3) halt, 4) shell
0

Read,write,data channel (e.g. 0.0.0300,0.0.0301,0.0.0302 or ? for help).
0.0.1017,0.0.1018,0.0.1019
Device 0.0.1017 not present, trying to clear from blacklist and resense...
Device 0.0.1019 not present, trying to clear from blacklist and resense...

Portname (1..8 characters, or ? for help). Default is no portname:
?
 Help text for portname:
  Portname of the OSA-Express feature in QDIO mode and z/VM Guest LAN.
  This parameter is optional with:
   - z/VM 4.4.0 or z/VM 4.3.0 with APARs VM63308 and PQ73878
   - z800 and z900 with >= Driver 3G - EC stream J11204, MCL032 (OSA level 3.33)
   - z890, z990, z9, z10 mainframes
  * Your configuration does not require a portname. *
  If portname is used, all operating systems sharing port must use same name.
  Input empty string if you don't want to enter a portname. ?defaultÙ

Portname (1..8 characters, or ? for help). Default is no portname:


Relative port number for OSA (0, 1, or ? for help). Default is 0:
?
 Help text for relative port number for OSA with 2 ports per CHPID:
  This applies to:
   - OSA-Express3 Gigabit Ethernet on z10 systems
   - OSA-Express ATM on zSeries 800 and 900 systems
  0 for relative port number 0 ?defaultÙ
  1 for relative port number 1
  Input empty string to not modify the default configuration.

Relative port number for OSA (0, 1, or ? for help). Default is 0:
2
Incorrect format or value for relative port number (PORTNO): 2
0) redo this parameter, 1) continue, 2) restart dialog, 3) halt, 4) shell
0

Relative port number for OSA (0, 1, or ? for help). Default is 0:
1

Layer mode (0 for layer3, 1 for layer2, or ? for help). Default is 0:
?
 Help text for OSA mode of operation: layer 2 vs. layer 3
  0 for layer 3 mode ?defaultÙ (may not work with dhcp, tcpdump, etc.)
  1 for layer 2 mode

Layer mode (0 for layer3, 1 for layer2, or ? for help). Default is 0:
3
Incorrect format or value for layer2 mode (LAYER2): 3
0) redo this parameter, 1) continue, 2) restart dialog, 3) halt, 4) shell
0

Layer mode (0 for layer3, 1 for layer2, or ? for help). Default is 0:
1
Activating network device...
qeth: Initialization in hardsetup failed! rc=-5
qeth: Initialization in hardsetup failed! rc=-5
Could not set device (0.0.1017,0.0.1018,0.0.1019) online within timeout
1) continue, 2) restart dialog, 3) halt, 4) shell
2
Scanning for available network devices...
Autodetection found 1 devices.

NUM CARD           CU      CHPID TYPE DRIVER IF      DEVICES
  1 OSA (QDIO)     1731/01 04    OSD  qeth   eth     0.0.1017,0.0.1018,0.0.1019

Note: There is a device blacklist active! (Clearing might take long)
<num>) use config, c) clear blacklist, m) manual config, r) rescan, s) shell:
m

* NOTE: To enter default or empty values press enter twice. *

Network type
0) default is previous "qeth", 1) new value, ?) help


Read,write,data channel
0) default is previous "0.0.1017,0.0.1018,0.0.1019", 1) new value, ?) help


Portname
0) default is previous "", 1) new value, ?) help


Relative port number for OSA
0) default is previous "1", 1) new value, ?) help


Layer mode
0) default is previous "1", 1) new value, ?) help
?
 Help text for OSA mode of operation: layer 2 vs. layer 3
  0 for layer 3 mode ?defaultÙ (may not work with dhcp, tcpdump, etc.)
  1 for layer 2 mode

Layer mode
0) default is previous "1", 1) new value, ?) help
1
new value:
?
 Help text for OSA mode of operation: layer 2 vs. layer 3
  0 for layer 3 mode ?defaultÙ (may not work with dhcp, tcpdump, etc.)
  1 for layer 2 mode

Layer mode (0 for layer3, 1 for layer2, or ? for help). Default is 0:

Activating network device...
Detected: GuestLAN based on OSA (QDIO)

Hostname of your new Linux guest
0) default is previous "", 1) new value, ?) help
1
new value:
h4245010.guest3.local

IPv4 address / IPv6 addr.
0) default is previous "", 1) new value, ?) help
?
 Help text for IP address:
  Enter a valid IPv4 address of your new Linux guest (e.g. 10.0.0.2)
  or alternatively a valid IPv6 address without CIDR prefix (e.g. 2001:0DB8::)
  IPv6 is supported on:
   - Ethernet interfaces of the OSA-Express adapter running in QDIO mode.
   - HiperSockets layer 2 interfaces
   - z/VM guest LAN interfaces running in QDIO mode.
  IPv6 is not supported on HiperSocket guest LAN, OSA-Express Token Ring, ATM.

IPv4 address / IPv6 addr.
0) default is previous "", 1) new value, ?) help
1
new value:
10.0.3.10

IPv4 netmask or CIDR prefix
0) default is previous "", 1) new value, ?) help
1
new value:
?
 Help text for IPv4 netmask or CIDR prefix:
  Enter a valid IPv4 netmask or CIDR prefix (e.g. 255.255.255.0 or 1..32)
  Default is 255.0.0.0

IPv4 netmask or CIDR prefix (e.g. 255.255.255.0 or 1..32 or ? for help). Default is 255.0.0.0:
24

IPv4 address of your default gateway
0) default is previous "", 1) new value, ?) help
1
new value:
?
 Help text for IPv4 default gateway:
  For HiperSockets with internal traffic only you may want to leave this empty
  and choose continue afterwards to go on without gateway.
  Depending on your network design patterns, the default gateway
   might be 10.0.3.1 or 10.0.3.254

IPv4 address of your default gateway or ? for help:

Incorrect format for IPv4 address of gateway (GATEWAY):
0) redo this parameter, 1) continue, 2) restart dialog, 3) halt, 4) shell
1

IPv4 addresses of DNS servers
0) default is previous "", 1) new value, ?) help

You might encounter problems without a nameserver, especially with FTP installs
0) redo this parameter, 1) continue, 2) restart dialog, 3) halt, 4) shell
1

DASD range
0) default is previous "", 1) new value, ?) help
1
new value:
?
 Help text for DASD range:
  Comma separated list of ranges of device bus IDs.
  Default is autoprobing (not recommended).
  Examples would be: 200-203 or 200,201,202,203 or 0.0.0200-0.0.0203,0.0.0205

DASD range (e.g. 200-203,205 or ? for help). Default is autoprobing:
eb1d
Initial configuration completed.

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
p

NETTYPE=qeth
IPADDR=10.0.3.10
NETMASK=255.255.255.0
GATEWAY=
HOSTNAME=h4245010.guest3.local
SUBCHANNELS=0.0.1017,0.0.1018,0.0.1019
PORTNO=1
DASD=eb1d

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
n
eth0      Link encap:Ethernet  HWaddr 02:42:45:00:00:1C
          inet addr:10.0.3.10  Bcast:10.0.3.255  Mask:255.255.255.0
          inet6 addr: fe80::242:4500:700:1c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:468 (468.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
127.0.0.1       0.0.0.0         255.255.255.255 UH    0      0        0 lo
10.0.3.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
s
Enter 'exit' at the shell prompt to get back to the installation dialog.
bash: no job control in this shell
bash-3.2#
cat /proc/cio_ignore
0.0.0000-0.0.0008
0.0.000a-0.0.0190
0.0.0192-0.0.02ff
0.0.0302-0.0.1016
0.0.101a-0.0.1240
0.0.1242-0.0.eb1c
0.0.eb1e-0.0.f5ef
0.0.f5f1-0.0.ffff
0.1.0000-0.1.ffff
0.2.0000-0.2.ffff
0.3.0000-0.3.ffff
bash-3.2#
exit
exit

c) continue, p) parm file/configuration, n) network state, r) restart, s) shell
c

Starting telnetd and sshd to allow login over the network.

Connect now to 10.0.3.10 and login as user root to start the installation.
E.g. using: ssh -X root@xxxxxxxxx
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux