Commit Graph

42 Commits

Author SHA1 Message Date
dsl
077285e52b Adds FFSv2 boot code to install floppies 2003-11-30 14:58:05 +00:00
lukem
1c33b4e6a4 Overhaul MBR handling (part 1):
<sys/bootblock.h>:
    *	Added definitions for the Master Boot Record (MBR) used by
	a variety of systems (primarily i386), including the format
	of the BIOS Parameter Block (BPB).
	This information was cribbed from a variety of sources
	including <sys/disklabel_mbr.h> which this is a superset of.

	As part of this, some data structure elements and #defines
	were renamed to be more "namespace friendly" and consistent
	with other bootblocks and MBR documentation.
	Update all uses of the old names to the new names.

<sys/disklabel_mbr.h>:
    *	Deprecated in favor of <sys/bootblock.h> (the latter is more
	"host tool" friendly).

amd64 & i386:
    *	Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
	be consistent with the naming convention of the msdosfs tools.

    *	Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
	and it's confusing to have two functionally equivalent bootblocks,
	especially given that "ufs" has multiple meanings (it could be
	a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).

    *	Rework pbr.S (the first sector of bootxx_*):
	    +	Ensure that BPB (bytes 11..89) and the partition table
		(bytes 446..509) do not contain code.
	    +	Add support for booting from FAT partitions if BOOT_FROM_FAT
		is defined.  (Only set for bootxx_msdos).
	    +	Remove "dummy" partition 3; if people want to installboot(8)
		these to the start of the disk they can use fdisk(8) to
		create a real MBR partition table...
	    +	Compile with TERSE_ERROR so it fits because of the above.
		Whilst this is less user friendly, I feel it's important
		to have a valid partition table and BPB in the MBR/PBR.

    *	Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
	with other platforms.

    *	Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
    	we can boot off FAT partitions.

    *	Crank version of /usr/mdec/boot to 3.1, and fix some of the other
	entries in the version file.

installboot(8) (i386):
    *	Read the existing MBR of the filesystem and retain the BIOS
    	Parameter Block (BPB) in bytes 11..89 and the MBR partition
	table in bytes 446..509.  (Previously installboot(8) would
	trash those two sections of the MBR.)

