173 lines
5.9 KiB
Plaintext
173 lines
5.9 KiB
Plaintext
#
|
|
# mk-images.sparc
|
|
#
|
|
# Copyright (C) 2008 Tom "spot" Callaway <tcallawa@redhat.com>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
# modules that are needed. this is the generic "needed for every arch" stuff
|
|
TFTPCOMMONMODS="nfs sunrpc lockd cramfs loop squashfs ipv6"
|
|
TFTPUSBMODS="ohci-hcd uhci-hcd ehci-hcd hid mousedev usb-storage"
|
|
TFTPFSMODS="ext2 ext3 ext4dev lock_nolock cifs"
|
|
INITRDMODS="$USBMODS $FIREWIREMODS $IDEMODS $SCSIMODS $FSMODS $LVMMODS $RAIDMODS $CRYPTOMODS $COMMONMODS $PCMCIASOCKMODS =scsi =net"
|
|
TFTPINITRDMODS="$TFTPCOMMONMODS $TFTPUSBMODS $IDEMODS $SCSIMODS $TFTPFSMODS $LVMMODS $CRYPTOMODS"
|
|
SPARCCOMMONMODS="openpromfs sermouse"
|
|
SPARCSCSIMODS="qlogicpti esp sym53c8xx qlogicisp mptbase mptscsih mptfc mptsas qla2xxx pata_cmd64x pata_ali"
|
|
SPARCNETMODS="cassini e1000 e1000e sunbmac sungem sunhme sunlance sunqe sunvnet tg3 tulip"
|
|
SPARCMODS="$SPARCCOMMONMODS $SPARCSCSIMODS $SPARCNETMODS"
|
|
|
|
TILO=$IMGPATH/usr/bin/tilo
|
|
SILO=$IMGPATH/usr/sbin/silo
|
|
|
|
# This is a disgusting hack. Unfortunately, it's the only way we can get files out of the tftpinitrd without worse hacks.
|
|
|
|
makeproductfile() {
|
|
root=$1
|
|
|
|
rm -f $root/.buildstamp
|
|
echo $IMAGEUUID > $root/.buildstamp
|
|
echo $PRODUCT >> $root/.buildstamp
|
|
echo $VERSION >> $root/.buildstamp
|
|
if [ -n "$BUGURL" ]; then
|
|
echo $BUGURL >> $root/.buildstamp
|
|
fi
|
|
if [ "$AMITFTP" = "1" ]; then
|
|
rm -rf $root/modules/*/kernel/drivers/isdn/i4l/isdn.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/isdn/isdnloop/isdnloop.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/common/ir-common.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/bt8xx/bttv.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/btcx-risc.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/v4l1-compat.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/videodev.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/videobuf-core.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/compat_ioctl32.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/videobuf-dma-sg.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/v4l2-common.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/video/tveeprom.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/common/ir-common.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/dvb/bt8xx/bt878.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/dvb/bt8xx/dst.ko*
|
|
rm -rf $root/modules/*/kernel/drivers/media/dvb/dvb-core/dvb-core.ko*
|
|
rm -rf $root/firmware/ql2100_fw.bin
|
|
rm -rf $root/firmware/ql2300_fw.bin
|
|
rm -rf $root/firmware/ql2322_fw.bin
|
|
rm -rf $root/firmware/ql2400_fw.bin
|
|
rm -rf $root/firmware/ql2400_fw.bin_mid
|
|
fi
|
|
}
|
|
|
|
|
|
maketftp() {
|
|
while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
|
|
if [ $1 = "--kernel" ]; then
|
|
TFTPKERNEL=$2
|
|
shift; shift
|
|
continue
|
|
elif [ $1 = "--initrdfrom" ]; then
|
|
TFTPINITRD=$2
|
|
shift; shift
|
|
continue
|
|
elif [ $1 = "--imagename" ]; then
|
|
TFTPIMAGE=$2
|
|
shift; shift
|
|
continue
|
|
elif [ $1 = "--systemmap" ]; then
|
|
TFTPSYSMAP=$2
|
|
shift; shift
|
|
continue
|
|
fi
|
|
echo "bad argument $1 passed to maketftp"
|
|
exit 1
|
|
done
|
|
|
|
echo "Making a $KERNELARCH tftp image: $TFTPIMAGE"
|
|
|
|
elftoaout $TFTPKERNEL -o $TFTPIMAGE
|
|
if [ "$KERNELARCH" = "sparc" ]; then
|
|
piggyback $TFTPIMAGE $TFTPSYSMAP $TFTPINITRD
|
|
elif [ "$KERNELARCH" = "sparc64" ]; then
|
|
piggyback64 $TFTPIMAGE $TFTPSYSMAP $TFTPINITRD
|
|
fi
|
|
}
|
|
|
|
prepareBootTree() {
|
|
echo "sparc: prepareBootTree() is called"
|
|
(cd $BOOTDISKDIR; find . -maxdepth 1 ! -type d | cpio --quiet -p $MBD_BOOTTREE)
|
|
|
|
cp $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img
|
|
cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz
|
|
cp $KERNELROOT/boot/System.map-* $MBD_BOOTTREE/System.map
|
|
|
|
}
|
|
|
|
makeBootImages() {
|
|
echo "Building boot images for kernel $kernelvers.$KERNELARCH"
|
|
|
|
echo "Building initrd.img"
|
|
|
|
export AMITFTP=0
|
|
|
|
makeinitrd --initrdto $TOPDESTPATH/images/initrd.img \
|
|
--initrdsize 8192 \
|
|
--loaderbin loader \
|
|
--modules "$INITRDMODS $SPARCMODS"
|
|
[ $? = 0 ] || exit 1
|
|
echo "Building special tftpinitrd.img"
|
|
|
|
export AMITFTP=1
|
|
|
|
makeinitrd --initrdto $TOPDESTPATH/images/tftpinitrd.img \
|
|
--initrdsize 8192 \
|
|
--loaderbin loader \
|
|
--modules "$TFTPINITRDMODS $SPARCMODS"
|
|
[ $? = 0 ] || exit 1
|
|
if [ -f $IMGPATH/usr/lib/anaconda-runtime/boot/second.b ]; then
|
|
echo "Building boot dir for silo"
|
|
MBD_BOOTTREE=$TOPDESTPATH/boot
|
|
MBD_FSIMAGE=$TOPDESTPATH/images/initrd.img
|
|
mkdir $MBD_BOOTTREE
|
|
cp $IMGPATH/usr/lib/anaconda-runtime/boot/*.b $MBD_BOOTTREE/
|
|
|
|
prepareBootTree
|
|
|
|
maketftp --kernel $MBD_BOOTTREE/vmlinuz \
|
|
--imagename $TOPDESTPATH/images/tftp.img \
|
|
--initrdfrom $TOPDESTPATH/images/tftpinitrd.img \
|
|
--systemmap $MBD_BOOTTREE/System.map
|
|
echo "Deleting $TOPDESTPATH/images/tftpinitrd.img , we only want this for the tftp image creation"
|
|
# rm -rf $TOPDESTPATH/images/tftpinitrd.img
|
|
else
|
|
echo "I can't find SILO in $IMGPATH/usr/lib/anaconda-runtime/boot ?!?"
|
|
exit 1
|
|
fi
|
|
|
|
}
|
|
|
|
doPostImages() {
|
|
if [ -n "$BOOTISO" ]; then
|
|
echo "Making $BOOTISO"
|
|
mkisofs -R -J -T \
|
|
-G /boot/isofs.b \
|
|
-B ... \
|
|
-s /boot/silo.conf \
|
|
-r -V "PBOOT" -A "$PRODUCT $VERSION" \
|
|
-x Fedora \
|
|
-x repodata \
|
|
-sparc-label "$PRODUCT $VERSION Boot Disc" \
|
|
-o $TOPDESTPATH/images/$BOOTISO -graft-points \
|
|
boot=$TOPDESTPATH/boot images/stage2.img=$TOPDESTPATH/images/stage2.img
|
|
fi
|
|
}
|