diff options
| author | Matt Wilson <msw@redhat.com> | 2000-06-02 03:16:06 +0000 |
|---|---|---|
| committer | Matt Wilson <msw@redhat.com> | 2000-06-02 03:16:06 +0000 |
| commit | dad831920698dbca09f67868f16776227c253ffc (patch) | |
| tree | e7aad8061f107ade5edaeb9155719991afd327a0 /scripts | |
| parent | e8225fe02ada8ff3cada3f28caa678da1f544a15 (diff) | |
alpha boot disks (if the kernel would fit) are created
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/buildinstall | 8 | ||||
| -rwxr-xr-x | scripts/mk-images | 173 | ||||
| -rw-r--r-- | scripts/mk-images.alpha | 20 | ||||
| -rw-r--r-- | scripts/mk-images.i386 | 52 | ||||
| -rwxr-xr-x | scripts/upd-instroot | 31 |
5 files changed, 196 insertions, 88 deletions
diff --git a/scripts/buildinstall b/scripts/buildinstall index 722145d18..db481172c 100755 --- a/scripts/buildinstall +++ b/scripts/buildinstall @@ -15,6 +15,8 @@ mkdir -p $BUILDINSTDIR UPD_INSTROOT=./upd-instroot MK_IMAGES=./mk-images +BUILDARCH=`rpm -qp --qf "%{ARCH}" $p/RedHat/RPMS/anaconda-runtime-[0-9]*` + if [ ! -f $UPD_INSTROOT ]; then cd $BUILDINSTDIR rpm2cpio $p/RedHat/RPMS/anaconda-runtime-[0-9]* | cpio --quiet -iumd usr/lib/anaconda-runtime/upd-instroot @@ -31,8 +33,8 @@ if [ ! -f $MK_IMAGES ]; then MK_IMAGES=$BUILDINSTDIR/mk-images fi -$UPD_INSTROOT $p/RedHat/RPMS $p/image-template $p/RedHat/instimage -$MK_IMAGES $p/RedHat/RPMS $p $p/image-template +$UPD_INSTROOT $p/RedHat/RPMS $p/image-template $p/RedHat/instimage $BUILDARCH +$MK_IMAGES $p/RedHat/RPMS $p $p/image-template $BUILDARCH rm -rf $BUILDINSTDIR -rm -rf $p/image-template $p/RedHat/instimage/usr/lib/anaconda-runtime +#rm -rf $p/image-template $p/RedHat/instimage/usr/lib/anaconda-runtime diff --git a/scripts/mk-images b/scripts/mk-images index bc09b0965..68a264e69 100755 --- a/scripts/mk-images +++ b/scripts/mk-images @@ -1,11 +1,11 @@ #!/bin/bash usage () { - echo "usage: mk-images <kernelpath> <imagepath> <fullmodpath> <imgpath> <temlpatepath>" + echo "usage: mk-images <pkgsrc> <toplevel> <template> <buildarch>" exit 0 } -if [ -z "$1" -o -z "$2" -o -z "$3" ]; then usage; fi +if [ -z "$1" -o -z "$2" -o -z "$3" -o -z "$4" ]; then usage; fi TOPDIR=$(echo $0 | sed "s,/[^/]*$,,") if [ $TOPDIR = $0 ]; then @@ -25,9 +25,10 @@ TOPDIR=$(cd $TOPDIR; pwd) KERNELROOT=/tmp/updboot.kernel.$$ MODDEPS=$KERNELROOT/moddeps ARCH=$(uname -m | sed 's/i.86/i386/') + BUILDARCH=$4 if [ ! -d "$1" ]; then - LATEST=latest --arch $ARCH + LATEST=latest --arch $BUILDARCH else LATEST=findPackage fi @@ -42,8 +43,8 @@ TOPDIR=$(cd $TOPDIR; pwd) # Stuff that we need TRIMPCITABLE=$IMGPATH/usr/lib/anaconda-runtime/trimpcitable - KEYMAPS=$IMGPATH/usr/lib/anaconda-runtime/keymaps-${ARCH} - FONTS=$IMGPATH/usr/lib/anaconda-runtime/fonts-${ARCH} + KEYMAPS=$IMGPATH/usr/lib/anaconda-runtime/keymaps-${BUILDARCH} + FONTS=$IMGPATH/usr/lib/anaconda-runtime/fonts-${BUILDARCH} GETMODDEPS=$IMGPATH/usr/lib/anaconda-runtime/moddeps MODLIST=$IMGPATH/usr/lib/anaconda-runtime/modlist MODINFO=$IMGPATH/usr/lib/anaconda-runtime/loader/module-info @@ -58,9 +59,15 @@ TOPDIR=$(cd $TOPDIR; pwd) touch $MODULESUSED + REQUIREMENTS="$TRIMPCITABLE $PCITABLE $GETMODDEPS $MODINFO + $FILTERMODDEPS $LANGTABLE $KEYMAPS" + + if [ $BUILDARCH = i386 ]; then + REQUIREMENTS="$REQUIREMENTS $SYSLINUX" + fi + dieLater= - for n in $TRIMPCITABLE $PCITABLE $GETMODDEPS $MODINFO $FILTERMODDEPS \ - $LANGTABLE $SYSLINUX $KEYMAPS; do + for n in $REQUIREMENTS; do if [ ! -f $n ]; then echo "$n doesn't exist" dieLater=1 @@ -82,6 +89,9 @@ findPackage() { for n in $dir/$name*; do thisName=$(rpm --qf '%{NAME}' -qp $n) + if [ -z "$thisName" ]; then + return + fi if [ $thisName = $name ]; then echo $n return @@ -227,25 +237,53 @@ makemainmodules() { makemoduleball $FULLMODPATH "$modlist" } -makebootdisk() { +makeinitrd() { EXTRAKERNELPATH="" EXTRAINITRDPATH="" PCMCIA="" - while [ $(echo $1 | cut -c1-2) = "--" ]; do - if [ $1 = "--kernelto" ]; then - EXTRAKERNELPATH=$2 - shift; shift - elif [ $1 = "--initrdto" ]; then + INITRDSIZE="" + KEEP="" + PADSIZE="" + LOADERBIN="" + INITRDMODULES="" + while [ x$(echo $1 | cut -c1-2) = x"--" ]; do + if [ $1 = "--initrdto" ]; then EXTRAINITRDPATH=$2 shift; shift elif [ $1 = "--pcmcia" ]; then PCMCIA=yes shift + elif [ $1 = "--keep" ]; then + KEEP=yes + shift + elif [ $1 = "--initrdsize" ]; then + INITRDSIZE=$2 + shift; shift + elif [ $1 = "--padsize" ]; then + PADSIZE=$2 + shift; shift + elif [ $1 = "--loaderbin" ]; then + LOADERBIN=$2 + shift; shift + elif [ $1 = "--modules" ]; then + LOADERMODULES=$2 + shift; shift fi done - MBD_FILENAME=$IMAGEPATH/$1 - LOADERBIN=$2 - MODSET=`expandModuleSet "$3"` + if [ -z "$LOADERBIN" ]; then + echo "no loader binary specified!" >&2 + exit 1 + fi + if [ -z "$LOADERMODULES" ]; then + echo "no loader modules specified!" >&2 + exit 1 + fi + if [ -z "$INITRDSIZE" ]; then + echo "I don't know how big to make the initrd image!" >&2 + exit 1 + fi + + MODSET=`expandModuleSet "$LOADERMODULES"` MBD_DIR=/tmp/makebootdisk.dir.$$ MBD_FSIMAGE=/tmp/makebootdisk.initrdimage.$$ MBD_MNTPOINT=/tmp/makebootdisk.mount.$$ @@ -283,7 +321,6 @@ EOF cp -a $KERNELROOT/etc/pcmcia $MBD_DIR/etc fi - for n in insmod rmmod modprobe; do ln -s loader $MBD_DIR/sbin/$n done @@ -327,14 +364,6 @@ PATH=/bin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mn export PATH EOF - if [ $ARCH = "i386" ]; then - INITRDSIZE=2000 - FLOPPYSIZE=1440 - else - echo "I don't know how big to make the image!" >&2 - exit 1 - fi - rm -f $MBD_FSIMAGE dd if=/dev/zero of=$MBD_FSIMAGE bs=1k count=$INITRDSIZE 2> /dev/null echo y | mke2fs -i 8096 -q $MBD_FSIMAGE $INITRDSIZE > /dev/null 2>/dev/null @@ -343,8 +372,14 @@ EOF 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 + echo "Wrote initrd.img (${left}k free)" + mv -f $MBD_FSIMAGE $MBD_FSIMAGE.uncompressed gzip -9 < $MBD_FSIMAGE.uncompressed > $MBD_FSIMAGE rm -rf $MBD_FSIMAGE.uncompressed $MBD_DIR @@ -352,41 +387,73 @@ EOF rm -rf $MBD_TMPIMAGE $MBD_BOOTTREE dd if=/dev/zero bs=1k count=$FLOPPYSIZE of=/$MBD_TMPIMAGE 2>/dev/null - # Create the bootdisk image as $MBD_TMPIMAGE, mount it, copy - # $MBD_FSIMAGE (the initrd) to it, add a kernel, umount it. It should be - # left as $MBD_TMPIMAGE, with no side affects. - if [ $ARCH = "i386" ]; then - gunzip < $BOOTDISKDIR/template.img.gz | - dd of=$MBD_TMPIMAGE conv=notrunc > /dev/null 2> /dev/null - $SYSLINUX $MBD_TMPIMAGE - mkdir -p $MBD_BOOTTREE - mount -o loop -t msdos $MBD_TMPIMAGE $MBD_BOOTTREE + if [ -n "$PADSIZE" ]; then + size=`cat $MBD_FSIMAGE | wc -c` + filler=`expr $PADSIZE "*" 1024 - $size` + dd if=/dev/zero bs=$filler count=1 >> $MBD_FSIMAGE 2> /dev/null + fi - (cd $BOOTDISKDIR; find . ! -name "*.msg" -maxdepth 1 ! -type d | cpio --quiet -p $MBD_BOOTTREE) + if [ -n "$EXTRAINITRDPATH" ]; then + mkdir -p `dirname $EXTRAINITRDPATH` + cp -a $MBD_FSIMAGE $EXTRAINITRDPATH + fi - cp $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img - cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz - cp $BOOTDISKDIR/*.msg $MBD_BOOTTREE + if [ -z "$KEEP" ]; then + rm -rf $MBD_TMPIMAGE $MBD_FSIMAGE $MBD_MNTPOINT $MBD_BOOTTREE + fi +} - left=$(df $MBD_BOOTTREE | tail +2) - left=$(echo $left | awk '{print $4'}) +makebootdisk() { + BOOTDISKSIZE="" + EXTRAKERNELPATH="" + INITRDFLAGS="" + MBD_FILENAME="" + while [ x$(echo $1 | cut -c1-2) = x"--" ]; do + if [ $1 = "--bootdisksize" ]; then + BOOTDISKSIZE=$2 + shift; shift + continue + elif [ $1 = "--kernelto" ]; then + EXTRAKERNELPATH=$2 + shift; shift + continue + elif [ $1 = "--initrdflags" ]; then + INITRDFLAGS=$2 + shift; shift + continue + elif [ $1 = "--imagename" ]; then + MBD_FILENAME=$IMAGEPATH/$2 + shift; shift + continue + fi + echo "Unknown option passed to makebootdisk" + exit 1 + done - umount $MBD_BOOTTREE - else - echo "I don't know how big to make the image!" >&2 + if [ -z "$MBD_FILENAME" ]; then + echo "No imagename passed" exit 1 fi - if [ -n "$EXTRAKERNELPATH" ]; then - mkdir -p $EXTRAKERNELPATH - cp -a $KERNELROOT/boot/vmlinuz-* $EXTRAKERNELPATH/vmlinuz + if [ ! -z "$INITRDFLAGS" ]; then + eval makeinitrd --keep $INITRDFLAGS fi - if [ -n "$EXTRAINITRDPATH" ]; then - mkdir -p $EXTRAINITRDPATH - cp -a $MBD_FSIMAGE $EXTRAINITRDPATH/initrd.img + mkdir -p $MBD_BOOTTREE + + # provided by the mk-image.$ARCH file + prepareBootImage + + left=$(df $MBD_BOOTTREE | tail +2) + left=$(echo $left | awk '{print $4'}) + + umount $MBD_BOOTTREE + + if [ -n "$EXTRAKERNELPATH" ]; then + mkdir -p `dirname $EXTRAKERNELPATH` + cp -a $KERNELROOT/boot/vmlinuz-* $EXTRAKERNELPATH fi - + rm -f $MBD_FILENAME mv -f $MBD_TMPIMAGE $MBD_FILENAME rm -rf $MBD_TMPIMAGE $MBD_FSIMAGE $MBD_MNTPOINT $MBD_BOOTTREE @@ -535,7 +602,9 @@ makedriverdisk () { version=$(rpm --qf '%{VERSION}-%{RELEASE}' -qp $kpackage)BOOT rpm2cpio $kpackage | (cd $KERNELROOT; cpio --quiet -iumd) - rpm2cpio $ppackage | (cd $KERNELROOT; cpio --quiet -iumd etc/pcmcia/*) + if [ ! -z $ppackage ]; then + rpm2cpio $ppackage | (cd $KERNELROOT; cpio --quiet -iumd etc/pcmcia/*) + fi if [ ! -d "$KERNELROOT/lib/modules/$version/scsi" ]; then echo "$1 is not a valid modules directory" 2>&1 @@ -555,6 +624,6 @@ makedriverdisk () { rundepmod "$KERNELROOT/lib/modules/$version/*/*.o" $MODDEPS rm -f $MODDEPS.foo -. $TOPDIR/mk-images.${ARCH} +. $TOPDIR/mk-images.${BUILDARCH} rm -rf $KERNELROOT diff --git a/scripts/mk-images.alpha b/scripts/mk-images.alpha new file mode 100644 index 000000000..47116a15a --- /dev/null +++ b/scripts/mk-images.alpha @@ -0,0 +1,20 @@ +SECSTAGE="vfat raid0 raid1 raid5" + +prepareBootImage() { + gunzip < $BOOTDISKDIR/generic.img.gz | + dd of=$MBD_TMPIMAGE conv=notrunc > /dev/null 2> /dev/null + mount -o loop -t ext2 $MBD_TMPIMAGE $MBD_BOOTTREE + + zcat $KERNELROOT/boot/vmlinuz-* | gzip -9 > $MBD_BOOTTREE/vmlinux.gz +} + +makeinitrd --initrdto $TOPDESTPATH/images/ramdisk.img \ + --initrdsize 2000 \ + --padsize 1440 \ + --loaderbinary loader \ + --modules "3c59x de4x5 depca eepro100 ibmtr old_tulip tulip ne vfat" + +makebootdisk --bootdisksize 1440 --kernelto $TOPDESTPATH/kernels/vmlinux.gz \ + --imagename generic.img + +makemainmodules "$SECSTAGE" diff --git a/scripts/mk-images.i386 b/scripts/mk-images.i386 index 8aefc17d3..a6b9afff5 100644 --- a/scripts/mk-images.i386 +++ b/scripts/mk-images.i386 @@ -1,18 +1,44 @@ SECSTAGE="vfat raid0 raid1 raid5" -makebootdisk --kernelto $TOPDESTPATH/dosutils/autorun \ - --initrdto $TOPDESTPATH/dosutils/autorun \ - boot.img loader-local "vfat - AM53C974 ips DAC960 megaraid ncr53c8xx cpqarray aic7xxx - BusLogic qlogicisp advansys eata_dma" - -makebootdisk --kernelto $TOPDESTPATH/images/pxeboot \ - --initrdto $TOPDESTPATH/images/pxeboot \ - bootnet.img loader-network "3c59x ac3200 at1700 de4x5 - de600 de620 depca dgrs eepro100 eepro hp-plus hp - hp100 ibmtr ni52 old_tulip tulip ne nfs vfat" - -makebootdisk --pcmcia pcmcia.img loader-pcmcia "$PCMCIAMODULES nfs vfat" +prepareBootImage() { + gunzip < $BOOTDISKDIR/template.img.gz | + dd of=$MBD_TMPIMAGE conv=notrunc > /dev/null 2> /dev/null + $SYSLINUX $MBD_TMPIMAGE + mount -o loop -t msdos $MBD_TMPIMAGE $MBD_BOOTTREE + + (cd $BOOTDISKDIR; find . ! -name "*.msg" -maxdepth 1 ! -type d | cpio --quiet -p $MBD_BOOTTREE) + + cp $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img + cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz + cp $BOOTDISKDIR/*.msg $MBD_BOOTTREE +} + +makebootdisk --kernelto $TOPDESTPATH/dosutils/autorun/vmlinuz \ + --bootdisksize 1440 \ + --imagename boot.img \ + --initrdflags '--initrdto $TOPDESTPATH/dosutils/autorun/initrd.img \ + --initrdsize 2000 \ + --loaderbin loader-local \ + --modules "vfat AM53C974 ips DAC960 + megaraid ncr53c8xx cpqarray aic7xxx + BusLogic qlogicisp advansys eata_dma"' + +makebootdisk --kernelto $TOPDESTPATH/images/pxeboot/vmlinuz \ + --bootdisksize 1440 \ + --imagename bootnet.img \ + --initrdflags '--initrdto $TOPDESTPATH/images/pxeboot/initrd.img \ + --initrdsize 2000 \ + --loaderbin loader-network \ + --modules "3c59x ac3200 at1700 de4x5 de600 + de620 depca dgrs eepro100 eepro hp-plus hp + hp100 ibmtr ni52 old_tulip tulip ne nfs + vfat"' + +makebootdisk --imagename pcmcia.img \ + --initrdflags '--pcmcia \ + --initrdsize 2000 \ + --loaderbin loader-pcmcia \ + --modules "$PCMCIAMODULES nfs vfat"' makedriverdisk "Supplemental Drivers" "drivers" "+scsi +net" diff --git a/scripts/upd-instroot b/scripts/upd-instroot index 231b6e846..75d78fb29 100755 --- a/scripts/upd-instroot +++ b/scripts/upd-instroot @@ -1,19 +1,7 @@ #!/bin/bash ORIGDIR=`pwd` -STRIP=strip -ARCH=`uname -m | sed -e 's/i.86/i386/'` - -if [ "$ARCH" = sparc64 ]; then - exec sparc32 $0 $* -fi - -NEEDGR=yes -if [ $(uname -m) = ia64 ]; then - NEEDGR="" - STRIP=echo -fi if [ -z "$1" ]; then echo "upd-instroot: updates instimage from a Red Hat RPMS directory" @@ -25,6 +13,15 @@ if [ ! -d $1 ]; then LATEST="latest --arch $ARCH" fi +PACKAGEDIR=$1 + +ARCH=`rpm -qp --qf "%{ARCH}" $PACKAGEDIR/anaconda-runtime*.rpm` + +NEEDGR=yes +if [ $ARCH = ia64 ]; then + NEEDGR="" +fi + prunePackageList() { PACKAGEPATH=$1 PACKAGES="$2" @@ -64,8 +61,6 @@ expandPackageSet() { done } -PACKAGEDIR=$1 - if [ -z "$2" ]; then DEST=/tmp/upd-instroot else @@ -86,10 +81,10 @@ mkdir -p $DESTGR PACKAGES="glibc setup python newt libtermcap zlib ash e2fsprogs util-linux raidtools locale-ja popt mount procps rpm XFree86 Xconfigurator anaconda anaconda-runtime - kudzu-devel kudzu db1 db2 db3 rpm-python syslinux bzip2" + kudzu-devel kudzu db1 db2 db3 rpm-python bzip2" if [ $ARCH = i386 ]; then - PACKAGES="$PACKAGES kernel-pcmcia-cs" + PACKAGES="$PACKAGES kernel-pcmcia-cs syslinux" fi # xpm is missing @@ -114,8 +109,6 @@ fi if [ $ARCH = sparc ]; then PACKAGESGR="$PACKAGESGR XFree86-Sun" -elif [ $ARCH = alpha ]; then - PACKAGESGR="$PACKAGESGR XFree86-TGA" fi KEEPFILE=/tmp/keepfile.$$ @@ -487,8 +480,6 @@ if [ -d $DEST/usr/share/locale ]; then done fi -echo -e "\rScrubbing trees..." - echo "Patching python library..." # always use passive mode for ftp installs |
