diff options
author | Jeremy Katz <katzj@redhat.com> | 2003-03-21 00:09:53 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2003-03-21 00:09:53 +0000 |
commit | c29f0955045cdd02965a14300ce5e99364db2d1b (patch) | |
tree | d84a948b5288d9b0b9bd28649f608b8df9f18ea0 /scripts/mk-images.s390 | |
parent | 720f69db5a6df4a3d6afe90ea228b5a90fe41333 (diff) | |
download | anaconda-c29f0955045cdd02965a14300ce5e99364db2d1b.tar.gz anaconda-c29f0955045cdd02965a14300ce5e99364db2d1b.tar.xz anaconda-c29f0955045cdd02965a14300ce5e99364db2d1b.zip |
merge taroon branch up until now. tagged as before-taroon-merge before and
will be tagged after-taroon-merge after. taroon at this point is tagged
taroon-merge-point for where to base merges from in the future
Diffstat (limited to 'scripts/mk-images.s390')
-rw-r--r-- | scripts/mk-images.s390 | 374 |
1 files changed, 365 insertions, 9 deletions
diff --git a/scripts/mk-images.s390 b/scripts/mk-images.s390 index 4c180fef1..6cd826a7a 100644 --- a/scripts/mk-images.s390 +++ b/scripts/mk-images.s390 @@ -34,6 +34,367 @@ prepareBootImage() { 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/state + 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:/:/bin/bash +sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin +EOF + echo "sshd:x:74:" >> $MBD_DIR/etc/group + mkdir -p $MBD_DIR/var/empty/sshd $MBD_DIR/etc/pam.d $MBD_DIR/lib/security \ + $MBD_DIR/etc/security $MBD_DIR/$LIBDIR/security + chmod 111 $MBD_DIR/var/empty/sshd + for i in pam_stack.so pam_nologin.so pam_limits.so pam_console.so \ + pam_securetty.so pam_env.so pam_unix.so pam_deny.so pam_cracklib.so \ + pam_limits.so; do + cp -f $IMGPATH/$LIBDIR/security/$i $MBD_DIR/$LIBDIR/security + done + cp -f $IMGPATH/$LIBDIR/libpam_misc.so* $IMGPATH/$LIBDIR/libpam.so* $MBD_DIR/$LIBDIR + for i in sshd login system-auth other; do + cp -f $IMGPATH/etc/pam.d/$i $MBD_DIR/etc/pam.d + done + 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 + + install -s -m 755 $LOADERBINDIR/$LOADERBIN $MBD_DIR/sbin/loader + #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/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/usr/kerberos/$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/consoletype $MBD_DIR/sbin/consoletype + 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 \ + 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/ + 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 + 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 + chmod 600 $MBD_DIR/etc/ssh/ssh_host_key + chmod 644 $MBD_DIR/etc/ssh/ssh_host_key.pub + 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 + chmod 600 $MBD_DIR/etc/ssh/ssh_host_rsa_key + chmod 644 $MBD_DIR/etc/ssh/ssh_host_rsa_key.pub + 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 + chmod 600 $MBD_DIR/etc/ssh/ssh_host_dsa_key + chmod 644 $MBD_DIR/etc/ssh/ssh_host_dsa_key.pub + echo + 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 +EOF + + 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 + cp -f $IMGPATH/etc/services $MBD_DIR/etc/ + cp -df $IMGPATH/$LIBDIR/libpam.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/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/$LIBDIR/libcrack* $MBD_DIR/$LIBDIR + cp -df $IMGPATH/usr/kerberos/$LIBDIR/libgssapi_krb5* $MBD_DIR/usr/kerberos/$LIBDIR + cp -df $IMGPATH/usr/kerberos/$LIBDIR/libkrb5.so* $MBD_DIR/usr/kerberos/$LIBDIR + cp -df $IMGPATH/usr/kerberos/$LIBDIR/libk5crypto.so* $MBD_DIR/usr/kerberos/$LIBDIR + cp -df $IMGPATH/usr/kerberos/$LIBDIR/libcom_err.so* $MBD_DIR/usr/kerberos/$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 4 64 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 + $MBD_DIR fd0 b 2 0 644 root:root + $MBD_DIR fd1 b 2 1 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 + 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 + 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="" @@ -45,16 +406,16 @@ NETWORKMODULES="$COMMONMODULES nfs ctc netiucv ipv6" echo "In mk-images.s390: kernelvers is $kernelvers" if [ "$kernelvers" = "BOOT" ]; then - makeinitrd --initrdto $TOPDESTPATH/images/initrd.img \ - --initrdsize 8192 \ + makeS390initrd --initrdto $TOPDESTPATH/images/initrd.img \ + --initrdsize 15000 \ --loaderbin loader \ --modules "$NETWORKMODULES" cp -vf $KERNELROOT/boot/${KERNELNAME}-${version} $TOPDESTPATH/images/kernel.img fi if [ "$kernelvers" = "BOOTtape" ]; then - makeinitrd --initrdto $TOPDESTPATH/images/tapeinrd.img \ - --initrdsize 8192 \ + makeS390initrd --initrdto $TOPDESTPATH/images/tapeinrd.img \ + --initrdsize 15000 \ --loaderbin loader \ --modules "$NETWORKMODULES" cp -vf $KERNELROOT/boot/${KERNELNAME}-${version} $TOPDESTPATH/images/tapekrnl.img @@ -70,11 +431,6 @@ for I in `find $BOOTDISKDIR -type d`; do fi done -#makebootdisk --kernelto $TOPDESTPATH/boot/vmlinuz \ -# --bootdisksize 1440 \ -# --imagename $BOOTDIR/kernel.img #\ -# #--initrd $TOPDESTPATH//autoboot/initrd.img - unset BOOTLANG unset BOOTDIR |