Linux Ecology-HOWTO

Werner Heuser

Wade Hampton

Michael Opdenacker

0.20, 2009-09-28

The Linux-Ecology-HOWTO discusses ways to make computers less harmful to our environment and to solve some ecological issues. It explains how to use Linux to save power and consumables like paper and ink. Since it does not require big hardware, Linux may be used with old computers to make their life cycle longer. Games may be used in environmental education and software is available to simulate ecological processes.

Copyright © 1999-2009 by Werner Heuser. This document may be distributed under the terms set forth in the LDP license at COPYRIGHT. The information in this document is correct to the best of my knowledge, but there's a always a chance I've made some mistakes, so don't follow everything too blindly, especially if it seems wrong. Nothing here should have a detrimental effect on your computer, but just in case I take no responsibility for any damages incurred from the use of the information contained herein. All trademarks belong to their owners.


Table of Contents
Introduction
1. Objectives
2. Caveats
3. About the Document and the Authors
1. Reduction of Power Consumption
1.1. Advanced Power Management (APM/ACPI)
1.2. Power Management Unit - PMU (Apple PowerBook)
1.3. Turn Monitor off, use Keyboard LEDs
1.4. Screensavers
1.5. Virtual Servers: Consolidation and Virtualization
1.6. Energy Star Label
1.7. Using Spare CPU Cycles
1.8. Miscellaneous Power Saving Techniques
2. Alternative Power Supplies - Sun, Wind, Water
3. Noise Reduction
3.1. Fan
3.2. Harddisk
3.3. Speakers
4. Saving Consumables (Paper, Ink, etc.)
4.1. Printing of Drafts / Multiple Pages on One Sheet of Paper
4.2. Double Sided Printing
4.3. Reading From the Monitor Instead From Paper
4.4. Other Techniques
5. Ecological Behaviour is Convenient
6. Recycling of Consumables (Paper, Printer Cartridges, CD, Floppies, Tapes)
7. Reduction of Radiation, Electro Magnetic Fields, Heat
8. Extending the Life Cycle of your Hardware
8.1. Recycling of Hardware
8.2. Other Techniques
8.3. Linux BadRAM Patch
8.4. Installing Linux on Older Hardware
8.5. Upgrading and Repairing Computer Hardware and Communication Devices
8.6. Other Operating Systems
9. Using Linux on non-PC Hardware
9.1. Using Consumer Electronics Devices
9.2. Using Embedded Linux Boards
10. X10 - Home Automation System
11. Uninterruptible Power Supply - UPS
12. Games
13. Ecology Software (Simulation, Data Collection, Statistics, etc.)
13.1. Ecolab
13.2. Tierra
13.3. Linux in Environmental Research
13.4. SWARM
13.5. Climate-Dynamics
13.6. UNCERT
13.7. EcoTopia
13.8. Digiqual
14. Related Projects, Mailing Lists and Newsgroups
15. Credits
16. Revision History
A. Appendix A - Linux with Laptops
A.1. Ecological Comparisons of Computers
A.2. Battery
A.3. PCMCIA Card Services and Advanced Power Management
A.4. Power Saving Techniques
B. Appendix B - MP3-Hardware-Decoder at Parallel Port
C. Appendix C - Bibliography
D. Appendix D - Recommendations for Buying a New Computer
E. Appendix E - A New Environmentally Friendly Hardware Design
F. Appendix F - Computer Related Eco Labels
G. Appendix G - Other Operating Systems
G.1. DOS
H. Appendix H - URLs of Recyclers

Introduction

 

Life is the first gift, love is the second, and understanding is the third.

  Marge Piercy

Though computers can be seen as part of environmental pollution, there are also ways to use computers in a more reasonable manner to help protect the environment. So I have just started to collect some means to do so with Linux.


1. Objectives

Some objectives of the HOWTO:

  • Reduction in power consumption.

  • Reduction in consumables like paper and inks.

  • Reduction in waste by reusing older components or keeping them in service longer.

  • Reduction in toxic waste such as used batteries.

  • Use of Linux in environmental education and research.


2. Caveats

Some of the recommendations in this text are discussed controversial, for instance: powering down a device, when it's not in use. This may save power, but not under all circumstances. Also it may have other additional ecological costs, e.g. the life time of the device can be shortened.

I don't have enough technological knowledge to make a decision between these alternatives. Also some alternatives might be rated differently by different persons. So finally the decision what to choose is up to you. Anyway if you have better alternatives please let me know.


3. About the Document and the Authors

3.1. Miscellaneous

If I didn't provide an URL for a program or a package, you may get it from Debian or as a RPM package, from your favorite RPM server, for instance rpmfind.

Some parts are modified chapters from my Linux-Mobile-Guide and my InfraRed-HOWTO.

The document is included in the LINUX DOCUMENTATION PROJECT.

The latest version of this document is available at Computers and Ecology .

A summary presentation about this HOWTO has been contributed by Michael Opdenacker from Free Electrons, which also has made many contributions to this document itself.

Since Wade Hampton provided a great amount of information included into this text I consider him as a co-author. Though all responsibility for any mistakes is taken by me.

Please feel free to contact me for comments or questions about the HOWTO. I know this material is not finished or perfect, but I hope you find it useful anyway.

Werner Heuser <wehe[AT]tuxmobil.org>


3.2. Translations

Jun Morimoto <morimoto at xantia.citroen.org> has written the translation into Japanese.

A translation into Chinese(Big5 code) is proposed by Richie Gan. It is part of the Chinese Linux Document Project. You may contact CLDP coordinator <cwhuang at linux.org.tw> to reach him.

Victor Solymossy <victor at lig.dq.ufscar.br> proposed a translation into Portuguese.


Chapter 1. Reduction of Power Consumption

There are some means to save power when using a computer which are supported by Linux: Advanced Power Management, certain harddisk settings, working without monitor and others.


1.1. Advanced Power Management (APM/ACPI)

Putting your GNU/Linux PC in suspend or hibernate mode.


1.1.1. ACPI

Most modern PCs support the ACPI (Advanced Configuration and Power Interface) standard. The ACPI4Linux project works on implementing full ACPI support in the Linux kernel, including fan control, dock/undock detection.

All ACPI related information (such as processor or board temperature) is available through files in /proc/acpi. For example, this makes it very easy for desktop environments (or for your own programs) to display to temperature information somewhere on your screen.


1.1.1.1. Hibernate to disk

Use hibernate to disk and no longer be afraid of switching off your system. Booting is much faster than having to wait for services and graphics to start up. Actually, most of the time is saved by getting back to your work as you left it before suspending your computer (open files, terminals, browser windows). There is no need to re-open everything!

While hibernating is often considered as a power saving solution for notebook computers, it should also be used for desktop computers, to save AC power. Use it when you go for lunch, when you leave the office in the evening or for holidays...

Hibernating also saves a lot of time when you replace a battery of a notebook. Again, hibernate, install a fresh battery, power up and get back to your work as you left it off.

Technical details

  • Hibernation to disk is implemented by the Suspend 2 for Linux project. It consists of a kernel driver and a user-space program to control the driver. Users just need to run the program (usually called hibernate).

  • It works by copying the whole of used RAM to a swap partition. As a consequence, it requires the swap partition to be at least as big as the amount of RAM.

  • Both the patched kernel and the user-space program are very easy to install through packages.

    • Here are Fedora Core packages for download.

    • At least in the 6.06 release of (K)Ubuntu, hibernating is directly available as an option from the battery icon.

    • Go to your favorite package source for other distributions


1.1.2. Older hardware with APM

1.1.2.1. Linux Compatibility Check

From the Battery Powered Linux Mini-HOWTO " .. for APM to work on any notebook or energy-conscious desktop, the system BIOS ROM in the machine must support the APM standard. Furthermore, for APM to work with the Linux operating system, the system BIOS ROM must support either the 1.0 or 1.1 version of the APM standard, and it must also support 32-bit protected mode connections. A system that supports APM 1.1 is preferred, as it provides more features that the device driver and supporting utilities can take advantage of." You may get information about the APM version with the dmesg command and in the /proc/apm file.


1.1.2.2. Introduction

When you first install Linux, you will probably have to recompile the kernel. The kernel that came with your distribution probably does not have APM enabled.

APM support consists of two parts: kernel support and user-land support.

For kernel support, enable the parameters in the corresponding kernel section. AFAIK not all features work with laptops. AFAIK the feature CONFIG_APM_POWER_OFF works with most laptops.

The utilities for userland support may be found at WorldVisions. APMD is a set of programs that control the Advanced Power Management system found in most modern laptop computers. If you run a 2.2.x kernel and want to experiment, Gabor Kuti <seasons at falcon.sch.bme.hu> has made a kernel patch that allows you to hibernate any Linux system to disk, even if your computers APM BIOS doesn't support it directly.


1.1.2.3. Caveats

