Subject: Re: Extending config(8) to allow different root fs types
To: None <martin@laurin.teuto.de>
From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
List: tech-kern
Date: 11/06/1996 16:55:27
   Delivered-To: tech-kern-outgoing@NetBSD.ORG
   From: Martin Husemann <martin@laurin.teuto.de>
   Cc: "tech-kern@netbsd.org" <tech-kern@NetBSD.ORG>
   Date: Sun, 3 Nov 1996 05:46:29 +-100
   MIME-Version: 1.0
   Content-Type: text/plain; charset="us-ascii"
   Content-Transfer-Encoding: 7bit
   Sender: owner-tech-kern@NetBSD.ORG
   Precedence: list
   Delivered-To: tech-kern@NetBSD.ORG

   Gordon W. Ross wrote:

   > The normal thing is to do something like this:
   > 	boot> sd(...)netbsd -a

   Yes, that's the hack I'm using right now. I made a two line #ifdef CDBOOT
   in sys/arch/i386/i386/autoconf.c and set the mountroot function pointer
   to cd9660_mountroot instead of ffs_mountroot.

   I then have to boot with -a or else the kernel will panic when trying to
   mount the root fs from sd0 (which of course isn't an iso 9660 fs).

   This is a workaround for now, but I wouldn't call that acceptable for a new
   user who is trying to do his first time installation from CD.

Look at the way the AMiga port does it.

Basically, for cd0 devices, the cd9660_xxx functions are used, for
others the normal ones.

From: sys/arch/amiga/amiga/swapgeneric.c:

int (*mountroot) __P((void)) = ffs_mountroot;
[...]
#if NCD > 0
	if (major(rootdev) == 7)
		mountroot = cd9660_mountroot;
#endif

where 7 is the cd* major on NetBSD/Amiga.

Regards,
	Ignatios