Contents: A long, but hopefully easy to read collection of advice for beginners and intermediate users. Don't get scared by the volume: The fact that the text is long is not an indication that installing is difficult, it's just a result of trying to deal with many different problems, also some which are fairly unlikely to encounter. Though the guide was born in 2012 it is receiving steady updates, latest 2024-01-24.
Various Linux distros are known as a good option for bringing old hardware back to life and the forum is receiving many questions on the topic. The thread is created in order to keep the experience and advice regarding old hardware in one place. Many of the considerations, recommendations and warnings from one problem can and should be reused by other people.
The main release, Ubuntu, used to be lightweight and suitable for old hardware, but recent releases are targeting new systems with more graphics horsepower.
Lighter derivatives like Lubuntu and Xubuntu are a better option for semi-old hardware. Both of them use the shared Ubuntu software repository so applications known to run on Ubuntu can also be used on Lubuntu/Xubuntu.
However, there is a lot of hardware around which would benefit from something even lighter. For example, Snap (discussed later) adds a big workload. This might not be relevant for recent hardware but one clearly feels the difference using older gear. Also, the Buntu family does not support 32 bit CPU's so this is another use case where other distros must be considered.
1) Which distro to install?
Ubuntu is built on Debian and broadly speaking Debian of today can be compared to Buntu ten years ago. According to some, Buntu has drifted away from the roots but this space is now taken over by Debian. Some of the advantages regarding old hardware are:
- Debian supports 32 bit hardware
- Debian offers a small Netinstall image suitable for older equipment. Most of the packages are being downloaded during the installation so they don't have to be packaged in the installation file itself. The installation file fits to a CD.
- Debian manages packages using the DEB format which is as lightweight as can be. Various middle tiers like Snap and Flatpak are not needed here.
- There is no push towards buying a 'pro' subscription and the commands retain their original and intended function. For example, the apt command in Debian is only used for package management, not for additional marketing of the 'pro' option.
When viewed using the command df -hT, a typical Debian installation running the XFCE desktop environment with Libreoffice and Firefox installed looks like this:
A size around 4 GB is about as small as one can get.Code:Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 1.7G 0 1.7G 0% /dev tmpfs tmpfs 352M 1.2M 351M 1% /run /dev/sda1 ext4 284G 4.1G 265G 2% / tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs tmpfs 5.0M 8.0K 5.0M 1% /run/lock tmpfs tmpfs 352M 60K 352M 1% /run/user/1000
Later zram can be added (explained below).
In the following guide we first test the hardware capabilities before deciding what and how to install but if you can't wait or if it's not possible to run a live boot you can just take the chance and go straight to the install described in 3).
2) Hardware
The main rule is that software in the Debian world works more or less everywhere. Some exceptions apply, though.
Hardware Age (approx.) Occurrence Remarks 32 bit without SSE2 - 2002 Rare See post 3 in the thread 32 bit without PAE 2003-4 Rare Debian is recommended. It comes with Firefox in stead of Chrome/Chromium which has abandoned 32 bit hardware. 32 bit with SSE2 and PAE A) General availability 2000 - 2008
B) Intel Atom notebooks from the years 2009-11 famous for having very low power consumption.Common Debian is recommended. It comes with Firefox in stead of Chrome/Chromium which has abandoned 32 bit hardware. 64 bit 2003 - Common Though Ubuntu installs fine the performance under Debian is likely better.
These restrictions are good to remember when reading the thread.
Let's begin with a simple test to see if the hardware in question is fairly old but straightforward to deal with or very old and needs some tricks.
Using any Linux distro, installed or from a live boot, please copy the following command one at a time into the terminal and run.
It installs the programs lshw (an abbreviation for list hardware) and dmidecode if they are not already present. We are going to use them a lot to look inside the computer.Code:sudo apt update sudo apt dist-upgrade sudo apt install lshw dmidecode
After this, run
It takes some seconds to complete.Code:sudo lshw -C cpu | grep -i sse2
If you get a line full of abbreviations everything is good. Chances are that the install is simply next, next, next, finish.
If the command doesn't yield an output please see post #3 'really old hardware' in the thread. It's questionable if the computer will be of any practial use.
(Details: The command above checks if the processor has the SSE2 instructions set. In the Intel family the oldest member with SSE2 is a Pentium 4 and for AMD the oldest is a K8. Though SSE2 is not necessary for a Debian install it still serves as a baseline for reasonable performance.)
The command
tells if you have a 32 or 64 bit processor. If it's 64 bit and you have more than 2 GiB of memory then a 64 bit ISO is recommended.Code:sudo lshw -C cpu | grep -i width
For people wanting to investigate CPU properties in depth this link gives inspiration.
Memory: The command
shows the size of the present memory, for example 2*1 GB. It also shows empty slots ready for additional memory.Code:sudo dmidecode -t memory | grep -i 'ddr\|size'
shows the maximum size of memory that the motherboard supports.Code:sudo dmidecode -t memory | grep -i max
If you (like me) end up with hardware not worth salvaging these commands are helpful when deciding how and where to recycle the memory. I often see a big improvement when an old computer receives one or two memory sticks from a donor.
The graphics processor has its own memory modules. Here is a guide for finding out how much memory the graphics processor has.
Drives
shows the drives of the system, including CD/DVD drives. You can see the size of the hard disk and decide if it's big enough for the intended use. Later in the thread we shall investigate the health of the hard disk.Code:sudo lshw -short -C disk
If Gparted or the df command show some strange partitions or don't show any at all it could be due of Fake-RAID. If that's the case and if you don't want to keep Windows which may be installed here I suggest that Fake-RAID be disabled so the disks are functioning independently. The text in the hyperlink explains why.
Network
shows the speed of the wired (ethernet) connector, often 100 or 1000 Mbit/s. If Wifi is slow then this is an alternative.Code:sudo lshw | grep -i '00bt'
Display server
You might have heard that some Linux distros are slowly switching from X11 to Wayland as a display server. Debian/XFCE stays for the time being with the dated but highly stable X11. One can see which server is in use by running the command
If the output is x11 then there's no need to worry about people posting this-and-that about Wayland.Code:echo $XDG_SESSION_TYPE
Hardware modifications
The older and hence slower the hard disk the more important is zram and/or swappiness, as explained in a later post. 2,5" disks used in portables are generally worse than 3,5" disks in stationary computers.
Adding memory is the single most efficient step one can take.
If the hardware does not meet these requirements one should consider if it's worth the effort to carry on. There is so much used (say, 4-12 years of age) gear around that one can get for free or cheap. The ever-increasing system requirements of Windows are pushing more and more computers into the ‘old’ category even though they are in good working order.
Though, if the graphics horsepower in an old computer is too weak for daily use it can still be of value as a file server for back-ups. Just check that the hard disk is in good condition (see next post in the thread) but consider the power consumption if it's intended to be always running.
On a home network with only trusted clients Vsftpd is a fine FTP server package for backup purposes. The otherwise popular client Filezilla has been terminated for 32 bit systems so here one has to use alternatives like Gftp.
An interesting blog about old hardware and realistic expectations.
3) Installing the operating system
First of all: The solution to getting old hardware into usable condition is not old software. When software has reached end of life and is abandoned by the developers no security fixes are provided, and for obvious reasons people should not run such a system. Don't use it, no matter how fast it runs or how much you like the user interface. Here we focus on the latest Debian.
Installation files are normally packaged in a file with the .ISO extension, in daily speak just referred to as 'an ISO'.
If the computer is one you have salvaged from a dumpster or which has been given to you I suggest that you begin with completely erasing the hard disk. My preferred command is
where sdX refers to your hard disk, often sda. It must be run from a live boot.Code:sudo shred -f -z -v -n 2 /dev/sdX
Nwipe is another good candidate for sanitising a hard disk.
More about hard disk management.
Installation should be done from a USB stick, if the computer is young enough to support it, or else from a CD or DVD. If the install hangs at the very end with no explanation given just push Return.
If booting from USB does not work and if the CD/DVD drive is on the brink of failing it's worth trying the minimal Debian ISO as opposed to the full-size one. Often a semi-working CD drive will accept a small ISO file like this one.
Regardless of which ISO you choose one should (if possible) use wired internet access while installing, during the first boot and when applying the first batch of bug fixes.
A number of background processes called daemons are created automatically. They often serve a useful purpose, for example taking care of the network connection, but not all are needed by all users.
If one doesn't have a printer then cups could and should be removed. It can be temporarily disabled by the commandAfter thatCode:sudo systemctl stop cupsfollowed byCode:sudo apt --purge remove cups cups-common cups-filters cups-pk-helperremoves cups-related packages.Code:sudo apt autoremove
One or both of the commandswill shows all daemons running (press q for quitting after seeing the output). If one wants to harden the system and remove other unneeded daemons, for example Bluetooth, then this can be used as inspiration.Code:sudo systemctl --type=service service --status-all
3 B) Security matters
Hardware-related security is first and foremost centered around the CPU (more text to come here).
3 C) Distros other than Debian
GNU/Linux is about choice, and other light distros than Debian are also worth a try.
Puppy (which comes in many versions), Knoppix and Bodhi Linux are good options. More distros are listed here and here if people want to experiment, but before choosing one of the minor distros remember to check how well it is maintained. Never use an unsupported distro or a distro where bug fixes are released so slowly that it's almost unsupported. This excludes for example Damn Small Linux, which is sadly still mentioned in Ubuntuforums. Please let it rest in peace.
3D) BIOS
If the install still does not work you could try resetting BIOS to default values and / or upgrade the BIOS to a later version. Before upgrading remember to search the web and see if people have bad experiences with this for your particular hardware. Don't be afraid of general warnings which may not apply to your machinery.
Some advice for updating BIOS and other kinds of firmware.
A working BIOS can sometimes be tuned to yield a better performance, for example by disabling options which are not needed.
4) Snap
The traditional package format for Debian is a deb package. Lately at least three alternative package formats have been introduced: Snap, Flatpack and AppImage.
For a number of reasons I recommend to stay with deb packages only, especially for old hardware. First and foremost the other package formats add a significant workload to the system.
The people behind Linux Mint have posted this statement about Snap explaining why they try to avoid it. Since the purpose of this thread is to get old hardware functioning we will do the same.
To check if you have snap installed run the commandIt has three possible outcomes:Code:snap list
- An error appears
- The user is encouraged you run the command snap install hello-world
- The user gets a list of installed snap packages, for example
If 1: Everything is good.Code:Name Version Rev Tracking Publisher Notes bare 1.0 5 latest/stable canonical✓ base core22 20230801 864 latest/stable canonical✓ base firefox 118.0.1-1 3216 latest/stable/… mozilla✓ - gnome-42-2204 0+git.ff35a85 141 latest/stable/… canonical✓ - gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ - snapd 2.60.3 20092 latest/stable canonical✓ snapd
If 2: The snap daemon is present but inactive. To avoid using it by accident just remove it with the command sudo apt remove snapd. It can take a while to finish.
If 3: Some applications are present in snap format. Consider if you need all of them or if they can be replaced by applications in deb packages.
To remove a snap package run
for each package, for exampleCode:sudo snap remove <package>
It might take some attempts because packages have to be removed in the right order.Code:sudo snap remove firefox
Now
should display the empty list.Code:snap list
Finally
removes the mothership. All clear.Code:sudo apt remove snapd
Now comes the tricky part. One would expect that the commandwould warn the user about all packages about to be installed but that's not the case. Should one be mislead to executingCode:sudo apt install chromium-browser --dry-run
then a subsequentCode:sudo apt install chromium-browser
will show that the command silently has triggered a full Snap reinstall including packages unrelated to Chromium. We are back to start, only with cups added to the list. Oh, snap.Code:snap list
Code:Name Version Rev Tracking Publisher Notes bare 1.0 5 latest/stable canonical✓ base chromium 118.0.5993.117 2673 latest/stable canonical✓ - core22 20230801 864 latest/stable canonical✓ base cups 2.4.6-4 980 latest/stable openprinting✓ - gnome-42-2204 0+git.ff35a85 141 latest/stable canonical✓ - gtk-common-themes 0.1-81-g442e511 1535 latest/stable canonical✓ - snapd 2.60.4 20290 latest/stable canonical✓ snapd
The Buntu roadmap indicates that more and more packages are to be transferred to Snap. If that's not your liking then it's worth the while trying Debian or Linux Mint.
For more information about Snap see the thread here.
5) Applications
‘Light applications’ is a neverending topic. Only brief advice is given here, otherwise I leave it to the user to experiment.
Trying a lighter browser like Pale Moon, Xombrero / Xxxterm or Epiphany may or may not speed things up. The packages are small so it’s an easy test to do. The even lighter browser links2 gives a crude text display with embedded images but nothing more - no pop-ups, no animated GIF's and no video ads (scrolling is done with right mouse button or with Page Up/Down). After years of exposure to pages bloated with irrelevant ads and animations it's a joy to see only plain text. The command for installing is
Code:sudo apt install links2
6) Maintenance
An often overlooked part of getting an old computer into a useable condition is cleaning the interior dust build-ups, especially around the fan and heatsink. Take care not to damage the fans by forceful vacuuming and remember to only vacuum in the reverse direction of the normal air flow. Best is to block the fan with a tooth pick or piece of wire while cleaning to prevent it from spinning too fast. If we are dealing with a desktop remember that it likely has several fans (for CPU, GPU, power supply and more).
Short bursts of compressed air also helps. Again, only in the reverse direction of the normal air flow.
Remember to check that the fan is turning freely after cleaning.
Many good guides are available describing how to take hardware apart. Here's for example a list for Toshiba.
On the software side the only maintenance needed is
once in a while. The last command comes in handy because it removes old kernels and saves hard disk space.Code:sudo apt update sudo apt dist-upgrade <maybe reboot here> sudo apt clean sudo apt autoremove
If the computer does not automatically ask for updates shortly after the install it's especially important to run the commands.
A file system needs some free space to perform well. The command
shows in percent how much space is used for various mounts. A good rule of thumb is never letting any of the measures exceed 75%.Code:df -Th
The similar commandshows the number of available inodes. There are many explanations for inodes on the web, for now it will be enough to know that the percentages shown should be as low as possible. If you see high numbers just run the autoremove command mentioned above.Code:df -i
The command
tells which files in the /home directory are more than 50 MB of size. It's useful for cleaning if space is getting tight. Remember to empty the trash can afterwards.Code:sudo find /home -name '*' -size +50M
Some advice on file system maintenance.
7) Environmental impact
It is a widely held belief that old hardware shouldn’t be used because of power consumption. This is not necessarily true: Old hardware is sometimes less greedy than new, if one compares within the same category (desktop versus desktop, for example). The power consumption of newer machines per unit of calculation is lower, but not the total power consumption of the machine.
However, the biggest benefits from using an old computer as long as possible is less production of new hardware and less e-waste to be handled, both of which are causing serious environmental problems. Add to this the joy of using hardware without a software vendor trying to force people to pay for a pre-installed operating system.
If you have managed to bring an old computer back to usable life you should not be ashamed for being out of sync but proud of taking care of the environment.
8) Further improvement
Third post in the thread gives some suggestions for what to trim and adjust after install.
9) Still in doubt?
If this does not answer all your questions you are of course welcome to post but please read #4 first.
= = =
Thanks to MG&TL for proof-reading.
Bookmarks