Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jan 2001 12:44:47 -0600 (CST)
From:      Mike Meyer <mwm@mired.org>
To:        Bob Johnson <bob@eng.ufl.edu>, Micke Josefsson <mj@isy.liu.se>
Cc:        questions@freebsd.org
Subject:   Re: 4.2-stable
Message-ID:  <14949.59423.534928.667849@guru.mired.org>
In-Reply-To: <110734453@toto.iv>

next in thread | previous in thread | raw e-mail | index | archive | help
Bob Johnson <bob@eng.ufl.edu> types:
> Installing or updating from binary snapshots is nice 
> on slow systems, because it can literally take two 
> days to build a new system from source code on a 486 
> (old 486s make fine file servers or modem/NAT boxes, 
> by the way).  It's too bad they aren't documented 
> better.

Well, there's a better way to get a -STABLE release on a slow
system. Witness:

Micke Josefsson <mj@isy.liu.se> types:
> The problem at hand is that I want to do a make world on a laptop with a very
> tiny harddisk. I have nfs-mounted /usr/src and /usr/obj. Now can I do a 'make
> buildworld' on the nfsserver and only 'make installworld' on the client? The
> client is a pretty slow 486/50 so if can do the buildworld on the server that
> would save days (literally!) of work.

That works quite well. More details below.

> When compiling the kernel I can select in its LINT-file options that generate
> code only for, say, 586 processors. Do I have the same options when making world?
> Does this get done automatically, depending on which machine I am running? Or
> where?

Note that you need to build - and install - *two* things to update
FreeBSD, not just one. The currently recommended method is:

make buildworld			# Builds the world
make buildkernel		# Builds the kernel(s)
make installkernel		# Install the kernel you just built
reboot to single-user mode	# To run the new kernel.
make installworld		# Installs the world
mergemaster			# Updates the config files in /etc.

The options in LINT only apply to the kernel. They are taken from the
config file for the kernel being built. By default, that's GENERIC,
which includes support for all x86 processors supported by
FreeBSD. You can specify config file(s) to build/install via
/etc/make.conf.  The code generated by the compiler is controlled by
compiler flags, not the environment. By default, it generates code for
the 386-and-up.

I do builds on a PII-Xeon machine for both it and an AMD K6-2, nfs
mounting /usr/src and /usr/obj just like you're talking about to do
the installs. To do this, the PII machine has: "KERNEL=XEON AMD" in
/etc/make.conf. The K6 has "KERNREL=AMD" in /etc/make.conf. In
/usr/src/sys/i386/conf, the XEON config file lists only "cpu
I686_CPU", and the AMD config file lists only "cpu I586_CPU" for cpu
types. The rest of the config file is what's appropriate for the two
machines in question.

I do the two builds on the PII, then switch to the AMD machine and do
the installs, merge and reboot. After that's done, I go back to the
PII and go through the same process with it.

It works quite nicely, and saves me quite a bit of time. Not the days
you're discussing, but certainly hours. If I ever buy a laptop, I'll
almost certainly treat it the same way as I do the AMD box.

	<mike
--
Mike Meyer <mwm@mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14949.59423.534928.667849>