Patch: Set boot options for dbootstrap + CreditCardCD
I added the ability to set options for dbootstrap.
if you set f.e.
BOOTOPS="quiet cdrom bootkbd=qwerty/us"
then the installation process will be less wordy. No longer asks for cd
paths and automatically installs a US keyboard.
I would like to take this further and be able to automatize all of the
installation process with these settings. Probably need to modify
dbootstrap for this.
How can I get this stuff into cvs?
Index: CONF.sh
===================================================================
RCS file: /cvs/debian-boot/debian-cd/CONF.sh,v
retrieving revision 1.6
diff -u -r1.6 CONF.sh
--- CONF.sh 2000/05/18 22:49:00 1.6
+++ CONF.sh 2000/05/23 19:56:32
@@ -62,7 +62,23 @@
# partition than your source files.
# export COPYLINK=1
+# Use this to reduce the size of the first CD to a minimum and remove
+# packages already in the base tarball. This is usefull for credit card
+# size cds. You should also set COMPLETE=0 in order to avoid the filling up
+# of the CD.
+#export CCD=1
+
+# The following sets options to be passed to dbootstrap etc during the
+# install
+# cdrom = do not ask for paths. use cdrom paths
+# quiet = reduce dialogs
+# bootkbd = set keyboard do not query user
+
+export BOOTOPTS="cdrom quiet bootkbd=qwerty/us"
+
# Options
# export MKISOFS=/usr/bin/mkhybrid
# export MKISOFS_OPTS="-a -r -T" #For normal users
# export MKISOFS_OPTS="-a -r -F -T" #For symlink farmers
Index: Makefile
===================================================================
RCS file: /cvs/debian-boot/debian-cd/Makefile,v
retrieving revision 1.15
diff -u -r1.15 Makefile
--- Makefile 2000/05/19 14:07:01 1.15
+++ Makefile 2000/05/23 19:56:32
@@ -9,6 +9,7 @@
# before. For this you can source the CONF.sh
# file in your shell
+# Modified to support credit card size cds by Christoph Lameter <christoph@lameter.com>, May 18, 2000.
## DEFAULT VALUES
@@ -53,7 +54,7 @@
HOOK=$(BASEDIR)/tools/$(CODENAME).hook
endif
ifndef BOOTDISKS
-BOOTDISKS=$(MIRROR)/dists/$(CODENAME)/main/disks-$(ARCH)
+export BOOTDISKS=$(MIRROR)/dists/$(CODENAME)/main/disks-$(ARCH)
endif
## Internal variables
@@ -162,14 +163,25 @@
# Regenerate the status file with only packages that
# are of priority standard or higher
+# If a credit card size cd has to be generated then a list of base packages
+# needs to be provided to list2cds and the status file will only consist of base packages
+# The way of determining the base packages might have to be changed due to changes
+# to the way base packages are marked by the debian project --19may2000 clameter
status: init $(ADIR)/status
$(ADIR)/status:
@echo "Generating a fake status file for apt-get and apt-cache..."
- @zcat $(MIRROR)/dists/$(CODENAME)/main/binary-$(ARCH)/Packages.gz | \
+ @if [ "$(CCD)" != 0 ]; then \
+ zcat $(MIRROR)/dists/$(CODENAME)/main/binary-$(ARCH)/Packages.gz | \
perl -000 -ne 's/^(Package: .*)$$/$$1\nStatus: install ok installed/m; \
+ print if (/^Section: base/m or /^Priority: required/m);' | \
+ tee $(ADIR)/status | grep "^Package:" | awk '{ print $$2; }' > $(ADIR)/list.base ; \
+ else \
+ zcat $(MIRROR)/dists/$(CODENAME)/main/binary-$(ARCH)/Packages.gz | \
+ perl -000 -ne 's/^(Package: .*)$$/$$1\nStatus: install ok installed/m; \
print if (/^Priority: (required|important|standard)/m or \
- /^Section: base/m);' \
- > $(ADIR)/status
+ /^Section: base/m);' \
+ > $(ADIR)/status ;\
+ fi;
# Updating the apt database
@$(apt) update
#
@@ -393,8 +405,9 @@
bin-doc: ok bin-infos $(BDIR)/1/doc
$(BDIR)/1/doc:
@echo "Adding the documentation (bin) ..."
- @$(addfiles) $(BDIR)/1 $(MIRROR) doc;
- @for i in $(BDIR)/*.packages; do \
+ @if [ "$(CCD)" = "" ]; then \
+ $(addfiles) $(BDIR)/1 $(MIRROR) doc; \
+ for i in $(BDIR)/*.packages; do \
dir=$${i%%.packages}; \
cp -d $(MIRROR)/README* $$dir/; \
rm -f $$dir/README $$dir/README.1ST \
@@ -434,7 +447,8 @@
if [ -e $(BASEDIR)/data/$(CODENAME)/README.multicd ]; then \
cp $(BASEDIR)/data/$(CODENAME)/README.multicd $$dir/; \
fi; \
- done
+ done; \
+ fi
src-doc: ok src-infos $(SDIR)/1/README.html
$(SDIR)/1/README.html:
@@ -462,7 +476,9 @@
installtools: ok bin-doc disks $(BDIR)/1/tools
$(BDIR)/1/tools:
@echo "Adding install tools and documentation ..."
- @$(addfiles) $(BDIR)/1 $(MIRROR) tools
+ @if [ "$(CCD)" = "" ]; then \
+ $(addfiles) $(BDIR)/1 $(MIRROR) tools; \
+ fi;
@mkdir $(BDIR)/1/install
@if [ -x "$(BASEDIR)/tools/$(CODENAME)/installtools.sh" ]; then \
$(BASEDIR)/tools/$(CODENAME)/installtools.sh; \
@@ -477,7 +493,6 @@
@$(addfiles) \
$(BDIR)/1/dists/$(CODENAME)/main/disks-$(ARCH) \
$(BOOTDISKS) .
- @#Keep only one copy of the disks stuff
@cd $(BDIR)/1/dists/$(CODENAME)/main/disks-$(ARCH); \
if [ "$(SYMLINK)" != "" ]; then exit 0; fi; \
if [ -L current ]; then \
@@ -487,7 +502,12 @@
mv .tmp_link $$CURRENT_LINK; \
elif [ -d current ]; then \
rm -rf [0123456789]*; \
+ fi; \
+ if [ "$(CCD)" != "" ]; then \
+ cd current;rm -rf `find * -type d` md5sum.txt install.bat README.txt linux; \
+ ln -s ../../../../../install images-1.44; \
fi;
+ # Remove some stuff to save space for Credit Card CDs.
upgrade: ok bin-infos $(BDIR)/upgrade-stamp
$(BDIR)/upgrade-stamp:
Index: tools/list2cds
===================================================================
RCS file: /cvs/debian-boot/debian-cd/tools/list2cds,v
retrieving revision 1.5
diff -u -r1.5 list2cds
--- tools/list2cds 2000/05/01 04:59:01 1.5
+++ tools/list2cds 2000/05/23 19:56:32
@@ -24,6 +24,7 @@
my $adir = "$ENV{'APTTMP'}/$ENV{'CODENAME'}-$ENV{'ARCH'}";
my $dir = "$ENV{'TDIR'}/$ENV{'CODENAME'}-$ENV{'ARCH'}";
my $verbose = $ENV{'VERBOSE'} || 0;
+my $ccd = $ENV{'CCD'} || 0;
$| = 1; # Autoflush for debugging
@@ -40,6 +41,7 @@
my %included;
my %excluded;
my %packages;
+my %basepackage;
msg(0, "
======================================================================
@@ -91,6 +93,19 @@
close EXCL;
}
+# read list.base which is generated for credit card size cds and contains
+# a list of packages assumed to be present through the base.tgz file.
+# the debs for the base packages will not be included on the cd but handled
+# to satisfy dependencies. 18-May-2000 clameter
+
+if ($ccd) {
+ open (BASE,"<$adir/list.base") || die "Can't open $adir/list.base : $!\n";
+ while (defined($_=<BASE>)) {
+ chomp;
+ $basepackage{$_}=1;
+ }
+}
+
# Now exclude more packages because of the non-free and non-us rules
if (not $nonfree) {
foreach (grep { $packages{$_}{"Section"} =~ /non-free/ }
@@ -123,7 +138,7 @@
close (STATS);
# Browse the list of packages to include
-msg(0, "-- Adding standard, required, important and base packages \n" .
+msg(0, "-- Processing default packages and packages added by apt \n" .
" on the first CD ...\n");
my ($total_size, $cd_size, $size, $cd) = (0, 0, 0, 1);
my %cds;
@@ -141,10 +156,13 @@
next;
}
next if $excluded{$p};
- $cd_size += $packages{$p}{"Size"};
- $total_size += $packages{$p}{"Size"};
$included{$p} = 1;
- add_to_cd (1, [ $p ]);
+ # Omit any packages in base for ccds
+ if (not $ccd or not $basepackage{$p}) {
+ $cd_size += $packages{$p}{"Size"};
+ $total_size += $packages{$p}{"Size"};
+ add_to_cd (1, [ $p ]);
+ }
}
close STATUS;
msg(0, " Standard system already takes $cd_size bytes on the first CD.\n");
@@ -190,7 +208,8 @@
msg(3, "$_ has already been included.\n");
next;
}
- add_package ($_, 1);
+ # Do not add suggested and recommended packages for ccds
+ add_package ($_, $ccd ? 0 : 1);
}
close LIST;
Index: tools/boot/potato/boot-i386
===================================================================
RCS file: /cvs/debian-boot/debian-cd/tools/boot/potato/boot-i386,v
retrieving revision 1.8
diff -u -r1.8 boot-i386
--- tools/boot/potato/boot-i386 2000/03/25 15:37:19 1.8
+++ tools/boot/potato/boot-i386 2000/05/23 19:56:32
@@ -7,12 +7,33 @@
# Heavily hacked by Raphaël Hertzog <hertzog@debian.org> for
# YACS (the new debian-cd in potato)
# 12MAR00 updated for current i386 bootdisks --jwest
-#
+# 18MAY00 added conditions for credit card cd. ccds
+# also do not have a full disks-i386 directory. use $BOOTDISKS
+# instead. Its also shorter. --clameter
+# 22may00 update to be able to use $BOOTOPTS to set kernel parameters on
+# boot
# Do install stuff for i386, including making bootable CDs
#
# $1 is the CD number
# $2 is the temporary CD build dir
+
+setbootopts()
+{
+# Set boot options in an image already generated by the boot-floppies
+# package. This requires accessing and modifying the boot floppy image.
+# Parameters
+# $1 image
+# $2 options
+ if [ "$2" == "" ]; then
+ return
+ fi
+ echo "drive u: file=\"$1\"" >~/.mtoolsrc
+ mtype u:syslinux.cfg | sed -e "s%^APPEND %APPEND $2 %" -e 's/^TIMEOUT 0/TIMEOUT 10/' >~/SYSLINUX.CFG
+ mcopy -o ~/SYSLINUX.CFG u:
+ rm ~/SYSLINUX.CFG ~/.mtoolsrc
+}
+
set -e
N=$1
@@ -30,6 +51,7 @@
cp 1/dists/$CODENAME/main/disks-$ARCH/current/images-2.88/compact/rescue.bin boot2/boot/
echo -n "-J -b boot/rescue.bin -c boot/boot.catalog boot2" \
> 2.mkisofs_opts
+ setbootopts boot2/boot/rescue.bin "$BOOTOPTS"
fi
exit 0;
fi
@@ -45,7 +67,7 @@
echo -n "-J -b boot/rescue.bin -c boot/boot.catalog boot1" > 1.mkisofs_opts
-(cd $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/ ; \
+(cd $BOOTDISKS/current/ ; \
cp images-1.44/resc*.bin $CDDIR/install ; \
cp linux $CDDIR/install ; \
cp images-1.44/root.bin $CDDIR/install )
@@ -63,22 +85,26 @@
# gzip -c9 /tmp/root.bin.uncompressed > $CDDIR/install/root.bin ; \
# rm /tmp/root.bin.uncompressed )
## end notes
-
-cp $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/images-2.88/rescue.bin boot1/boot
+cp $BOOTDISKS/current/images-2.88/rescue.bin boot1/boot
+setbootopts boot1/boot/rescue.bin "$BOOTOPTS"
#Extracting tools for disc 1
-cp $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/dosutils/* $CDDIR/install/
+cp $BOOTDISKS/current/dosutils/* $CDDIR/install/
-(echo "Tools for DOS :" ; \
- echo "lodlin/ load Linux kernel from DOS" ;\
- echo "rawrite2/ rawrite 2.0 : create disks from disk images (*.bin)"; \
- ) |todos > $CDDIR/tools/README.tools
-
(echo "@ echo off" ; \
echo "rem Flush any write-cached disk blocks before we leave DOS. " ; \
echo "smartdrv /c" ; \
- echo "loadlin.exe linux root=/dev/ram ro initrd=root.bin" ; \
+ echo "loadlin.exe linux root=/dev/ram ro initrd=root.bin $BOOTOPTS" ; \
) |todos > $CDDIR/install/boot.bat
+
+if [ "$CCD" != "" ]; then
+ exit 0
+fi
+
+(echo "Tools for DOS :" ; \
+ echo "lodlin/ load Linux kernel from DOS" ;\
+ echo "rawrite2/ rawrite 2.0 : create disks from disk images (*.bin)"; \
+ ) |todos > $CDDIR/tools/README.tools
Index: tools/potato/installtools.sh
===================================================================
RCS file: /cvs/debian-boot/debian-cd/tools/potato/installtools.sh,v
retrieving revision 1.13
diff -u -r1.13 installtools.sh
--- tools/potato/installtools.sh 2000/05/18 22:49:02 1.13
+++ tools/potato/installtools.sh 2000/05/23 19:56:33
@@ -3,9 +3,15 @@
# Install files in /install and some in /doc
# 26-dec-99 changes for i386 (2.2.x) bootdisks --jwest
# 11-mar-00 added sparc to boot-disk documentation test --jwest
+# 18-may-00 skip this for credit Card size CDs. --clameter
set -e
+# If this is a credit card size cd then dont install anything.
+if [ "$CCD" != "" ]; then
+ exit 0
+fi
+
BDIR=$TDIR/$CODENAME-$ARCH
DOCDIR=doc
@@ -23,4 +29,3 @@
do
ln -s $file
done
-
Reply to: