summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bootdisk/ia64/bootfs.gzbin57215 -> 56768 bytes
-rw-r--r--eli.py27
-rw-r--r--loader/Makefile23
-rw-r--r--loader/loader.c20
-rw-r--r--scripts/mk-images.ia6420
5 files changed, 55 insertions, 35 deletions
diff --git a/bootdisk/ia64/bootfs.gz b/bootdisk/ia64/bootfs.gz
index 26cd46d89..8376517e4 100644
--- a/bootdisk/ia64/bootfs.gz
+++ b/bootdisk/ia64/bootfs.gz
Binary files differ
diff --git a/eli.py b/eli.py
index 3bd8a735b..6796eade9 100644
--- a/eli.py
+++ b/eli.py
@@ -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"