After a protracted battle, I've built an operational milo for my UDB.
There were really two problems:
1) The milo-2.0.30 Makefile does not contain a proper action to link the
'objstrip' executable.
2) The x86-digital BIOS emulator hangs the machine after "Swapping to PAL
code..". The x86 variant _does_ work, but requires a small patch to
compile.
Anyway, here 'tis:
*** milo-2.0.30/Makefile.orig Mon Jul 28 06:43:53 1997
--- milo-2.0.30/Makefile Sat Aug 23 17:20:09 1997
***************
*** 563,568 ****
--- 563,573 ----
# The tools that we need to build the miniloader.
# ----------------------------------------------------------------------------
+ $(OBJSTRIP): $(KSRC)/arch/alpha/boot/tools/objstrip.o
+ $(CC) -o $(OBJSTRIP) \
+ $(KSRC)/arch/alpha/boot/tools/objstrip.o \
+ $(KSRC)/arch/alpha/lib/memset.o
+
tools: $(TOOLS)
tools/bin/clist: tools/list/clist.c tools/common/commlib.a
*** milo-2.0.30/x86_sysenv.c.orig Sun Aug 24 00:36:22 1997
--- milo-2.0.30/x86_sysenv.c Sun Aug 24 00:34:32 1997
***************
*** 40,45 ****
--- 40,49 ----
#include "sysenv.h"
#include "host.h"
+ void *malloc(int size)
+ { return vmalloc(size);
+ }
+
#ifdef MINI_DIGITAL_BIOSEMU
/*
* Use Digital's BIOS emulation technology to set up the video device.
***************
*** 97,106 ****
unsigned int PCIGetNumberOfBusses(void)
{
return pci_root.subordinate;
- }
-
- void *malloc(int size)
- { return vmalloc(size);
}
#ifdef NOT_NOW
--- 101,106 ----
This is the .config file used to build an operational milo:
#
# Automatically generated make config: don't edit
#
#
# Alpha Linux Miniloader setup
#
# MINI_SERIAL_ECHO is not set
# MINI_DIGITAL_BIOSEMU is not set
# CONFIG_ALPHA_LX164 is not set
MINI_BUILD_PALCODE_FROM_SOURCES=y
It probably isn't necessary to rebuild the palcode from sources, but it
worked for me.
Milo must be built using this command line:
$ KSRC=/usr/src/linux make
(where "KSRC" is the appropriate base directory for your alpha-patched
Linux source).
Can these fixes find their way into the sources on Gatekeeper?
The _real_ good news is that my long-running problem with milo not seeing
the partitions on my second SCSI drive is fixed <g>. I can now start
Linux directly from /dev/sdb5 without "two-stepping" through a little
partition on the first drive.
Steve