Dumpster Diving for Old Computers

To paraphrase Forrest Gump’s mother, “Dumpster diving for computers is like a box of chocolates … you never know what you’re gonna get.”

Over the past at least twelve years, I have been salvaging computers I have found on the streets on garbage day, or found in other locations where my various personal travels have taken me, for use to reformat into usable computers. The various finds have served as main desktop computers, secondary computers, home servers, computation nodes for the World Community Grid, gifts to my brother or the occasional friend, and the like. It has variously allowed me to indulge in a bit of tinkering, trying out a new linux distro or version of BSD, build a home server, or just pass the time while engaging in a hobby.

In the process, I’ve watched the lower bar of what is acceptable “junk that isn’t junk, at least not yet” move upwards from about P4-533 MHz 32 bit processors to dual core 2.66 GHz 64 bit processors (although single core 64 bit P4 at 3.4 GHz to 3.8 GHz range is good if you don’t want to depend on a GUI, or if you have a lot of RAM and an SSD), 512 MB of RAM to 2GB of RAM, and 20GB hard drives to 80GB hard drives. Now it seems that the next big thing will be in moving from mechanical drives to SSD drives, which I expect — when SSD drives become common in the old computers I find being thrown out — will make a revolutionary change upwards in speed in low end hardware, the way I learned the same in 2017 when I swapped out the mechanical drive in my laptop and replaced it with an SSD. (To be fair, when I bought the computer new in 2015, the hard drive was curiously a 5400 RPM model, presumably either to make it less expensive, less power hungry vis-à-vis battery life, or both.)

As an aside: My favourite brands of castoffs have been, in order, IBM / Lenovo ThinkCentres, then Dells. After that, I’ve had an excellent experience with a single used HP desktop that has been doing computations for World Community Grid running at 100% capacity, since late summer 2016. I’ve dealt with other types of computers, but the ThinkCentres and the Dells have been the ones I’ve had the most success with, or at least the most personal experience. (Since initially writing this post, I have been developing a suspicion that based on the longevity of the HP cast-off I have, HP actually might be superior to the IBM / Lenovo when it comes to cast-offs; however, since it’s the only HP cast off that I can remember ever having, it’s hard to form a proper opinion.)

But to wit: Over the past two weeks, I have tried to revive three used computers that were cast-offs.

Two of them were IBM / Lenovo ThinkCentres, which I think were new in 2006 / 2007, 2.66MHz 64 bit dual cores, 80GB hard drives, and 2 GB memory. The third computer was a Dell case with only the motherboard (proving to have been — see below — a 64 bit dual CPU running at something like 2.66MHz) but no memory, no hard drive, no wires, no DVD player, and not even a power supply!

The two ThinkCentres were from a pile of old computers marked for disposal at a location where I happened to be in mid-2017, and I was granted permission to pick and choose what I wanted from the pile. I gave them to my brother, who at the time evaluated them and determined that neither worked, one just beeping four times and then hanging. After that, they just sat around in his apartment for whenever they might come in handy for spare parts. He had since determined that one actually worked, but he hadn’t done anything with it.

The third computer was found on the street near home a couple of months ago, and was covered with about an inch of snow by the time I’d recovered it. I brought it home, and let it sit around for several weeks just to make sure that it dried out properly. Based on the “Built for Windows XP” and “Vista Ready” stickers, I’d guess that it was new in about 2005 or 2006.

Having forgotten about the ThinkCentre computers I’d given to my brother in 2017, I casually asked him if he had the requisite spare parts to make the snow-covered computer work, since we normally share our piles of spare parts retrieved from old computers that die. To my surprise, he sent me the functional ThinkCentre. My knee-jerk reaction was “I don’t need a new-to-me computer; just the parts required to see if I can get the snow-covered computer to work.” Perversely, I didn’t actually want the results of my planned efforts to produce a functional computer; I just wanted the amusement of a small project, and more generally to see whether the Dell found on the street would work.

In parallel, my home server on which I hosted my backups and my website, another computer of the used several times over variety, worked perfectly except for mysteriously turning off on its own a couple of times recently, perhaps once a week. My brother and I decided that what was probably happening was the result of one or more thermal event(s) which shut down the computer, no doubt due to a combination of dust accumulation, the CPU fan ports in the case not having enough clearance from the computer next to it to allow for proper aspiration of ambient cooling air, and possibly high heat generation from occasional loads due to search engine bots crawling my website. Despite cleaning out the dust, removing the computer’s side panel from which the CPU fan drew air, and shifting both computers a bit in order to allow for adequate ventilation, the computer turned itself off again after about a week.

