Raspberry Pi: First look
A few months ago, the techie community was abuzz with news of the Raspberry PI, a credit card-sized computer for $35. But it sold out on day one. PHILIP MACHANICK finally got his hands on a unit and put it to the test.
It took a while for my Pi to arrive (see Philip's original article here), and not before purchasing glitches from RS Componentsís new Pi-specific store. It crashed the first two times I tried to order, and I was charged three times and lost a bit on exchange rates by the time they refunded me. Thatís the price of being on the bleeding edge.
So now the ordering system is shaken down, should you buy one?
Let ís recap on what a Raspberry Pi is supposed to do for you. Itís a single-board credit card-sized computer based on a Broadcom ARM chipset usually used in cell phones, with 256 Mbytes of RAM, USB, HDMI, composite video and and ethernet. It boots off an SD flash card, usually running a version of Linux.
The inspiration for it is the wave of excitement about studying computer science in the wake of the cheap PCs available in the UK in the 1980s like the BBC micro and the Sinclair ZX Spectrum that were cheap enough to buy as childrenís toys, and used a TV for a display. Although these computers were very limited in their capability, they inspired a generation of children to learn to program from around the age off 8.
The Pi is meant to reprise this revolution.
As it exists now, it is very much a development model, lacking a few rudiments like a case. So any review now has to be read with that in mind: the finished product, due out in time for the UK school year in September, should be more finished with a case and more carefully packaged software. Now it comes with a reasonably impressive collection of programming tools from graphical languages like Scratch, through Python and even heavy-weight tools like C and C++. It also includes a relatively lightweight web browser, Midori (though it crashed so often on me, I gave up and installed Google Chrome).
It is remarkable that something like this has developed such a following when itís still a way off ready, but the community spirit attending the free software movement may have something to do with that.
Having had one to play with for a few weeks, itís clear to me that one of the biggest areas of work needed is creating more software with a small memory footprint. Running one or two web windows is enough to slow it to a crawl. That need not be the case: when the first web browsers appeared about 20 years ago, something equivalent to the Piís 700MHz ARM processor with 256MiB of RAM would have been a decent machine.
Why is a ďsmallĒ memory a big problem? Linux is optimistic in its allocation of memory, on the presumption that thereís enough swap space. As the provided flash image is configured, swap space is set up as a partition but not available for use (you need to edit the /etc/fstab file). Some believe flash is not good for a swap partition because frequently modified bits wear out, but Iím not convinced that this effect is bad enough to matter, so I increased the swap partition to 512MiB and enabled it.
Even so, the machine performs poorly with heavy memory demands. A Linux system doesnít fail gracefully when it totally runs out of memory. It kills something arbitrary, which could, for example, take out the window system. With programs you are likely to run, running at most one or two windows with significant graphical aspects is a reasonable limit.
Another problem is that graphics drivers are a work in progress. Although the Pi has a respectable GPU, the X Window system doesnít use it, putting another load on the processor. Dragging windows and redraws are slow as a result. I hope this is fixed by the start of the UK school year. Writing graphics drivers is a hard, specialist task, though in a world of random volunteers contributing to free software projects, anything can happen. To give some indication of whatís possible, Quake 3 (which doesnít rely on the graphics drivers the X Windows system needs) runs at a pretty respectable speed.
Assuming all this is fixed Ė good drivers for graphics, more programs available with small memory footprints and a sensible configuration of a swap partition out of the box, what else is a concern?
SD flash is not widely used as a main ďdiskĒ: the most common application is camera storage, with very different properties. As a result, not all SD cards work on the Pi. While a reasonably long list can be found on the Raspberry Pi wiki at elinux.org, I tried a SanDisk card off that list, and it didnít work. Even with the Transcend card I bought with the Pi, I had some trouble copying the disk image over. I suspect the fault was with the SD card device on my Linux box, where I havenít previously done anything with an SD card.
I eventually managed to copy the image over on a Mac. Once I had the card set up, my Linux box graciously mounted it and allowed me to edit the partitions when I wanted to increase the swap space. Some of this unreliability may just be a matter of better drivers for SD devices, which vary a lot more internally than most people who just slot them into a camera realise. Nonetheless for the average user, buying a pre-configured SD card (on the agenda but not available yet) is a good idea.
Another potential issue: its video out is HDMI or composite video, targeting respectively modern and older TVs. If you have an older computer screen only accepting VGA, youíre out of luck. You will need a relatively expensive adapter that can convert a digital signal to analog. Although HDMI to DVI should work better, some have reported problems. While there are computer screens taking HDMI input, they tend to be on the expensive side, targeting gamers, movie viewing, and plugging into DSTV without a TV licence.
Given the level of interest and the fact that the main software is free and open to community tweaks, itís likely that much of this will be fixed. As an example of how the community pulls together for this sort of development, the Fedora distribution that was originally planned turned out to have major problems but before that became an issue, a Debian Linux release appeared.
So back to my question: should you buy one?
If you are a developer, hobbyist or generally someone who likes playing with new stuff that isnít fully developed, yes. For the less technically minded, it is worth waiting for a stable distribution available pre-installed on an SD card, and for drivers to be improved.
Will it replace your home PC?
Not for a while. You canít run anything near the complexity of an office package on it. Not yet, anyway Ė an office package with 1990s functionality would run, if someone cared to develop one, and I really donít recall a whole lot of features other than bloat that the current round of Open Office and Microsoft Office have added since then. But if you want an inexpensive computer where you can learn about programming, learn about the Linux system and learn by doing without fear of breaking something expensive, itís not a bad buy at all.
By September, it should be a whole lot better. Whether it produces another crop of world-class computer science graduates is an open question, but it's a great toy, and a better buy for technically-inclined kids than a game console.
* Follow Gadget on Twitter on @gadgetza