diff options
Diffstat (limited to 'scripts/mk-images')
-rwxr-xr-x | scripts/mk-images | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/scripts/mk-images b/scripts/mk-images index 963810fed..56aa49f6c 100755 --- a/scripts/mk-images +++ b/scripts/mk-images @@ -29,16 +29,14 @@ TOPDIR=$(cd $TOPDIR; pwd) INSTIMGPATH=$TOPDESTPATH/RedHat/base INSTIMGTEMPLATE=$3 IMGPATH=$4 - KERNELROOT=/tmp/updboot.kernel.$$ - MODDEPS=$KERNELROOT/moddeps + KERNELBASE=/tmp/updboot.kernel.$$ + MODDEPS=$KERNELBASE/moddeps BUILDARCH=$5 if [ "$BUILDARCH" = "ppc" -o "$BUILDARCH" = "ppc64" ]; then KERNELNAME=vmlinux - KERNELARCH=ppc64 else KERNELNAME=vmlinuz - KERNELARCH=$BUILDARCH fi if [ "$BUILDARCH" = "ia64" ]; then @@ -72,11 +70,11 @@ TOPDIR=$(cd $TOPDIR; pwd) rm -rf $IMAGEPATH rm -rf $FULLMODPATH rm -rf $FINALFULLMODPATH - rm -rf $KERNELROOT + rm -rf $KERNELBASE mkdir -p $IMAGEPATH mkdir -p $FULLMODPATH mkdir -p $FINALFULLMODPATH - mkdir -p $KERNELROOT + mkdir -p $KERNELBASE mkdir -p $INSTIMGPATH # Stuff that we need @@ -92,8 +90,8 @@ TOPDIR=$(cd $TOPDIR; pwd) BOOTDISKDIR=$IMGPATH/usr/lib/anaconda-runtime/boot LANGTABLE=$IMGPATH/usr/lib/anaconda/lang-table PCITABLE=$IMGPATH/usr/share/hwdata/pcitable - CACHE=$KERNELROOT/lib/modules/.cache - MODULESUSED=$KERNELROOT/modules-used + CACHE=$KERNELBASE/.cache + MODULESUSED=$KERNELBASE/modules-used touch $MODULESUSED @@ -227,10 +225,11 @@ intcopymodules () { echo $n >> $MODULESUSED for o in $m ; do echo $n - ver=$(echo $o |cut -d / -f 6) - if ! [ -d $dir/$ver ] ; then mkdir $dir/$ver ; fi - if ! cp $o $dir/$ver; then - echo "Failed to copy $o to $dir/$ver (for module $n)" >&2 + ver=$(echo $o |cut -d / -f 7) + myarch=$(echo $o |cut -d / -f 4) + if ! [ -d $dir/$ver/$myarch ] ; then mkdir -p $dir/$ver/$myarch ; fi + if ! cp $o $dir/$ver/$myarch; then + echo "Failed to copy $o to $dir/$ver/$myarch (for module $n)" >&2 fi done fi @@ -330,7 +329,7 @@ makemoduleball() { $TRIMPCITABLE $(find . -name *.o -exec basename {} \;) < $PCITABLE > ../pcitable if [ -n "$MMB_DD" ]; then - echo $MMB_DD > $MMB_DIR/rhdd-6.1 + echo $MMB_DD > $MMB_DIR/rhdd fi find . -type f | cpio --quiet -H crc -o | gzip -9 > ../$MMB_NAME @@ -469,6 +468,9 @@ makeinitrd() { root::0:0:root:/:/bin/bash EOF + # 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/$INITBIN $MBD_DIR/sbin if [ "$BUILDARCH" != "s390" -a "$BUILDARCH" != "s390x" ]; then @@ -856,13 +858,14 @@ fi # Find the kernel, unpack it, and verify it vertag="BOOT" -if [ "$BUILDARCH" = "s390" -o "$BUILDARCH" = "s390x" ]; then - vertag="dummyvar tape" -fi if [ "$BUILDARCH" = "ppc" -o "$BUILDARCH" = "ppc64" ]; then - vertag="pseries iseries" + arches="ppc64pseries ppc64iseries" +else + arches="$BUILDARCH" fi -for kernelvers in $vertag; do +for KERNELARCH in $arches; do + for kernelvers in $vertag; do + KERNELROOT=$KERNELBASE/$KERNELARCH kpackage=$($LATEST $KERNELPATH kernel-$kernelvers) mkdir -p $KERNELROOT/lib/modules/misc if [ ! -f "$kpackage" ]; then @@ -877,7 +880,8 @@ for kernelvers in $vertag; do fi version=$(rpm --qf '%{VERSION}-%{RELEASE}' -qp $kpackage)${kernelvers} - echo "unpacking $kpackage" + arch=$(rpm --qf '%{ARCH}\n' -qp $kpackage) + echo "unpacking $kpackage.$arch" rpm2cpio $kpackage | (cd $KERNELROOT; cpio --quiet -iumd) if [ ! -z $ppackage ]; then @@ -912,10 +916,11 @@ for kernelvers in $vertag; do # make the boot images makeBootImages + done done # make the second stage -find $KERNELROOT/lib/modules/ > $CACHE +find $KERNELBASE/*/lib/modules/ > $CACHE makeSecondStage -rm -rf $KERNELROOT +rm -rf $KERNELBASE |