Last update June 9 2003
The EZ-PicoSETI Page


1.    What is EZ-PicoSETI?
2.    What are the EZ-PicoSETI's minimum system requirements?
3.    What do I need to download?
4.    What hardware and NICS are supported?
5.    I have downloaded the floppy or ISO image, now what?
6.    I have created my floppy or CDROM, now what?
7.    I only see lo0 when I type ipconfig.  I need more help
8.    I want to copy the EZ-PicoSETI sources to my FreeBSD box.  I need help
9.    I want to edit the EZ-PicoSETI kernel configuration files.  I need help
10.  I want to edit other EZ-PicoSETI source files.  I need help
11.  I want to buid a new EZ-PicoSETI distribution.
12.  I want to take my EZ-PicoSETI build and create a bootable CDROM ISO image
13.  I have heard about a security issue with 3.03.  Why are you not running 3.08?



1.  What is EZ-PicoSETI?
EZ-PicoSETI is a SETI@home distribution based on Paul Boehmer's excellent PicoSETI http://www.pboehmer.com/projects/picoseti.html
PicoSETI is based on PicoBSD http://people.freebsd.org/~picobsd/picobsd.html
PicoBSD is a miniaturized FreeBSD's http://www.freebsd.org/ distribution that can fit on floppy, embedded controllers ...


2.  What are the EZ-PicoSETI's minimum system requirements?

386 or faster
32 MB RAM
Floppy or bootable CDROM
No hard disk required


3.  What do I need to download?

I have two versions of EZ-PicoSETI
Here is a zipped 1.44MB floppy image version. 
Here is a zipped 2.88MB bootable CDROM ISO image


4.  What hardware and NICS are supported?

The floppy version has build in support for 3C905, Intel Pro 100, NetGear and NE2000 ISA (0x300H on IRQ10) NICS
The bootable CDROM ISO version includes all the NICS supported in FreeBSD's 4.7 release GENERIC kernel
You can find the list of supported hardware with the FreeBSD's 4.7 release GENERIC kernel here


5.  I have downloaded the floppy or ISO image now what?

Putting the floppy image to a floppy
Unzip the ez-picoseti-raw.zip
Under Unix/Linux you can use dd
usage:  dd if=ez-picoseti-raw of=/dev/fd0   (or similar)

Under Windows you can also try John Newbigin's excellent RawWrite from http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm
usage:  Launch GUI, under write tab browse for ez-picoseti-raw, select write

Under Windows you can also use Michael L. Hasenfratz's older (1.44MB only?) but excellent dd for Dos ftp://ftp.uu.net:/vendor/sun/solaris/x86/dd.exe
usage: dd drive file
          dd file drive
          dd drive drive

Putting the ISO image to a CDROM
Unzip the ez-picoseti-iso.zip file
Use your favourite CDROM burning software to burn a CD from the unzipped ISO image



6.  I have created my floppy or CDROM, now what?
Now the fun part
If you are using the floppy, simply boot your computer from floppy
Be patient as PicoBSD takes a few minutes to boot

If you are using the CDROM, simply boot your computer from CDROM
You may have to set your PC's BIOS to boot from CDROM

1.  After EZ-PicoSETI boots, you will see a login screen.  Logon as root, password is setup
2.  Type ifconfig and hit enter.  If the kernel found a NIC, you should see something like this
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3<rxcsum,txcsum>
ether 00:50:da:b7:d2:87
media: Ethernet autoselect (100baseTX)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
3.  In this example xl0 is the device I want to configure
4.  lo0 is the loopback and if you only see that, the kernel did not find your NIC.  More help on this here
5.  You will need to enter three pieces of information to get networked. An IP address, Subnet Mask and Gateway
Here is an example
Your IP address is 192.168.10.12
Subnet Mask is 255.255.255.0
Gateway  is 192.168.10.1

The command we need to type has this format

ifconfig my-nic-device my-ip-address netmask my-netmask
route add default my-gateway

So we would simply type these two lines
#ifconfig xl0 192.168.10.12 netmask 255.255.255.0
#route add default 192.168.10.1


7.  I only see lo0 when I type igconfig.  I need more help
  1. You can type dmesg which will print the daemon messages at boot.  Look through the output for mention of NIC.  This may help
  2. Recompile a kernel with only your NIC specified. 
  3. If your NIC is a ISA device check the kernel configuration file for your NIC and ensure the required IO and IRQ parameters match the NIC


8.  I want to copy the EZ-PicoSETI sources to my FreeBSD box.  I need help
This involves a few steps but it is fun and worth the learn
1.   I installed FreeBSD Release 4.7 and Release 4.8 from the CDROM ISO.  Be sure to install sources and ports
2.  You can optionally use CVSup to get your ports, sources and docs up to date.  Be carefull with your supfile.  I'll have a CVSup page soon to help
3.  Lets rename two directories to prevent overwritting or clobbering them
     Under FreeBSD, as root, cd to /usr/src/release/picobsd and rename the floppy.tree and mfs_tree to floppy.tree.old and mfs_tree.old or equivalent
       #mv floppy.tree floppy.tree.old
       #mv mfs_tree mfs_tree.old
