summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2004-03-23 22:24:22 +0000
committerJeremy Katz <katzj@redhat.com>2004-03-23 22:24:22 +0000
commit55961c3ad7aabf40f10fe27e38c0435d6e79ce5f (patch)
tree96457bf121285c8be04359242c0a07e87d2f9753
parent4eeda828f5fb7909064d030c45726a40e5b0ac25 (diff)
downloadanaconda-55961c3ad7aabf40f10fe27e38c0435d6e79ce5f.tar.gz
anaconda-55961c3ad7aabf40f10fe27e38c0435d6e79ce5f.tar.xz
anaconda-55961c3ad7aabf40f10fe27e38c0435d6e79ce5f.zip
make a pass at integrating s390 initrd differences into the main makeinitrd.
ssh/telnet bits are their own function that get called only for s390/s390x right now, but leaves open the option of adding on other platforms in the future
-rwxr-xr-xscripts/mk-images215
-rw-r--r--scripts/mk-images.s390441
2 files changed, 210 insertions, 446 deletions
diff --git a/scripts/mk-images b/scripts/mk-images
index 362e16900..17aeb7e81 100755
--- a/scripts/mk-images
+++ b/scripts/mk-images
@@ -74,6 +74,12 @@ TOPDIR=$(cd $TOPDIR; pwd)
LATEST=findPackage
fi
+ if [ $BUILDARCH = x86_64 -o $BUILDARCH = s390x ]; then
+ LIBDIR=lib64
+ else
+ LIBDIR=lib
+ fi
+
rm -rf $IMAGEPATH
rm -rf $FULLMODPATH
rm -rf $FINALFULLMODPATH
@@ -348,6 +354,161 @@ makeproductfile() {
echo $PRODUCTPATH >> $root/.buildstamp
}
+setupShellEnvironment() {
+ # setup password/group entries
+ cat >> $MBD_DIR/etc/passwd << EOF
+debug::0:0:debug shell:/:/bin/bash
+sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
+EOF
+ echo "sshd:x:74:" >> $MBD_DIR/etc/group
+ echo "telnet 23/tcp" > $MBD_DIR/etc/services
+ echo "tcp 6 TCP" > $MBD_DIR/etc/protocols
+
+ # PAM configuration
+ for i in pam_limits.so pam_env.so pam_unix.so pam_deny.so; do
+ cp -f $IMGPATH/$LIBDIR/security/$i $MBD_DIR/$LIBDIR/security
+ done
+
+ cp -f $IMGPATH/etc/pam.d/other $MBD_DIR/etc/pam.d
+ cat > $MBD_DIR/etc/pam.d/login << EOF
+#%PAM-1.0
+auth required pam_env.so
+auth sufficient pam_unix.so likeauth nullok
+auth required pam_deny.so
+account required pam_unix.so
+password sufficient pam_unix.so nullok use_authtok md5 shadow
+password required pam_deny.so
+session required pam_limits.so
+session required pam_unix.so
+EOF
+ cp -f $MBD_DIR/etc/pam.d/login $MBD_DIR/etc/pam.d/sshd
+
+ cp -f $IMGPATH/etc/security/{limits.conf,pam_env.conf} $MBD_DIR/etc/security/
+
+ # setup xinetd for telnet
+ cp -f $IMGPATH/etc/xinetd.conf $MBD_DIR/etc/xinetd.conf
+ cat > $MBD_DIR/etc/xinetd.d/telnet <<EOF
+service telnet
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /sbin/in.telnetd
+ log_on_failure += USERID
+ disable = no
+}
+EOF
+
+ # key generation takes ages on s390, you really don't want this for every
+ # installation attempt. These are NOT the keys of the installed system!
+ mkdir -m 0700 -p $MBD_DIR/etc/ssh
+ echo -n "Generating SSH1 RSA host key: "
+ /usr/bin/ssh-keygen -q -t rsa1 -f $MBD_DIR/etc/ssh/ssh_host_key \
+ -C '' -N '' >&/dev/null
+ echo
+ echo -n "Generating SSH2 RSA host key: "
+ /usr/bin/ssh-keygen -q -t rsa -f $MBD_DIR/etc/ssh/ssh_host_rsa_key \
+ -C '' -N '' >&/dev/null
+ echo
+ echo -n "Generating SSH2 DSA host key: "
+ /usr/bin/ssh-keygen -q -t dsa -f $MBD_DIR/etc/ssh/ssh_host_dsa_key \
+ -C '' -N '' >&/dev/null
+ echo
+ (cd $MBD_DIR/etc/ssh; \
+ chmod 600 ssh_host_key ssh_host_rsa_key ssh_host_dsa_key; \
+ chmod 644 ssh_host_key.pub ssh_host_rsa_key.pub ssh_host_dsa_key.pub; )
+
+
+ cat > $MBD_DIR/etc/ssh/sshd_config <<EOF
+Port 22
+HostKey /etc/ssh/ssh_host_key
+HostKey /etc/ssh/ssh_host_rsa_key
+HostKey /etc/ssh/ssh_host_dsa_key
+PermitRootLogin yes
+IgnoreRhosts yes
+StrictModes yes
+X11Forwarding yes
+X11DisplayOffset 10
+PrintMotd yes
+XAuthLocation /sbin/xauth
+KeepAlive yes
+SyslogFacility AUTHPRIV
+RhostsAuthentication no
+RSAAuthentication yes
+PasswordAuthentication yes
+PermitEmptyPasswords yes
+PermitUserEnvironment yes
+EOF
+ chmod 600 $MBD_DIR/etc/ssh/sshd_config
+
+ # copy in the binaries
+ cp -f $IMGPATH/usr/bin/login $MBD_DIR/sbin/login
+ cp -f $IMGPATH/usr/sbin/sshd $MBD_DIR/sbin/sshd
+ cp -f $IMGPATH/usr/sbin/xinetd $MBD_DIR/sbin/xinetd
+ cp -f $IMGPATH/usr/sbin/in.telnetd $MBD_DIR/sbin/in.telnetd
+ cp -f $IMGPATH/usr/bin/bash $MBD_DIR/sbin/bash
+ cp -f $IMGPATH/sbin/busybox $MBD_DIR/sbin/busybox
+
+ # make some symlinks
+ ln -sf bash $MBD_DIR/sbin/sh
+ (cd $MBD_DIR/sbin;
+ set $(./busybox 2>&1| awk '/^\t([[:alnum:]_\[]+,)+/' | sed 's/,//g' | sed 's/ +//');
+ while [ -n "$1" ]; do
+ if [ $1 != "busybox" -a $1 != "sh" ]; then
+ # if file doesnt already exist, link to busybox
+ if [ ! -f "$1" ]; then
+ ln -sf ./busybox $1
+ else
+ [ -n "$DEBUG" ] && echo "Overriding busybox version of $1"
+ fi
+ fi
+ shift
+ done )
+
+ # and copy libraries too
+ mkdir -p $MBD_DIR/$LIBDIR
+ for lib in $IMGPATH/$LIBDIR/libc.so* \
+ $IMGPATH/$LIBDIR/libc-*.so* \
+ $IMGPATH/$LIBDIR/ld-*.so* \
+ $IMGPATH/$LIBDIR/ld.so* \
+ $IMGPATH/$LIBDIR/ld64.so* \
+ $IMGPATH/$LIBDIR/libtermcap.so* \
+ $IMGPATH/$LIBDIR/libpam.so* \
+ $IMGPATH/$LIBDIR/libdl.so* \
+ $IMGPATH/$LIBDIR/libdl-*.so* \
+ $IMGPATH/$LIBDIR/libnss_files* \
+ $IMGPATH/$LIBDIR/libutil.so* \
+ $IMGPATH/$LIBDIR/libutil-*.so* \
+ $IMGPATH/$LIBDIR/libcrypt*so* \
+ $IMGPATH/$LIBDIR/libselinux*so* \
+ $IMGPATH/$LIBDIR/libattr*so* \
+ $IMGPATH/$LIBDIR/libresolv.so* \
+ $IMGPATH/$LIBDIR/libresolv-*.so* \
+ $IMGPATH/$LIBDIR/libm.so* \
+ $IMGPATH/$LIBDIR/libm-*.so* \
+ $IMGPATH/usr/$LIBDIR/libz.so* \
+ $IMGPATH/$LIBDIR/libssl* \
+ $IMGPATH/$LIBDIR/libcom_err* \
+ $IMGPATH/$LIBDIR/libe2p* \
+ $IMGPATH/$LIBDIR/libuuid* \
+ $IMGPATH/usr/$LIBDIR/libwrap*.so* \
+ $IMGPATH/usr/X11R6/$LIBDIR/libX11.so* \
+ $IMGPATH/usr/X11R6/$LIBDIR/libXmuu.so* \
+ $IMGPATH/usr/X11R6/$LIBDIR/libXext.so* \
+ $IMGPATH/usr/X11R6/$LIBDIR/libXt.so* \
+ $IMGPATH/usr/X11R6/$LIBDIR/libSM.so* \
+ $IMGPATH/usr/X11R6/$LIBDIR/libICE.so* ; do
+ if [ -e $lib ]; then cp -df $lib $MBD_DIR/$LIBDIR/ ; fi
+ done
+
+ for lib in $IMGPATH/usr/$LIBDIR/libkrb5.so* \
+ $IMGPATH/usr/$LIBDIR/libk5crypto.so* \
+ $IMGPATH/usr/$LIBDIR/libcom_err.so* ; do
+ if [ -e $lib ]; then cp -df $lib $MBD_DIR/usr/$LIBDIR/ ; fi
+ done
+}
+
makeinitrd() {
EXTRAINITRDPATH=""
PCMCIA=""
@@ -430,9 +591,7 @@ makeinitrd() {
mkdir -p $MBD_DIR/selinux
mkdir -p $MBD_DIR/sys
mkdir -p $MBD_DIR/tmp
- mkdir -p $MBD_DIR/etc/terminfo/l
- mkdir -p $MBD_DIR/etc/terminfo/x
- mkdir -p $MBD_DIR/etc/terminfo/v
+ mkdir -p $MBD_DIR/etc/terminfo/{a,b,d,l,s,v,x}
mkdir -p $MBD_DIR/var/state
mkdir -p $MBD_DIR/var/run
mkdir -p $MBD_DIR/var/lock/rpm
@@ -442,6 +601,13 @@ makeinitrd() {
mkdir -p $MBD_DIR/dev/iseries
fi
+ if [ "$BUILDARCH" = "s390" -o "$BUILDARCH" = "s390x" ]; then
+ mkdir -m 111 -p $MBD_DIR/var/empty/sshd
+ mkdir -p $MBD_DIR/etc/{pam.d,security}
+ mkdir -p $MBD_DIR/$LIBDIR/security
+ ln -s /tmp $MBD_DIR/var/state/xkb
+ fi
+
if [ -n "$INITRDMODULES" ]; then
MODSET=`expandModuleSet "$INITRDMODULES"`
makemoduleball --name $MODULEBALLNAME $MBD_DIR/modules "$MODSET"
@@ -455,7 +621,14 @@ EOF
echo $arch > $MBD_DIR/etc/arch
install -s -m 755 $LOADERBINDIR/$LOADERBIN $MBD_DIR/sbin/loader
- install -s -m 755 $LOADERBINDIR/$INITBIN $MBD_DIR/sbin
+ if [ "$BUILDARCH" != "s390" -a "$BUILDARCH" != "s390x" ]; then
+ install -s -m 755 $LOADERBINDIR/$INITBIN $MBD_DIR/sbin
+ else
+ install -s -m 755 $LOADERBINDIR/shutdown $MBD_DIR/sbin/shutdown
+ install -m 755 $IMGPATH/usr/lib/anaconda-runtime/loader/linuxrc.s390 $MBD_DIR/linuxrc
+ ln -s ../linuxrc $MBD_DIR/sbin/init
+ fi
+
if [ "$BUILDARCH" != "s390" -a "$BUILDARCH" != "s390x" ]; then
install -m 644 $KEYMAPS $MBD_DIR/etc/keymaps.gz
install -m 644 $SCREENFONT $MBD_DIR/etc/screenfont.gz
@@ -463,14 +636,12 @@ EOF
install -m 644 $MYLANGTABLE $MBD_DIR/etc/lang-table
install -m 644 $LOADERBINDIR/$MYLOADERTR $MBD_DIR/etc/loader.tr
- install -m 644 $IMGPATH/usr/share/terminfo/l/linux $MBD_DIR/etc/terminfo/l/linux
- install -m 644 $IMGPATH/usr/share/terminfo/x/xterm $MBD_DIR/etc/terminfo/x/xterm
- install -m 644 $IMGPATH/usr/share/terminfo/v/vt100 $MBD_DIR/etc/terminfo/v/vt100
- install -m 644 $IMGPATH/usr/share/terminfo/v/vt100-nav $MBD_DIR/etc/terminfo/v/vt100-nav
+ for i in a/ansi d/dumb l/linux s/screen v/vt100 v/vt100-nav v/vt102 x/xterm x/xterm-color b/bterm ; do
+ install -m 644 $IMGPATH/usr/share/terminfo/$i $MBD_DIR/etc/terminfo/$i
+ done
+
makeproductfile $MBD_DIR
- mkdir -p $MBD_DIR/etc/terminfo/b
- install -m 644 $IMGPATH/usr/share/terminfo/b/bterm $MBD_DIR/etc/terminfo/b/bterm
if [ -n "$BOGL" ]; then
install -m 644 $LOADERBINDIR/font.bgf.gz $MBD_DIR/etc
fi
@@ -529,6 +700,15 @@ EOF
$MBD_DIR kbd c 11 0 644 root:root
$MBD_DIR ptyp0 c 2 0 644 root:root
$MBD_DIR ttyp0 c 3 0 644 root:root
+ $MBD_DIR ttyp1 c 3 1 644 root:root
+ $MBD_DIR ttyp2 c 3 2 644 root:root
+ $MBD_DIR ttyp3 c 3 3 644 root:root
+ $MBD_DIR ttyp4 c 3 4 644 root:root
+ $MBD_DIR ttyp5 c 3 5 644 root:root
+ $MBD_DIR ttyp6 c 3 6 644 root:root
+ $MBD_DIR ttyp7 c 3 7 644 root:root
+ $MBD_DIR ttyp8 c 3 8 644 root:root
+ $MBD_DIR ttyp9 c 3 9 644 root:root
$MBD_DIR agpgart c 10 175 664 root:root
$MBD_DIR input/mice c 13 63 664 root:root
$MBD_DIR fd0 b 2 0 644 root:root
@@ -544,7 +724,20 @@ EOF
EOF
ln -s fb0 $MBD_DIR/dev/fb
- dd if=/dev/zero of=$MBD_DIR/etc/ramfs.img.big bs=1k count=16000 2>/dev/null
+ # s390 console fun
+ if [ "$BUILDARCH" = "s390" -o "$BUILDARCH" = "s390x" ]; then
+ for i in `seq 2 9`; do
+ rm -f $MBD_DIR/dev/tty$i
+ ln -s console $MBD_DIR/dev/tty$i
+ done
+ fi
+
+ # s390/s390x need sshd/telnet setup
+ if [ "$BUILDARCH" = "s390" -o "$BUILDARCH" = "s390x" ]; then
+ setupShellEnvironment
+ fi
+
+ dd if=/dev/zero of=$MBD_DIR/etc/ramfs.img.big bs=1k count=20000 2>/dev/null
mke2fs -F -q $MBD_DIR/etc/ramfs.img.big
tune2fs -c0 -i0 $MBD_DIR/etc/ramfs.img.big
gzip -9 < $MBD_DIR/etc/ramfs.img.big > $MBD_DIR/etc/ramfs.img
diff --git a/scripts/mk-images.s390 b/scripts/mk-images.s390
index 4fc2553de..3f5d9adae 100644
--- a/scripts/mk-images.s390
+++ b/scripts/mk-images.s390
@@ -6,448 +6,20 @@ prepareBootImage() {
cp $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img
cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz
- if [ -d $BOOTDISKDIR/$BOOTLANG ]; then
- # fb console and kon don't get along...
- for file in $BOOTDISKDIR/$BOOTLANG/*.msg; do
- filename=`basename $file`
- sed -e "s/@VERSION@/$VERSION/g" $file > $MBD_BOOTTREE/$filename
- done
- if [ $? != 0 ]; then
- echo $0: Failed to copy messages from $BOOTDISKDIR/$BOOTLANG to $MBD_BOOTTREE.
- umount $MBD_BOOTTREE
- rm -rf $MBD_BOOTTREE $MBD_TMPIMAGE
- exit 1
- fi
- else
- for file in $BOOTDISKDIR/*.msg; do
- filename=`basename $file`
- sed -e "s/@VERSION@/$VERSION/g" $file > $MBD_BOOTTREE/$filename
- done
- if [ $? != 0 ]; then
- echo $0: Failed to copy messages from $BOOTDISKDIR to $MBD_BOOTTREE.
- umount $MBD_BOOTTREE
- rm -rf $MBD_BOOTTREE $MBD_TMPIMAGE
- exit 1
- fi
- fi
}
-makeS390initrd() {
- EXTRAINITRDPATH=""
- PCMCIA=""
- INITRDSIZE=""
- KEEP=""
- PADSIZE=""
- LOADERBIN=""
- INITRDMODULES=""
- MODULEBALLNAME="modules.cgz"
- MYLANGTABLE=$LANGTABLE
- MYLOADERTR=loader.tr
- while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
- if [ $1 = "--initrdto" ]; then
- EXTRAINITRDPATH=$2
- shift; shift
- continue
- elif [ $1 = "--pcmcia" ]; then
- PCMCIA=yes
- shift
- continue
- elif [ $1 = "--keep" ]; then
- KEEP=yes
- shift
- continue
- elif [ $1 = "--initrdsize" ]; then
- INITRDSIZE=$2
- shift; shift
- continue
- elif [ $1 = "--padsize" ]; then
- PADSIZE=$2
- shift; shift
- continue
- elif [ $1 = "--loaderbin" ]; then
- LOADERBIN=$2
- shift; shift
- continue
- elif [ $1 = "--modules" ]; then
- LOADERMODULES=$2
- shift; shift
- continue
- elif [ $1 = "--moduleballname" ]; then
- MODULEBALLNAME=$2
- shift; shift
- continue
- fi
- echo "Unknown option passed to makeS390initrd"
- exit 1
- done
- if [ -z "$LOADERBIN" ]; then
- echo "no loader binary specified!" >&2
- exit 1
- fi
- if [ -z "$LOADERMODULES" ]; then
- echo "warning: no loader modules specified!" >&2
- fi
- if [ -z "$INITRDSIZE" ]; then
- echo "I don't know how big to make the initrd image!" >&2
- exit 1
- fi
-
- MBD_DIR=/tmp/makebootdisk.dir.$$
- MBD_FSIMAGE=/tmp/makebootdisk.initrdimage.$$
- MBD_MNTPOINT=/tmp/makebootdisk.mount.$$
- MBD_TMPIMAGE=/tmp/makebootdisk.image.$$
- MBD_BOOTTREE=/tmp/makebootdisk.tree.$$
- INITBIN=init
-
- rm -rf $MBD_DIR MBD_FSIMAGE
- mkdir -p $MBD_DIR/modules
- mkdir -p $MBD_DIR/sbin
- mkdir -p $MBD_DIR/dev/pts
- mkdir -p $MBD_DIR/dev/input
- mkdir -p $MBD_DIR/etc
- mkdir -p $MBD_DIR/proc
- mkdir -p $MBD_DIR/tmp
- mkdir -p $MBD_DIR/etc/terminfo/{a,d,k,l,s,v,x}
- mkdir -p $MBD_DIR/var/run
- mkdir -p $MBD_DIR/var/state
- mkdir -p $MBD_DIR/var/empty/sshd
- mkdir -p $MBD_DIR/etc/{pam.d,security}
- mkdir -p $MBD_DIR/$LIBDIR/security
- ln -s /tmp $MBD_DIR/var/state/xkb
-
- if [ -n "$LOADERMODULES" ]; then
- MODSET=`expandModuleSet "$LOADERMODULES"`
- makemoduleball --name $MODULEBALLNAME $MBD_DIR/modules "$MODSET"
- fi
-
- cat > $MBD_DIR/etc/passwd << EOF
-root::0:0:root:/:/sbin/loader
-debug::0:0:debug shell:/:/bin/bash
-sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
-EOF
- echo "sshd:x:74:" >> $MBD_DIR/etc/group
- chmod 111 $MBD_DIR/var/empty/sshd
- for i in pam_stack.so pam_nologin.so pam_limits.so pam_console.so \
- pam_env.so pam_unix.so pam_deny.so \
- pam_limits.so; do
- cp -f $IMGPATH/$LIBDIR/security/$i $MBD_DIR/$LIBDIR/security
- done
- for i in sshd other; do
- cp -f $IMGPATH/etc/pam.d/$i $MBD_DIR/etc/pam.d
- done
- cat > $MBD_DIR/etc/pam.d/login << EOF
-#%PAM-1.0
-auth required pam_stack.so service=system-auth
-auth required pam_nologin.so
-account required pam_stack.so service=system-auth
-password required pam_stack.so service=system-auth
-session required pam_stack.so service=system-auth
-session optional pam_console.so
-EOF
- cat > $MBD_DIR/etc/pam.d/system-auth << EOF
-#%PAM-1.0
-auth required pam_env.so
-auth sufficient pam_unix.so likeauth nullok
-auth required pam_deny.so
-account required pam_unix.so
-password sufficient pam_unix.so nullok use_authtok md5 shadow
-password required pam_deny.so
-session required pam_limits.so
-session required pam_unix.so
-EOF
- cp -f $IMGPATH/etc/security/{limits.conf,pam_env.conf} $MBD_DIR/etc/security/
- cp -f $IMGPATH/usr/bin/login $MBD_DIR/sbin/login
- cp -f $IMGPATH/usr/sbin/sshd $MBD_DIR/sbin/sshd
-
- # set up the arch bits
- echo $arch > $MBD_DIR/etc/arch
-
- install -s -m 755 $LOADERBINDIR/$LOADERBIN $MBD_DIR/sbin/loader
- install -s -m 755 $LOADERBINDIR/shutdown $MBD_DIR/sbin/shutdown
- #install -s -m 755 $LOADERBINDIR/load_anaconda $MBD_DIR/sbin/loader
- # install -m 644 $KEYMAPS $MBD_DIR/etc/keymaps.gz
- # install -m 644 $FONTS $MBD_DIR/etc/fonts.cgz
- install -m 644 $MYLANGTABLE $MBD_DIR/etc/lang-table
-
- install -m 644 $LOADERBINDIR/$MYLOADERTR $MBD_DIR/etc/loader.tr
- for i in a/ansi d/dumb k/kterm l/linux s/screen v/vt100 v/vt10-nav v/vt102 x/xterm x/xterm-color; do
- install -m 644 $IMGPATH/usr/share/terminfo/$i $MBD_DIR/etc/terminfo/$i
- done
- makeproductfile $MBD_DIR
-
- if [ -f $LOADERBINDIR/kon.cfg ]; then
- mkdir -p $MBD_DIR/etc/terminfo/k
- install -m 644 $IMGPATH/usr/share/terminfo/k/kon $MBD_DIR/etc/terminfo/k/kon
- install -m 644 $LOADERBINDIR/kon.cfg $MBD_DIR/etc
-
- install -m 644 $LOADERBINDIR/minikon.fnt $MBD_DIR/etc
- ln -s loader $MBD_DIR/sbin/continue
- fi
-
- for n in insmod rmmod modprobe; do
- ln -s loader $MBD_DIR/sbin/$n
- done
-
- mkdir -p $MBD_DIR/$LIBDIR $MBD_DIR/mnt1 \
- $MBD_DIR/mnt/runtime $MBD_DIR/etc/ssh $MBD_DIR/mnt/source \
- $MBD_DIR/usr/$LIBDIR/gconv/ $MBD_DIR/lib $MBD_DIR/etc/xinetd.d
- for links in X11R6 bin sbin share; do
- ln -sf /mnt/runtime/usr/$links $MBD_DIR/usr/$links
- done
- cp -f $IMGPATH/usr/lib/anaconda-runtime/loader/linuxrc.s390 $MBD_DIR/linuxrc
- ln -s ../linuxrc $MBD_DIR/sbin/init
- cp -f $IMGPATH/usr/bin/bash $MBD_DIR/sbin/bash
- ln -sf bash $MBD_DIR/sbin/sh
- cp -f $IMGPATH/usr/bin/gawk $MBD_DIR/sbin/awk
- cp -f $IMGPATH/usr/bin/sort_save $MBD_DIR/sbin/sort
- cp -f $IMGPATH/usr/sbin/chroot $MBD_DIR/sbin/chroot
- cp -f $IMGPATH/usr/sbin/mke2fs $MBD_DIR/sbin/mke2fs
- cp -f $IMGPATH/usr/bin/busybox $MBD_DIR/sbin/busybox
- for i in cp uname tee rm ps mv more mkdir ls ln hostname head \
- lsmod gzip grep dd chmod cat; do
- ln -sf busybox $MBD_DIR/sbin/$i
- done
- cp -f $IMGPATH/usr/X11R6/bin/xauth $MBD_DIR/sbin/xauth
- cp -f $IMGPATH/usr/bin/sed_save $MBD_DIR/sbin/sed
- cp -f $IMGPATH/usr/bin/mount $MBD_DIR/sbin/mount
- cp -f $IMGPATH/usr/bin/umount $MBD_DIR/sbin/umount
- ln -s gzip $MBD_DIR/sbin/zcat
- cp -f $IMGPATH/usr/bin/ldd $MBD_DIR/sbin/ldd
- cp -f $IMGPATH/usr/bin/strace $MBD_DIR/sbin/strace
- cp -f $IMGPATH/usr/bin/mknod $MBD_DIR/sbin/mknod
- cp -df $IMGPATH/$LIBDIR/libtermcap* $MBD_DIR/$LIBDIR/
- cp -df $IMGPATH/usr/X11R6/$LIBDIR/libX11* $MBD_DIR/$LIBDIR/
- cp -df $IMGPATH/usr/X11R6/$LIBDIR/libXmuu* $MBD_DIR/$LIBDIR/
- cp -df $IMGPATH/usr/X11R6/$LIBDIR/libXext* $MBD_DIR/$LIBDIR/
- cp -df $IMGPATH/usr/X11R6/$LIBDIR/libXt.so* $MBD_DIR/$LIBDIR/
- cp -df $IMGPATH/usr/X11R6/$LIBDIR/libSM.so* $MBD_DIR/$LIBDIR/
- cp -df $IMGPATH/usr/X11R6/$LIBDIR/libICE.so* $MBD_DIR/$LIBDIR/
- install -m 755 $IMGPATH/usr/sbin/dasdfmt $MBD_DIR/sbin/dasdfmt
- install -m 755 $IMGPATH/usr/sbin/fdasd $MBD_DIR/sbin/fdasd
- install -m 755 $IMGPATH/usr/sbin/ldconfig $MBD_DIR/sbin/ldconfig
- cp -f $IMGPATH/usr/sbin/ifconfig $MBD_DIR/sbin/ifconfig
- cp -f $IMGPATH/usr/sbin/xinetd $MBD_DIR/sbin/xinetd
- cp -f $IMGPATH/usr/sbin/in.telnetd $MBD_DIR/sbin/in.telnetd
- cat > $MBD_DIR/etc/xinetd.d/telnet <<EOF
-service telnet
-{
- flags = REUSE
- socket_type = stream
- wait = no
- user = root
- server = /sbin/in.telnetd
- log_on_failure += USERID
- disable = no
-}
-EOF
- cp -f $IMGPATH/usr/sbin/route $MBD_DIR/sbin/route
- cp -f $IMGPATH/usr/sbin/portmap $MBD_DIR/sbin/portmap
- cp -f $IMGPATH/etc/xinetd.conf $MBD_DIR/etc/xinetd.conf
- # key generation takes ages on s390, you really don't want this for every
- # installation attempt. These are NOT the keys of the installed system!
- echo -n "Generating SSH1 RSA host key: "
- /usr/bin/ssh-keygen -q -t rsa1 -f $MBD_DIR/etc/ssh/ssh_host_key \
- -C '' -N '' >&/dev/null
- echo
- echo -n "Generating SSH2 RSA host key: "
- /usr/bin/ssh-keygen -q -t rsa -f $MBD_DIR/etc/ssh/ssh_host_rsa_key \
- -C '' -N '' >&/dev/null
- echo
- echo -n "Generating SSH2 DSA host key: "
- /usr/bin/ssh-keygen -q -t dsa -f $MBD_DIR/etc/ssh/ssh_host_dsa_key \
- -C '' -N '' >&/dev/null
- echo
-pwd
- (cd $MBD_DIR/etc/ssh; \
- chmod 600 ssh_host_key ssh_host_rsa_key ssh_host_dsa_key; \
- chmod 644 ssh_host_key.pub ssh_host_rsa_key.pub ssh_host_dsa_key.pub; )
-pwd
- cat > $MBD_DIR/etc/ssh/sshd_config <<EOF
-Port 22
-HostKey /etc/ssh/ssh_host_key
-HostKey /etc/ssh/ssh_host_rsa_key
-HostKey /etc/ssh/ssh_host_dsa_key
-PermitRootLogin yes
-IgnoreRhosts yes
-StrictModes yes
-X11Forwarding yes
-X11DisplayOffset 10
-PrintMotd yes
-XAuthLocation /sbin/xauth
-KeepAlive yes
-SyslogFacility AUTHPRIV
-RhostsAuthentication no
-RSAAuthentication yes
-PasswordAuthentication yes
-PermitEmptyPasswords yes
-PermitUserEnvironment yes
-EOF
- chmod 600 $MBD_DIR/etc/ssh/sshd_config
-
- for file in ISO8859-15.so EUC-JP.so libJIS.so gconv-modules; do
- cp -f $IMGPATH/usr/$LIBDIR/gconv/$file $MBD_DIR/usr/$LIBDIR/gconv/$file
- done
- echo "telnet 23/tcp" > $MBD_DIR/etc/services
- echo "tcp 6 TCP" > $MBD_DIR/etc/protocols
- cp -df $IMGPATH/$LIBDIR/libpam.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libpam_misc.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libdl.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libdl-*.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libnsl.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libnsl-*.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libnss_compat* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libnss_dns* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libnss_files* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libutil.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libutil-*.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libcrypt*so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libselinux*so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libattr*so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/usr/$LIBDIR/libwrap*.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libc.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libc-*.so* $MBD_DIR/$LIBDIR
- if [ "$BUILDARCH" = "s390" ]; then
- cp -df $IMGPATH/$LIBDIR/ld.so* $MBD_DIR/lib
- else # (s390x)
- cp -df $IMGPATH/$LIBDIR/ld64.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/lib/ld64.so* $MBD_DIR/lib
- fi
- cp -df $IMGPATH/$LIBDIR/ld-*.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libresolv.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libresolv-*.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libvtoc*.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libm.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libm-*.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/usr/$LIBDIR/libz.so* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libssl* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libext2* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libcom_err* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/usr/$LIBDIR/libgssapi_krb5* $MBD_DIR/usr/$LIBDIR
- cp -df $IMGPATH/usr/$LIBDIR/libkrb5.so* $MBD_DIR/usr/$LIBDIR
- cp -df $IMGPATH/usr/$LIBDIR/libk5crypto.so* $MBD_DIR/usr/$LIBDIR
- cp -df $IMGPATH/usr/$LIBDIR/libcom_err.so* $MBD_DIR/usr/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libe2p* $MBD_DIR/$LIBDIR
- cp -df $IMGPATH/$LIBDIR/libuuid* $MBD_DIR/$LIBDIR
- cat >>$MBD_DIR/etc/ld.so.conf <<EOF
-/usr/kerberos/$LIBDIR
-/usr/X11R6/$LIBDIR
-/mnt/runtime/$LIBDIR
-/mnt/runtime/usr/$LIBDIR
-EOF
- (/usr/sbin/chroot $MBD_DIR /sbin/ldconfig )
- ln -s /proc/mounts $MBD_DIR/etc/mtab
- ln -s sbin $MBD_DIR/bin
-
- awk '{ printf("mknod %s/dev/%s %s %s %s\n", $1, $2, $3, $4, $5);
- printf("chmod %s %s/dev/%s\n", $6, $1, $2);
- printf("chown %s %s/dev/%s\n", $7, $1, $2);
- }' <<EOF | sh
- $MBD_DIR console c 5 1 600 root:root
- $MBD_DIR random c 1 8 644 root:root
- $MBD_DIR ram0 b 1 1 640 root:root
- $MBD_DIR ram1 b 1 2 640 root:root
- $MBD_DIR ram2 b 1 3 640 root:root
- $MBD_DIR ram3 b 1 4 640 root:root
- $MBD_DIR loop0 b 7 0 640 root:disk
- $MBD_DIR loop1 b 7 1 640 root:disk
- $MBD_DIR loop2 b 7 2 640 root:disk
- $MBD_DIR loop3 b 7 3 640 root:disk
- $MBD_DIR urandom c 1 9 644 root:root
- $MBD_DIR xpram0 b 35 0 600 root:root
- $MBD_DIR xpram1 b 35 1 600 root:root
- $MBD_DIR xpram2 b 35 2 600 root:root
- $MBD_DIR tty c 5 0 666 root:root
- $MBD_DIR null c 1 3 666 root:root
- $MBD_DIR zero c 1 5 666 root:root
- $MBD_DIR md0 b 9 0 644 root:root
- $MBD_DIR mem c 1 1 600 root:root
- $MBD_DIR ptmx c 5 2 666 root:root
- $MBD_DIR tty0 c 4 0 600 root:tty
- $MBD_DIR tty1 c 4 1 600 root:tty
- $MBD_DIR openprom c 10 139 644 root:root
- $MBD_DIR ptyp0 c 2 0 644 root:root
- $MBD_DIR ttyp1 c 3 1 644 root:root
- $MBD_DIR ttyp2 c 3 2 644 root:root
- $MBD_DIR ttyp3 c 3 3 644 root:root
- $MBD_DIR ttyp4 c 3 4 644 root:root
- $MBD_DIR ttyp5 c 3 5 644 root:root
- $MBD_DIR ttyp6 c 3 6 644 root:root
- $MBD_DIR ttyp7 c 3 7 644 root:root
- $MBD_DIR ttyp8 c 3 8 644 root:root
- $MBD_DIR ttyp9 c 3 9 644 root:root
-EOF
- ln -s ram1 $MBD_DIR/dev/ram
- for i in `seq 2 9`; do
- ln -s console $MBD_DIR/dev/tty$i
- done
-
- dd if=/dev/zero of=$MBD_DIR/etc/ramfs.img.big bs=1k count=17000
- mke2fs -F -q $MBD_DIR/etc/ramfs.img.big
- tune2fs -c0 -i0 $MBD_DIR/etc/ramfs.img.big
- gzip -9 < $MBD_DIR/etc/ramfs.img.big > $MBD_DIR/etc/ramfs.img
- rm -f $MBD_DIR/etc/ramfs.img.big
-
-cat > $MBD_DIR/.profile <<EOF
-PATH=/bin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mnt/usr/bin
-export PATH
-EOF
-
- rm -f $MBD_FSIMAGE
- dd if=/dev/zero of=$MBD_FSIMAGE bs=1k count=$INITRDSIZE 2> /dev/null
- /sbin/mke2fs -F -i 1024 -q $MBD_FSIMAGE $INITRDSIZE #> /dev/null 2>/dev
- /sbin/tune2fs -c0 -i0 $MBD_FSIMAGE
- rm -rf $MBD_MNTPOINT
- mkdir $MBD_MNTPOINT
- mount -o loop -t ext2 $MBD_FSIMAGE $MBD_MNTPOINT
- (cd $MBD_DIR; find . | cpio --quiet -p $MBD_MNTPOINT)
-
- left=$(df $MBD_MNTPOINT | tail +2)
- left=$(echo $left | awk '{print $4'})
-
- umount $MBD_MNTPOINT
-
- mv -f $MBD_FSIMAGE $MBD_FSIMAGE.uncompressed
- gzip -9 < $MBD_FSIMAGE.uncompressed > $MBD_FSIMAGE
- rm -rf $MBD_FSIMAGE.uncompressed $MBD_DIR
-
- size=$(du $MBD_FSIMAGE | awk '{ print $1 }')
-
- echo "Wrote $MBD_BOOTTREE (${size}k compressed, ${left}k free)"
-
- rm -rf $MBD_TMPIMAGE $MBD_BOOTTREE
-
- if [ -n "$PADSIZE" ]; then
- padfile $MBD_FSIMAGE $PADSIZE
- fi
-
- if [ -n "$EXTRAINITRDPATH" ]; then
- mkdir -p `dirname $EXTRAINITRDPATH`
- cp -a $MBD_FSIMAGE $EXTRAINITRDPATH
- fi
-
- if [ -z "$KEEP" ]; then
- rm -rf $MBD_TMPIMAGE $MBD_FSIMAGE $MBD_MNTPOINT $MBD_BOOTTREE
- fi
-}
-
-if [ $BUILDARCH = "s390x" ]; then
- LIBDIR=lib64
-else
- LIBDIR=lib
-fi
-
-
IDEMODS=""
SCSIMODS=""
-SECSTAGE="$IDEMODS $SCSIMODS md raid0 raid1 raid5 lvm-mod"
-
-COMMONMODULES="loop cramfs dasd_diag_mod dasd_eckd_mod dasd_fba_mod dasd_mod tape390 isofs ext3"
+FSMODS="vfat msdos ext3 reiserfs jfs xfs"
+SECSTAGE="$IDEMODS $SCSIMODS $FSMODS md raid0 raid1 raid5 dm-mod"
+DASDMODS=" dasd_diag_mod dasd_eckd_mod dasd_fba_mod dasd_mod"
+COMMONMODULES="loop cramfs tape390 isofs $DASDMODS"
LOCALMODULES="$COMMONMODULES tape390 $IDEMODS $SCSIMODS"
-NETWORKMODULES="$COMMONMODULES nfs ctc netiucv ipv6 lcs qdio qeth"
+NETWORKMODULES="$COMMONMODULES nfs ctc netiucv lcs qdio qeth"
makeBootImages() {
- makeS390initrd --initrdto $TOPDESTPATH/images/initrd.img \
+ makeinitrd --nobogl --initrdto $TOPDESTPATH/images/initrd.img \
--initrdsize 20000 \
--loaderbin loader \
--modules "$NETWORKMODULES"
@@ -465,4 +37,3 @@ makeSecondStage() {
makeinstimage "hdstg" "=net $SECSTAGE"
makemainimage "stage2" "cramfs"
}
-