Netboot Mailing List (by thread)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problem netbooting 286s



A couple of days I posed a problem to the list. I have found the
solution. The problem was why I could not boot a 286 to fetch a DOS
ramdisk whereas I was able to do that on a 386.

The answer is that I was loading the "boot PROM" from a floppy. When I
burnt the "boot PROM" onto an EPROM, it worked fine. I don't understand
it fully, but my guess is that the DOS that was loaded from the floppy
intercepted some interrupts, in particular INT 2F.  So the setup code
wasn't starting from a clean slate. I think the 386 has hooks in the
BIOS for handling INT 2F so the DOS kernel left that alone.

This may or may not explain why some people have problems netbooting
DOS. If it doesn't work from a floppy, try burning an EPROM anyway.

Anyway, now I have a 286 that has just a network card and a parallel
port and running as a print server. The whole story is at

http://www.syd.dit.csiro.au/staff/ken/personal/etherboot/atnetboot.html

Gero, here is a patch to mknbi-dos/openrd.c to cater for OPENDOS floppy
images. Also, any chance of allowing a "floppy size" to be specified to
mknbi-dos instead of defaulting to 1.44 Mb when creating from a
directory?

--- /proj/linux/local/sysutil/netboot/mknbi-dos/openrd.c	Fri Jun 13 07:58:05 1997
+++ ./openrd.c	Wed Jun 18 22:45:58 1997
@@ -223,6 +223,10 @@
 		    (!strncmp(fsp->name, "IO      ", 8) ||
 		     !strncmp(fsp->name, "MSDOS   ", 8)))
 			fsp->attrib |= ATTR_HIDDEN + ATTR_SYSTEM + ATTR_READONLY;
+		if (!strncmp(fsp->ext, "COM", 3) &&
+		    (!strncmp(fsp->name, "IBMBIO  ", 8) ||
+		     !strncmp(fsp->name, "IBMDOS  ", 8)))
+			fsp->attrib |= ATTR_HIDDEN + ATTR_SYSTEM + ATTR_READONLY;
 		strcpy(fsp->path, tmppath);
 		fsp->size = (unsigned long)sbuf.st_size;
 		fsp->next = dsp->files;
@@ -281,13 +285,15 @@
 					+ (CLUST_SIZE - 1)) / CLUST_SIZE;

   /* Check that the MSDOS system files are present */
-  if ((fsp = findfile(root_dir, "MSDOS   ", "SYS")) == NULL) {
-	fprintf(stderr, "%s: Cant find msdos.sys in %s\n", progname, path);
+  if ((fsp = findfile(root_dir, "MSDOS   ", "SYS")) == NULL &&
+	(fsp = findfile(root_dir, "IBMDOS  ", "COM")) == NULL) {
+	fprintf(stderr, "%s: Cant find msdos.sys or ibmdos.com in %s\n", progname, path);
 	exit(EXIT_FAILURE);
   }
   movefirst(root_dir, fsp);
-  if ((fsp = findfile(root_dir, "IO      ", "SYS")) == NULL) {
-	fprintf(stderr, "%s: Cant find io.sys in %s\n", progname, path);
+  if ((fsp = findfile(root_dir, "IO      ", "SYS")) == NULL &&
+	(fsp = findfile(root_dir, "IBMBIO  ", "COM")) == NULL) {
+	fprintf(stderr, "%s: Cant find io.sys or ibmbio.com in %s\n", progname, path);
 	exit(EXIT_FAILURE);
   }
   movefirst(root_dir, fsp);



For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.