Index: head/release/picobsd/doc/src/Makefile =================================================================== --- head/release/picobsd/doc/src/Makefile (revision 40701) +++ head/release/picobsd/doc/src/Makefile (revision 40702) @@ -1,14 +1,17 @@ # -# $Id$ +# $Id: Makefile,v 1.1 1998/09/26 17:23:01 abial Exp $ # .include "../../Version" +DATE!="date" + DOCS= bugs.html faq.html hardware.html how2build.html \ - intrinsics.html intro.html + intrinsics.html intro.html TODO.html all: ../../Version - for i in `ls *.html`; \ + for i in ${DOCS}; \ do \ - cat $${i}|sed -e 's/@VER@/${VER}/g' >../$${i}; \ + cat $${i}|sed -e 's/@VER@/${VER}/g' \ + -e 's/@DATE@/${DATE}/g' >../$${i}; \ done Index: head/release/picobsd/doc/src/TODO.html =================================================================== --- head/release/picobsd/doc/src/TODO.html (nonexistent) +++ head/release/picobsd/doc/src/TODO.html (revision 40702) @@ -0,0 +1,154 @@ + + +
+This list represents various tasks which are being collected from +discussions on freebsd-small, and which represent the general +direction and needs of using FreeBSD for small installations.
+ +The tasks are arranged by how important they are to the overall +idea and goals of the project. If you are interested in doing some +part of the work, please contact the coordinator of PicoBSD project +(Andrzej Bialecki).
+ +(fill this in :-)
+ +Send your comments, ideas, and most importantly the code itself, to +abial@freebsd.org.
+ + + Property changes on: head/release/picobsd/doc/src/TODO.html ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/release/picobsd/doc/src/bugs.html =================================================================== --- head/release/picobsd/doc/src/bugs.html (revision 40701) +++ head/release/picobsd/doc/src/bugs.html (revision 40702) @@ -1,129 +1,129 @@ - +This is the short release history of PicoBSD, as well as the list of bugs which were found. Some of them were already corrected, so that you should read the list before reporting a new one.
We tried to make this software bug-free, but life is life... Sorry for the inconvenience.
I prepared new tar archive containing these corrected sources.
Unfortunately, I had to remove DEVFS for now - there are too many problems with it for now. This also means that we're back to creating device nodes manually, and chances are that the one you need is missing...
Some people are already working on it, so expect the fixed version in a few days. Its availability will be noted here, on this page, so keep an eye on it.
New features include: NATd, netstat, DEVFS/SLICE instead of standard /dev, additional network drivers, and several minor fixes. Distribution contains also a collection of small versions of system programs (TinyWare), among them custom init(8).
I added also the fourth type of setup - 'router' - which is a specialized version of PicoBSD that focuses on providing as small as possible router solution.
The following bugs were found in this release of PicoBSD:
This was fixed the same day, and the corrected files are: pb03en1.zip, pb03pn1.zip, and pbsd-s031.tgz respectively. They are now under standard links on the main page of PicoBSD project, so if you downloaded after this date, you shouldn't worry.
Please check that you have the fixed versions - the archive name should contain the tiny number, such as "pb03en1.zip", or pbsd-s031.tgz".
What is PicoBSD ?
PicoBSD is a floppy sized version of popular operating system FreeBSD. It fits within a single bootable 1.44MB floppy and runs on a minimum i386 with 8MB RAM. PicoBSD currently comes in four flavours: dialup, net, router and isp. For a description of how each of the flavours differ, take a look at the PicoBSD home page.
What is this "pico" in the name?
It's an SI measure unit, which is equivalent of 10e-12. This is a good approximation of more colloquial "extremely small".
You can also think of normal FreeBSD as a system infested with fully grown daemons, and PicoBSD as a system infested with "the little people" :-).
What version of FreeBSD is PicoBSD based on ?
PicoBSD has versions based on FreeBSD 3.0-RELEASE, 3.0-current and FreeBSD 2.2.5-RELEASE. Andrzej Bialecki maintains the FreeBSD 3.0-RELEASE and -current versions and Dinesh Nair maintains the FreeBSD 2.2.5-RELEASE version. Both the versions don't differ by much except for the following:
What is current version of PicoBSD?
Current version of PicoBSD is @VER@.
What can PicoBSD do?
With the TCP/IP capabilities of FreeBSD included in and based on the strong 4.4BSD TCP/IP stack, PicoBSD can be used as a low cost Network Computer. With a text based HTML 3.2 compliant browser (2.2.5-RELEASE version only) and Internet access tools such as telnet and ftp, it can serve as a low cost Internet dialup client. With support for mounting MSDOS and Unix harddisks, it also can be used as a portable OS which you can carry around in a floppy. The net and isp flavours would allow you to make use of those redundant i386es as a low cost router or dialin PPP server. With SNMP and firewall support built-in, PicoBSD provides the functionality of dedicated routers and dialin terminal servers.
What are PicoBSD's minimum requirements?
PicoBSD runs on a minimum i386 with 8MB RAM for the dialup flavour and 10MB RAM for the net and isp flavours. Diskspace requirements are a single 1.44MB floppy. For on-demand PPP access, a modem would be required, either external or internal. For LAN access, an Ethernet NIC (support for 3Com, NE2000 etc available) would also be required.
In case of "router" flavor, its requirements are even smaller: it can run in only 4MB of RAM, on a 386SX CPU.
Where do I get PicoBSD?
PicoBSD is available at the following locations:How do I copy it to the floppy?
The binary images provided as part of the PicoBSD distribution are 1.44MB sized floppy images. They cannot be copied to a floppy using the MSDOS COPY or Unix cp commands. Instead, an image copy must be done using tools such as rawrite.exe or fdimage.exe under MSDOS and dd under Unix.
Under DOS you would do something like this:
C:\> fdimage.exe picobsd.flp a:while under Unix you would use something like:
How do I configure dialup PPP access on the Dialup flavour?
There is an auto-configuration script to configure PPP dialup access. Run /stand/dialup after booting up from the floppy and make the relevant menu selections. Once you've tested it to work, you should make your changes permanent by committing them to the floppy using /stand/update.
How do I set my DNS server ?
Use the provided /stand/ee editor and edit /etc/resolv.conf. Replace the domain with your domain and change the nameserver IP address to your nameserver or your ISP's nameserver. You may have as many nameserver lines as you want. Don't forget to run /stand/update to commit your changes to the floppy.
NOTE: starting with version 0.4, the dialup scripts asks you to set your nameserver as well as default domain name.
I can't execute the /stand/update on the "router" floppy.
The "router" floppy doesn't contain any real shell, so some commands work differently (and some don't work at all). In order to use this script you have to source it in, i.e.:
(48)/# pwd / (48)/# . /stand/update
How do I set my hostname ?
Edit /etc/rc.conf and change the value of the hostname variable.
PicoBSD has "mkdir" but not "rmdir". How can I delete subsdirectories?
"rm -d" will delete directories.
Can I use a modem configured on COM3/COM4 instead of COM1, COM2?
Yes, but these ports are initially disabled - most machines have only two serial ports anyway. You have to enable them in UserConfig.
Here are the preferred settings:
I see a configuration conflict the first time I boot PicoBSD. What should I do?
Disable those devices which are not present in your machine. If there is still some conflict, change the settings (I/O port, IRQ etc.).
Exception: if you're using a PS/2 mouse, the visual configuration tool will display CONF for sc0 and psm0. The default settings are correct, and you should simply ignore the warning.
What kind of SCSI support is there?
None. Either build your own version of PicoBSD, or just install normal FreeBSD distribution.
Using version 0.4 I get many strange messages on my console...
This is related in large part to DEVFS subsystem - it is still somewhat experimental, and its author left some diagnostics turned on.. They are harmless. Versions 0.4x, x>0 don't use DEVFS at all, as it was too experimental to work reliably...
How do I connect using PPP ?
Just run the PPP process, /stand/ppp. at the ppp on pico> prompt, type dial and sit back and wait for the modem to sing it's mating tunes. When the ppp on pico> prompt is capitalized to PPP on pico>, you've managed to succesfully achieve a link-level PPP and TCP/IP connection with your ISP. Additionally, the PPP program will enter Packet Mode. Remember, don't quit or close the PPP connection if you want to continue to access the Internet. Type help at the ppp on pico> prompt for a list of PPP commands.
The PPP process is running on my screen. How do I use the browser or telnet to a host ?
PicoBSD has many virtual terminals, 10 on the dialup flavour. You have run PPP on the first virtual terminal. You can switch to the others and run the browser and telnet clients there. Switching thru the VTs is done by ALT-F1 for VT0, ALT-F2 for VT1, ALT-F3 for VT2 etc. From these terminals, you could use telnet or the lynx browser cum newsreader.
I can't establish a PPP connection. The mouse pointer randomly appears and disappears. and moving the mouse has no effect.
You have the mouse driver configured to use the modem's serial port.
Issue a 'ps -ax', remember the pid (process ID) of 'moused', then issue a
'kill -9
I saved my lynx configuration but it was not there when I rebooted. Why ?
The lynx configuration is saved in /etc/lynx.cfg. You should run /stand/update to commit this to the floppy when you change the configuration. In effect, anything you change in /etc can be committed by running /stand/update.
How come there are no manual pages ?
Well, this is a floppy-sized OS, so there's not enough space for full
manpages. Instead, short help descriptions are given with the /stand/help
program. If you need more detailed descriptions, take a look at the FreeBSD
Handbook or the FreeBSD Home.
Last Modified: -Thu Oct 15 23:31:28 CEST 1998 +@DATE@
Index: head/release/picobsd/doc/src/hardware.html =================================================================== --- head/release/picobsd/doc/src/hardware.html (revision 40701) +++ head/release/picobsd/doc/src/hardware.html (revision 40702) @@ -1,107 +1,112 @@ - +Below you will find supported configurations for each of the flavors of PicoBSD as of version @VER@, as well as the lists of programs included.
NE2000 compatible ISA and PCI cards, most SMC and 3C503
3C509 ISA card
Intel EtherExpress ISA, StarLan, 3C507
DEC EtherWorks 2 and 3
Lance/PCNet
There's also the fourth version, which can serve as a dialin server - I hope you'll find it as a cheap yet reliable alternative to commercial communication servers :-)) This work is still in progress, and I need some people to test the early dial-in server version.
+ +picobsd.tgz. It contains the scripts
you'll need. Also, I assume you run quite -current system with
full sources installed.
NOTE1: beginning with version 0.4, PicoBSD sources are maintained as part of official FreeBSD CVS repository, so if you have recent source tree you can find them in /src/release/picobsd.
NOTE2: there were some mysterious interactions between vn(4) driver and 'disklabel auto' in versions earlier than 3.0. There is another set of scripts prepared by Dinesh Nair which allows to build PicoBSD floppies on a earlier systems.
Unpack the archive into your src/release/picobsd.
You'll need at least 5MB of free space.
cd build) and run the
./build script. Select target language, size of MFS and
one of pre-canned setups (personal dialup, dialin server or
router-like). Details of each setup are contained in dial/,
router/, isp/ and net/ directories respectively. You should at least
check ${TYPE}/config/PICOBSD file to make sure it contains
the drivers you want.
You can also choose a special type called 'custom'. You'll need to
supply the full path to your own custom config tree constructed
exactly like one of the standard config directories. Also, you'll
probably want to adjust the number of inodes on MFS - see the
stage1 script and look for INODES=.
I also recommend to adjust the ISA devices parameters to
match the ones of your hardware - though PicoBSD can save the
changes from UserConfig, this way it will produce smaller
/kernel.config file.
build/stage3.
build/ main build directory; you MUST cd here! dial/ config files for dialup setup conf/ kernel config file crunch1/ crunch of system programs mfs.tree/ contains the MFS configuration lang/ contains language-dependent files floppy.tree/ contains the startup floppy hierarchy isp/ config files for dialin server setup ... (as above) net/ config files for router-like setup ... (as above) tinyware/ collection of small system utilities tools/ additional tools them needed during build
There are no /etc/passwd nor /etc/pwd.db
files on the "dial" floppy - in case of other types, they are
reconstructed from /etc/master.passwd on each startup
(and then put on MFS with the rest of /etc).
In case of "dial" type floppy, you don't need them at all.
NOTE: thanks to the above, the floppy is needed only during startup,
and then only if you want to synchronize (possibly 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.
${TYPE}/crunch1 directory, and edit it
to suit your needs. Keep in mind that floppies aren't made
of rubber... :-)
/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 build/clean
for that matter).
NOTE: patches may fail to apply, if your sources are too different from the ones I used. Don't worry: they are so straightforward that you can apply them by hand.
/stand/init, or /stand/oinit,
or /stand/sysinstall in
your crunch.conf. 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...
This release of PicoBSD contains a small replacement for init(8), called 'oinit'. You can find it in TinyWare collection. The main building script allows you to use it instead of normal init(8). Be sure to read the oinit's docs before you decide to use it!
cd build/ and fire off the ./build
script. Select the build parameters or 'n' for 'no change'. If all
is well, after some time (like 10-30m) you end up with a
'picobsd.bin' file in this directory.
WARNING: make sure you don't have stale .depend files
around!!! You may encounter many strange errors during build process
in that case.
If there were any errors, please execute each script by hand and try to find what causes this error. Most often this will be one of the following reasons:
crunchgen can't find the source directory for a
program 'proggy':
stage1 script ends).
2>&1 redirections from Makefiles
to see the stderr.
dd if=picobsd.bin of=/dev/rfd0(The 'build' script asks you if you want to do this.)
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.
-<abial@nask.pl> +For those of you who really want to know what's going on behind the scene, and can't quite deduce it from scripts themselves, here's short description of the build process:
If there is no such file, the script starts compilation of the kernel, using template in ../${YTPE}/conf/PICOBSD, and adding parameters which determine the built-in MFS size.
One notable exception here is with the "router" floppy - I use one of extended floppy formats (820kB).
After the file is labelled, the newfs(8) is run. Here you can adjust the parameter -i, which can gain you some space on the MFS (sacrificing available number of inodes, so be careful).
Such prepared blank filesystem is mounted on /mnt. Here the stage1 ends.
The MFS tree includes the /etc, which will contain the startup file /etc/rc. This file in turn doesn't do anything useful except copying the real /etc hierarchy from the floppy filesystem. (There's one possible improvement which comes to my mind - to have the whole /etc on the floppy in tar.gz - this would require only one inode to store the whole /etc, and we could gain some kB on the floppy)
After preparing the filesystem (which again involves doing disklabel(8) and newfs(8) - here you can notice that the resulting FS has very small number of inodes in order to save space), the script transfers the floppy hierarchy (which is taken from ../${TYPE}/floppy.tree). Notice that it also contains the /etc directory - its contents is copied right after bootup to the real /etc in MFS. This allows for changing the system behaviour (because you can't change the MFS contents without recompiling).
The script finally copies previously prepared kernel to the floppy filesystem. The filesystem is unmounted, and here the build process ends.
Contents:
Get the full PicoBSD Development Kit as well as full CVS repository of the project.
If you ever dreamed about having really small, tiny, minimal system that would offer you benefits of Unix, while still fitting in reasonable space - here it is!
PicoBSD is a one floppy version of FreeBSD 3.0-current, which in its different variations allows you to have secure dialup access, small diskless router or even a dial-in server. And all this on only one standard 1.44MB floppy - no need to sacrifice over 100MB of your precious HDD space.
PicoBSD is... well, pico-sized :-) , and the minimal hardware that is required to run it is 386SX CPU with 8MB of RAM (no HDD!).
Here you can find detailed list of supported hardware and features.
Current version of PicoBSD is @VER@, and this means that I consider it still immature, while on the other hand being somewhat tested and improved over previous versions. Does it tell you something? Well, at least you can try it - I cannot guarantee that it doesn't burn your house or blow up your machine, though the former is unlikely... :-)
There are two language editions of PicoBSD - English and Polish one. You'll be probably more interested in the former :-) The only difference is in the set of fonts included, C locale, and the language of messages.
You can download them from www.freebsd.org or one of its mirrors:
(See the feature list for more details)
The above floppies were built from 3.0-current sources. Though they provide more features, they tend to be less stable than the latest RELEASE of FreeBSD. Dinesh Nair back-ported these scripts to the latest release (2.2.5), and continues development of PicoBSD using sources from that branch. You can find floppies built from 2.2.5 sources here or at his server.
Previous versions were packed with PKZIP(tm) compatible program - now they are simply the raw binary floppy images, so you just need to grab the appropriate version of the file.
I assume you will use 1.44MB floppy to boot the system - other sizes (bigger) are not tested.
The file 'pb_xx-X.bin' must be written onto a blank floppy. It does NOT mean that it can be copied using e.g. DOS 'copy' command. You must use a program like rawrite.exe or fdimage.exe to write this file directly on the raw floppy.
Under DOS you would do something like this:
C:\> fdimage.exe pb_xx-X.bin a:
while under Unix you would use something like:
dd if=pb_xx-X.bin of=/dev/rfd0
Then boot off this floppy and enjoy!
If you feel lost, try the 'help' command (it's available only on "dialup" floppies)
I made available also the set of tools (a.k.a the PicoBSD Development Kit) I used to create the floppies (see also the detailed instructions)
You can also access the full CVS repository of PicoBSD - beginning with
version 0.4 it's a part of official FreeBSD CVS and lives in
src/release/picobsd. I also create the snapshots of this source
tree - keep in mind that they are not so up-to-date as the tree
in FreeBSD CVS. You can get the snapshot I made on
Mon Oct 12 00:53:02 PDT 1998
here.
Now, if you don't like the setup of PicoBSD, or you miss some program, or (better yet) you want to improve PicoBSD - you can grab the copy of exactly the same tools I used and build your own, customized version!
Think of it: if your're an ISP, you can build the dialup version for your customers, including some scripts to automatically connect them to your site. You can also create a demo disk for your friend (or your boss! :-)). You can also build a firewall/router for your office, etc, etc... possibilities are really endless and limited only by your imagination.
You will need at least 10MB of free disk space for building, and of course the full system sources installed. I also assume that the sources are quite -current. There is also a back-ported version of the scripts prepared by Dinesh Nair which builds ok on 2.2.6-R systems.
Version 0.31 was packed with pax(1) - newer versions are packed again with tar and gzip to avoid confusion... :-)
I'm very interested in hearing from you about your experiences - if you come up with a setup you think is interesting, please let me know!
Almost all of the programs included on the floppies are exactly the same versions as in normal FreeBSD installation, so that the normal manual pages apply. However, I didn't include the manpages themselves - they would take over 200kB!
For the total newbies, which would use (I assume) the 'dialup' version, there is a short README on the floppy which gives step by step instructions on how to get a dialup connection. There is also a script called 'dialup' which attempts to configure PPP to allow for automatic log in to your provider, and for background operation. There is also a small help system ('help' command)
There are some system utilities which are unique to PicoBSD, and at this moment they are documented in detail only in source and READMEs :-(.
As for the new releases which will (hopefully) be prepared in the future: just keep an eye on this page. I'll also send announcements to FreeBSD mailing lists.
Well, I hope that thanks to your comments I'll be able to continuously improve the setup and contents of PicoBSD. I also have specific dreams (if dreams can be specific..) - here they are, as an incentive to your imagination and coding skills:
Well, currently you can read very preliminary draft of proposed +architecture, called the Unified Configuration Interface.
The following people are either responsible for the very existence of this -project, or significantly eased my pains of gaining necessary knowledge:
+project, or significantly eased my pains in gaining necessary knowledge:PicoBSD is distributed under BSD copyright, which allows you to use it in various ways, including commercial applications. So grab it and enjoy! And if you feel that you want to help with this project, either by donating some time to write code, or by some other donation, just contact me.