mbrlabel(8):
    *	Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
	to map the MBR partition type to the NetBSD disklabel type.


Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
2003-10-08 04:25:43 +00:00
salo
8d1781e39d netbsd.org->NetBSD.org 2003-07-26 17:06:22 +00:00
dsl
ebaaf5a296 Use ${TOOL_INSTALLBOOT} - it does work on ustarfs filesytems.
Pass correct option to installboot for bootfloppy-com (serial bootfloppy).
2003-07-26 08:26:07 +00:00
dsl
6c8c94d8a7 Switch boot floppies to 'new' i386 bootcode. 2003-07-25 21:19:48 +00:00
dsl
7504698df3 Change i386 sysinst to use my new boot code.
Update lists for ramdisks to include the required files.
NB /usr/sbin/installboot is not used by sysinst and is only in ramdisk-big.
Increase the sizes of the ramdisks, there is plenty of space in all the
boot floppies except rescue-tiny (2k) and boot-tiny (32k).
2003-06-05 14:30:11 +00:00
lukem
f535541326 Default FLOPPYMAX to 1 for i386 floppies, so the build will fail if an
image accidentally grows past 1 floppy and we didn't know about it.
2002-10-16 00:59:24 +00:00
lukem
858e032a8f Merge kernel-ramdisk & kernel-rescue into instkernel, now that
../../common/Makefile.mdset supports building multiple copies of the
same kernel (as long as they're to separate filenames).
Now there's no need to set FLOPPYKERNDIR, as it now defaults to instkernel.
2002-10-14 16:20:39 +00:00
lukem
e45a1fe921 Add wsvt25 termcap entry, and use it if BOOTMODEL=big. Sysinst now looks
nice in colour.  From Grant Beattie <grant@netbsd.org>, with changes by me.
2002-06-24 17:36:27 +00:00
lukem
c872f8b259 use 444 instead of 644 for /.profile 2002-05-29 04:03:01 +00:00
lukem
d2d5d54df9 always set FLOPPYMETAFILE if FLOPPYSIZE!=2880 2002-05-12 10:48:35 +00:00
lukem
897d27df90 - add support for [-s suffix] to buildfloppies.sh (defaults to "",
rather than the previous ".fs").
- add support for (optional) FLOPPYSUFFIX in Makefile.tarfloppy, and
  use appropriately
- remove (now unnecessary) custom release targets in alpha/instkernel/*
2002-05-04 01:34:36 +00:00
lukem
ed8e534c7e yet another distrib overhaul:
- move guts of distrib/Makefile.inc to distrib/common/Makefile.distrib
  (fixes problem caused by implicit include of ../Makefile.inc in certain
  submake conditions triggered by makefiles not yet in tree)
- removed mkdir of ${RELEASEDIR}/*;  rely upon "snap_pre" target of
  etc/Makefile to create all the release directories
- renamed RELINSTALL to RELEASE_INSTALL
- renamed FLOPPYINSTDIR to FLOPPY_RELEASEDIR
- renamed MDSETDIR to MDSET_RELEASEDIR
- removed ITARGET
- move release target from top level to appropriate subdirectory
- ensure release target has correct depends
- replace miniroot's IMAGE_MD_POST with common/Makefile.image IMAGEPOSTBUILD
- Makefile.image: add realall: ${IMAGE}
2002-05-02 18:02:14 +00:00
lukem
9e5598221a replace _SRC_TOP_ with NETBSDSRCDIR, since the latter is the "public" version 2002-04-26 15:50:21 +00:00
lukem
ad423f169c Migrate MI-shareable stuff to distrib/common/Makefile.tarfloppy. 2002-04-16 09:06:49 +00:00
lukem
33e7bb62d6 - Convert to using distrib/common/buildfloppies.sh, which can build both
single and multi-volume floppies in better fashion that the crufty
  shell commands in the various Makefiles.
- Move fdset* -> bootfloppy*, as that's more consistent
2002-04-16 05:23:33 +00:00
lukem
cfb4cb0f97 remove unused cruft;
- Chuck Silvers pointed out that the nocluster goop set a now-unused variable
- we now use distrib/common/Makefile.mdset
2002-04-11 15:36:49 +00:00
lukem
d51dc48537 tweak 2002-04-11 12:59:47 +00:00
lukem
091e142cec use ${RELINSTALL} instead of cp -p 2002-04-11 12:22:58 +00:00
lukem
e74b6d4e20 Yet Another Cleanup:
- factor more stuff into common/Makefile.*
- use NDWO makefile layout
- don't always rebuild bootfloppy-* and fdset-* stuff. (mmm, dependencies)
- add .WAIT sync in top level Makefile
2002-04-11 12:17:14 +00:00
mycroft
6a6b4b6686 We need bsd.sys.mk to get ${STRIP} when USETOOLS is not set. 2002-04-10 21:12:15 +00:00
lukem
e5ef62ef2b - add specific special entry for sys/arch/${MACHINE}/stand/installboot
for ports that don't yet use the MI usr.sbin/installboot
- remove now-unnecessary srcdir for sys/arch/${MACHINE}/stand
2002-04-09 00:31:38 +00:00
tsutsui
ebf5fffe65 Set DBG=-Os for libhack. 2002-04-06 18:16:09 +00:00
groo
7a1f1869d1 Reduce free inode count by one so ramdisk-big builds. 2002-04-03 03:12:28 +00:00
lukem
e0f433e649 ensure all sysinst-using makefs generated images have at least 15 inodes free,
and be consistent how MAKEFS_FLAGS is defined.
2002-04-01 12:16:11 +00:00
lukem
484f8db2eb - Be consistent how libhack is used: If extra HACKOBJS (e.g., gethost.o) are
required, define them before pulling in libhack/Makefile.inc so that the
  dependencies work correctly.
- Other minor cleanups
2002-03-28 04:33:21 +00:00
lukem
1d10faf92a cosmetic reorg 2002-03-28 02:57:29 +00:00
lukem
25c4cc30b2 Disable libhack's gethost.o (replacement gethostby{name,addr}()) by default,
as they only support reading /etc/hosts, and its the "least useful" of
the libhack routines.  Add gethost.o back to Really Small media which
appears to need the space savings.
2002-03-25 07:43:39 +00:00
lukem
deffb66504 parselist.awk
- improve comments
- provide a general purpose variable replacement; replace contents of ${FOO}
  with ENVIRON["FOO"].
- deprecate @MACHINE@ and @MACHINE_ARCH@ in favour of using ${MACHINE}
  and ${MACHINE_ARCH} instead
- add errx() function; like err(), but doesn't print the line number
- invoke this script with various variables defined via PARSELISTENV

*/Makefile*
- use PARSELISTENV instead of POPULATEENV, and add variables like DESTDIR
- other minor tweaks

*/list*
- replace @MACHINE@ with ${MACHINE}
2002-03-14 22:26:08 +00:00
lukem
3566e993db use parselist.awk's newly added MTREE arg rather than having an
mtree.conf fragment for one file
2002-03-07 01:41:48 +00:00
lukem
b627dc63c4 cosmetic tweak 2002-03-06 13:11:34 +00:00
lukem
23a0a8fb2e replace ${_SRC_TOP_}/distrib with ${DISTRIBDIR} 2002-03-06 04:29:35 +00:00
lukem
3f4dba701e cosmetic sort 2002-03-04 04:49:26 +00:00
lukem
e1ab92e728 minor whitespace cleanup 2002-02-26 22:52:10 +00:00
lukem
e77cbad9fa add check_RELEASEDIR to targets that require RELEASEDIR to be set 2002-02-26 13:27:50 +00:00
lukem
b719f1f08d explain why gethost.o is disabled 2002-02-25 23:00:59 +00:00
lukem
7533a60e6a - migrate a bunch of the common list stuff to common/list.ramdisk
- use ${DISTRIBDIR} as appropriate
- use ${DISTRIBDIR}/common/list.sysinst if USE_SYSINST is defined,
  removing any replicated list info
- define USE_SYSINST in the sysinst-using ramdisks
- replace MAKEDEV_DEVS with MAKEDEVTARGETS
2002-02-08 05:02:16 +00:00
lukem
5e74123ea2 - set ${TOP} to ${.CURDIR}/.., and use as appropriate
- use ${DISTRIBDIR} as appropriate
- migrate most of mtree.conf to ${DISTRIBDIR}/common/mtree.common,
  leaving /.profile in mtree.conf
- remove MAKEDEV_DEVS support; replaced with MAKEDEVTARGETS support in
  ${DISTRIBDIR}/common/Makefile.makedev
2002-02-08 04:52:42 +00:00
lukem
f551aa0ea4 If MAKEDEV_DEVS is defined, run etc.i386/MAKEDEV through MAKEDEV.wrapper and
makedev2spec.awk to generate another mtree specfile for use when building
the image, and don't copy dev/MAKEDEV to the target image.  This is primarily
for the tiny images which might not have enough memory for an mfs /dev.
Otherwise (MAKEDEV_DEVS not defined), continue to copy dev/MAKEDEV.
2002-02-06 16:12:18 +00:00
lukem
876b3e8195 no need to list etc/passwd anymore 2002-02-06 16:09:14 +00:00
lukem
848861bf4f add some more IMAGEDEPENDS 2002-02-05 11:15:04 +00:00
lukem
c8099b4072 Major overhaul, to enable unprivileged (cross) building, removing the
requirement to build as root on a system with vnconfig.


Use ${KERNSRCDIR} and ${_SRC_TOP_} where appropriate

Remove now-obsolete:
	list2sh.awk runlist.sh bootfloppy-common/list

Bootfloppy-*/Makefile: don't need to set DISKTYPE or BLOCK8K any more

Rename  bootfloppy-common/Makefile.inc  to  common/Makefile.bootfloppy
and	fdset-common/Makefile.inc       to  common/Makefile.fdset
This uses makefs instead of vnconfig and disklabel, thus removing the
need for root privileges to build these floppies..

Add common/Makefile.ramdisk, to simplify ramdisk-*/Makefile.
Uses shared ${_SRC_TOP_}/distrib/common/Makefile.crunch and
${_SRC_TOP_}/distrib/common/Makefile.image to even further simply things.

Migrate ramdisk-*/dot.profile to a shared common/dot.profile, which
detects whether it's an install or rescue profile based on the existance
of /sysinst.  Remove /dev generation code as init(8) now does that for us.

Migrate common parts of */list to a shared common/list.ramdisk.
Convert ramdisk-*/list to new format used by distrib/common/parselist.awk
Don't bother running pwd_mkdb now that libhack's getpwent parses
/etc/master.passwd instead of /etc/passwd.

Migrate ramdisk-*/mtree.conf to a shared common/mtree.conf, which is now a
new full-path-style specfile.

Remove ramdisk-*/ramdiskbin.conf as it's now automatically generated
from ramdisk-*/list by parselist.awk.

Migrate ramdisk-*/termcap.mini to a shared common/termcap.mini.

Remove unused ramdisk-{small,tiny}/disktab.preinstall.

Use .for loops in kernel-*/Makefile to simply defining mostly-duplicated
targets.

ramdisk-*/Makefile: convert to using common/Makefile.ramdisk

Remove unused ramdisk-*/dot.hdprofile.
2002-02-03 16:22:19 +00:00