If you have another operating system preinstalled or use another operating system at the same disk, make sure there is no "hibernation" or "suspend" tool installed, which could severely interfere with Linux, e.g. it might use disk space which is occupied by Linux or vice versa.


1.1.2.4. Troubleshooting

Sometimes X windows and APM don't work smoothly together, the machine might even hang. A recommendation from Steve Rader: Some Linux systems have their X server hang when doing apm -s. Folks with this affliction might want switch to the console virtual terminal then suspend chvt 1; apm -s as root, or, more appropriately, sudo chvt 1; sudo apm -s. I have these commands in a script, say, my-suspend and then do xapmload --click-command my-suspend .

On some new machines (for instance HP Omnibook 4150 - 366 MHz model) when accessing /proc/apm, you may get a kernel fault general protection fault: f000. Stephen Rothwell explains: "This is your APM BIOS attempting to use a real mode segment while in protected mode, i.e. it is a bug in your BIOS. .. We have seen a few of these recently, except all the others are in the power off code in the BIOS wher we can work around it by returning to real mode before attempting to power off. Here we cannot do this."


1.1.3. Processor frequency scaling

cpufreq is a Linux kernel driver to control the CPU frequency. It is included in all recent kernels and enabled by default by recent distributions. It supports most recent "mobile" processors. Note that only such processors support frequency scaling.

This driver lets user programs control cpu frequency by writing files in /sys/devices/system/cpu/cpu<n>/cpufreq/.

Actually, frequency scaling is usually handled by a governor program, according to system or user specific preferences.

CPUSpeed is the de-facto governor for Linux. It allows to control the cpufreq driver according to user defined criteria: CPU load, board temperature, battery / plugged in... It is released by default in recent distributions.

CPUspeed is usually configured through the /etc/cpuspeed.conf file (Fedora Core 4 example):


VMAJOR=1
VMINOR=1
DRIVER="speedstep-centrino"
OPTS="-i 2
-t /proc/acpi/thermal_zone/THM/temperature 70
-a /proc/acpi/ac_adapter/AC/state
-p 10 25
-m 600000 -M 1600000"

After making changes, you can restart CPUspeed with /etc/init.d/cpuspeed restart (Fedora Core example).

Type /usr/sbin/cpuspeed -h for details and more options.

You can type cat /proc/cpuinfo to consult the current processor speed. That's useful to check that the processor speed is scaled according to your settings.


1.1.4. Useful Resources for Power Management

  • hdparm - hdparm is a Linux IDE disk utility that lets you set spin-down timeouts and other disk parameters. It works also for some SCSI features.

  • Laptop Mode - A feature implemented in the Linux kernel since the 2.6.6 version. The idea is to spin up the hard disk only when reading uncached data, to delay and group disk writes, in order to reduce hard disk power consumption and save battery life. Control scripts are shipped by default by recent distributions.

    Laptop Mode may not be activated by default by distributions, as it is not recommended for servers and laptops running on AC power, because of the risk to loose data in a crash or sudden power off.

  • Dynamic Tick is available since kernel 2.6.21 and later. When enabled, this kernel feature allows to disable the CPU timer interrupts when all processors are idle. This way, idle systems are not woken up every 4 ms (default setting in Linux 2.6) just to realize there is nothing to do! This can save a little bit of power in notebooks (and CPU cycles in virtual hosting servers). Regular timer interrupts are re-enabled when something really happens, when a real hardware interrupt is received. In kernel configuration, this feature can be selected from the Kernel Features section (NO_IDLE_HZ setting). You can verify whether it is enabled with cat /boot/config-$(uname -r) | grep CONFIG_NO_HZ.

  • Mobile Update Daemon is a drop-in replacement for the standard update daemon, mobile-update minimizes disk spin ups and reduces disk uptime. It flushes buffers only when other disk activity is present. To ensure a consistent file system call sync manually. Otherwise files may be lost on power failure. mobile-update does not use APM. So it works also on older systems.

  • The noatime and nodiratime mount options can be used to reduce disk writings. In operating systems like Linux which comply with the POSIX standard, filesystems are supposed to record the last time files are read. With default kernel settings, even if files are read from the file cache in RAM, this causes time data to be written to disk every 5 seconds. You may use a line like this /dev/hda3 /data ext3 defaults,noatime,nodiratime, 1 2 for example in /etc/fstab.

    To avoid this and reduce disk activity, you can add the noatime mount option to lines in the /etc/fstab file.

    This option doesn't have any known or significant impact on regular programs, except perhaps for backup / archiving software for which file access time information is useful.

  • Toshiba Linux Utilities - This is a set of Linux utilities for controlling the fan, supervisor passwords, and hot key functions of Toshiba Pentium notebooks. There is a KDE package Klibreta, too.

  • LCDproc - "LCDproc is a small piece of software that will enable your Linux box to display live system information on a LCD display. It supports a lot of serial and parallel LCDs.

  • Dial Daemon - The Diald daemon provides on demand Internet connectivity using the SLIP or PPP protocols. Diald can automatically dial in to a remote host when needed or bring down dial-up connections that are inactive.

  • Getting your computer to use the least amount of power can be problematic. Intel's http://www.linuxpowertop.org/ project provides information on reducing power usage, tips, and tricks for Intel-based computers running Linux. As a first step, Intel has released PowerTOP, a tool that helps you find what software is using the most power. By fixing (or closing) these applications or processes, you can immediately see the power savings in the tool. You'll also see the estimated time left for battery power if you are running a laptop. The Tips & Tricks page has fixes for a lot of the issues that are already found.


1.1.5. Restoring your Work after Shutdown

Even if you don't use hibernate or suspend and switch off your system in a standard way, you still have ways of saving time getting back to your work.

Modern graphical environments (KDE or Gnome) restart the applications that were open when you logged out. However, most applications just get back to their initial state and you will probably need to open your files again.

For people who do not want to loose the HTML pages they were browsing, the Mozilla Firefox browser as a nice Bookmark All Tabs... command in the Bookmarks menu. This is very convenient to restore a set of tabs or just to start your browser with all your favorite information sites when you arrive in the morning. Firefox v3 can save the current state of the browser and will restore it upon powerup.

So, unless your computer is really computing something, you have less excuses for keeping it on!


1.2. Power Management Unit - PMU (Apple PowerBook)

PowerBooks don't support the APM specification, but they have a separate protocol for their PMU (Power Management Unit). There is a free (GPL) daemon called pmud that handles power management; it can monitor the battery level, put the machine to sleep, and set different levels of power consumption. It was written by Stephan Leemburg <stephan at jvc.nl>, and is available from PPC distribution FTP sites. There is also an older utility called snooze available from the same sites that just puts the PowerBook to sleep.


1.3. Turn Monitor off, use Keyboard LEDs

There are some tools which allow to get information from your computer without using the monitor:

  • bl : Blink Keyboard LEDs

  • blinkd : "Blinks keyboard LEDs for an answering machine or fax machine. Blinkd is a client/server pair, that lets the keyboard LEDs blink, indicating things like the number of incoming voice calls in the voice box or incoming faxes in the spool."

  • mailleds : Shows new mails with the keyboard LEDs, mailleds is a quiet, unobtrusive way to signify that you have new mail: a user daemon to blink LEDs when there is new mail.

  • tleds : Blinks keyboard LEDs indicating TX and RX network packets. They blink Scroll-Lock LED when a network packet leaves the machine, and Num-Lock LED when one is received.

  • ledcontrol: is a program that allows you to show different information on the normally-unused LEDs on your keyboard. You can configure it to show virtually any true/false condition accessible or indicate an arbitrary number. The monitoring is by default done by shell scripts to allow for maximal configurability.


1.4. Screensavers

1.4.1. Screensaver Programs

Do they only prevent the screen from being burned in or do they save power, too?

Some recommendations from Wade Hampton: Screensavers usually display graphics, look for ETI, or perform other tasks. When using your screensaver in this manner, you may actually consume MORE power. For example a computer using XSETI as a screensaver might get far warmer (hence use more power) than when it was being used to edit a document or perform a compile.

Some screen saver programs:

  • The purpose of xscreensaver is to display pretty pictures on your screen when it is not in use, in keeping with the philosophy that unattended monitors should always be doing something interesting, just like they do in the movies. The benefit that this program has over the combination of the xlock and xautolock programs is the ease with which new graphics hacks can be installed: you don't need to recompile this program to add a new display mode, you just change some resource settings. Any program which can be invoked in such a way that it draws on the root window of the screen can now be used as a screensaver without modification. The programs that are being run as screensavers don't need to have any special knowledge about what it means to be a screensaver.

  • LockVC is a console-locking-program combined with a starfield screensaver. Executing LOCKVC on a virtual console brings up a starfield that starts to rotate around all three axes.


1.4.2. Display Power Control