4.  Obtain the EZ-PicoSETI source file ez-picoseti.tar.gz from here and put this file in /usr/src/release/picobsd
5.  Lastly, cd to /usr/src/release/picobsd and decompress the file
       #tar zxvf  ez-picoseti.tar.gz

9.  I want to edit the EZ-PicoSETI kernel configuration files.  I need help
The kernel configuration files are in /usr/src/release/picobsd/ez-picoseti and are called PICOBSD-FD and PICOBSD-ISO
PICOBSD-FD is the kernel configuration file for the floppy based distribution
PICOBSD-ISO is the kernel configuration file for the CDROM based distribution
I suggest copying the file you want to edit to PICOBSD  
    #cp PICOBSD-FD PICOBSD
Now you can edit this file with your favourite editor.
(If you are using the PICOBSD-ISO configuration file, the resulting kernel will not fit on a floppy but must be build onto a CDROM ISO image)


10.  I want to edit other EZ-PicoSETI source files.  I need help
I cant go into this here, too much information.
PicoBSD's included documentation is a good start and is located in /usr/src/release/picobsd/doc/src
An excellent PicoBSD user and starter FAQ is available at http://www.cse.ucsc.edu/~brucem/pico_notes.htm


11.  I want to buid a new EZ-PicoSETI  distribution.
Ok so you may have edited your kernel configuration file or adjusted a configuration file ... cool
Now its time to test it out
1.  As root cd to /usr/src/release/picobsd/build
    #./picobsd ez-picoseti
2. Adjust the floppy size if necessary. If you are building PICOBSD-ISO, you must adjust the Floppy size to 2880 2.88MB
3.  Choose --> READY, build it <-- and watch it go
4.  Hopefully the build goes ok with no errors.  If errors occur, check the confuration files and adjust accordingly
5.  You are prompted with "Build ez-picoseti completed" while the system awaits you to load a floppy and choose ok
6.  If you are building a 1.44 MB floppy image, you can pop in a floppy and choose ok.  You are done.  Time to test it out
7.  If you are building a 2.88 MB floppy image (later to be converted to CDROM ISO) you must select Cancel.  (unless you have a 2.88 MB floppy)
8.  Your ez-picoseti build is waiting for you in /usr/src/release/picobsd/build/build_dir-ez-picoseti and is called picobsd.bin
9.  If your picobsd.bin is a 1.44 MB floppy build, you can use the information in this page to copy this to floppy disk
10. If your picobsd.bin is a 2.88 MB CDROM build, you must use mkisofs to create a bootable CDROM from this build


12.  I want to take my EZ-PicoSETI  build and create a bootable CDROM ISO image

In theory, you can take any bootable floppy image 1.44 or 2.88 MB and create a bootable CDROM ISO (eltorito)
You must install mkisofs to create the ISO image
    #pkg_add -v -r mkisofs   (or equivalent)

Please read this carefully
Usage is mkisofs -o /tmp/final_iso_name.iso -R -V "Volume name or Label" -v -J -T -d -D -b original-image.img -c eltorito.boot -A "Application ID" .
Makes an ISO image called final_iso_name.iso stored in the /tmp folder with a label "Volume name or Label" from original-image.img
If you run this command from a directory containing only the original-image.img, the final_iso_name.iso will contain original-image.img.
If you run this command from a directory containing the original-image.img and other files, the final_iso_name.iso will contain original-image.img and these other files !!
I hope that made sence


Now get your picobsd.bin file ready in a directoy by itself
From that directory execute this. Dont forget the final dot !!!!
mkisofs -o /tmp/picoseti.iso -R -V "PicoSETI" -v -J -T -d -D -b picobsd.bin -c eltorito.boot -A "PicoSETI" .

BTW you may have noticed a file called mkiso in the EZ-PicoSETI sources
I created this little file because I kept messing up the line above
If you place this file in the same foder as the picobsd.bin file and make it executable, it makes life easier
The file mkiso will be included with the ISO but its itty bitty tiny.
If you need more information, try the mkisofs man pages here


13.  I have heard about a security issue with 3.03.  Why are you not running 3.08?

Here is the official stance from http://setiathome.ssl.berkeley.edu/version308.html
"Version 3.08 is a precautionary security release. There was a potential buffer overrun in the networking code of the client that is fixed with version 3.08.
Note that to exploit this vulnerability, a potential attacker would have to trick the client into contacting a fake server rather than the actual SETI@home server.
To our knowledge, no SETI@home client has ever been attacked in this manner."

As of May 14 2003 here are some more reasons
The FreeBSD setiathome 3.08 compile is for i686 only
It was not compiled with statically linked libraries (You get ELF interpreter /usr/libexec/ld-elf.so.1 not found)
According to the buzz on http://groups.google.com/groups?group=alt.sci.seti, 3.08 is 10-15 percent slower

Honestly, I did try to configure ez-picoseti to run 3.03 similarly to the way it runs under FreeBSD 4.7 Release
A script called setiathome.sh runs the client as an unprivelaged  user called nobody
I needed to add chown and su to the crunch.conf
I then got strange errors related to the crunching of su (su.lo(.text+0x4ce): undefined reference to `skey_getpass' ...)
I couldnt find any help on this error and figured wait out a update to 3.08



If you find an error or wish to comment please let me know.