Thursday, February 17, 2011

Installation Low Memory Systems

How to install Ubuntu on low memory systems (Pentium III and earlier machines, with 32-192 MB RAM).
/!\ This documentation should be further reviewed for Ubuntu 10.04.
/!\ See proposed blueprint: https://blueprints.launchpad.net/ubuntu/+spec/low-memory-install

Requirements

Memory Requirements

Installing Ubuntu on any system requires at least 32 MB of memory: The text-based installer included with the alternate (install) CDs needs that much space to run reliably. Smaller memory configurations run into problems, and while not impossible, it can be very difficult to complete an installation with less than the minimum RAM requirement.
Depending on the hardware requirements, you can expect a sparse Ubuntu system to boot to a graphical desktop on anywhere from 19 MB to 54 MB. That requirement will fluctuate with the system demands, and increase while the system is active. Swap space is crucial to low-memory machines, so don't be stingy when setting up your system.
For systems with less than 64MB RAM it is probably worth considering an alternative such as Debian or Wolvix. Other minimalist distros worthy of consideration includePuppyLinux or DSL (Damn Small Linux).

Processor Specifications

There is no practical speed requirement, although a slower processor will take more time to finish installing. Some Pentium machines will take hours to complete, simply because the CPU takes longer to finish. As a general benchmark, a 75 MHz machine finishes a command-line installation of Ubuntu 7.04 in about four hours, and a 120 MHz machine finishes in perhaps three. 200 MHz and faster machines will see a further improvement.
If you do decide to install Ubuntu on a legacy machine, be patient. There will come times when you think the machine has stopped or is hung, when in fact it's still moving, albeit at a very slow rate.

Disk Space Requirements

Disk space on an absolutely minimal installation can be reduced to as little as 600 MB. A fresh and clean command-line system of Ubuntu 8.04 generally takes only 450 MB, although there will be minor variations on account of hardware differences. If you have only 64 MB of memory, you will need to reserve more disk space for swap.

Other Hardware Considerations

These instructions assume you will have a working Internet connection and access to the universe and multiverse repositories. Configuring your hardware is not included on this page.
If you do not have an internet connection, have a look at the wonderful package APTonCD to prepare your offline installation.

Install an Ubuntu command-line system

Prepare installation

If you have a fast computer available, you may want to test the install in a virtual machine before to run the real install.
It is the right thing to do in case the other computer does not have internet access.
Have a look at VirtualBox or VMware for running a VM: configure the VM with same hardware as the target machine.
If the target PC has no internet access, you may want to prepare an AptOnCD iso before to continue.

Execute installation

The command-line version of Ubuntu is a sparse system, without any graphical elements. It's a text-only version of what lies underneath all the advanced graphical elements. It's also the starting point for a minimal installation.
To install a base system, boot from any Alternate CD and choose "Install a command-line system." It is exactly the same command-line system on Kubuntu/Xubuntu/Ubuntu Alternate CDs.
Follow the on-screen instructions to complete installation.
Note: the Server Install CD provides a simple command line system, but it is not the same as "install a command-line system"
  • only on the "server install": linux-server kernel and modules
  • only on the "command-line install": linux-generic kernel, modules and restricted modules + acpiacpid and language-pack-en
The recommended install for low memory system is the command-line system.
  • you may wish to also try the MinimalCD as a base starting point
Tips and tricks
  • see bug #202959 for Ubuntu 8.04 LTS on systems with low memory (64 MB)
  • after installation you may want to blacklist some restricted modules: (if you want to save some memory)
    File /etc/default/linux-restricted-modules-common
DISABLED_MODULES="ath_hal fc fglrx fwlanusb ltm nv"
  • if you do not use hibernation, comment or delete /etc/initramfs-tools/conf.d/resume then execute sudo update-initramfs -u
  • if you do not have a laptop, you may consider removing acpi and acpid by executing sudo aptitude remove acpi acpid
  • if you do not need extra languages you may consider removing language-pack-en and language-pack-en-base

Adding Repositories

Edit Sources