To really save power, and if your X server plus monitor supports it, use the dpms option of xset (see the manual page for xset). For example, to enable the DPMS (Energy Star) features of you X server: xset +dpms

You may also manually change the mode of your X display:


xset dpms force standby
xset dpms force suspend
xset dpms force off

Note that suspend and off usually save much more energy than just standby, especially in CRT displays.

According to manufacturers, switching off LCD displays more often doesn't reduce their lifetime. As user can easily notice, there is no significant penalty either between suspend and off modes in terms of switching on time.

In modern graphical desktop environments (like Gnome and KDE), it is easy to configure automatic display switch off after a given inactivity timeout:

  • KDE display power management: configure it in Control Center -> Peripherals -> Display -> Power Control.

  • Gnome display power management: configure it in Desktop -> Preferences -> Screensaver -> AdvancedControl Center -> Peripherals -> Display -> Power Control.

AFAIK a CRT consumes on the order of 25 percent more power when displaying a plain white screen than displaying a plain black screen. So, a screensaver that's mostly black can help save power, even if it doesn't actually use DPMS to power down the screen. Of course, one that's very bright and colourful, or that keeps the CPU running fast is not much help.


1.5. Virtual Servers: Consolidation and Virtualization

On enterprise networks, or on the Internet, security constraints may require that different services are run on different, isolated servers. The problem with this one server per service approach is that most spend a lot of idle time waiting for some rare activity bursts.

Several technologies now make it possible to run several GNU/Linux servers inside a real, physical GNU/Linux server. As in physical servers, each virtual server is isolated from the others. So, this approach retains the benefits of separate servers, but makes it possible to share some hardware resources like the CPU and network bandwidth. On the other hand, each virtual server enjoys a reserved amount of RAM and disk space.

The benefits of virtual servers are obvious in terms of cost, power consumption, optimum use of hardware resources, and consumption of computer materials. There is another key advantage for hardware maintenance: virtuals servers can very easily and transparently be migrated from one physical server to another.

Virtualization solutions:

  • User Mode Linux - The original solution. Allows to run one or several Linux kernel executables on a Linux machine (with a standard kernel) as regular programs.

  • Xen - An increasingly popular alternative, with very little performance overhead. Also allows live server migration to other hardware. Requires a patched Linux kernel.

Virtuals servers all already very popular solutions for website hosting, but virtualization still has a very strong potential in corporate networks.


1.6. Energy Star Label

Robert Horn <rjh at world.std.com> wrote: "

I had a chance to discuss Energy Star with the designers of desktop printers. They confirmed that the allowable stand-by power targets depend on the device, and they only knew their targets. But they made some other interesting comments:

  • Energy Star ratings lead to significant operational power savings. Timer based power savings are the exception. Most savings come from designing in power on demand with low leakage drivers. For example, using stepper motors with low leakage current instead of high leakage.

    This savings is both from individual designs and from the resulting demand for low leakage products causing better and cheaper low leakage product designs. The old-style (e.g. typewriter) design with one motor (always on) and various clutches is no longer the least cost.

  • Energy Star was good organizational engineering. It never required designers to compromise quality or performance, which made it much harder to argue against design changes to reduce power consumption while idle. Since most of the savings begin the millisecond that parts stop moving, these savings are considerable.

  • The power ratings on PC's are a safety rating, not a usage rating. So the 235W and 300W power supplies that commonly found in PCs are specifying their safety limits. Actual full power usage is much less, typically 20-30 percent of the safe limit. The designers also noted that it is actually difficult to measure the power consumption of a switching power supply. You need to use specially designed power meters. The regular AC meters are designed for motors, and are rather inaccurate for switching power supplies.


1.7. Using Spare CPU Cycles

Some Linux applications use idle time in computers to cure diseases, study global warming, or any other scientific research. They run as a low-priority process (nice 20), so you can work without noticing that it's doing its task. Another use is for people who use P2P software and leave the PC turned on for long hours unattended, all that time the PC can be using the electricity it is consuming for a practical purpose:


1.8. Miscellaneous Power Saving Techniques

Linux halts the CPU in the idle cycle to further reduce power consumption. Early reports of OS/2, Win3.1/95, NT, and Linux showed Linux to use far less power than DOS-based O/S's that spun in the idle loop and consumed power -- this may have changed hence it would need research to validate.

Most Linux-users tend to leave their computer on for years whenever possible. However, several modern BIOS's support an unattended powerup, and with cron you can even do an unattended shutdown. No need to leave the computer on night after night. Other techniques to powerup your computer at certain times are: ACPI-Wakeup, NVRAM-wakeup and the settime command. Computers can even be power up on request remotely by means of Wake-on-LAN using a network connection or Wake-on-Ring using an old fashioned serial interface and a modem.

Beware of animated web pages! Web pages containing Flash, Java, or just animated images can consume a lot of CPU. When you leave your computer and keep it on, make sure you close all browser pages with animations. Otherwise, your PC may be left running at full speed while you are not using it.

To disable animated images in Mozilla Firefox go to about:config, find image.animation_mode and change its value to none or once.

Do not forget to switch off your DSL modem / wireless router / ISP box / printers at night or during vacations if you don't use them. These devices consume quite a lot (typically 15W).


Chapter 2. Alternative Power Supplies - Sun, Wind, Water

See a survey of links at Eklektix .


Chapter 3. Noise Reduction

Most of the noise emitted by a computer is produced by the fan, the harddisk and the speakers.


3.1. Fan

  • libsensors0 is a library to read temperature/voltage/fan sensors

  • lm-sensors: "Kernel drivers to read temperature/voltage/fan sensors. This is a module for reading the temperature/voltage/fan sensors in Linux via the LM78/79 chip and possibly sensors on the SMBus (System Management Bus, usually found in P6 and P-II systems). The LM80 and a LM78-clone called W83781D are also supported."

  • ACPI, see APM chapter

  • RTSensors can be configured by the user as an expert controller: The user can specify the max/min speed of the system fans, the maximum affordable temperature and so on. The controller tries to reduce fan speed to reduce noise while the temperature is in a safe range chosen by the user. So fan speed is modified automatically by the control algorithm, you don't have to use those mechanic or thermal regulators on your fans anymore.


3.2. Harddisk

To avoid unneccessary hard disk noise you may use the same techniques as described in the power saving chapter. Hard disks in most laptops are the primary source of noise. Modern laptop and notebook hard drives come with a so-called "Acoustic Management", just have a look into the manual to get an overview about the possible settings.

The noise of the hard disk can be very disturbing, see man hdparm to reduce the spin of the disk.

Some hard disk manufacturers offer dedicated tools, e.g. Hitachi's Feature Tool allows to change the drive Automatic Acoustic Management settings to the Lowest acoustic emanation setting (Quiet Seek Mode), or Maximum performance level (Normal Seek Mode).


3.3. Speakers

For the console setterm -blength 0 and for X xset b off turns the bell off. See also PCMCIA-HOWTO, and much more details in the Visible-Bell-mini-Howto by Alessandro Rubini.


Chapter 4. Saving Consumables (Paper, Ink, etc.)

4.1. Printing of Drafts / Multiple Pages on One Sheet of Paper

Use psutils package to put more than one page on one sheet of paper. This collection of utilities is for manipulating PostScript documents. Page selection and rearrangement are supported, including arrangement into signatures for booklet printing, and page merging for n-up printing.

For example, to create a PostScript document with 4 pages per sheet:

psnup -nup 4 doc.ps > doc4p.ps

Often HTML pages are not optimised for printing. You may use html2ps, a HTML to PostScript converter, to print HTML pages. "This program converts HTML directly to PostScript. The HTML code can be retrieved from one or more URLs or local files, specified as parameters on the command line. A comprehensive level of HTML is supported, including inline images, CSS1, and some features of HTML 4.0."

Or you may use mpage to print 2 up or 4 up (PS documents or ASCII text). This may be used to save up to 50 percent or more of your paper.


4.2. Double Sided Printing

One important way to save paper is to print on both sides of the paper. Depending on the printer capabilities, this can either be done manually (printing odd and even pages in 2 passes), or by instructing the printer to use both sides.


4.2.1. Printer control

If your GNU/Linux distribution is using the CUPS printing system (as most do nowadays), you can configure double sided printing through the CUPS administration interface. Open the http://localhost:631 URL with a browser, type your root password if required, and configure any local printier supporting double sided printing. This applies by default to all future print jobs.

Print settings can also be changed on a job by job basis too. In particular, KDE and Gnome let applications select and configure printers for each print job.

If you are printing from the command line, you can use the lpr-wrapper to insert printer control instructions to PostScript files at print time. Example:

lpr-wrapper -od doc.ps


4.2.2. Manual printing

If double sided printing is not supported by your printer, you can also achieve this by printing odd/even (or right/left) pages separately. Many graphical applications like OpenOffice.org let you do that.

If you print from the command line, you can also do this with mpage. From the manual page:

