PicoBSD diskless embedded 'where to start'
Bruce R. Montague
brucem at mail.cruzio.com
Mon Feb 9 14:33:21 PST 2004
Hi. Eric, I wanted to make sure that the impression wasn't
left that picobsd was a "distribution" forked off of a
snapshot of FreeBSD. This seemed to be implied to me by
> Like the link provided
> by Richard for Pico shows, m0n0 is built on a more modern kernel.
As you say, this assumption may result from a quick glance
at the link, however, this assumption is emphatically not
true. The assumption that picobsd is a distribution seems
a fairly common assumption when people first encounter
it, so I responded to it.
It's not right to think of PicoBSD as a project either,
which some may infer from this:
> The advantage of a project that works with the present kernel is that any
> issues that are discussed take this into account.
I realize you're probably talking specifically about the
m0n0 projects and documentation here, but the first phrase
"The advantage of a project that works with the present
kernel" without considering the second qualifying phrase
"issues that are discussed..." may leave the implication
that picobsd doesn't work with the present FreeBSD kernel.
Sorry I'm being picky on this, I do see what you mean I
think but it may not be clear on a fast reading of the
above that picobsd is not a project and that it can work
with any FreeBSD kernel.
PicoBSD isn't a project, it's just a script available
in every FreeBSD source tree. See:
As I posted earlier, I built a PicoBSD system the other
night in minutes on a FreeBSD 4.9 stable system, a present
If thinking in terms of "distributions", it's probably
most accurate to think of each picobsd build as creating
a custom distribution, with the distribution contents
defined in the "crunch.conf" file and "mfs_tree" and
"floppy.tree" trees. At one time there were 5 or so
reference configurations ("distributions") available, and
you're right that they mostly don't work as-is now because
the size of the base system outgrew what would fit on a
floppy, the contents of libraries that must crunch together
correctly change, etc..
I agree with the thrust of both your posts; If someone
wants to get rapidly into using a FreeBSD diskless system,
one of the available "canned" systems or some of the
systems using scripts that copy FreeBSD contents to CF
or CD are probably the way to go. Using "rc.diskless" and
a few of the other tools it is not at all that hard to roll
your own in this case. PicoBSD does have a learning
curve, a number of sharp edges (everything crunched, no
loadable modules), and documentation that ages rapidly.
A full FreeBSD system booting diskless from compact flash
is almost always more conventient, powerful, and easy to
work with than picobsd.
On the other hand, if you need a real small embedded
system with the FreeBSD TCP/IP stack and FreeBSD system
utilities, and are comfortable with FreeBSD kernel builds,
you can do some neat stuff with picobsd.
My experience, roughly, has been that, with modern versions
of FreeBSD, if you have 32M or more on your boot device,
use FreeBSD (with 128M or more, always use FreeBSD). If
you have 8M or less, use PicoBSD. In between, it depends.
There are of course numerous other considerations (Do you
want to run XFree86?). If you need to build a quick rescue
floppy because you can't boot your hard disk, build a
picobsd floppy on another system, etc..
Although I've looked at the m0n0BSD and miniBSD pages a
few times, I don't know that much about them. Did m0n0BSD
replace the rc scripts with an alternative? miniBSD looks
like a good set of notes and manual procedures - good
documentation - showing one way to copy and strip-down
FreeBSD to compact flash.
More information about the freebsd-small