Once the server install is complete, you will probably want to edit your sources.list file.
sudo nano /etc/apt/sources.list
Uncomment all official repositories by removing # at the beginning of the line. Do not uncomment the narrative portions of that file; in other words, where you see a double hash mark (##) leave those lines alone.
If you prepared a CD-ROM with additional packages (APTonCD):
  • execute sudo apt-cdrom in a console
  • put the CD-ROM in the disc tray

Update and Upgrade Your System

Now you should update your system. Return to the command line and type:
sudo aptitude update
It's probably also a good idea to upgrade your system at this point. Use this command to upgrade your system:
sudo aptitude upgrade
Now you should be ready to install a window manager and some programs.
Ideas of packages
  • localepurge: to purge unneeded translations
  • readahead: to accelerate boot sequence
  • some command line utilities: htophwinfolftp

Preparing for Graphical Environment

The absolute minimum for any graphical environment is X.org

Installing X.org

On Ubuntu Dapper (6.06), use the command:

sudo aptitude install x-window-system-core

On Ubuntu Hardy (8.04), Intrepid (8.10), Jaunty (9.04), Karmic (9.10) and Lucid (10.04) use the command:

sudo aptitude install xorg

Starting X.org

This package gives you the framework for an X session, complete with a variety of drivers and configuration files. Installingxorg (or x-window-system-core) also triggers the self-configuration sequence, so when it finishes, your hardware should be ready to use, barring any errors or incompatibilities.
It's important to note that installing xorg or x-window-system-core really doesn't leave you with much. You can start X at this point with this command:

startx

but without a window manager and some software, you probably won't get much done.

Adding a Window Manager

A window manager controls the placement and appearance of windows within a graphical user interface.
There are many lightweight window managers that will give you better access to your system through the X layer. Each one has its own way of managing the desktop, and its own way of configuring themes and menus.

Openbox

Openbox is one of the lightest, fastest window managers available, but can take some time to configure and set up. It has its origins in Blackbox, but newer versions are complete rewrites of the Blackbox code.
Install Openbox with this command:

sudo aptitude install openbox obconf openbox-themes

These packages and their dependencies will allow you to build and configure an Openbox system, along with a choice of themes and some configuration options.
Entering obconf in an X terminal window should now trigger the obconf dialogue.

IceWM

IceWM has a very strong following as a good, clean, fast window manager that resembles a conventional "desktop" in many ways. Among many of its perks are themes that resemble the Windows XP desktop theme -- which may be appealing to you.
Install IceWM with this command:

sudo aptitude install icewm iceconf icepref iceme icewm-themes

When finished, you will have a number of configuration and menu options. You can start IceWM with the startx command.

Fluxbox

Fluxbox is a beautiful, highly configurable desktop system that is easy on system resources without compromising on graphical appeal. Fluxbox is the default window manager for a number of Linux distributions, probably most notable among them beingDamn Small Linux.
Install Fluxbox with this command:

sudo aptitude install fluxbox fluxconf

Once installed, you can start Fluxbox with the startx command. Remember, if you enjoy working with Fluxbox, you should consider Fluxbuntu as an option.

FVWM-Crystal

FVWM-Crystal is a complete set of configuration scripts which sit atop of FVWM. FVWM-Crystal has support for integrated access to music players, terminal emulators and system monitors. It boasts some of the finest eye candy available to low-end machines, and is a snap to install.
For more information about building an FVWM-Crystal desktop, check out the FVWM-Crystal page.

XFCE

XFCE is heavier than any of the systems mentioned so far, but has some added functions as a result. You can try XFCE alone if you like, but if you're keen on an XFCE installation, look into Xubuntu as an option.
Install XFCE alone, without Xubuntu, with this command:

sudo aptitude install xfce4

If you want the entire Xubuntu package, which includes a full suite of software and a lot of improvements, try this command:

sudo aptitude install xubuntu-desktop

That will download quite a large amount of packages; you may want to consider installing Xubuntu fresh, from the installation ISO.
Note: Xubuntu will use more system resources and may not be optimal for a low memory system with limited disk space, but it is lighter than a standard Ubuntu system.

LXDE

