Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Nov 2000 21:16:48 -0600 (CST)
From:      Mike Meyer <mwm@mired.org>
To:        questions@freebsd.org
Cc:        Mike Meyer <mwm@mired.org>, 
Subject:   Re: WTF!! Building from source
Message-ID:  <14848.56480.558657.873564@guru.mired.org>
In-Reply-To: <56388518@toto.iv>

next in thread | previous in thread | raw e-mail | index | archive | help
[My apologies - it seems like my mailer lost the original author, and
just left VM.]

Someone types:
> On  1 Nov 00 at 5:27, Mike Meyer wrote:
> > leoric@home.com types:
> > > I have read things from the FreeBSD webpage, archived mailing list
> > > posts, and /usr/src/UPDATING. The proper way to build world and build a
> > > kernel from source is different in each of these.
> <snip>
> > Be warned that some of the things that can be set in /etc/make.conf
> > can cause the method with config to break, and some can cause the
> > system to be unbootable until the intallworld is done.
> In light of another current thread on this list, "beginners with bsd" and 
> the various recommendations therein, it would seem that your above warning 
> points to a FBSD deficiency that would absolutely and totally collapse a 
> computer and/or FBSD newbie's experience with same. What would you see as 
> necessary changes to FBSD to preclude such an experience/event and perhaps 
> cast FBSD in something other than a "not-for-the-faint-hearted" OS and 
> still retain *all* the flexibility that *nix "power-users" require/demand? 

No, because problems with /etc/make.conf mean you're *way* beyond the
"beginners with bsd" stage. You're building the system (or at least
ports) from sources, which is something that MS sort of assumes that
you'll never do. Beginners should make sure they can get around a
-RELEASE system before rebuilding the system from sources. Being able
to build ports at the very least.  They should make sure they can
rebuild the system from sources before they start monkeying around
with make.conf (if you don't touch it, things won't break).

Note that if you leave the ports tree and system as they came off the
-RELEASE disk, they should work, except for things that are so old the
distfile is no longer available.

The fly in this ointment is that there are lots of things left out of
the GENERIC kernel, because it needs to fit on a floppy.  In
particular, sound. With the new sound drivers, it may be possible to
have them installed as a module on GENERIC, possibly even by
default. Hopefully, getting sound turned on without recompiling a
kernel would probably solve the problem. I've actually asked for
information about that, and hopefully something will get done - at
worst, a FAQ entry on how to turn on sound without having to recompile
the kernel. At best, systems will install and modern sound cards
support by pcm will just work.

[Story of newbie's and learning curves elided]

> IMHnewbieO, the above scenario could have just as easily happened on FBSD. 
> However, there's *no way* the majority of the above folks could have 
> *installed* FBSD. So maybe an automatic CLI install auto-loading "midc" 
> e.g. would be in order? later....

Have you installed Windows9x? How many of them could have installed
that? That's the real secret to MS's success - they've palmed the
support costs off onto the hardware vendors, local stores, and friends
next door. In this case, systems come from the factory with Windows
installed, or it's put on by the local store. If you look hard enough,
you can find people who will install FreeBSD for you (even at the
store), thus solving the problem the MS way.

Let's go over the steps in the install process, and see which does
better. I'm atypical - I came to FreeBSD after a decade of running BSD
off of 9-tracks from Evans hall and commercial BSD vendors, and a
couple of years fooling with NetBSD on 68K hardware. I never did a
"newbie" install of FreeBSD, and it's generally a *lot* easier than
the others. With that caveat, it's not clear to me that the Windows
(by which I mean Windows 9x) install is a lot better than the FreeBSD
install.

Windows comes with one floppy, and a CDROM that doesn't
boot. FreeBSD can boot the CDROM, or two floppies if that doesn't
boot. FreeBSD also lets you install from a slew of other media that MS
doesn't. I score this one for FreeBSD.

Next, FreeBSD makes you do the kernel userconfig thing. Most of the
time, you can just ignore this, but it's nice to have if there are
problems. MS makes you choose a boot mode from the floppy. Both are a
bit intimidating if you don't know what's going on. I score this one
even.

Now comes the nasty part - you have to do drive and partition layout
in FreeBSD, and you don't in Windows. Windows assumes that's been done
before the install process (or it may have a hook to format and use
the entire disk). This is clearly bad for FreeBSD; I score this one for
 Windows, as most systems come with a dos formatted C partition.

Ok, you then go through the process of choosing what to install for
both systems. FreeBSD has more options, but they're pretty clearly
labelled. I haven't looked into the "Custom" install for Windows, so
I'm not sure how it compares to FreeBSD. Again, call this one even.

Now comes the post-configuration phase. FreeBSD has a complicated list
of things to walk down, but you can configure pretty much everything
that matters, and even install third-party software. MS walks you
through some critical ones (like creating a user), then starts the
process of adding drivers for hardware beyond the basic system
stuff. If you just click the "keep going" buttons, you're going to
wind up rebooting the system after every device, and it's going to be
a major PITA. The real problem here is that the selection method for
FreeBSD are all keyboard driven, and *counter* intuitive. If FreeBSD
were point-and-click, or even cursor-and-enter, I'd call it even. As
it is, score it for Windows.

Ok, now for FreeBSD you have to set up that "other" hardware. That may
not always be possible - there may not be support for it. You probably
need to recompile the kernel. This doesn't happen on Windows - MS
relies on hardware manufacturers to provide drivers if they
don't. Score this one for MS.

And at that point, the install is done. In retrospect, there are only
two places that FreeBSD really falls short of the mark. FreeBSD needs
a new GUI, but that's actually underway - just slowly.

First, having to do the drive layout is a real loser.  On the other
hand - what alternative do you have? I guess we could add a hook to
use a FreeBSD partition if it was found, but chances are that wouldn't
be used enough to make it worth the effort. After all, Windows tools
can't create a FreeBSD partition, so you need to either run a third
party tool or FreeBSD tools to do that; building the FreeBSD ones into
the install process is *much* better than expecting the user to do it
from the boot floppy before starting the install.  Adding a method
that installed on the entire disk could be done, but people who know
what they're doing can do that, and people who don't know what they're
doing shouldn't be given that kind of thing as a single step
operation. The current "use the entire disk" option during layout
followed by "auto defaults for all" is about as close as I'd care to
cut it.  This one being more painful is a simple fact of life for
people trying to use an "alternative" OS on a platform dominated by
one software vendor. Every OS install I've done except for Windows
walks you through that step. The only one that was easier than FreeBSD
was BeOS, because it uses a Windows-like single partition with a swap
file on it. Linux is as bad or worse; Solaris is *much* worse. If
you've got suggestions on how to fix it, please state them!

The other one is the driver install process. The Windows autodetect
and autonag feature is very nice - when it works. When you don't have
the drivers, it's a PITA (I know - I ran a Windows box sans the sound
card driver for about a month; every time I booted, I had to turn the
bloody thing off). FreeBSD's method of having to reconfig the kernel
is BFM. However, with the architectural changes going on for
modularized drivers, etc, that's going to get better. Ideally, it'll
look like a modern Linux system: everything that's supported by the
installed system is autodetected and dynamically loaded into the
kernel at boot time. Things that aren't supported are reported so you
konw about them, but otherwise ignored. The end result should be
better than Windows 9x, at least for hardware that it works on.

Bottom line - FreeBSD is always going to be more painful for beginners
than Windows, because it can't get away with assuming that it's going
to be the only thing installed. And if you've got a good solution for
that, please let us know!

	<mike



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?14848.56480.558657.873564>