185 lines
6.1 KiB
Bash
Executable File
185 lines
6.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# boot-m68k v 1.13 (c) Steve McIntyre <stevem@chiark.greenend.org.uk>,
|
|
# Chris Lawrence <lawrencc@debian.org>, Christian Steigies <cts@debian.org>,
|
|
# Michael Schmitz <MSchmitz@lbl.gov>
|
|
# Released under GPL 31 Mar 1999
|
|
# See the file COPYING for license details
|
|
# Released as part of the slink_cd package, not much use standalone
|
|
#
|
|
# Do install stuff for m68k, including making bootable CDs
|
|
#
|
|
# Enjoy! This is all completely free.
|
|
# - Chris Lawrence <lawrencc@debian.org>
|
|
#
|
|
# Rewritten by Steve McIntyre <stevem@chiark.greenend.org.uk> in sh to
|
|
# interface better with the slink_cd package and cope with the mirror
|
|
# layout, 28 Feb 1999.
|
|
# Hopefully this will do the same job as the python map stuff did, it
|
|
# appears to...
|
|
#
|
|
# If you're burning a CD, use the mkhybrid in potato (HFS is broken in the
|
|
# slink version of mkhybrid; at least it is for me). Please don't use Joliet
|
|
# extensions; some Mac kernels have apparently been known to choke on them
|
|
# (and you really shouldn't be supporting a Microsoft Standard anyway :-)
|
|
#
|
|
# You may also want the following:
|
|
# * A copy of the Linux/m68k FAQ
|
|
# * A copy of my m68k-specific README and m68k-tools directories
|
|
# * The m68k kernel sources from sunsite.auc.dk:/projects/680x0
|
|
# (Sunsite-Denmark is rsync-capable at sunsite.auc.dk::ftp)
|
|
# I recommend getting the 2.0.36 and 2.2.1-pre2 sources at least.
|
|
# (Actually 2.0.36 is non-essential since it's on the CDs already;
|
|
# you probably DO want the 2.2.1-pre2 tree however [under v2.1!]).
|
|
#
|
|
# MVME/BVME users will love you if you also include the "tools" directory
|
|
# from the FTP site, since they may want/need rawwrite for MS-DOS.
|
|
#
|
|
# The first two items are in a tar file at master.debian.org:~lawrencc, along
|
|
# with a silly rsync script that will accomplish the last item.
|
|
|
|
set -e
|
|
|
|
N=$1
|
|
CDDIR=$2
|
|
|
|
cd $CDDIR/..
|
|
|
|
# Only disk 1 bootable
|
|
if [ $N != 1 ]; then
|
|
echo -n "--netatalk -j -hfs -probe -map $BASEDIR/data/hfs.map" \
|
|
> $N.mkisofs_opts
|
|
exit 0
|
|
fi
|
|
|
|
echo -n "--netatalk -j -hfs -probe -map $BASEDIR/data/hfs.map" \
|
|
> $N.mkisofs_opts
|
|
|
|
echo -n " -b install/bvme6000/resc1440.bin -c install/bvme6000/boot.catalog" \
|
|
>> $N.mkisofs_opts
|
|
|
|
|
|
DISKSROOT="$MIRROR/dists/$CODENAME/main/disks-$ARCH/current"
|
|
INSTALLDIR="$CDDIR/install"
|
|
|
|
cd $INSTALLDIR
|
|
|
|
#vecho Installing Amiga files
|
|
lha xqf $DISKSROOT/amiga/amigainstall.lha
|
|
mv debian amiga
|
|
mv debian.info amiga.info
|
|
cp $DISKSROOT/amiga/* amiga
|
|
|
|
# Needs to be executable
|
|
chmod a+x amiga/amiboot-5.6
|
|
|
|
# Add .info files for amiga
|
|
tar -C .. -xzf $BASEDIR/data/cts_amiga_info.tar.gz
|
|
for file in `tar tzf $BASEDIR/data/cts_amiga_info.tar.gz`
|
|
do
|
|
chmod a+r ../$file
|
|
done
|
|
# And fix a few things up...
|
|
mkdir common
|
|
mv basecont.txt.info common
|
|
mv ../README.info ../README.m68k.info
|
|
cp ../README.1ST.info ../README.multicd.info
|
|
|
|
#vecho Installing Atari files
|
|
lha xqf $DISKSROOT/atari/install.lzh
|
|
mv debian atari
|
|
cp $DISKSROOT/atari/* atari
|
|
|
|
#vecho Installing Mac files
|
|
tar -C .. -zxf $DISKSROOT/source/macinstall.tar.gz
|
|
cp $DISKSROOT/mac/* mac
|
|
|
|
for TYPE in common bvme6000 mvme162 mvme167 source
|
|
do
|
|
#vecho Installing $TYPE files
|
|
if [ ! -d $TYPE ] ; then
|
|
mkdir $TYPE
|
|
fi
|
|
cp $DISKSROOT/$TYPE/* $TYPE
|
|
done
|
|
|
|
vecho hexbin Mac files
|
|
cd $INSTALLDIR/mac
|
|
hexbin *.hqx
|
|
|
|
vecho Installing m68k FAQ and tools
|
|
mkdir $CDDIR/tmp
|
|
cd $CDDIR/tmp
|
|
tar xzf $BASEDIR/data/m68k-cd-misc.tar.gz
|
|
mv m68k-faq m68k-tools ..
|
|
mv update-kernels ../update-kernels.m68k
|
|
cd ..
|
|
rm -rf tmp
|
|
|
|
cd $CDDIR
|
|
# make mountpoint and temp HFS filesystem image
|
|
rm -rf /var/tmp/mnt-macinstall
|
|
mkdir /var/tmp/mnt-macinstall
|
|
dd if=/dev/zero of=/var/tmp/macinstall-temp.img bs=1024 count=1440
|
|
hformat /var/tmp/macinstall-temp.img
|
|
# mount it (':' is top dir) using hfsutils
|
|
hmount /var/tmp/macinstall-temp.img
|
|
# copy booter and preferences files in place (color table missing but
|
|
# Penguin-17 has colors fixed anyway
|
|
hcopy -b install/mac/Penguin-17.hqx :
|
|
hcopy -b install/mac/Penguin_Prefs.hqx :"Penguin Prefs"
|
|
hcopy -b "install/mac/Penguin_Prefs_(autoboot).hqx" :"Penguin Prefs (autoboot)"
|
|
# unmount HFS image
|
|
humount /var/tmp/macinstall-temp.img
|
|
# mount this HFS floppy image again as netatalk using the loopback mount command
|
|
if [ ! 'mount -t hfs -o loop,fork=netatalk,afpd /var/tmp/macinstall-temp.img /var/tmp/mnt-macinstall' ] ; then
|
|
# We managed to mount it loop-back
|
|
# copy over both Penguin-15 and .AppleDouble/Penguin-15
|
|
# copy over both Penguin Prefs and .AppleDouble/Penguin Prefs
|
|
# (.AppleDouble files go into .AppleDouble subdir of target dir)
|
|
cp /var/tmp/mnt-macinstall/Penguin* install/mac/
|
|
mkdir install/mac/.AppleDouble
|
|
cp /var/tmp/mnt-macinstall/.AppleDouble/Penguin* install/mac/.AppleDouble/
|
|
# unmount, cleanup
|
|
umount /var/tmp/mnt-macinstall
|
|
rm /var/tmp/macinstall-temp.img
|
|
rmdir /var/tmp/mnt-macinstall
|
|
else
|
|
# We failed to mount it. Use the fallback tar.gz that we have
|
|
echo HFS loopback mount failed on /var/tmp/macinstall-temp.img
|
|
echo This is not fatal, but check that you have permissions to do this
|
|
echo and that you have HFS support in your kernel...
|
|
echo Extracting $BASEDIR/data/macinstall-cd.tar.gz instead.
|
|
tar xzf $BASEDIR/data/macinstall-cd.tar.gz
|
|
fi
|
|
|
|
#
|
|
# can remove the .hqx stuff now I guess.
|
|
#
|
|
# make CD image using the command
|
|
# mkhybrid -map <mapfile> --netatalk -a -j -hfs -r -V <label> -o <image> <source dir>
|
|
#
|
|
# map file contains stuff like
|
|
# # ext. xlate creator type comment
|
|
# .hqx Ascii 'BnHx' 'TEXT' "BinHex file"
|
|
# .mov Raw 'TVOD' 'MooV' "QuickTime Movie"
|
|
# .deb Raw 'Debn' 'bina' "Debian package"
|
|
# .bin Raw 'Debn' 'bina' "Floppy or ramdisk image"
|
|
# * Ascii 'ttxt' 'TEXT' "Text file"
|
|
#
|
|
# Note that we can't use MacBinary mapping for .bin files due to
|
|
# name clashes with the binary image files, so we have to provide
|
|
# all encoded Mac files in BinHex format.
|
|
#
|
|
# Kudos Brad Midgley, <brad@pht.com> for the tricks!
|
|
#
|
|
# Possible alternative: convert .hqx in MacBinary files, but we'd need
|
|
# to use a different extension as .bin is taken by the disk images.
|
|
# i.e. hexbin -s Penguin-17.hqx > Penguin-17.mac
|
|
# and use .mac as MacBinary extension. I don't know offhand what the
|
|
# creator/type for MacBinary is. --netatalk would be replaced by
|
|
# --macbin, possibly together with --probe.
|
|
|
|
|
|
|