MFC: manpage for the updated picobsd script

Approved by: re
This commit is contained in:
luigi 2006-02-14 16:59:17 +00:00
parent 577b28fda2
commit e6419f405e

View File

@ -1,15 +1,15 @@
.\" -*- nroff-fill -*-
.\" $FreeBSD$
.Dd March 9, 2002
.Dd January 31, 2006
.Os
.Dt PICOBSD 8
.Sh NAME
.Nm picobsd
.Nd floppy disk based FreeBSD system
.Nd building small FreeBSD disk images
.Sh SYNOPSIS
.Nm
.Op Ar options
.Op Ar floppy-type Op Ar site-name
.Op Ar config-name Op Ar site-name
.Sh DESCRIPTION
The
.Nm
@ -17,7 +17,8 @@ utility is a script which produces a minimal implementation of
.Fx
(historically called
.Nm PicoBSD )
which typically fits on one floppy disk, or can be downloaded as a
which typically fits on a small media such as a floppy disk,
or can be downloaded as a
single image file from some media such as CDROM, flash memory, or through
.Xr etherboot .
.Pp
@ -29,7 +30,8 @@ cross-build images with different source trees than the one
in the server, it can be extremely useful to developers to
test their code without having to reinstall the system.
.Pp
The boot media (typically a floppy disk) contains a boot loader and a
The boot media (historically a floppy disk, but also small
CDROM or USB keys) contains a boot loader and a
compressed kernel which includes a memory file system.
Depending on the media, it might also contain a number of
additional files, which can be updated at run time, and are
@ -55,7 +57,9 @@ Use the source tree at
.Ar SRC_PATH
instead the one at
.Pa /usr/src .
This can be useful for cross-building floppy images.
This can be useful for cross-building
.Nm
images.
When using this option, you must also create and initialize the subtree at
.Ao Ar SRC_PATH Ac Ns Pa /../usr
with the correct header files, libraries, and tools (such as the
@ -84,12 +88,12 @@ subtree as necessary to subsequently build
images.
.It Fl -modules
Also build kernel modules.
These are not stored on the floppy
These are not stored on the
.Nm
image but are left available in the build directory.
.It Fl n
Make the script non-interactive.
Do not show the initial menu, and
proceed to the build process without requiring user input.
Make the script non-interactive, skipping the initial menu
and proceeding with the build process without requiring user input.
.It Fl v
Make the script verbose, showing
commands to be executed and waiting for user
@ -109,14 +113,16 @@ as a fully functional system.
.It Fl -no_all_in_mfs
Leaves files contained in the
.Pa floppy.tree
on the floppy image, so they can be loaded separately
on the
.Nm
image, so they can be loaded separately
from the kernel (and updated individually to
customize the floppy image).
customize the image).
.It Fl -floppy_size Ar size
Set the size of the floppy image.
Values other
than 1440 can be used for images that are burned
into a CDROM.
Set the size of the disk image.
Typical values for a floppy disk are 1440 or 2880,
but other values can be used for other media (flash memories,
CDROM, network booted kernels).
.It Fl c , clean
Clean the product of previous builds.
.El
@ -152,57 +158,26 @@ sources reside in the hierarchy
.Pa /usr/src/release/picobsd .
In the following discussion, all relative path names are relative to this
directory.
The
.Nm
build process has changed slightly over time, in order to cope
with the unavoidable increase of code size, which requires more and more
tricks to cram as much as possible onto the floppies.
Starting from
.Fx 4.3 ,
the supported build script is
.Pp
The supported build script is
.Pa /usr/src/release/picobsd/build/picobsd
which can be run from anywhere.
which can be run from anywhere, and relies on the
.Xr sysutils/makefs
port to build a filesystem without requiring
.Xr mdconfig
or root privileges to mount a filesystem.
When run in interactive mode (the default without the
.Fl -n
.Fl n
option), the script will let you configure the various parameters
used to build the floppy image.
The following kinds of floppy are envisaged, and we try to keep them
functional and fitting in the 1.44MB floppy despite the unavoidable
increases in the size of the kernel and its applications:
.Bl -hang -width ".Pa bridge"
.It Pa bridge
configuration suitable for bridges, routers and firewalls.
.El
used to build the PicoBSD image. An image is configured
using the files and directories described below.
The base system contains a template, called
.Pa bridge
for historical reasons,
that can be used as a base for building various kinds
of network appliances.
.Pp
The following configurations are also present but for reference
only.
Many of them are irremediably out of date and no effort
is done to keep them in good shape:
.Bl -hang -width ".Pa bridge"
.It Pa dial
configuration suitable for dial-out
.Pq Xr ppp 8
networking.
.It Pa isp
configuration suitable for dial-in
.Pq Xr ppp 8
networking.
.It Pa net
configuration suitable for general networking.
.It Pa router
configuration suitable for use as a router.
This particular configuration
aims to work on minimal hardware.
.El
.Pp
These configurations serve only as examples for
your own modification.
Not all of them have been tested,
and you might need small tweaks to the configuration
files to make them work or even fit into the
available disk space as code size increases.
.Pp
You can define your own floppy type, by creating a directory
You can define your own PicoBSD configuration, by creating a directory
with a name of your choice (e.g.\&
.Pa FOO )
which contains
@ -343,8 +318,6 @@ More information on the build process can be found in the
comments in the
.Nm
script.
Sample configurations can be found in
.Pa /usr/src/release/picobsd/ Ns Ao Ar floppy-type Ac Ns Pa /
.Sh USING ALTERNATE SOURCE TREES
The build script can be instructed to use an alternate source tree
using the
@ -380,7 +353,7 @@ a new image can be produced by simply running
.Dl "picobsd --src FOO/src -n -v bridge"
.Pp
whereas if the change affects include files or libraries
you first need to update them, e.g.\& by running first
you first need to update them, e.g.\& by re-running
.Pp
.Dl "picobsd --src FOO/src --init # this is needed only once"
.Pp
@ -665,19 +638,6 @@ Man page and
created by
.An Greg Lehey Aq grog@lemis.com .
.Sh BUGS
In order to build
.Nm ,
the kernel of the system on which it is built must have the
.Xr vn 4
driver installed.
.Pp
The build process must be run as
.Dq root
because of the need of running
.Xr mdconfig 8 Ns / Ns Xr vnconfig 8
and
.Xr mount 8 .
.Pp
Building
.Nm
is still a black art.