FreeBSD src
Go to file
Daniel C. Sobral ff652aa8ea With the beastie menu a problem was introduced in which selecting a
different kernel to boot with kernel="NAME" would load the kernel and
loader.conf-selected modules from /boot/NAME, but it would not change
module_path. So, for instance, the automatically loaded acpi.ko would come
from /boot/kernel/acpi.ko, *always*.

Mind you, this happened for unassisted boot. If you interrupted, typed
"unload" and then "boot NAME", it would Do The Right Thing.

The source of the problem is the double initialization with beastie's
loader.rc. One would happen inside "start", and would load the kernel. The
next one would happen later in the loader.rc script, resetting module_path.

Because module_path is set to the Right Value by the functions in support.4th
that actually load the kernel, when beastie.4th proceeded to boot
module_path would remain wrong, as the kernel was already loaded.

This can be corrected by removing either initialization, and also by changing
the command used by beastie.4th from "boot" to "boot-conf", which makes sure
you use the right kernel and modules.

I chose to remove the second initialization, since this let you interrupt
(or confirm) boot before beastie even comes up. I avoid also doing the
boot-conf change because that would simply cause the kernel and modules to
be loaded twice (in fact, that was my original patch, until, in writing this
very commit message, I saw the error of my ways).

This commit changes the semantics of module loading when using the beastie
menu. Now it does what one would expect it to, but not what it was actually
doing, so something may break for unusual setups depending on broken
behavior. As our japanese friends so nicely put it, shikata ga nakatta. :-)

Approved by:	re (scottl)
2003-11-21 19:01:02 +00:00
bin Force a staticly linked /bin and /sbin for ia64. The necessary changes 2003-11-19 16:59:00 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r122912, 2003-11-20 07:55:08 +00:00
crypto Add a missing word. 2003-10-31 21:49:47 +00:00
etc Add "socket" type to the list of default object types, and by 2003-11-15 02:08:01 +00:00
games Add a card carryring member of the Pointless Comparison Collection. 2003-11-12 20:08:47 +00:00
gnu /rescue/g{{,un}zip,zcat} exist, so build this dynamically now. 2003-11-17 05:18:36 +00:00
include Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
kerberos5 No need for two copies of this file; there is already a distribution 2003-11-17 14:59:06 +00:00
lib Replace out of date struct statfs definition with a reference to statfs(2). 2003-11-21 01:30:28 +00:00
libexec Fix a bug which causes wrong filename being written into the syslog 2003-11-20 13:36:31 +00:00
release New release note: acpi(4) idle state support. 2003-11-21 01:23:20 +00:00
rescue Alternate version of rev 1.20. 2003-11-09 01:22:27 +00:00
sbin Make init statically linked by default. It's not worth the pain of having 2003-11-19 19:57:20 +00:00
secure Explicitly add libz and libcrypto to LDADD for any ssh utilities missing 2003-08-19 07:45:03 +00:00
share Bring in a new manual page, ncv.4, and attach it to the build. 2003-11-21 00:55:11 +00:00
sys With the beastie menu a problem was introduced in which selecting a 2003-11-21 19:01:02 +00:00
tools fixup include filenames; this stuff used to be in the kernel source tree 2003-11-13 21:25:09 +00:00
usr.bin /rescue/b{,un}zip exists, so build this dynamically now. 2003-11-17 05:19:37 +00:00
usr.sbin Add Greek keymaps to sysinstall. 2003-11-20 20:43:06 +00:00
COPYRIGHT Update to add the July 22, 1999 addendum. 1999-09-05 21:33:47 +00:00
MAINTAINERS I'll maintain dhclient from now on. 2003-08-01 17:54:11 +00:00
Makefile Don't allow the 'make' target (which rebuilds make for bootstrapping) 2003-11-07 08:36:55 +00:00
Makefile.inc1 Invert the condition that installs the dynamic linker early, since 2003-11-16 21:17:43 +00:00
README KerberosIV de-orbit burn continues. Disconnect from "make world". 2003-03-08 10:01:26 +00:00
UPDATING Clarify UPDATING language: do buildworld before buildkernel, and 2003-11-17 23:25:16 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The
``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html