My brother and I made a swift decision to replace my server with a new installation on a “new” computer — the good ThinkCentre I initially didn’t want — because even though the existing machine was otherwise performing spectacularly well given the overall small load, we tacitly agreed that the shutdowns were a problem with a production server, though we hadn’t actually said the words. This incidentally dealt with another curious behaviour exhibited by the existing server which appeared to otherwise be completely benign, and hence perhaps beyond the scope of why we changed the physical computer.

The operational ThinkCentre was plugged in, formatted with Fedora 31, and my brother helped me install the requisite services and transfer settings to the new server in order to replicate my website. Newer practices in installation were implemented, and newer choices of packages were made. For instance, the “old” machine is still being kept active for a bit as a backup as well as to maintain some VPN services — provided by openVPN — for the purposes of setting up the new server and installing WireGuard for VPN on the new server, and generally allow for a smooth transition period. Other things that we had to remember as well as learn, perhaps for another time, were to install No-IP as a service, and that drive mounts should be unmounted and re-mounted through rc.local.

One of the unexpected bonuses to the upgrade is that it appears to be serving web pages and my blog a wee bit faster, for reasons unknown.

In a few weeks, I’ll reformat the old webserver and make it another computation node for the World Community Gridin fact, this particular machine’s “original” vocation when I first got it in late 2017.

In the meantime, on the next project, I got the non-functional ThinkCentre for its spare parts. The first idea I had was that maybe this second ThinkCentre might still be good, and we looked at a YouTube video that suggested cleaning out the seats for the memory sticks with a can of clean compressed air. I was suspicious of this but let it go for a while, and I proceeded to harvest parts from the computer after deciding that the machine wouldn’t work regardless.

A power supply, cables, a hard drive, and memory sticks were placed in the Dell found on the street. It powered up, and after changing some settings in the BIOS, I was able to boot up a Fedora 31 LiveUSB. Using the settings option from the Gnome desktop, I was able to determine that there was a 64 bit dualcore CPU running at about 2.66GHz, that the 2GBs of memory I’d inserted worked, and that the 80GB hard drive was recognized. I looked around on the hard drive a bit with a file manager (Nautilus) and determined that the place from which I’d retrieved the ThinkCentre appeared to have done at least a basic reformatting of the drive with NTFS. I didn’t try to use or install any forensic tools to further determine whether the drive had been properly cleaned, or had merely received a quick reformat.

Suppertime came around, and the machine was left idle to wait for my instructions for about an hour or so. When I returned to the computer, I saw an interesting screen:

“Oh no! Something has gone wrong.” error screen

(If you can’t see the picture above, it’s an error screen, vaguely akin to a Windows Blue Screen of Death.) After a few reboots, all with the same “Oh no!” error screen, my brother suggested that the machine may have been thrown out for good reason, intimating that it was good luck that I’d even managed to boot it up in the first place and look around a little bit. I, on the other hand, was relieved: I’d had my evening’s entertainment, I’d gotten what I wanted in the form of working on the machine to determine whether or not the machine could be used, and I’d learned that it indeed couldn’t be used. Parts were stripped back out of the Dell, and the box was relegated to the part of the garage where I store toxic waste and old electronics for the times I have enough collected to make it worthwhile to go to an authorized disposal centre.

At this point, something was still bugging me about the second ThinkCentre. I hadn’t yet placed my finger on it, but I was suspicious of the “use compressed air to get rid of the dust in the memory bays” solution. So I placed the salvaged parts back into the ThinkCentre — having fun with which wires go where in order to make it work again — and got the four beeps again. I looked up what four beeps at start up means (here’s my archive of the table, which I had to recreate since a direct printing of the webpage only printed one of the tables,) and found that at least on a Lenovo ThinkCentre, it means “Clock error, timer on the system board does not work.” While I assumed that changing the BIOS battery may well fix the problem, I decided not to investigate any further.

I salvaged the parts again and placed them in my parts pile, ready for the next time I find a junker on the street or from elsewhere. The second ThinkCentre’s case was also placed beside the Dell, awaiting my next trip to an authorized disposal centre.

This means that out of the last three computers, I have one functioning computer replacing an existing computer (that I hope will continue with an industrious afterlife doing something else), one computer scavenged for spare parts and the case relegated to the disposal centre pile, and the Dell computer which was found on the street also relegated to the disposal centre pile.

