This page is intended to help volunteers recycle old PC's, install Ubuntu, and distribute them back to the community.
The Freegeek movement, started in Portland in 2000, now exists in a number of communities, and shares lots of advice on how to do this.
The information below was written in 2006 by a group in Pennsylvania, US, and much is now out of date.
This project started in Central PA to help needy kids get free computers. A loose group of volunteers uses this page as a reference for hardware specs, installation instructions, configuration, and distribution procedure. If other people want to start similar projects, we hope that these files and instructions are of use.
Procuring and Processing Old Hardware
Put the word out! Tell people you are doing this, talk to your IT staff at work/school to find out what they do with old machines, talk to your local solid waste authority to see how they collect old computer hardware. There is tons of old hardware out there and people are more than willing to give it away if you tell them it is for a good cause. Take all the hardware that you can get your hands on, since it will take anywhere from 3-6 older computers to cobble together a single acceptable PC. Modems that work under Linux and properly matched memory are the two big hurdles, and while the PC itself may not work, you can sometimes scavange other useful parts.
When a PC comes into the shop
- Boot to BIOS and get info on the CPU, memory and HD, type and size of memory is important
- Open the PC and strip out the memory and put it into labeled bins by type
Pull the modem and check it against http://freewebhosting.hostdepartment.com/g/gromitkc/winmodem.html#Database, and discard incompatible boards
- Pull the HD and label it if needed, as LVM'ing some smaller disks can help
- If the case, mainboard, and CPU are suitable, label the box with the CPU speed, otherwise talk to your solid waste authority about disposal options
Minimum Hardware Requirements
While it is true that you can run Linux quite well on old hardware, running a decent desktop for school work does require a bit more horse power than a single purpose server, so these are minimum guidelines to ensure that the computer will get used.
- 500Mhz Pentium/Celeron/AMD CPU, 300Mhz as bare minimum, avoid Cyrix, VIA, and other CPU's
- 128MB of RAM, 96MB as a bare minimum
- 9GB Disk, 6GB as bare minimum
- Working hardware modem or Linmodem, higher the baud the better
- Working CD and floppy drives
- PS2 keyboard and mouse, preferrably with a scroll wheel
- Working monitor at 1024X768, 800X600 as bare minimum
Anything above these specs is bonus, and people will toss perfectly good CD burners, ethernet cards and other accessories.
Assemble the best parts you can and move on to the install.
If the machine does not have an ethernet port, install an ethernet card just long enough to do the install. The install process relies on the OEM process introduced in the Ubuntu 6.06 Dapper alternate CD, and a web-hosted kickstart file to automate and homogenize the setup as much as possible. Chances are that the modem and X will need to be configured by hand, but the rest of the install should be hands off.
These kickstart files serve a very specific purpose, and may not suit your needs. The postinstall section downloads files from a non-Ubuntu source and overwrites configuration files. Make sure you understand what they are doing before you use these files. All files can be browsed at http://www.cse.psu.edu/~soccio/linux-install/files.
- Download the alternate install ISO and boot it
- Hit F6 which will bring up boot options
Add ks=http://www.cse.psu.edu/~soccio/linux-install/ks.cfg to the boot options and hit return. There is also a ks-big.cfg in the event you get a really nice system together. These kickstart files set the timezone to Eastern/USA, and the locale to en_US, however, the OEM preperation will allow the eventual end user to set their preferred timezone and language.
Once the install is done, log in as oem with password changeme
- Get X working with the monitor that will be paired with the computer
- Test the modem to see if wvdialconf worked, and if not, plug away at loading finding drivers or replace the board and rerun wvdialconf
Once you are satisfied with the install, run oem-config-prepare
- Shutdown the PC and give it away
- When the PC is powered up it will ask questions to set the timezone and keyboard and setup a user
In our case need drove the project, but if you are interested in helping out around your community, talk to school adminstrators and charities to see if there are families or projects that could benefit from some low-end PC's. Here are a few guidelines to help with successful distribution.
- If the recipient will need internet access, it should be purchased and set up before delivery, if at all possible
- It really helps if a volunteer steps the user through the OEM setup and initial login and spends 30-60 minutes answering questions and getting them acclimated
- If this PC will be used by children, provide documentation or verbal guidelines to the parents about safe internet use
- Provide means for support. While the Ubuntu Wiki, Forums, and IRC channels are helpful, volunteers should be willing to answer emails or take some phone calls if a user is completely stuck.
Additional Details of the Install
The kickstart files setup the PC's to do a web install from the us.archive.ubuntu.com repositories. The workaround specified under bug # 48038 is in place so that the install does not ask for a root password. The disks are partitioned to have ext3 filesystems with a 3GB /, 256MB swap, and the rest given to home for the ks.cfg, and 4GB /, 512MB swap, and the rest for home for the ks-big.cfg. In both cases the MBR is zeroed and grub is installed there. X is setup to use Gnome at 1024X768 and should start on boot. The postinstall adds some files to /etc/skel/Desktop that essentially allow a new user to read http://easylinux.info/wiki/Ubuntu_dapper offline as a link on their Desktop. A script is included that runs an update and does a dist-upgrade, followed by installation of Thunderbird, and man. Finally wvdialconf is run to generate /etc/wvdial.conf and attempt to autodetect the modem.