LXDE (Lightweight X11 Desktop Environment) which as the name suggests, is a lightweight, low power desktop environment which relies on X11. It is a nice balance between good performance and beauty. More info can be found on the LXDE Ubuntu Wiki page. See also Lubuntu Ubuntu Wiki page. LXDE is available in the standard repos for Intrepid (8.10) through to Lucid (10.04).
To install the base LXDE system (which includes the basics - ideal for customisation):

sudo aptitude install lxde

The LXDE package includes everything you need for a basic desktop setup (but you need to also install x11). It includes the basic LXDE desktop, PCManFM (file manager), LXTerm (terminal), LeafPad (text editor) and some other suitable packages. Noticable omissions are a Web Browser, network manager and Login manager (note LXDM is included in Lucid repo - see below).

Adding Functionality

Now that the graphical window manager is set up, it's time to add some necessary and recommended packages. These will add additional functionality and make using the system easier. Additionally, adding a graphical package manager will provide an easy method to manage installed applications and packages.

Login managers

Login managers will assist in choosing a graphical environment and will not require the user to start x.org to get into the window manager.
It's important to note that it's not necessary to use a login manager. If you're willing to log in at the command line and start X manually, you can save yourself a lot of system resources -- and the time it takes to load them. That can be a more appealing option on older machines.

GDM

GDM is the Ubuntu default for a login manager. However, GDM has a reputation of being a heavyweight, and on a system that needs as little bulk as possible, you might find it to be a burden. If you've got a decent system, install it using:

sudo aptitude install gdm

KDM

KDM is another manager, but has the same heavy reputation as GDM.

sudo aptitude install kdm

XDM

XDM is the login manager for straight X, and while less beautiful than GDM or KDM, it can perform in the same role without fuss.

sudo aptitude install xdm

SLiM

SLiM is a simple login manager. It just works as expected.

sudo aptitude install slim

If the LANG environment variable is not correctly set, see bug #234474.

LXDM

LXDM is a light simple login manager designed to fit with LXDE. At the time of writing it is only available in standard Lucid (10.04) repos.

sudo aptitude install lxdm

Browsers

Now that your system is up and running, it would be a good idea to add an internet browser to surf the web and get some use out of the machine!

Firefox

Web browsers come in many flavors, and the most prevalent -- Firefox -- can be laggy on low-memory or slow systems. Even the GNU version of Firefox, Iceweasel can be a bit heavy on older machines. If you've got at least 128 MB of memory, Firefox should work just fine.

sudo aptitude install firefox

Dillo

While not nearly as full-featured as Firefox, Dillo has the advantages of a very small footprint and few resource requirements.

sudo aptitude install dillo

Epiphany Webkit

Little bit of a middle ground. Webkit is very fast and highly supported as it is center to Safari and Chromium. Javascript is quick and Flash and other plugins are supported. (although Flash is probably way too much for a low-performance system)

sudo aptitude install epiphany-webkit

iDesk

Many lightweight desktop systems use iDesk as a way of including customized, clickable icons directly on the desktop. iDesk is maintained in the Ubuntu repositories, and is installable from the command line with:

sudo aptitude install idesk

Consult the iDesk wiki for instructions on how to configure and use iDesk. For icon sets, you may wish to search the repositories, or download them from third-party customization sites, such as Gnome-Look.org and similar locations.

File managers

Lightweight systems have a number of options available for graphical file management. Thunar is the default file manager in Xubuntu and many XFCE-based systems; it is installable alone with this command:

sudo aptitude install thunar

XFE is an even lighter file manager, intended to mimic the Windows Explorer interface. It has very few dependencies and is very fast.

sudo aptitude install xfe

ROX-Filer is another file management program, which makes extensive use of drag-and-drop principles. It does appear to have a large number of dependencies however, which means installing it may entail more external packages than you wish. Install ROX-Filer with this command:

sudo aptitude install rox-filer

Nautilus is the default file manager for Ubuntu. It requires some more resources, but it has a lot of useful features. It can manage your desktop, show a wallpaper and desktop icons, which are automatically created for new devices (e.g. USB flash drives). Install Nautilus using this command:

sudo apt-get install nautilus

To use it together with a window manager, execute the following command or add it to your autostart script. For example, use $HOME/.icewm/startup for IceWM.

nautilus --no-default-window &

PCManFM is a fast and efficient file manager. Its the default file manager installed with LXDE and is available from the repos for all currently supported Ubuntu versions (except for Dapper/6.06). Install it with this command:

sudo apt-get install pcmanfm

Some other popular file managers include
There are many others. Some are available through the repositories; others will require you to download and install them through another source. Experiment with different file managers to see which ones appeal to you.

Package manager

Add a graphical package manager to install, remove and upgrade software packages and to add repositories without using the command line. Synaptic package manager is the standard and can be installed with this command:

sudo aptitude install synaptic

Another good package manager, which uses ncurses, is Aptitude. It is light and fast, with lots of features:

sudo aptitude

You can use the package manager to add a word processor, such as Abiword, and other productivity software.
See also Low End System Support for additional packages ideas.

Install an entire lightweight system

Building on the ideas above, here are some complete graphical systems, installable through a single command line. Feel free to mix and match between these options.

Remember: If you are using Dapper, replace "xorg" with "x-window-system-core"
  • IceWM as a window manager, plus GDM, Firefox, Abiword and the Synaptic package manager:
sudo aptitude install gdm xorg xterm icewm menu mozilla-firefox abiword synaptic
  • XFCE and Firefox, with Synaptic package manager and KDM as the login manager:
sudo aptitude install kdm xorg xfce4 firefox synaptic
  • Fluxbox with Dillo, and XDM as a login manager:
sudo aptitude install fluxbox xorg xdm dillo
  • Openbox with no login manager, XFE as the file manager and xfce4-terminal as an X terminal, as well as Openbox themes and the Tango icon set:
sudo aptitude install openbox obconf openbox-themes xfe xfce4-terminal tango-icon-theme-extras xorg

Remember to check the repositories for more ideas on software and applications!

Low Configuration Option

For a minimalistic system that does not require as much configuration, you can install the alternate window managers after installing a full K/X/Ubuntu system, thus preinstalling much of the required software but keeping the speed. However, installing a full system does require more system resources.

External Links

  • Minimal Desktop for Ubuntu, a project to create a slim install script based on GNOME/GDM or KDE/KDM. Not necessarily the lightest install, but probably the most user-friendly. Also automatically installs the user's choice of browser, IM client, media player, e-mail client, and office suite. Support for Fluxbox is in progress.
  • FluxBuntu: An Ubuntu variant with Fluxbox as the default window manager. An excellent place to start for a Fluxbox-based system.
  • U-Lite: A project to build a stripped-down version of Ubuntu aimed at low-end machines.
  • Cubuntu is not a graphical system; Cubuntu is a full-featured command line system, suitable for computers that can't handle any of the above options -- such as early Pentium or perhaps even 486-grade machines with as little as 16 MB RAM. And don't be skeptical: Even without a graphic environment, a computer can perform a lot more tasks than you would expect. B)
  • Enlightenment is another window manager, but it is still in development and requires additional steps to install. However, it is very lightweight and functional.
  • gOS is an operating system based on Ubuntu, uses a customized version of Enlightenment as its window manager, and is able to run on some older systems.
  • sliTaz (30Mb) is a tiny distro quite different from Ubuntu (800Mb) but also has a LiveCd. It is French based but with almost all their translations into English are complete now.
  • Debian is head of the gnu&linux family that includes Ubuntu. It has a reputation for being very much lighter-weight but not as extreme as sliTaz! Their development branch might be akin to our alpha/beta releases and their stable branch similar to our LTS releases.
  • DistroWatch is the most fully comprehensive list of different versions of linux. However unique your set-up the chances are there is a distro to suit your requirements
  • Lubuntu is a faster, more lightweight and energy saving variant of Ubuntu using LXDE, the Lightweight X11 Desktop Environment. The lubuntu team aims to earn official endorsement from Canonical.

No comments:

Post a Comment