Or, to paraphrase Meat Loaf, “One out of three ain’t bad …”

New World Community Grid Node

I started volunteering some of my extra computers’ idle time for the World Community Grid in December, 2013.  Unfortunately, the machine in question, a used computer I’d bought about five years earlier and, after having been used as a desktop for a few years, had been converted to being a server under CentOS, died from a “thermal event” nine months later.  It had completed 713 results and earned 419,591 points.

In 2016, I found a P4 3.4GHz machine, installed CentOS 7 on it, and then the BOINC infrastructure.  I assigned it to the World Community Grid and 100% of its capacity to the project.  From when it began in September, 2016 to today, it has completed 4,540 results, and earned 2,568,590 points.

In 2017, I finally converted my old netbook (32 bit atom processor) to CentOS 6 and did the same thing.  From when it began in April until today, it has completed 261 results, and earned 133,073 points.  (What a difference in capacity that 3.4GHz 64 bit has as compared to 1.6GHz 32 bit!)

Over the past few months, I have been collecting up a number of old machines which have come my way, including some IBM ThinkCentres from the Windows Vista era.  So far, my brother and I haven’t been able to get them running properly, and we will probably end up using them for spare parts.

In the meantime, we acquired two more computers.  My brother wanted / needed a replacement computer for his aging media server, an old reclaimed IBM ThinkCentre I’d gotten for him a few years ago.  I, in the meantime, wanted to add another node to the World Community Grid (of course, working at 100% of capacity.)

I chose CentOS 7 for this build, like I did for my other nodes, for what I consider to be the obvious reason that I want to pretty much forget about the computers and just relish in the numbers on the World Community Grid website — I don’t want to be re-installing every year!

The install went well enough, although it was long enough process for the base install, as compared to my laptop and desktop.  I will rule out the comparison to my laptop since the SSD and physical drive don’t compare at all.  As for the desktop and node, I’ll chalk up the difference mainly to processor speed and general architectures:  A 2015-era four core i5 running at 3.4GHZ vs a 2010 era Pentium dual-core E6500 running at 2.93GHz (no HyperThreading).

What was really long after that was the yum update after the initial install — about 650 packages!  In the process of the updates, I tried a few things like web surfing, and the gnome desktop became unstable; I ended up with a flashing text screen.  I finally rebooted, and tried to downgrade to an older kernel in GRUB, to no avail.  I tried the rescue kernel, no avail.  Under both situations, I couldn’t pull up a terminal with Alt-Ctrl-F2.  A quick check under a Fedora live environment was a waste of time, since I didn’t really know how to diagnose things; however, I was able to mount the CentOS drive.

There was some flirting with the idea of installing Fedora 27, but I don’t want the re-installation mill on this machine (or any of my other volunteer computing nodes) every year — although, seeing my brother upgrade from Fedora 25 to 27 through the GUI go as smoothly as a routine DNF upgrade is making me wonder if the point is moot.  (Note that CentOS 7, based on Fedora 19, is still using YUM, while Fedora has been using DNF since version 22.)

Finally, I restarted the install of CentOS, this time doing a minimal text install.  Things were a touch faster.  Then I did a yum update, with only about half as many packages to update.  After that, I installed the Gnome Desktop on the machine. (Here’s my archive.)

I continued with the installation of the Fedora EPEL repository (as root “wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm”, then “rpm -ivh epel-release-latest-7.noarch.rpm”).  Installing the BOINC infrastructure was easy:  As root “yum install boinc*”.

I launched the BOINC manager from one of the pull down menus, and, to my surprise, it actually worked out of the box, unlike previous installations.  Someone must have updated the packages. 🙂  I added the World Community Grid website information, and my account and password.

Voilà!  At 12:00 UTC the next morning, my machine had already submitted FIVE results, and earned 2,429 points!  And, at 00:00 UTC as I’m completing this post, a total of EIGHT results, and 4,638 points!

malak.ca updated

Since about lat 2016, my website had problems with uptime:  It was mostly down.  In the spring of 2017, it was finally up and I did a bit of restoration work.  And then … it was down again for a few months.  (And, due to the circumstances of this downtime, my restoration work was lost.)

Finally, I transferred my website to an existing home server, and it is now living out of a computer which I believe may be as old as 2003, living under CentOS 7.x series, in my bedroom.  Having fixed a faulty telephone line (squirrels!) the line is now “not noisy” and the internet is back properly.

Main work has been: