diff options
author | Jeremy Katz <katzj@redhat.com> | 2004-03-23 22:24:22 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2004-03-23 22:24:22 +0000 |
commit | 55961c3ad7aabf40f10fe27e38c0435d6e79ce5f (patch) | |
tree | 96457bf121285c8be04359242c0a07e87d2f9753 | |
parent | 4eeda828f5fb7909064d030c45726a40e5b0ac25 (diff) | |
download | anaconda-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-x | scripts/mk-images | 215 | ||||
-rw-r--r-- | scripts/mk-images.s390 | 441 |
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" } - |