Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Jan 1998 11:48:09 +0100 (CET)
From:      Andrzej Bialecki <abial@nask.pl>
To:        freebsd-hackers@FreeBSD.ORG
Cc:        freebsd@pap.waw.pl
Subject:   ANNOUNCE: PicoBSD scripts are available
Message-ID:  <Pine.NEB.3.95.980122113915.14031B-100000@korin.warman.org.pl>
In-Reply-To: <199801220712.IAA00131@labinfo.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi!

Today, after making some corrections and adding a README.scripts, I've
uploaded to:
	ftp://ftp.freebsd.org/pub/FreeBSD/incoming/picoBSD/pbsd-s02.tgz

now fully working set of scripts which allow you to build your own
one-floppy FreeBSD without much hassle. Please read the file
README.scripts for description of initial requirements and the whole
process.

BTW. with the default setup as presented in these scripts, the floppy is
almost read-only (except very early during bootup).

I attached the README at the end of this message.

Have fun!

Andrzej Bialecki

---------------------+---------------------------------------------------------
abial@warman.org.pl  | if(halt_per_mth > 0) { fetch("http://www.freebsd.org") }
Research & Academic  | "Be open-minded, but don't let your brains to fall out."
Network in Poland    | All of the above (and more) is just my personal opinion.
---------------------+---------------------------------------------------------

1998.01.22, Warsaw, Poland

			How to build your own version
				of PicoBSD?

0.	Get the file pbsd-s02.tgz. It contains the scripts you'll need. Also,
	I assume you run quite -current system with full sources installed.
	Unpack the archive in some place with at least 5MB free space.

1.	Edit the file scripts/PICOBSD to suit your needs. You'll probably find
	there are some drivers there you don't need, and the ones you need are
	missing.  I also recommend to adjust the ISA devices parameters to
	match the ones of your hardware - there's currently no way to
	automatically store the changes from userconfig (next version will
	do it :-).

2.	Edit the basic parameters which are set at the beginning of the
	'scripts/build' script, such as MFS size (can be any rational number
	in kB), and the language (two are available at this time - Polish and
	English). Also, I assume you will use 1.44MB floppy.

3.	There are two directories which contain some sources and config
	files:

	ash/			a Shell - ancestor of venerable /bin/sh
	mfs.tree/		contains the MFS directory structure
	floppy.tree/		contains the startup floppy hierarchy
	lang/			contains language-dependent files
	scripts/		scripts which do the actual build

	NOTE: the mfs.tree/etc directory is, so to speak, ephemeric. It
	contains enough config files to suck in the real /etc contents from
	the floppy (floppy.tree/etc) right after bootup. This setup is a
	little weird, but it allows you to edit the configuration without
	rebuilding the whole floppy (because you can't change the MFS
	permanently, can you? :-))
	Also, there are no /etc/passwd nor /etc/*pwd.db files on the floppy -
	they are reconstructed from /etc/master.passwd on each startup (and
	then put on MFS with the rest of /etc).

	NOTE2: thanks to the above, the floppy is needed only during startup,
	and then only if you want to synchronize (possiblly changed) MFS /etc
	with the one on the floppy. It means that you can pull off the floppy
	from the drive as soon as login: prompt appears. In other words, it is
	almost equal to read-only floppy.

4.	Edit the set of installed programs.
	*	There are two subdirectories, crunch1 and crunch2.
		Why two? Because if we made one BIG crunch, it would take
		a lot more memory when executing. This is a tradeoff between
		reduced RAM consumption and increased size of two crunch
		archives. If you're sure you have a lot of RAM (like 32MB),
		you can glue them together and thus save ca. 200kB off of
		the target floppy.
	*	There is some (non-conclusive to be sure) rule to estimate the
		RAM requirements: the kernel itself takes ca. 4.1MB and the MFS
		takes its own size (1.44MB by default) of wired down
		(non-pageable) memory. Then, every program started
		will initially take as much as the size of gzip'ped crunch
		archive (e.g. 400kB) PLUS size of gunzip'ped archive (e.g.
		800kB). That's why I split the crunch in two! After initial
		unpacking is done these pages are freed, leaving only the real
		size of executing process.
	*	There are some patches included in these directories, which
		are applied during build process to some of the Makefiles in
		your /usr/src. These patches attempt to decrease the size of
		some programs by cutting off rarely/unlikely used parts. The
		patches are reversed when you do a 'make clean' (or
		scripts/clean for that matter).
	*	In order to have a functioning system you MUST install at
		least /stand/init, or /stand/oinit, or /stand/sysinstall. Of
		course these can be your own programs... But if you install
		the stock /sbin/init, you also have to install some others,
		like sh, getty, login etc...

5.	Make sure that the system you're running has /dev/[r]vn0* entries in
	/dev directory (if not, you can make them with 'MAKEDEV vn0'), AND
	that your running kernel has built-in vnode driver (there should be a
	line in your kernel config file stating 'pseudo-device vn').

6.	You'll need at least 9MB of free disk space, and free /mnt directory.

7.	cd scripts/ and fire off the './build' script. If all is well, after
	some time (like 10-30m) you end up with a 'picobsd.flp' file in this
	directory.

8.	Transfer this file to the floppy:
		dd if=picobsd.flp of=/dev/rfd0

That's all. You're welcome to change and improve these scripts. If you stumble
upon something which looks like a good idea to have it here, let me know.

If, for some reason, the scripts don't work for you at all, also let me know.

Andrzej Bialecki
<abial@nask.pl>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.95.980122113915.14031B-100000>