-jfirst[-last][%interval]

Print just the selected sheets, specified by number, starting at 1. Here last defaults to the end of data, interval to 1. Thus -j1-10 selects the first 10 sheets, while -j 1%2 prints just the odd- numbered sheets and -j 2%2 prints just the even ones.

You can do double-sided printing, in two passes, as follows. If you use 3-hole punched paper, put it in the printer such that the holes will appear at the top of the page -- on the right as you pull out the printer tray, in our Laser writer II NTX. Print the odd-numbered sheets with

-j 1%2 ...

Note the number of pages it reports. (Only half this many will really be printed). When printing finishes, if mpage reported an odd number of pages, remove the last one from the stack, since there will be no even-numbered sheet to match it. Then arrange the stack of paper for printing on the other side. (If it's punched, the holes will now be on the left.) On our II NTX, the paper comes out blank-side up; replace it in the tray still blank-side up but rotated 180 degrees. For other printers, you figure it out. Now print the even- numbered sheets in reverse order with

-r -j 2%2 ...

Hoping no one else reaches the printer before you do.

Duplex is a set of sh scripts that emulates duplex printing (on both sides of the paper) for sheet-fed printers that do not support duplex printing in hardware. It is intended for use on printers connected to workstations. It can operate as a pipe so that applications can use it as a duplex printing driver. Its unique feature is its ability to print to print many duplex print jobs in one batch, printing the odd sides of all jobs and then the even sides in just two passes.


4.3. Reading From the Monitor Instead From Paper

Or use less/xless/gless as a viewer instead of printing. You can view PostScript documents with gs and view PDF documents with either xpdf or acroread (from Adobe). Ask yourself, do you --really-- need a hardcopy each time you decide to print something out.

For your own documents, a good idea is to create them in landscape mode, making them easier to read without having to scroll up and down. Otherwise, readers may find reading from the screen inconvenient and may then prefer printing. See PDF editions of the free Tux Magazine for a nice examples.

What are the reasons why people don't read from the monitor:

  • Reading is slower up to 30 percent, see Jakob Nielsen: In Defense of Print. The speed can be improved by better hardware (e.g. TFT display, greater screen, though this is against the other below to take smaller CRTs) and better display software and fonts (type-1, t1lib, truetype, freetype).

  • Paper seems better organizable and more secure to some people. I suppose this can be treated by better software (e.g. Linux) and hardware, too.

Some people use handheld PC (e.g. PalmIII, Newton Message Pad, Psion 5) to carry around documents to read rather than printing them out. At TuxMobil you may get information about Linux compatibility for handheld PCs and PDAs. Or they take eBook readers to read "Electronic Paper". At TuxMobil there is a section about Linux compatibility for eBook readers, too.


4.4. Other Techniques

Another means of saving paper is through the use of comments and redline/strikeout markings when exchanging a document with a co-worker/colaborator. For example, a draft could be written using WordPerfect, then E-MAILed to a co-worker. They could update the draft and send it back to you. You can use WordPerfect's redline/strikeout features to see the changes. The document need not be printed until it is "final" or in "final draft" status.

Question: Can you use the back side of paper in a laser printer? I have not had much luck. You can use the paper that has been in a laser printer in an inkjet printer by using the other side.

You should purchase smaller computers and monitors when possible. This will save packaging material translating into less solid waste. For example the box for a 15" CRT monitor is 2-3 times the size of the box for a 15" LCD monitor. Linux works well with 15" LCD monitors on smaller computers like the Netwinder or E3000 .

Tough smaller monitors may have another ecological caveat: because it's inconvenient to browse to longer documents, people may tend to print the documents instead of reading them from the screen.

Some have expressed the concern that LCD displays may use more toxic materials and manufacturing processes than CRT displays, hence their usage actually may be worse on the environment. The original information above concerned the solid waste issue, which is fairly tangible and hence more controllable.

Does anyone know of studies or additional research to help clarify and resolve this issue?

Recycle your used paper, ink, and packing materials.

You may use refillable printer cartridges. In Germany the are marked with the Blauer Engel label.

Laser printer cartridges can often be used much more longer if you shake them when the message toner low appears at the message panel.

  • LaTeX documents: Using \usepackage{ccfonts} replaces the usual fonts by ones with wider lines and bolder serifes, improving readability at low resolutions. They are darker (i.e. use more ink) than the CM fonts and not as beautiful, so I would not recommend them for normal-size printings.

  • Size-Reduction: Instead of psnup or other parts of the pstools check for enhanced Perl rewritings of psnup.

    It has a lot of options, which allow to set all 4 margins and the inner gutter separately. Since reduced documents are not very pretty anyway, this can be used to reduce the margin, leaving more place for the text. This probably requires some experimenting (trying new values over and over, checking the result with ghostview).

    The normally used options are:

    • -p2 (or -p4 etc., like -2 in the old psnup)

    • -NIH (don't decorate)

    • -l10 -r20 -b30 -t40 (add to margins)

    • -g50 (add to gutter)

    (these values vary depending on the papersize and the margins of the original, negative values are allowed).

  • PDFjam is a small collection of shell scripts that provide a simple interface to some of the functionality of the pdfpages package for pdfLaTeX. At present, the utilities available are pdfnup, pdfjoin, and pdf90. PDFjam depends on a working installation of (pdf)LaTeX. pdfnup puts multiple document pages together on one physical page at a reduced size. pdfjoin concatenates multiple PDF documents. pdf90 rotates the pages of PDF documents. For Mac OS X, some example applications (droplets) are provided for drag-and-drop access to the scripts.

  • Different ink printers are more or less capable to print on the backside of already used paper sheets. That's particularly useful to reuse all single sided paper sheets you receive for free every week! Try different manufacturers. Older Canon ink printers offer 360 dpi, older HP ink printers 300 dpi. The readability of 4 pages/sheet using LaTex 10pt lies in between this features.

  • Non-Linux: If you have to work with MS-Windows you should get the original Adobe-PostScript-Driver, instead of using the ones from MS-Windows. These drivers offer more than one page per paper sheet. AFAIK both psnup programs don't work with Adobe-PS, MS-Windows-PS and the PostScript extracted from MS-Windows-PDF files. The Computer-Modern-Fonts (without German diacritical characters) are available as TTF fonts on the CTAN servers. With these fonts you may enhance the aesthetical value of documents and save some paper space, too.

  • Ghostscript has a new output format pswrite, which creates output in correct PostScript. This feature can be used to repair broken PostScript e.g. from Microsoft drivers, allowing their postprocessing with psnup etc.

  • impose+ is a set of PostScript utilities. The main program is impose, which is used for two-up printing of DSC-compliant PostScript (including that from Netscape, dvips, and FrameMaker). It makes an effort to remove white space from the printout by probing the original PostScript for the bounding box of the printed area. This makes the output much more esthetic than does a simplistic layout of non-cropped original pages.

  • hpgs is a printer driver that lets you to print on a HP 6xx Series printer using economic mode. It relies on the printer driver included in GhostScript to do everything but put the printer into economic mode.

  • Besides command line tools for sophisticated printing there are also usefull GUI applications available. KPrinter opens automatically when you click on the "Print" icon of any KDE application. Choose your print job settings by going through the dialog and the click on the "Print" button. kprinter is a very versatile tool. Depending on the actual features and power of the print subsystem of your com- puter, kprinter translates the former's abilities into a nice and easy-to-understand GUI e.g. if your print subsystem does not support duplexing, kprinter will not show the option.

  • gnome-manual-duplex is a utility that adds manual duplex to the "Print" menu.

  • ecofont is an open source sans serif font with holes added to save printer ink.

  • If you need to print a lot of Web pages from inside your FireFox webbrowser, the Nuke Anything Enhanced extension will help you to save some ink and paper. Once installed, it adds a "Remove this object" option to the right-click context menu. Place your mouse over information you don't need printed (menu bars, big graphical logos and so on) and use "Remove this object" to zap them temporarily. Clean up the page, then print just what you need.

Wade Hampton provided the biggest part of this chapter. Some suggestions are from Ralf Muschall.


Chapter 5. Ecological Behaviour is Convenient

The psutils may not only save paper, they are also a great tool to produce a convenient page design. Imagine a nice bounded manual in A5 format, against a losely hefted block of A4 sheets.

Depending on wordlength and paragraphlength a multi-column layout sometimes saves paper space (though the likelihood for a word to be broken increases, on the other hand the space used by incomplete lines at the end of paragraphs decreases). This doesn't save very much paper, but may fit 2.1 pages in 2.0, therefore with the use of psnup it may fit on one page. Also multicolumn layout is better readable.

psdim is a small utility to be used in conjunction with pstops. It looks at the contents of a postscript document to determine the size of the printed pages. From this, it calculates the optimal placement of the pages for n-up printing. It outputs a format string suitable for processing by pstops.

Thanks to Ralf Muschall for his suggestions.


Chapter 6. Recycling of Consumables (Paper, Printer Cartridges, CD, Floppies, Tapes)

All of these consumables are recycleable. I have put a list of URLs into appendix H. You may start this process by separating different kinds of "waste". There should be included some words on the difficulties of recycling (data security, motivation, costs, ...).


Chapter 7. Reduction of Radiation, Electro Magnetic Fields, Heat


Chapter 8. Extending the Life Cycle of your Hardware

8.1. Recycling of Hardware

The commercial computer market is largely driven by vendors seeking to sell new hardware and software. There is no commercial marketing benefit in promoting reuse.

Hence Linux doesn't require big hardware, it's very useful if you like or need to use old and small hardware.


8.1.1. Supported CPU Families

Linux runs on Intel-compatible processors (starting from the 386) and compatible processors by AMD, Cyrix and others. It also supports a long list of 32 and 64 bit processors. The whole list can be found in the arch directory in the Linux kernel sources.

The ARM architecture is a fast AND low-power alternative, used in a great number of embedded systems (Linux and others). See the ARM Linux Project for a wealth of Linux resources for ARM.

Linux is also supported on small, cheap and low power processors with no Memory Management Unit (MMU), provided they are 32 bit ones. See the uClinux project for details.

Mainstream Linux requires at least a 32 bit processor and doesn't support any 16 bit ones and will never do. However, there are separate efforts from the ELKS project to reuse Linux code for the 286 CPU family.

On platforms supported by Linux, or even on some 16 bit processors, you may also use the eCos operating system. This is another free, POSIX compatible operating system targeting very small devices (possibly with real-time requirements).

If you like, you may use Minix, one of the predecessors of Linux. Minix supports 8088 to 286 with as little as 640K memory.


8.1.2. Linux Applications for Old Computers

8.1.2.1. RULE

Hardware is only as old as the software it runs. RULE wants to make modern Free Software useable even on 5 or more years old machines, on which current Linux distributions won't install or run too slowly.


8.1.2.2. ISDN Router

ISDN Router allows you to convert old hardware into a secure masquerading ISDN router, including caching nameserver, IP Port Forwarding, and on-demand channel bundling. The system fits onto a single disk, and users can change the configuration through a simple menu-based system (on the console or over telnet) and store it permanently on the disk.


8.1.2.3. Linux LiveCD Router

Linux LiveCD Router allows you to share and firewall your broadband connection and use WiFi. It works with DSL, cable modem, T1, and dial-up connections and supports inexpensive hardware such as USB and PCMCIA WiFi and ethernet cards. Hardware requirements: One dedicated computer with the following minimum specifications: 486 Processor, 16 MBytes of RAM, 2X CDRom reader, floppy drive, 1 or 2 ethernet cards. NO hard disk! Optionally a WIFI card.


8.1.2.4. FreeS/WAN

Linux FreeS/WAN provides IPSEC (IP Security, which is both encryption and authentication) kernel extensions and an IKE (Internet Key Exchange, keying and encrypted routing daemon) as well as various rc scripts and documentation. This lets a bright Linux sysadmin build VPN's gateways out of even old 584 and 486 PC Clone boxes. The 1.00 version is known to inter-operate with other IPSEC and IKE system already deployed by other vendors such as OpenBSD.


8.1.2.5. Print Server

A common use for an old computer is running a print server on it.


8.1.3. Small Linux Distributions for Old Computers

  • Damn Small Linux - A full featured Live-CD distribution derived from Knoppix, with a very active community. It fits within 50 MB and runs fine on a 486 PC with 16 MB of RAM. Included software: Firefox, xmms, xpdf, Sylpheed, FluxBox WM, Siag, spreadsheet, Ted word processor... Used a lot on USB flashdisks too.

  • Basic Linux - The lightest distro for old PCs! It just needs 3 MB of RAM and 6 MB of disk. Features: X graphics, window manager, clock, calculator, text based e-mail reader, browser (links), presentations (MagicPoint), network dial-up... Great for using an old PC as an X terminal!

  • Puppy Linux Fast and light distribution. Works great on 10 year old computers. Actively developed.

  • DeLi Linux - A Linux distribution for old computers, from 486 to Pentium MMX 166 or so. It's focused on desktop usage. It includes email clients, a graphical Web browser, an office package with word processor and spreadsheet, etc. A full install, including XFree86 and development tools, needs no more than 300 MB of harddisk space.

  • Small Linux 2 - A distribution which is designed to run on old / low-spec PC computers (386 and 2-3 mb of ram). It consists of two floppy discs one,containing the kernel and the other the root system. Built upon uClibc and Busybox.

  • MEPISLite - Debian based distribution targeting PCs that used to run Windows 98 (typically 128 MB of RAM, 2 GB of disk space and a 500 MHZ CPU).

  • Using Gentoo on Old Machines

    "Old computers don't have to run old software. Old software does not have it's bugs covered and is bad for security.

    Most modern distros will be very sluggish when run on those machines; not because they use new software, but because they expect to be run on new machines and may automatically install large amounts of software. The thrust of Gentoo-on-old-hardware is to obtain a light, minimalist system that runs what you need it to and no more; unlike many proprietary OSes and the "heavier" distros such as Fedora, Gentoo starts very light by default."

  • Minix - Not a Linux but a UNIX useful for small systems. Minimum requirements: 386 CPU, 8 MB of RAM, 50 MB of disk space.

See Wikipedia for a longer list of small Linux distributions.


8.1.4. Dealing with Limited Resources or Tuning the System

This chapter is taken from my Linux-Mobile-Guide - A Guide for Laptops, PDAs and Mobile Phones.


8.1.4.1. Related HOWTOs

  • Small-Memory-HOWTO Describes how to run Linux on a system with a small amount of memory.


8.1.4.2. Introduction

To deal with limited space, memory, CPU speed and battery power, I have written this chapter.


8.1.4.3. Small Space

8.1.4.3.1. Introduction

There are different types of techniques to gain more disk space, such as sharing of space, freeing unused or redundant space, filesystem tuning and compression. Note: some of these techniques use memory instead of space. As you will see, there are many small steps necessary to free some space.


8.1.4.3.2. Techniques

  • Stripping: Though many distributions come with stripped binaries today it is useful to check this. For details see man strip. To find every unstripped file you can use the file command or more convenient the tool findstrip (find it in the Debian perforate package) . Attention: don't strip libraries, sometimes the wrong symbols are removed due to a bad programming technique.

    A recommendation from Russell Marks <rus at beeb.net>:

    These days a lot of people compile with -g, which I find a bit annoying (though AFAIK this only loses you disk space, in practice).

    strip has a --strip-debug option which doesn't strip symbols, but does still get rid of the debugging stuff. This is almost as good, in many cases, and it's ok to use it on libraries. As it happens, I recently got SuSE 6.3, so I can give you a live example:
    
bash-2.03# cd /lib
    bash-2.03# ls -l libc.so.6
    -rwxr-xr-x   1 root     root      4223971 Nov  6 16:22 libc.so.6
    bash-2.03# strip --strip-debug libc.so.6
    bash-2.03# ls -l libc.so.6
    -rwxr-xr-x   1 root     root      1200355 Dec  8 00:13 libc.so.6
    

  • Sparse files: in the case when files contain blocks with only null characters, these blocks can be replaced by lseek command calls, saving space. Applications (and not the operating system) are responsible for creating or handling such files in a correct way. For example, both the tar and cp commands have options for handling sparse files in a correct way. See the this page for more details and for a sparse command to create such files. In Debian, you can also use the zum command from the perforate package.

  • Remove Odd Files and Duplicates: Check your system for core files, emacs recovery files <#FILE#> vi recovery files <FILE>.swp, RPM recovery files <FILE>.rpmorig and patch recovery files. Find duplicates, you may try finddup. Choose a system to name your backup, temporary and test files, e.g. with a signature at the end.

  • Clean Temporary Files: , e.g. /tmp, there is even a tool tmpwatch.

  • Shorten the Log Files: usually the files in /var/log. There are some nice helpers for this task around, e.g. savelog .

  • Remove Files: Remove files which are not "necessary" under all circumstances such as man pages, documentation /usr/doc and sources e.g. /usr/src .

  • Unnecessary Libraries: You may use the binstats package to find unused libraries (Thanks to Tom Ed White).

  • Filesystem: Choose a filesystem which treats disk space economically e.g. rsfs aka Reiser Filesystem. Tune your filesystem e.g. tune2fs. Choose an appropriate partition and block size.

  • Reduce Kernel Size: Either by using only the necessary kernel features and/or making a compressed kernel image bzImage.

  • Compressed read-write filesystems:

    - There was a project to add compression support to ext2 filesystems: e2compr. This project has a very limited usefulness as it is currently inactive and only supports very old 2.4 and 2.6 kernel versions. No chance to get a working patch on the latest 2.4 and 2.6 releases.

    - Fortunately, a very serious solution exists in the Reiser4 filesystem which includes a compression plugin. Using compression is even reported to be faster than not using it. Actual results should of course vary with the CPU and disk speed, and results might be disappointing on old machines.

  • Compressed read-only filesystems

    - The idea is store parts of the system (typically executables and libraries through the /bin, /sbin and /usr directories) in a separate, compressed and read-only filesystem. This is great for saving space and for protecting the system from extern attacks. However, the constraint is that software upgrades can no longer be done when the filesystem is mounted. The whole filesystem contents must be rebuilt and replaced at once.

    - CramFS was the first implemented solution, used by many embedded system makers. Though still maintained, it is dramatically outperformed by SquashFS.

    - SquashFS is the solution everyone should use now. Unlike CramFS, it has no limitations on filesystem and file size, and it achieves much better compression and read speed (up to 5 times!). On slow storage (like USB flash drives), replacing ext2 with SquashFS resulting in a 50% reduction on system boot time (observed in a Linux demo developped by Free Electrons).

  • Partition Sharing: You may share swap-space (see Swap-Space-HOWTO) or data partitions between different OS (see mount).

  • C library: use uClibc instead of the default GNU C library aka glibc. It takes approximately 400 KB instead of 1700 (glibc). It used by many embedded Linux projects as well as by several tiny Linux distributions. It should satisfy most needs, as the whole Debian 3.0 was ported to it. Caution: if you replace the C library, all applications also need to be recompiled with a dedicated gcc toolchain.

  • Busybox - A toolbox implementing most Unix commands. It takes at most 500 KB instead of approximately 10-30 MB with GNU implementations! It is used by almost all embedded Linux projects and small Linux distros. Most commands are implemented, even vi, wget, a dhcp server and client, and even a http server sufficient for most needs. Even if some rare command options are not implemented, even an experienced Unix user hardly makes the difference with GNU commands!

  • Kernel: If your needs are fitted with an older kernel version, you can save some space.

    However, with old kernels, you will miss cool features (such as real-time preemption, making your system much more responsive) and support for recent peripherals. It is true that the Linux kernel accumulated bloat over the years: more features, support for more special cases... Now that Linux is taking an increasingly dominant place in embedded systems, work is being done to control the kernel size. The LinuxTiny project releases a set of patches to the Linux kernel sources. In the Configure Standard Kernel Features for Small Systems kernel configuration section, you can unselect features you do not need in a simple computer. The minimum compressed size you can achieve for a Linux 2.6 kernel for a simple PC is approximately 350 KB. Note that more and more LinuxTiny changes are now available in the standard Linux kernel (no patching necessary).

    With the latest kernel releases, you may also try the real-time preemption patches from Ingo Molnar. When full preemption is enabled, it adds unprecedented responsiveness to the Linux kernel. The latency is much reduced, suitable for real real-time systems (less than 100 us!). It is definitely worth trying on old systems to give them a new youth and improve the user experience!

  • GUI: Avoid as much Graphical User Interface (GUI) as possible.

  • Tiny Distributions: There are some distributions available which fit from one 3.5" floppy to 10MB disk space and fit for small memories, too. See Laptop-HOWTO


8.1.4.4. Harddisk Speed

Use the tool hdparm to set up better harddisk performance. Though I have seen laptop disk enabled with stripping, I can't see a reason to do so, because IMHO aka RAID0 stripping needs at least to different disks to increase performance.


8.1.4.5. Small Memory

8.1.4.5.1. Related HOWTOs


8.1.4.5.2. Techniques

Check the memory usage with free and top.

You may also reduce the kernel size as much as possible by removing any feature which is not necessary for your needs and by modularizing the kernel as much as possible.

Also you may shutdown every service or daemon which is not needed, e.g. lpd, mountd, nfsd and close some virtual consoles. Please see the Small-Memory-mini-HOWTO for details.

And of course use swap space, when possible.

If possible you may use the resources of another machine, for instance with X, VNC or even telnet. For more information on Virtual Network Computing (VNC), see VNC .


8.1.4.6. Low CPU Speed

You may want to overdrive the CPU speed but this can damage your hardware and I don't have experience with it. For some examples look at Adorable Toshiba Libretto - Overclocking.


8.1.4.7. Tiny Applications and Distributions

A small collection yet, but I'm looking for more information.

  • BOA - "Lightweight and High Performance WebServer. boa is a single-tasking HTTP server. That means that unlike traditional web servers, it does not fork for each incoming connection, nor does it fork many copies of itself to handle multiple connections. It internally multiplexes all of the ongoing HTTP connections, and forks only for CGI programs (which must be separate processes). Preliminary tests show boa is capable of handling several hundred hits per second on a 100 MHz Pentium."

  • Low Bandwidth X - Alan Cox in LINUX REDUX February 1998: " ... (Differential X Protocol Compressor - Dxpc) is the alternative most people prefer. These systems act as proxy X11 servers and compress datastreams by well over 50 percent for normal requests, often reaching a reduction to 25 percent of the original bandwidth usage. With dxpc, X windows applications are quite usable over a 28.8 modem link or across the Internet."

  • Blackbox - "This is a window manager for X. Ixt is similar in many respects to such popular packages as Window Maker, Enlightenment, and FVWM2. You might be interested in this package if you are tired of window managers that are a heavy drain on your system resources, but you still want an attractive and modern-looking interface."

  • screen - Tiny but powerful console manager. John M. Fisk <fiskjm at ctrvax.vanderbilt.edu> in LINUX GAZETTE : "It's a GUI, GUI, GUI, GUI world! " - or so the major OS manufacturers would have you belief. Truth is, that while this is increasingly the case, there are times when the command line interface (CLI) is still a very good choice for getting things done. It's fast, generally efficient, and is a good choice on memory or CPU constrained machines. And don't forget that there are still a lot of very nifty things that can be done at the console." "screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. Each virtual terminal provides the functions of the DEC VT100 terminal and, in addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line and support for multiple character sets). Real multiuser support, split screen support, hardstatus emulation support, configurable window seperator and hardstatus strings, permanent window seperator, many new escapes, logfile timestamps and flush timeout, optional builtin telnet, optional Braille support, support for history compaction."

  • tinyirc - "A tiny, stripped down IRC Client. Doesn't have most of the more advance commands in the ircII family of IRC Clients, nor does it have any color, but it works, and it's tiny."

  • tinyproxy - "is a lightweight HTTP proxy designed to do the job with a minimum of system resource use. It's ideal for small networks where a larger HTTP proxy such as squid might be overkill or a security risk. This simplicity also makes tinyproxy an ideal candidate for customization - it takes very little time to read and understand the tinyproxy source, and thus you can start adding your own desired features on short order."

Actually, with the progress of Linux in embedded systems, countless lightweight applications now exist. A presentation from Free Electrons tries to list the most popular ones.


8.2. Other Techniques

NiCad batteries need to be discharged periodically to prevent the memory effect and prolong their lifespan.

Batteries such as NiCad, Lead Acid, and NiMH contain TOXIC chemicals. Techniques should be taken to prolong their lifespan, and when you do discard them, they should be recycled, not thrown in the trash.

One technology to watch is the Iron battery. Such a battery could reduce some of the toxic waste problems associated with used batteries, however such a battery is probably a few years away.

Some remarks about backlights in laptops, monitors (screensavers), harddisks (hdparm), etc. have to be written.


8.3. Linux BadRAM Patch

The objective of the BadRAM Patch is to run the Linux kernel in such a way that it can handle defective RAM modules. With defective RAM, I mean RAM which has some bits wrong at some (known) addresses. Normally, such RAM is considered useless and thrown away; the larger RAMs get, the higher the chances of failing addresses. With ever growing RAM sizes, it would therefore be pleasant to have an alternative to discarding of defective RAM chips.


8.4. Installing Linux on Older Hardware

Lightweight Linux, Part 1: Hardware is only as old as the software it runs: a modern operating system and up-to-date applications return an older system to productivity. This article provides best practices and step-by-step guidance on how to build a working Linux system on older hardware or on modern hardware with limited memory and storage.

Purging of uneeded Locales: localepurge for Debian/GNU Linux is just a simple script to recover disk space wasted for unneeded locale files and localized man pages. Depending on your installation, it is possible to save some 20, 30, or even more megabytes of disk space usually dedicated for locales you'll probably never have any usage for.


8.5. Upgrading and Repairing Computer Hardware and Communication Devices

Usually manufacturers declare the warranty to be void if the case was opened by people other than their own staff. If you want to try it anyway you may find some interesting links about how to repair, disassemble, upgrade or mod laptops or notebooks, repair broken PDAs and HandHelds, as well as repair mobile (cellular) phones, repair portable audio and video players, repair, clean and mod a computer mouse, repair printers, ink and toner cartridges, repair hard disk drives, repair and clean computer keyboards and repair and mod GPS navigation devices and repair personal computers - PCs.

BTW: here are some non-computer related links to guides explaining, how to repair (digital) cameras, repair cars.


8.6. Other Operating Systems

Courtesy of George White <gwhite at bodnext.bio.dfo.ca>: Or you can buy an older computer (SGI, Sun, NeXT) that comes with unix and is capable of running a wide range of open source software. In some cases (SGI Indigo2) you can still run current OS versions, in others you may do better with an open source OS such as Linux, but in either case you have access to lots of good software and tools to write your own. The lower power consumption of older computers means you get more reserve time from an UPS or can use a small alternative power source if you don't have access to "mains" power.


Chapter 9. Using Linux on non-PC Hardware

As mentioned in the previous chapter, Linux can be run on non-PC architectures. This is particularly useful for the small applications old PCs can be used for. Recent netbooks either ARM-based or MIPS-based provide an even smaller power footprint. Check moblin Linux, which is dedicated to such machines.


9.1. Using Consumer Electronics Devices

Linux is increasingly used in Consumer Electronics (CE) devices, in particular in network appliances such as Wifi routers, DSL modems, Network Attached Storage (NAS) servers, IP cameras and other small devices.

Thanks to the GNU GPL license, kernel and application source code for these devices are freely available. More and more device owners are taking advantage of this to develop other uses for these devices. Thanks to the progress of Linux in embedded systems, making its own embedded system is increasingly easy.

Using such devices instead of regular PCs yields many advantages: much lower power consumption, no noise (no fans), built with much fewer materials (small size), and much lower cost (for your purse and for the environment).

  • NSLU2-Linux - A community of people running Linux on the Linksys NSLU2 device. This device is originally a Network Attached Storage server, featuring a 266 MHz ARM CPU, 8MB of flash, 32MB of SDRAM and a rich connectivity: Connectivity: USB (for attached storage), Ethernet and a serial port. That's all you need in a versatile Linux computer. Many different cool applications are listed by the project.

    The NSLU2 device is still available in the shops on all continents, for a very cheap price: approximately 90 € or 90 US Dollars. This makes this device extremely popular!

  • OpenWRT - A project to run Linux on WiFi routers based on the Linksys WRT chipset. A typical configuration includes a 125 to 200 MHz ARM CPU, 4 MB of flash, 16 MB of RAM, and Ethernet, WiFi, serial port (often) and a USB host port (often).

    Devices based on the Linksys WRT chipset are available for sale on all continents, costing between 50 and 100 € / US Dollars. They are very popular too!

In a nutshell, do not buy a new PC for small applications. Reuse your old computers or buy a consumer device on which you can run Linux!


9.2. Using Embedded Linux Boards

Instead of using a PC, or even instead reusing a consumer device, you may also create your own system using dedicated embedded system boards. Because of lower volumes, such boards may be a bit more expensive, but they can achieve much reduced size and power consumption. Both low and higher volumes are available too.

Here are a few noteworthy examples:

  • Picotux - The smallest Linux computer in the world, only slighly larger than a RJ45 connector. Pretty cheap too.

  • Gumstix - Small, affordable embedded boards with the size of a gumstick. Backed by an active community too.

See this independent list of interesting board suppliers for more details.


Chapter 10. X10 - Home Automation System

"X-10 modules are devices that plug into an electrical outlet and allow you to remotely control the power to a lamp or an appliance that is plugged into them. There are also X-10 modules that install in place of wall switches to control lights, and there's one that can be used to set back a thermostat."

These X10 folks make a really cool dongle called the Firecracker. These allow for the control of X10 devices via a serial-port of your PC. Programs like Bottlerocket and GtkX10 allow Linux programs to control X10 devices using the Firecracker device. You may be able to get the Firecracker, a remote control, a receiver, and a lamp module for as little as $5.95 U.S. (special promotion).

GNU Phantom.Home is a computer controlled home automation system. The software includes a circuit diagram for building the Phantom.Home.Controller, a simple circuit board that attaches to your PC's parallel port. Using the combination of hardware/software you can control (i.e. flip on or off) nearly any 120V device. And with a little bit of electronics know-how, you can probably control nearly any device at any voltage by modifying the circuit board to meet your needs. The simple circuit included can be created and built for around $25. The modules cost around $10 (basically a heavy duty relay).

More details on this topic are available on the Linux Home Automation website.

Turn that light off when not in use!


Chapter 11. Uninterruptible Power Supply - UPS

You should use a protection against lightening and power surges or a UPS if you have many thunderstorms in the area. That will save hardware, software, your time, and money, and help prevent you from throwing out that old monitor, CPU, or modem when it gets trashed by lightening. For details consult the UPS-HOWTO.

For desktop PCs, in areas prone to lightening or power outages, UPSs could save hours of work each week, potentially translating into power savings. However, there is some concern over their additional usage of AC power. If anyone has any studies or research on this issue, could they please forward it to us? That would be an interesting question to post to APC, BEST, etc.

UPSs also contain batteries with a high environmental cost. So, just use a UPS when really needed and when benefits outweight environmental costs. For example, if you are using a notebook, a much cheaper surge protection is enough thanks to your battery.

People have also reported issues using unreliable power sources, for example in trains. Make sure you use a surge protection device then!


Chapter 12. Games

Personally I'm not much a player of computer games but maybe they can be used for environmental education. In a first investigation I found Lincity and Real Life, please check their usefulness by yourself.

I suspect the older games should run just fine on dosemu.


Chapter 13. Ecology Software (Simulation, Data Collection, Statistics, etc.)

Though I know there is some MS-Windows based software which is used in ecological science (there is even a branch environmental informatic), I know only Ecolab available for Linux yet. But I guess Linux software (for instance databases or statistics programs) may easily adopted. Also it might be possible to use a Linux cluster to solve ecological simulations.


13.1. Ecolab

Ecolab is both the name of a software package and a research project that is looking at the dynamics of evolution. EcoLab is a system that implements an abstract ecology model. It is written as a set of Tcl/Tk commands so that the model parameters can easily be changed on the fly by means of editing a script. The model itself is written in C++.


13.2. Tierra

Tierra by Tom Ray is a tool for studying digital evolution and ecology that runs on Linux and other OSes.


13.3. Linux in Environmental Research

Courtesy of Wade Hampton: Linux is ideally suited for use as a research tool for environmental experiments. There are small embedded Linux solutions that can be used for remote monitoring or telemetry. There are VERY small Linux implementations from PC-104 systems to embedded systems like the uCsimm. Linux even flew on the shuttle controlling biological experiments.... Linux has been used for weather research on NOAA's Hurricane Hunter aircraft.

Linux is also an ideal platform for researching ecological and environmental information via the Internet using standard WWW-based tools like Netscape.

Linux may even be used to model complex biological and environmental processes. beowulf clusters have been used to run complex simulations of environmental processes, for example Earthdome, listed in the Beowulf projects page.


13.4. SWARM

SWARM is a software package for multi-agent simulation of complex systems that is being developed by the Swarm Development Group (SDG).

Swarm is intended to be a useful tool for researchers in a variety of disciplines, especially artificial life. The basic architecture of Swarm is the simulation of collections of concurrently interacting agents: with this architecture, we can implement a large variety of agent based models. The source code is freely available under GNU Licensing terms.


13.5. Climate-Dynamics

Linux clusters are used in climate modeling, for example in the University of Bern in Switzerland.


13.6. UNCERT

UNCERT is a geostatistical uncertainty analysis package applied to groundwater flow and contaminant transport modeling. This package was developed for evaluating the inherent uncertainty in describing subsurface geology, hydraulic properties, and the migration of hazardous contaminants in groundwater flow systems. It is well suited for the aforementioned purposes, but is also sufficiently general to be usable by researchers in a wide range of disciples.


13.7. EcoTopia

The EcoTopia web site uses computer simulation to model Santa Cruz, California as an ideal environmental community. For Ecotourists and Green Consumers, EcoTopia strives to offer the nation a model of integration of technology and environmental remediation using computer modeling and image forecasting.


13.8. Digiqual

Digiqual is a package to manage a quality and environmental control system for a factory. The package consists of six modules, but only the first module has been released. The modules are Supplier Evaluation, Non Conformity, Documentation, Maintenance, and Internal Audit, and Training. All data are stored in a PostgreSQL database by the psycopg connector.


Chapter 14. Related Projects, Mailing Lists and Newsgroups


Chapter 15. Credits

Thanks to:


Chapter 16. Revision History


Appendix A. Appendix A - Linux with Laptops

A.1. Ecological Comparisons of Computers

Scientists of ReUse project located at the Technical University of Berlin recently compared the energy consumption of different computer types along the life cycle. The production of computers actually needs 535 kWh which is 10 % less than 4 years ago. Most of the energy will be consumed while the computer is used for example at work for 8 hours/day. The energy consumption of new computers with 2,5-3 GHz processors is even in the stand-bye-mode still 100 Watt, whereas a 1,4 GHz PC needs 80 Watt and a 4 year old PC only needed 60 Watt. Therefore from the ecological point of view it is better to buy an old computer that didn't need the energy for a new production and which consumes less electricity while it is being used.

LCD displays need less energy than other monitors. For this reason laptops are the most ecological types of the compared computers. They need the smallest amount of energy when they are used. And 3 year old laptops are better than new ones since their processors need less energy than new examples. There is also an article in the German computer magazine C't 21/ 2003.


A.2. Battery

Has to be written. See Battery-Powered-mini-HOWTO , too.


A.3. PCMCIA Card Services and Advanced Power Management

Quoted from the PCMCIA-HOWTO: "Card Services can be compiled with support for APM (Advanced Power Management) if you've configured your kernel with APM support. ... The PCMCIA modules will automatically be configured for APM if a compatible version is detected on your system. Whether or not APM is configured, you can use cardctl suspend before suspending your laptop, and cardctl resume after resuming, to cleanly shut down and restart your PCMCIA cards. This will not work with a modem that is in use, because the serial driver isn't able to save and restore the modem operating parameters. APM seems to be unstable on some systems. If you experience trouble with APM and PCMCIA on your system, try to narrow down the problem to one package or the other before reporting a bug. Some drivers, notably the PCMCIA SCSI drivers, cannot recover from a suspend/resume cycle. When using a PCMCIA SCSI card, always use cardctl eject prior to suspending the system."

You should use the internal modem in a laptop instead of a PCMCIA modem, if possible (it may be a WinModem).


A.4. Power Saving Techniques

  • If you don't need infrared support, disable it in the BIOS or shutdown the IrDA device driver. There are also some IrDA features of the kernel which are useful for saving power. In the specifications of my HP OmniBook 800 it is recommended to turn off the IR port, if it is not in use, because it may consume up to 10 percent of the battery time. If necessary, you may also try to disable the Fast RRs feature in the IrDA section of the kernel. This option will give you much better latencies but will consume more power.

  • PCMCIA services consume much power, so shut them down if you don't need them.

  • I'm not sure to which extend the backlight consumes power. WARNING: AFAIK this device can only bear a limited number of uptime circles. So avoid using screensavers too much.

  • For some examples to build batteries with increased uptime up to 8 hours look at Adorable Toshiba Libretto.

  • For information about APM look at the APM chapter above.

  • A hacked rclock. Booker C. Bense has hacked the rclock program to include a simple battery power meter on the clock face.

  • KDE provides KAPM, Kbatmon and Kcmlaptop. Written by Paul Campbell kcmlaptop is a set of KDE control panels that implements laptop computer support functions, it includes a dockable battery status monitor for laptops - in short a little icon in the KDE status bar that shows how much battery time you have left. It also will warn you when power is getting low and allows you to configure power saving options. Similar packages you may find at the GNOME project . See the software maps at both sites.

  • Please see Battery-Powered-mini-HOWTO for more information.

  • toshiba-fan Turn the fan on a Toshiba Pentium laptop on or off. This is a command line utility to turn the fan of a Toshiba laptop on or off, or view its current state. It should work on all Toshiba Pentium laptops that have fans.


Appendix B. Appendix B - MP3-Hardware-Decoder at Parallel Port

In the German computer magazine CT issue 9/1999 p. 200 and 10/1999 p. 260 I found an article about turning an old PC (from 286 upward) into a MP3 player, by using a MP3-Hardware-Decoder at the parallel port. Authors Homepage .

Also mentioned there, is a software by Klaus Peichl, which doesn't need a hardware decoder.

Though both programs are DOS based, I mention them here. I hadn't time to look for an according Linux solution.

Cajun is a program that allows you to turn any computer (>75mhz) into a massive audio jukebox for your car or home. It uses the MatrixOrbital serial display and supports the IRman infra-red remote control interface. Soundcard output is delivered to your (car or home) stereo for amplification. The software supports a hotlist and shuffle mode. It includes FM/Video4Linux support, icecast/shoutcast support, CrystalFontz serial display support, and choice of mpg123 or xaudio for driving the sound card.


Appendix C. Appendix C - Bibliography


Appendix D. Appendix D - Recommendations for Buying a New Computer

Courtesy of Wade Hampton (modifications by wh): Purchase a low-power computer such as a laptop or network computer. These typically don't use as much power as desktop systems. For example, someone on the WWW had a Corel/Rebel Netwinder powered by solar cells. I find it funny that an "Energy Star" desktop still has a 300W power supply and uses far more power than a computer like the Netwinder which uses something like 10 Watts of power, (though this is consistent with the Energy Star goals for computer equipment, since they have targeted unused power consumption).

Maybe there should be a new class of computers called "Energy Miser" (or similar) that use nearly an order of magnitude less power than Energy Star systems?

To save power for the display, one could purchase a LCD monitor instead of a CRT. LCD monitors consume 30-40 Watts of power versus the 100's of Watts used by most monitors. The price of an LCD is still 2-3 times that of a similar monitor, but as LCDs become more widely used, the price will come down.

Make sure that any new computer purchase includes APM-compliant hardware and low-radiation. Use TCO, DPMS or Energy Star compliant monitors.

R Horn <rjh at world.std.com> wrote: " I personally have found the Lawrence Berkeley Labs - LBL web site to be the best source for information on energy efficient equipment. They go into considerable details on how to reduce energy consumption from many kinds of equipment, including much more than computers. They also have a good collection of links to related sites. The Energy Star program is defined by the US Environmental Protection Agency, which has a web site on it. So far all of the Energy Star regulations have been defined to reduce energy usage without requireing change or restrictions on regular usage. There is an amazingly large amount of electricity consumed by idle equipment (computers, televisions, microwave ovens,...) and also large amounts consumed unnecessarily by equipment that must be continuously one (emergency exit signs, traffic lights, ...). Since this energy can be saved without asking users to make any compromises on performance, it is being targeted first.

Somewhere on the LBL web site they have the actual power consumption figures for various PCs. The 300W power supply is quite misleading. Actual power usage varies depending upon what programs you run and whether the disks can be powered down. Genuine usage while in operation is usually in the 50-75W range. When the system is idle, it drops significantly.

The NetWinder is a nice machine, but does force operational compromises. The peak CPU performance is much lower. The operating system is not Windows. And there are other limitations. A closer comparison is the typical laptop PC. These can generally be operated from a modest solar panel because their average power drain is quite low. With these you can see the cost vs power consumption tradeoff. They achieve the same performance as the desktop units, but the low power consumption has doubled or tripled the cost.

(I personally use a Psion. A decent slow computer that requires only 200mw of power. It may even run Linux once they deal with some of the ROM issues.)

The big debate in setting the energy star regulations was deciding which would have greater overall benefit: small negligible cost improvements to almost all equipment sold, or greater improvements at much higher cost? Could that cost be invested elsewhere to greater benefit? How will the purchasers react to the higher cost? So far the consensus has been that improving a large number of machines at negligible cost is wiser than improving a smaller number of machines at high cost."


Appendix E. Appendix E - A New Environmentally Friendly Hardware Design

Courtesy of Wade Hampton and Knut Suebert: New hardware designs that plan to use Linux should take advantage of environmentally friendly technologies such as low-power CPUs e.g., the ARM from Intel: , environmentally friendly battery design, low-power displays (e.g., non-backlit LCDs), smaller packaging, etc. Linux supports a WIDE variety of hardware and technologies. These could be leveraged into powerful, flexible, environmentally friendly Linux-based solutions.

An "Environmental Rating" could be created for new Linux-based hardware and even some Linux-based software such as bottlerocket (X10). Devices such as the Netwinder or the uCsimm would receive high ratings for their size, power consumption, capabilities, etc.

At Telepolis (German Computer Magazine) you might find an article about wasted resources during computer manufacturing.

Generally speaking PPC CPUs consume less power than x86 CPUs.


Appendix F. Appendix F - Computer Related Eco Labels


Appendix G. Appendix G - Other Operating Systems

G.1. DOS

To my surprise there are still many tools available to make an old 286 PC useful. I started a search for 286 at Simtel.Net and found many useful shareware programs. For instance:

There is even a free DOS around, see The OS Developers Homepage and The FreeOS page.


Appendix H. Appendix H - URLs of Recyclers

When computer waste processing channels are not available yet in your country, or are just not mature enough yet, another idea is too keep your computer waste a few more years in your attic or in your cellar (provided you have storage space). Better processing channels and recycling technologies will become available over the years.

In some countries like France (and probably in the whole European Union), local law makes it mandatory for consumer device shops to accept old devices for free when you buy a new one, to ensure suitable processing or recycling of waste.

mirror server hosted at Truenetwork, Russian Federation.