summaryrefslogtreecommitdiffstats
path: root/scripts/mk-images
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mk-images')
-rwxr-xr-xscripts/mk-images47
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