summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-03-29 22:47:09 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-03-29 22:47:09 +0000
commit84adb9036e99bc2e7560135694197b9312faa9e6 (patch)
treedfdc79ddfc972f2167c67ff96af51fbec5a7518c
parent094971eecb7a5df84b325de8c6ae46e88fc1f0ea (diff)
downloaddrakx-backup-do-not-use-84adb9036e99bc2e7560135694197b9312faa9e6.tar
drakx-backup-do-not-use-84adb9036e99bc2e7560135694197b9312faa9e6.tar.gz
drakx-backup-do-not-use-84adb9036e99bc2e7560135694197b9312faa9e6.tar.bz2
drakx-backup-do-not-use-84adb9036e99bc2e7560135694197b9312faa9e6.tar.xz
drakx-backup-do-not-use-84adb9036e99bc2e7560135694197b9312faa9e6.zip
support more than one boot kernel :-)
-rw-r--r--.cvsignore1
-rw-r--r--Makefile20
-rw-r--r--docs/HACKING21
-rw-r--r--docs/README7
-rwxr-xr-xmake_boot_img48
-rwxr-xr-xmdk-stage1/pci-resource/update-pci-ids.pl12
-rw-r--r--perl-install/Makefile13
-rw-r--r--perl-install/modules.pm8
-rwxr-xr-xrescue/make_rescue_img9
-rwxr-xr-xtools/make_mdkinst_stage21
-rwxr-xr-xupdate_kernel74
11 files changed, 131 insertions, 83 deletions
diff --git a/.cvsignore b/.cvsignore
index 1e8ace8c2..53455e9dc 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -9,3 +9,4 @@ vmlinu*
install_pcmcia_modules
System.map
drakxtools.tar.bz2
+all.kernels
diff --git a/Makefile b/Makefile
index 9e962519b..0b1a13a68 100644
--- a/Makefile
+++ b/Makefile
@@ -33,10 +33,10 @@ UPLOAD_SPARC_DEST = /mnt/BIG/distrib/sparc
install: build autoboot rescue
for i in images misc Mandrake Mandrake/base; do install -d $(ROOTDEST)/$$i ; done
ifneq (ppc,$(ARCH))
- cp -f $(RELEASE_BOOT_IMG) $(ROOTDEST)/images
+ for i in $(RELEASE_BOOT_IMG); do cp -f $${i}* $(ROOTDEST)/images; done
endif
ifeq (alpha,$(ARCH))
- cp -f $(BOOT_RDZ) $(ROOTDEST)/boot
+ for i in $(BOOT_RDZ); do cp -f $${i}* $(ROOTDEST)/boot; done
cp -f vmlinux.gz $(ROOTDEST)/boot/instboot.gz
make -C tools/$(ARCH)/cd install ROOTDEST=$(ROOTDEST)
endif
@@ -49,8 +49,9 @@ autoboot:
ifeq (i386,$(ARCH))
install -d $(ROOTDEST)/boot
# cp -f vmlinuz {hd,cdrom,pcmcia,network,all,other}.rdz $(ROOTDEST)/boot
- cp -f vmlinuz $(BOOT_RDZ) $(ROOTDEST)/boot
- /usr/sbin/rdev -v $(ROOTDEST)/boot/vmlinuz 788
+ cp -f all.kernels/*/boot/vmlinuz* $(ROOTDEST)/boot
+ for i in $(BOOT_RDZ); do cp -f $${i}* $(ROOTDEST)/boot; done
+ for i in $(ROOTDEST)/boot/vmlinuz*; do /usr/sbin/rdev -v $$i 788; done
endif
dirs:
@@ -58,12 +59,12 @@ dirs:
[ "$$n" = "." ] || make -C $$n all ;\
done
-rescue: modules
+rescue: all.modules
make -C $@
network_ks.rdz pcmcia_ks.rdz: %_ks.rdz: %.rdz
-$(BOOT_RDZ): dirs modules
+$(BOOT_RDZ): dirs all.modules
./make_boot_img $@ $(@:%.rdz=%)
$(BOOT_IMG): %.img: %.rdz
@@ -74,7 +75,7 @@ tar: clean
cd .. ; tar cfy gi.tar.bz2 gi
rm needed_rpms.lst
-modules:
+all.modules:
`./tools/specific_arch ./update_kernel`
$(BOOT_IMG:%=%f): %f: %
@@ -82,7 +83,8 @@ $(BOOT_IMG:%=%f): %f: %
xmessage "Floppy done"
clean:
- rm -rf $(BOOT_IMG) $(BOOT_RDZ) $(BINS) modules modules64 install_pcmcia_modules vmlinu* System*.map
+ for i in $(BOOT_IMG) $(BOOT_RDZ); do rm -rf $${i}*; done
+ rm -rf $(BINS) all.modules all.modules64 install_pcmcia_modules all.kernels/cardmgr
for i in $(DIRS) rescue; do make -C $$i clean; done
find . -name "*~" -o -name ".#*" | xargs rm -f
@@ -107,7 +109,7 @@ upload:
upload misc rpmtools.pm ;\
upload misc auto ;\
upload '' live_update ;\
- for i in $(RELEASE_BOOT_IMG); do upload images $$i; done ;\
+ for i in $(RELEASE_BOOT_IMG); do for j in $${i}*; do upload images $$j; done; done;\
echo
upload_sparc:
diff --git a/docs/HACKING b/docs/HACKING
index b35825449..313866401 100644
--- a/docs/HACKING
+++ b/docs/HACKING
@@ -61,20 +61,21 @@ gc ALL=(root) NOPASSWD:/usr/bin/patch,NOPASSWD:/bin/rpm,NOPASSWD:/bin/mount,NOPA
(4) boot kernel
-you need a boot kernel and some kind of modules for each boot floppy. it's
-located in subdirectory "kernel" in DrakX-*.src.rpm ; if you ever grab (or
-build) another boot kernel, re-do following step (c).
+you need one or more kernels and (all?) their modules. it's located in
+subdirectory "all.kernels" in DrakX-*.src.rpm ; if you ever grab (or
+build) another boot kernel, replace or add an entry in "all.kernels" as:
- (a) build the packager software for stage1 (read README file to know what's stage1)
- [gc@obiwan ~/cvs/gi] cd mdk-stage1/mar
- [gc@obiwan ~/cvs/gi/mdk-stage1/mar] make
+ (a) create your modules subdir (useful to describe the
+ VERSION_RELEASE) and untar your kernel
- (b) build the perl stuff for stage2
- [gc@obiwan ~/cvs/gi] cd perl-install
- [gc@obiwan ~/cvs/gi/perl-install] make
+[gc@obiwan ~/cvs/gi/all.kernels] mkdir 2.4.1-BOOTcustom
+[gc@obiwan ~/cvs/gi/all.kernels] cd 2.4.1-BOOTcustom
+[gc@obiwan ~/cvs/gi/all.kernels/2.4.1-BOOTcustom] tar jxvf ~/mycustomkernel.tar.bz2
+[gc@obiwan ~/cvs/gi/all.kernels/2.4.1-BOOTcustom] ls
+boot/ cardmgr/ lib/
(c) build kernel/modules stuff for stage1 and stage2
- [gc@obiwan ~/cvs/gi] ./update_kernel
+[gc@obiwan ~/cvs/gi] ./update_kernel
(5) pray
diff --git a/docs/README b/docs/README
index 7cbdd66c0..71b23c84d 100644
--- a/docs/README
+++ b/docs/README
@@ -193,7 +193,7 @@ For pcmcia, it depends on the type of install.
********************************************************************************
Modules can be found in at least 2 places:
- in /modules/modules.mar
-- in /lib/modules.cz2
+- in /lib/modules.cz<KERNEL_VERSION_RELEASE>
/modules/modules.mar is used in mdk-stage1. It contains only modules
interesting for one kind of install. For example in an hd install, it
@@ -202,7 +202,8 @@ modules. (To create, extract or view files in a ``mar'' archive, please
use gi/mdk-stage1/mar/mar; this is basically an archive format meant to
be minimalistic)
-/lib/modules.cz2 contains every module, it is used in stage2.
+/lib/modules.cz<KERNEL_VERSION_RELEASE> contains all modules, it is used
+in stage2.
To install a module, use modprobe which is in /usr/bin. It's a perl wrapper
@@ -210,7 +211,7 @@ around /usr/bin/insmod. It uses the dependencies found in
/modules/modules.dep (stage1).
/usr/bin/insmod is a wrapper around /usr/bin/insmod_. It just extracts the
-module out of /lib/modules.cz2 in /tmp. Then it calls insmod_.
+module out of /lib/modules.cz in /tmp. Then it calls insmod_.
/usr/bin/insmod_ is the real prog (which you usually find in /sbin/). You need
to give it the complete path.
diff --git a/make_boot_img b/make_boot_img
index 040288345..f18bed11b 100755
--- a/make_boot_img
+++ b/make_boot_img
@@ -44,12 +44,24 @@ $install = $ {{
hd64 => "stage1-disk",
}}{$type} or die;
-$img =~ /rdz$/ ? initrd($mnt, $img) : $::{"boot_img_$arch"}->($mnt, $img);
+if ($img =~ /rdz$/) {
+ foreach (glob('all.modules/*')) {
+ -f $_ and next;
+ initrd($mnt, $img, $_) ;
+ }
+} else {
+ foreach (glob('all.kernels/*')) {
+ $_ =~ 'cardmgr' and next;
+ my ($kern) = $_ =~ /all.kernels\/([^\/]+)/;
+ _ "$sudo cp -f all.kernels/$kern/boot/vmlinuz* all.kernels/$kern/vmlinuz";
+ $::{"boot_img_$arch"}->($mnt, $img, "all.kernels/$kern/", "all.modules/$kern");
+ }
+}
sub install_stripped { _ "strip $_[0]"; _ "$sudo install $_[0] $_[1]" }
sub initrd {
- my ($mnt, $img) = @_;
+ my ($mnt, $img, $modz) = @_;
my ($ltype, $I) = $type =~ /(.*?)(64)/; $ltype ||= $type;
my $tmp = "$ENV{HOME}/tmp/initrd";
my $tar = "$instdir/stage1-data/stage1.tar.bz2";
@@ -68,44 +80,50 @@ sub initrd {
_ "$sudo cp -a /etc/pcmcia $mnt/etc";
_ "$sudo patch -p0 -d $mnt/etc < $instdir/pcmcia_config.patch";
}
- _ "$sudo cp -f modules$I/${ltype}_modules.mar $mnt/modules/modules$I.mar" if $type !~ /blank/;
- _ "$sudo cp -f modules$I/modules.dep $mnt/modules/";
+ $modz ||= "modules$I";
+ _ "$sudo cp -f $modz/${ltype}_modules.mar $mnt/modules/modules$I.mar" if $type !~ /blank/;
+ _ "$sudo cp -f $modz/modules.dep $mnt/modules/";
_ "$sudo umount $mnt";
+
+ my ($extension) = $modz =~ /.*\/([^\/]+)/;
# Workaround for vfat-loop bug (quite touchy)
_ "gzip -9f $tmp";
- _ "cp -f $tmp.gz $img";
+ _ "cp -f $tmp.gz $img$extension";
_ "rm -f $tmp.gz";
# _ "gzip -9 -c $tmp > $img";
# _ "rm -f $tmp";
}
sub boot_img_i386 {
- my ($mnt, $img) = @_;
+ my ($mnt, $img, $kern, $modz) = @_;
__ "$sudo umount $mnt 2>/dev/null";
my $automatic = "";
+ my ($imgext) = $modz =~ /.*\/([^\/]+)/;
if ($type eq "hd") {
- _ "bunzip2 -c $instdir/init-data/msgboot.img.bz2 > $img";
+ _ "bunzip2 -c $instdir/init-data/msgboot.img.bz2 > $img$imgext";
} elsif ($type eq "all") {
- _ "bunzip2 -c $instdir/init-data/msgboot-graphicallogo-2880.img.bz2 > $img";
+ _ "bunzip2 -c $instdir/init-data/msgboot-graphicallogo-2880.img.bz2 > $img$imgext";
} else {
- _ "bunzip2 -c $instdir/init-data/msgboot-graphicallogo.img.bz2 > $img";
+ _ "bunzip2 -c $instdir/init-data/msgboot-graphicallogo.img.bz2 > $img$imgext";
}
$automatic = "automatic=method:cdrom" if ($type eq "cdrom");
$automatic = "automatic=method:disk" if ($type eq "hd");
- _ "$sudo mount -t vfat -o umask=0 $img $mnt -o loop";
- _ "cat vmlinuz > $mnt/vmlinuz" if $type !~ /blank/;
- initrd("${mnt}2", "$type.rdz") if !-f "$type.rdz";
- eval { _ "cp -f $type.rdz $mnt" };
+ _ "$sudo mount -t vfat -o umask=0 $img$imgext $mnt -o loop";
+ _ "cat $kern"."vmlinuz > $mnt/vmlinuz" if $type !~ /blank/;
+
+ my ($extension) = $modz =~ /.*\/([^\/]+)/;
+ initrd("${mnt}2", "$type.rdz", $modz) if !-f "$type.rdz$extension";
+ eval { _ "cp -f $type.rdz$extension $mnt/$type.rdz" };
if ($@) {
unlink "$mnt/$type.rdz";
my $avail = (split ' ', `df $mnt`)[-3];
- my $s = int((-s "$type.rdz") / 1024);
- die sprintf("not enough room for $type.rdz: need %dKB (available %dKB < needed %dKB)\n", $s - $avail, $avail, $s);
+ my $s = int((-s "$type.rdz$extension") / 1024);
+ die sprintf("not enough room for $type.rdz$extension: need %dKB (available %dKB < needed %dKB)\n", $s - $avail, $avail, $s);
}
# my $ftype = $type =~ /^(other|all)$/ ? "cdrom" : $type;
diff --git a/mdk-stage1/pci-resource/update-pci-ids.pl b/mdk-stage1/pci-resource/update-pci-ids.pl
index 84c5b7063..1ea4ffc60 100755
--- a/mdk-stage1/pci-resource/update-pci-ids.pl
+++ b/mdk-stage1/pci-resource/update-pci-ids.pl
@@ -19,9 +19,13 @@ struct pci_module_map {
my %t = (scsi => 'scsi', eth => 'net');
-if (-x "../mar/mar" && -f "../../modules/network_modules.mar" && -f "../../modules/hd_modules.mar") {
- $modulez{'eth'} = [ `../mar/mar -l ../../modules/network_modules.mar` ];
- $modulez{'scsi'} = [ `../mar/mar -l ../../modules/hd_modules.mar` ];
+my @modulz = sort grep { -d $_ } glob("../../all.modules/*");
+my $selected_mod = pop @modulz;
+my ($kern) = $selected_mod =~ /.*\/([^\/]+)/;
+
+if (-x "../mar/mar" && -f "../../all.modules/$kern/network_modules.mar" && -f "../../all.modules/$kern/hd_modules.mar") {
+ $modulez{'eth'} = [ `../mar/mar -l ../../all.modules/$kern/network_modules.mar` ];
+ $modulez{'scsi'} = [ `../mar/mar -l ../../all.modules/$kern/hd_modules.mar` ];
$check_marfiles = 1;
}
@@ -34,7 +38,7 @@ foreach $type (keys %t) {
struct pci_module_map ${type}_pci_ids[] = {
";
my %l;
- foreach (glob("../../kernel/lib/modules/*/$t{$type}/*.o"), glob("../../kernel/lib/modules/*/kernel/drivers/$t{$type}/{*/,}*.o")) {
+ foreach (glob("../../all.kernels/$kern/lib/modules/*/$t{$type}/*.o"), glob("../../all.kernels/$kern/lib/modules/*/kernel/drivers/$t{$type}/{*/,}*.o")) {
m|([^/]*)\.o$|;
$l{$1} = 1;
}
diff --git a/perl-install/Makefile b/perl-install/Makefile
index 9b016160f..6bf08fa15 100644
--- a/perl-install/Makefile
+++ b/perl-install/Makefile
@@ -89,7 +89,7 @@ ifeq (sparc,$(ARCH))
ln -s /usr/X11R6/lib/X11/xkb/xkbcomp $(DEST)/usr/bin/xkbcomp
endif
ifeq (i386,$(ARCH))
- install -s ../kernel/cardmgr/cardmgr $(DEST)/usr/bin
+ install -s ../all.kernels/cardmgr/* $(DEST)/usr/bin
install -s ../tools/i386/mkreiserfs $(DEST)/usr/bin
endif
@@ -134,16 +134,7 @@ endif
cd share ; cp -a themes $(DEST)/usr/share/gtk
cd share ; cp compssUsers compssUsers.desktop rpmsrate $(ROOTDEST)/Mandrake/base
- if [ -f ../modules/modules.cz* ]; then \
- cp -f ../modules/modules.cz* $(DEST)/lib/; \
- if [ -f ../modules64/modules.cz* ]; then \
- cp -f ../modules64/modules.cz* $(DEST)/lib/modules64.cz2; \
- fi \
- else \
- cp -f ../modules/modules.cpio.bz2 $(DEST)/lib/; \
- install -d $(DEST)/lib/modules; \
- cp -f ../modules/pristine/* $(DEST)/lib/modules ||: ; \
- fi
+ for i in ../all.modules/modules.cz*; do cp -f $$i $(DEST)/lib/; done
# echo -e '#!/bin/sh\n\nexec "/usr/bin/sh"' > $(DEST)/usr/bin/runinstall2
# chmod a+x $(DEST)/usr/bin/runinstall2
diff --git a/perl-install/modules.pm b/perl-install/modules.pm
index df5592fbc..b2aa1ae58 100644
--- a/perl-install/modules.pm
+++ b/perl-install/modules.pm
@@ -525,7 +525,11 @@ sub unload {
sub load_raw {
my @l = map { my ($i, @i) = @$_; [ $i, \@i ] } grep { $_->[0] !~ /ignore/ } @_;
- my $cz = "/lib/modules" . (arch() eq 'sparc64' && "64") . ".cz"; -e $cz or $cz .= "2";
+ my $cz = "/lib/modules" . (arch() eq 'sparc64' && "64") . ".cz" . c::kernel_version();
+ if (!-e $cz) {
+ unlink $_ foreach glob_("/lib/modules*.cz*");
+ install_any::getAndSaveFile("Mandrake/mdkinst$cz", $cz) or die "failed to get modules $cz: $!";
+ }
eval {
require packdrake;
my $packer = new packdrake($cz);
@@ -728,7 +732,7 @@ sub configure_pcmcia {
};
#- run cardmgr in foreground while it is configuring the card.
- run_program::run("cardmgr", "-f", "-m" ,"/modules");
+ run_program::run("cardmgr" . c::kernel_version(), "-f", "-m" ,"/modules");
sleep(3);
#- make sure to be aware of loaded module by cardmgr.
diff --git a/rescue/make_rescue_img b/rescue/make_rescue_img
index 0ecd835a7..777ff286c 100755
--- a/rescue/make_rescue_img
+++ b/rescue/make_rescue_img
@@ -63,7 +63,14 @@ foreach (cat_("aliases")) {
chomp; my ($f, $dest) = split;
symlink $dest, "$tmp$f";
}
-_ "cp ../modules/modules.{cz*,dep} $tmp/modules";
+
+my @modulz = sort grep { -d $_ } glob("../all.modules/*");
+my $selected_mod = pop @modulz;
+my ($kern) = $selected_mod =~ /.*\/([^\/]+)/;
+print "\tChoosing kernel modules from $kern\n";
+
+_ "cp ../all.modules/modules.cz$kern $tmp/modules/modules.cz";
+_ "cp ../all.modules/$kern/modules.dep $tmp/modules";
installown("drvinst", "/usr/bin");
diff --git a/tools/make_mdkinst_stage2 b/tools/make_mdkinst_stage2
index c18841d49..442984327 100755
--- a/tools/make_mdkinst_stage2
+++ b/tools/make_mdkinst_stage2
@@ -38,6 +38,7 @@ $SUDO cp -a $DEST/* $STAGE2TMP
# hack to reduce the STAGE2 image (do not edit without modifying in DrakX)
# be sure to keep the biggest server
rm -f $STAGE2TMP/usr/X11R6/bin/XF86_{VGA16,3DLabs,TGA,S3}
+rm -f $STAGE2TMP/lib/modules.cz2.2*
rm -f $STAGE2TMP/$REP4PMS/po/DrakX.pot
#for i in /usr/share/locale; do \
# name=`basename $i` ; \
diff --git a/update_kernel b/update_kernel
index 7f143f8be..b0b687ec8 100755
--- a/update_kernel
+++ b/update_kernel
@@ -1,8 +1,9 @@
#!/bin/bash
-KERNEL_BOOT_PATH="kernel"
+ALL_KERNELS="all.kernels"
function f() {
+ echo -n "."
v=`perl -Iperl-install -Mmodules -e "print qq(\\$_.o\n) foreach modules::module_of_type__4update_kernel(\"$1\")"`
}
@@ -20,18 +21,32 @@ function create_marfile() {
&& echo "WARNING! in $marfile, $k is missing (required by $i)"
done
done
- ../mdk-stage1/mar/mar -c $marfile $(ls $*)
+ $GIBASEDIR/mdk-stage1/mar/mar -c $marfile $(ls $*)
+}
+
+function create_modules() {
+ kernel_path=$1
+ kern=$2
+ echo "Updating modules in '`pwd`' for kernel '$kern'"
+ cp -f `find $kernel_path/lib/modules/ -name "*.o"` .
+ /sbin/depmod -F $kernel_path/boot/System.map* -e *.o | perl -pe 's/\\\n//' \
+ | perl -ne 's/\.o//g; s/[ \t]+/ /g; print if /: /' > modules.dep
+ perl -pi -e 's/((plip|ppa|imm): parport)/$1 parport_pc/' modules.dep
+ ls *.o | packdrake -b9s modules.cz 400000
+ mv modules.cz "../modules.cz$kern"
+ create_marfile network_modules.mar $NETWORK_MODULES $GENERIC_MODULES
+ create_marfile cdrom_modules.mar $CDROM_MODULES $GENERIC_MODULES
+ create_marfile hd_modules.mar $HD_MODULES $GENERIC_MODULES
+ create_marfile pcmcia_modules.mar $PCMCIA_MODULES $PCMCIA_COREMODULES $GENERIC_MODULES
+ create_marfile other_modules.mar $BIG_MODULES $GENERIC_MODULES
+ create_marfile all_modules.mar $ALL_MODULES $GENERIC_MODULES
+ rm -f $ALL_MODULES $PCMCIA_COREMODULES $NOT_USEFULL_IN_STAGE1 # leave in the directory non-install1 used modules
}
-[ -e kernel/cardmgr ] && (
- cd kernel/cardmgr
- # pixel ? conflicts ?
- echo "int main(int argc, char **argv) { cardmgr_main(argc, argv); }" > main.c
- gcc -o cardmgr *.o main.c
-)
ARCH=`uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/'`
+echo -n "Finding modules categories"
f "scsi" ; SCSI_DRIVERS=$v
f "disk" ; DISK_DRIVERS=$v
f "net" ; NETWORK_DRIVERS=$v
@@ -40,6 +55,7 @@ f "pcmcia net_raw cdrom_raw scsi_raw disk_raw" ; PCMCIA_DRIVERS=$v
f "big net_raw cdrom_raw scsi_raw disk_raw" ; BIG_DRIVERS=$v
f "pcmcia net cdrom scsi disk keepbig" ; ALL_DRIVERS=$v
[ $ARCH == "i386" ] && DOSMODULES="vfat.o fat.o"
+echo "done."
NETWORK_MODULES=" $NETWORK_DRIVERS"
CDROM_MODULES=" $CD_DRIVERS"
@@ -55,11 +71,10 @@ PCMCIA_COREMODULES="pcmcia_core.o tcic.o ds.o i82365.o"
if [ "$ARCH" == "i386" ]; then
- #disable any existing resolution!!!
- cp -f $KERNEL_BOOT_PATH/boot/vmlinuz* vmlinuz
- /usr/sbin/rdev -v vmlinuz 65535 #788 #785
-
- rm -rf install_pcmcia_modules ; install -d install_pcmcia_modules
+ for i in $ALL_KERNELS/*/boot/vmlinuz*; do
+ #disable any existing resolution!!!
+ /usr/sbin/rdev -v $i 65535 #788 #785
+ done
else
if [ "$ARCH" == "ppc" ]; then
cp -f "$KERNEL_BOOT_PATH"/boot/vmlinux .
@@ -67,22 +82,25 @@ else
cp -f "$KERNEL_BOOT_PATH"/boot/vmlinux.gz .
fi
fi
-cp -f $KERNEL_BOOT_PATH/boot/System.map* System.map
-rm -rf modules ; install -d modules
-(cd modules ;
- cp -f `find ../"$KERNEL_BOOT_PATH"/lib/modules/ -name "*.o"` .
- /sbin/depmod -F ../System.map -e *.o | perl -pe 's/\\\n//' | perl -ne 's/\.o//g; s/[ \t]+/ /g; print if /: /' > modules.dep
- perl -pi -e 's/((plip|ppa|imm): parport)/$1 parport_pc/' modules.dep
- ls *.o | packdrake -b9s modules.cz 400000
- create_marfile network_modules.mar $NETWORK_MODULES $GENERIC_MODULES
- create_marfile cdrom_modules.mar $CDROM_MODULES $GENERIC_MODULES
- create_marfile hd_modules.mar $HD_MODULES $GENERIC_MODULES
- create_marfile pcmcia_modules.mar $PCMCIA_MODULES $PCMCIA_COREMODULES $GENERIC_MODULES
- create_marfile other_modules.mar $BIG_MODULES $GENERIC_MODULES
- create_marfile all_modules.mar $ALL_MODULES $GENERIC_MODULES
- rm -f $ALL_MODULES $PCMCIA_COREMODULES $NOT_USEFULL_IN_STAGE1 # leave in the directory non-install1 used modules
-)
+
+GIBASEDIR=`pwd`
+
+rm -rf all.modules ; mkdir all.modules
+rm -rf $ALL_KERNELS/cardmgr
+for i in $ALL_KERNELS/*; do
+ [ -d $ALL_KERNELS/cardmgr ] || mkdir $ALL_KERNELS/cardmgr
+ kern=`basename $i`
+ [ -e $i/cardmgr ] && (
+ cd $i/cardmgr
+ echo "int main(int argc, char **argv) { cardmgr_main(argc, argv); }" > main.c
+ gcc -o cardmgr *.o main.c
+ cp cardmgr $GIBASEDIR/$ALL_KERNELS/cardmgr/cardmgr$kern
+ )
+ ( mkdir all.modules/$kern ; cd all.modules/$kern
+ create_modules ../../$i $kern ; cd ../.. )
+done
+
# v=kernel-2.2.17-BOOT3.tar.bz2
# scp kenobi:~chmou/work/kernel/archive/$v /tmp