Hi folks, as described in PR 44774 (see http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=44774), it is currently not possible to use a standard NetBSD install CD on a system wich normally boots from raid (at least on i386, amd64 or sparc64, where a stock GENERIC kernel is used).
To fix this, I'd like to introduce a new boothowto flag, that turns off all magic to override the root device (for now: turns off the root part of raidframe autoconfiguration, but could do similar things in the future with LVM or whatever). The patch attched does this. It will be accompanied by bootloader changes to set this flag if a new keyword is present in /boot.cfg. What do you think? Better naming suggestion also welcome. Martin
Index: sys/reboot.h =================================================================== RCS file: /cvsroot/src/sys/sys/reboot.h,v retrieving revision 1.25 diff -c -u -r1.25 reboot.h --- sys/reboot.h 25 Dec 2007 18:33:48 -0000 1.25 +++ sys/reboot.h 18 Apr 2011 05:34:01 -0000 @@ -53,6 +53,9 @@ #define RB_STRING 0x00000400 /* use provided bootstr */ #define RB_POWERDOWN (RB_HALT|0x800) /* turn power off (or at least halt) */ #define RB_USERCONF 0x00001000 /* change configured devices */ +#define RB_NO_ROOT_OVERRIDE 0x00002000 /* no automatic override of the booted + * device, like raidframes auto + * root configuration */ /* * Extra autoboot flags (passed by boot prog to kernel). See also Index: dev/raidframe/rf_netbsdkintf.c =================================================================== RCS file: /cvsroot/src/sys/dev/raidframe/rf_netbsdkintf.c,v retrieving revision 1.284 diff -c -u -r1.284 rf_netbsdkintf.c --- dev/raidframe/rf_netbsdkintf.c 18 Mar 2011 23:53:26 -0000 1.284 +++ dev/raidframe/rf_netbsdkintf.c 18 Apr 2011 05:34:01 -0000 @@ -465,7 +465,7 @@ /* if the user has specified what the root device should be then we don't touch booted_device or boothowto... */ - if (rootspec != NULL) + if ((rootspec != NULL) || (boothowto & RB_NO_ROOT_OVERRIDE)) return; /* we found something bootable... */