diff options
-rw-r--r-- | bootdisk/ia64/bootfs.gz | bin | 57215 -> 56768 bytes | |||
-rw-r--r-- | eli.py | 27 | ||||
-rw-r--r-- | loader/Makefile | 23 | ||||
-rw-r--r-- | loader/loader.c | 20 | ||||
-rw-r--r-- | scripts/mk-images.ia64 | 20 |
5 files changed, 55 insertions, 35 deletions
diff --git a/bootdisk/ia64/bootfs.gz b/bootdisk/ia64/bootfs.gz Binary files differindex 26cd46d89..8376517e4 100644 --- a/bootdisk/ia64/bootfs.gz +++ b/bootdisk/ia64/bootfs.gz @@ -91,8 +91,13 @@ class EliConfiguration: eli.delImage(label) except IndexError, msg: sl = LiloConfigFile(imageType = "image", path = kernelFile) + + initrd = self.makeInitrd (kernelTag, instRoot) sl.addEntry("label", label) + if os.access (instRoot + "/boot/efi/" + initrd, os.R_OK): + sl.addEntry("initrd", initrd) + sl.addEntry("read-only") sl.addEntry("root", '/dev/' + rootDev) @@ -102,23 +107,37 @@ class EliConfiguration: eli.addImage (sl) eli.write(instRoot + "/boot/efi/eli.cfg", perms = perms) + + def makeInitrd (self, kernelTag, instRoot): + initrd = "initrd%s.img" % (kernelTag, ) + if not self.initrdsMade.has_key(initrd): + iutil.execWithRedirect("/sbin/mkinitrd", + [ "/sbin/mkinitrd", + "--ifneeded", + "/boot/efi/%s" % initrd, + kernelTag[1:] ], + stdout = None, stderr = None, searchPath = 1, + root = instRoot) + self.initrdsMade[kernelTag] = 1 + return initrd def __init__(self): self.eliImages = {} + self.initrdsMade = {} self.eliAppend = None self.default = None if __name__ == "__main__": config = LiloConfigFile () - config.read ('/etc/lilo.conf') + config.read ('/boot/efi/eli.cfg') print config print "image list", config.listImages() - config.delImage ('/boot/vmlinuz-2.2.5-15') + config.delImage ('vmlinux-2.4.0-0.32') print '----------------------------------' config = LiloConfigFile () - config.read ('/etc/lilo.conf') + config.read ('/boot/efi/eli.cfg') print config print '----------------------------------' - print config.getImage('/boot/vmlinuz-2.2.5-15') + print config.getImage('vmlinux-2.4.0-0.32') diff --git a/loader/Makefile b/loader/Makefile index 03122de44..09b071d03 100644 --- a/loader/Makefile +++ b/loader/Makefile @@ -8,7 +8,14 @@ ARCH := $(patsubst i%86,i386,$(shell uname -m)) ARCH := $(patsubst sparc%,sparc,$(ARCH)) OBJS = log.o windows.o modules.o devices.o cdrom.o urls.o kickstart.o lang.o \ - misc.o ftp.o fnmatch-stub.o printf-stub.o pwd-stub.o dl-stub.o + misc.o ftp.o +ifneq (ia64, $(ARCH)) +OBJS += fnmatch-stub.o printf-stub.o pwd-stub.o dl-stub.o +SLANGLIB = ../minislang/libslang.a +else +SLANGLIB = -lslang +endif + LOADEROBJS = loader.o loader-pcmcia.o popen.o SOURCES = $(subst .o,.c,$(OBJS)) loader.c BINS = init @@ -115,32 +122,32 @@ loader: loader.o $(OBJS) $(NETOBJS) $(CC) -g $(STATIC) -o $@ $^ -lpopt \ -lkudzu_loader ../isys/libisys.a ../balkan/libbalkan.a \ $(MODULELINKAGE) \ - -lpump -lbz2 -lz -lresolv -lnewt ../minislang/libslang.a -lpci + -lpump -lbz2 -lz -lresolv -lnewt $(SLANGLIB) -lpci loader-local: loader-local.o $(OBJS) $(CC) -g $(STATIC) -o $@ $^ -lpopt \ -lkudzu_loader ../isys/libisys.a ../balkan/libbalkan.a \ $(MODULELINKAGE) \ - -L ../stubs -lz -lresolv -lnewt ../minislang/libslang.a -lpci + -L ../stubs -lz -lresolv -lnewt $(SLANGLIB) -lpci loader-local-kon: loader-local-kon.o $(OBJS) $(CC) -g $(STATIC) -o $@ $^ -lpopt \ -lkudzu_loader ../isys/libisys.a ../balkan/libbalkan.a \ $(MODULELINKAGE) \ - -L ../stubs -lz -lresolv -lnewt ../minislang/libslang.a -lpci \ + -L ../stubs -lz -lresolv -lnewt $(SLANGLIB) -lpci \ $(KONOBJS) loader-network: loader-net.o $(OBJS) $(NETOBJS) $(CC) -g $(STATIC) -o $@ $^ -lpopt \ -lkudzu_loader ../isys/libisys.a ../balkan/libbalkan.a \ $(MODULELINKAGE) \ - -lpump -lbz2 -lz -lresolv -lnewt ../minislang/libslang.a -lpci + -lpump -lbz2 -lz -lresolv -lnewt $(SLANGLIB) -lpci loader-network-kon: loader-net-kon.o $(OBJS) $(NETOBJS) $(CC) -g $(STATIC) -o $@ $^ -lpopt \ -lkudzu_loader ../isys/libisys.a ../balkan/libbalkan.a \ $(MODULELINKAGE) \ - -lpump -lbz2 -lz -lresolv -lnewt ../minislang/libslang.a -lpci \ + -lpump -lbz2 -lz -lresolv -lnewt $(SLANGLIB) -lpci \ $(KONOBJS) loader-pcmcia: loader-pcmcia.o pcmcia.o popen.o $(OBJS) $(PCMCIAOBJS) @@ -149,7 +156,7 @@ loader-pcmcia: loader-pcmcia.o pcmcia.o popen.o $(OBJS) $(PCMCIAOBJS) -lpopt \ -lkudzu_loader ../isys/libisys.a ../balkan/libbalkan.a \ $(MODULELINKAGE) \ - -lpump -lbz2 -lz -lresolv -lnewt ../minislang/libslang.a -lpci + -lpump -lbz2 -lz -lresolv -lnewt $(SLANGLIB) -lpci loader-pcmcia-kon: loader-pcmcia-kon.o pcmcia.o popen.o $(OBJS) $(PCMCIAOBJS) $(CC) -g $(STATIC) -o $@ loader-pcmcia-kon.o $(OBJS) \ @@ -157,7 +164,7 @@ loader-pcmcia-kon: loader-pcmcia-kon.o pcmcia.o popen.o $(OBJS) $(PCMCIAOBJS) -lpopt \ -lkudzu_loader ../isys/libisys.a ../balkan/libbalkan.a \ $(MODULELINKAGE) \ - -lpump -lbz2 -lz -lresolv -lnewt ../minislang/libslang.a -lpci \ + -lpump -lbz2 -lz -lresolv -lnewt $(SLANGLIB) -lpci \ $(KONOBJS) loader.o: loader.c diff --git a/loader/loader.c b/loader/loader.c index 89dd5450f..2e8be2a93 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -2525,13 +2525,11 @@ int main(int argc, char ** argv) { arg = FL_TESTING(flags) ? "./module-info" : "/modules/module-info"; modInfo = isysNewModuleInfoSet(); -#if !defined(__ia64__) if (isysReadModuleInfo(arg, modInfo, NULL)) { fprintf(stderr, "failed to read %s\n", arg); sleep(5); exit(1); } -#endif openLog(FL_TESTING(flags)); @@ -2570,25 +2568,19 @@ int main(int argc, char ** argv) { } #endif -#if defined(__ia64__) - kdFindIdeList(&kd, 0); - kdFindScsiList(&kd, 0); - kdFindNetList(&kd, 0); -#else /* if we're in PCMCIA, we're always going to pass the PCMCIA code to the probe */ -# ifdef INCLUDE_PCMCIA +#ifdef INCLUDE_PCMCIA kdFindIdeList(&kd, CODE_PCMCIA); kdFindScsiList(&kd, CODE_PCMCIA); kdFindNetList(&kd, CODE_PCMCIA); -# else +#else /* but if we're not in PCMCIA, there is a chance that we were run in kon mode which means that the probes were done and modules were inserted, but they're *not* PCMCIA */ kdFindIdeList(&kd, continuing ? 0 : CODE_PCMCIA); kdFindScsiList(&kd, continuing ? 0 : CODE_PCMCIA); kdFindNetList(&kd, continuing ? 0 : CODE_PCMCIA); -# endif #endif if (!continuing) { @@ -2654,7 +2646,7 @@ logMessage("found url image %s", url); symlink("mnt/runtime/lib", "/lib"); /* the only modules we need for alpha are on the initrd */ -#if !defined(__alpha__) && !defined(__ia64__) +#if !defined(__alpha__) unlink("/modules/modules.dep"); unlink("/modules/module-info"); unlink("/modules/pcitable"); @@ -2695,13 +2687,11 @@ logMessage("found url image %s", url); /* XXX should free old modInfo set */ modInfo = isysNewModuleInfoSet(); -#if !defined(__ia64__) if (isysReadModuleInfo(arg, modInfo, NULL)) { fprintf(stderr, "failed to read %s\n", arg); sleep(5); exit(1); } -#endif readExtraModInfo(modInfo); @@ -2741,13 +2731,11 @@ logMessage("found url image %s", url); } } -#ifndef __ia64__ mlLoadModule("raid0", NULL, modLoaded, modDeps, NULL, modInfo, flags); mlLoadModule("raid1", NULL, modLoaded, modDeps, NULL, modInfo, flags); mlLoadModule("raid5", NULL, modLoaded, modDeps, NULL, modInfo, flags); mlLoadModule("vfat", NULL, modLoaded, modDeps, NULL, modInfo, flags); mlLoadModule("ext3", NULL, modLoaded, modDeps, NULL, modInfo, flags); -#endif usbInitializeMouse(modLoaded, modDeps, modInfo, flags); @@ -2837,7 +2825,6 @@ logMessage("found url image %s", url); *argptr++ = instClass; } -#ifndef __ia64__ for (i = 0; i < modLoaded->numModules; i++) { if (!modLoaded->mods[i].path) continue; @@ -2857,7 +2844,6 @@ logMessage("found url image %s", url); argptr++; } -#endif } *argptr = NULL; diff --git a/scripts/mk-images.ia64 b/scripts/mk-images.ia64 index 59b1b41e7..34a1a645f 100644 --- a/scripts/mk-images.ia64 +++ b/scripts/mk-images.ia64 @@ -1,5 +1,11 @@ -# No modules yet -#SECSTAGE="vfat raid0 raid1 raid5" +# LATEUSBMODS go in the second stage +USBMODS="uhci hid keybdev" +LATEUSBMODS="mousedev" + +SECSTAGE="nfs fat vfat raid0 raid1 raid5 $LATEUSBMODS" +NETMODULES="3c59x acenic e100 e1000 eepro100 sk98lin starfire tulip yellowfin" +SCSIMODULES="DAC960 cciss cpqarray aic7xxx megaraid qla1280 qla2x00 sym53c8xx" + prepareBootImage() { gunzip < $BOOTDISKDIR/bootfs.gz > $MBD_TMPIMAGE @@ -12,9 +18,11 @@ prepareBootImage() { makebootdisk --kernelto $TOPDESTPATH/kernels/vmlinux \ --imagename boot.img \ --initrdflags '--initrdto $TOPDESTPATH/images/ramdisk.img \ - --initrdsize 4096 \ - --loaderbin loader' + --initrdsize 8192 \ + --loaderbin loader \ + --modules "nfs fat vfat $USBMODS $NETMODULES $SCSIMODULES"' -makeinstimage --size1 8192 --size2 8192 "netstg" -makeinstimage --size1 8192 --size2 8192 "hdstg" +makeinstimage --size1 8192 --size2 8192 "netstg" "$SECSTAGE $SCSIMODULES" +makeinstimage --size1 8192 --size2 8192 "hdstg" "$SECSTAGE $NETMODULES" +makemainmodules "$SECSTAGE $NETMODULES $SCSIMODULES" makemainimage "stage2" |