The Raspberry Pi has clearly made
a splash since its debut as a consumer product in April 2012. Thanks to
the generosity of the Python Software Foundation, all of the attendees at
this year's PyCon were given one of the
diminutive ARM computers; a giveaway that was announced just prior to
founder Eben Upton's keynote. While it has taken a
bit to find time to give it a try—conference season is upon us—that has
finally come to pass.
For anyone living under a rock (or, perhaps, just largely uninterested in
the Raspberry Pi—often abbreviated "RPi"—is a
credit-card-sized Linux computer that is targeted at children. While it
been envisioned as an educational tool to teach kids about computers and
programming, there seem to be plenty of adults "playing" with the RPi as
well. It has modest hardware (a 700MHz ARM11 core with 512M of RAM for
the Model B) by today's—even yesterday's—standards, but it is vastly more
powerful than the 8-bit microcomputers that served as something of a role
model in its design.
The original price tag was meant to be $25, but that couldn't quite be met,
so the Model B (which was the first shipped), was priced at $35.
Eventually, the Model A (without on-board Ethernet) did hit the $25 price
point. In either case, it is a low-cost device that is meant to be
affordable to students (or their parents) in both the developed and
developing world. It requires a monitor (either composite video or HDMI)
and a USB keyboard and mouse, which will add to the cost somewhat, but, at
least in some areas, cast-off televisions and input devices may not be all
that hard to find. Given its size, an RPi can be easily transported
between home and a computer lab at school as well.
The goal is to give students a platform on which they can easily begin
programming without having to install any software or do much in the way
of configuration; turn it on and start hacking. Because of the price, an
interested child could have their own RPi, rather than vying for time on a
shared computer at school or at home. That at least is the vision that the
project started with, but its reach quickly outgrew that vision as it has
been adopted by many in the "maker" community and beyond.
The "Pi" in the name stands for Python (despite the spelling), which is one
of the primary programming environments installed on the device. But
that's not all. The Raspbian
distribution that came on an SD card with the PyCon RPi also comes with the Scratch visual programming environment
and the Smalltalk-based Squeak (which
is used to implement Scratch).
As its name would imply, Raspbian is based on Debian (7.0 aka "Wheezy"). It
uses the resource-friendly LXDE desktop environment and provides the Midori
browser, a terminal program, a local Debian reference manual, the IDLE
Python IDE (for both Python 2.7.3 and
3.2.3), and some Python games as launcher icons on the desktop.
Firing it up
Starting up the RPi is straightforward: hook up the monitor, keyboard, and
mouse, insert the SD card, and apply power. Using three of the general
purpose I/O (GPIO) pins on the device will provide a USB serial console,
but it isn't generally needed. Once it boots, logging in as "root" (with
no password) for the first time will land in the raspi-config tool.
Or you can log in as "pi" with password "raspberry" to get to the command line.
The configuration tool allows changing settings for the device, such as the
time zone, "pi" user password, starting up X at boot, enabling
sshd (set a root password first), and changing the memory split
between Linux and the GPU.
From the command line, though, the venerable startx command will
bring up the LXDE environment. One note: when using an HDMI to VGA converter some tweaking to the video
mode may be required.
It should come as no surprise that, once configured, the system behaves
like a normal Debian
system. The initial "apt-get upgrade" took quite some time, as
there were lots of packages to pick up, but subsequent upgrades have been
quick. It is entirely suitable for its intended purpose, but can be
expanded with the packages available from the Raspbian (and other)
Of course there are other distribution choices to run on the RPi. In early
June, the Raspberry Pi Foundation (the organization behind the device) announced the "New Out
Of Box Software" (NOOBS) installer that makes it much easier to get
started. The NOOBS zip file needs to be downloaded and unpacked onto a 4G
or larger SD card, but once that's done, multiple distributions can be
installed without needing network access or requiring special imaging
software to put a boot image onto the card.
NOOBS acts like a recovery image, in that it will prompt to
install one of several distributions on first boot, but it is always
available by holding down the shift key when booting. You can overwrite
the existing distribution on the card to recover from a corrupted
installation or to switch to one of the others. In addition, it has a tool
to edit the config.txt system configuration file for the currently
distribution or to open a browser to get help right from NOOBS.
Using NOOBS is meant to be easy, and it was—once I could get it to boot.
My choice of using a VGA monitor (thus an HDMI to VGA converter) meant that
I needed a development version of NOOBS and the config.txt from
NOOBS provides images for several different distributions: Arch
Linux ARM, OpenELEC, Pidora, Raspbian (which is recommended), RaspBMC, and RISC OS. OpenELEC and
RaspBMC are both XBMC-based media-centric
distributions, while Arch Linux ARM, Raspbian, and Pidora are derived from
their siblings in the desktop/server distribution world. RISC OS is the original
operating system for Acorn computers that used the first ARM processors. It
is a proprietary operating system (with source) that is made available
free of charge for RPi users.
Installing Pidora using NOOBS was simple, though it took some time for
NOOBS to copy
the distribution image to a separate SD card partition. Pidora seems to use the
information from the NOOBS config.txt as there were no problems on
that score. Using startx appears to default to GNOME (which is not
even installed), so the desktop wouldn't start up; switching
the default desktop to Xfce in /etc/sysconfig/desktop may be
required. Once installed, booting gives a choice of NOOBS (by holding down
the shift key) or Pidora (or whatever other distribution is installed).
It is a fully functional installation, not LiveCD-style, so there is a
writable ext4 partition to store programs and other data (like the screen
shot at right) or to add and update packages on the system.
There are a lot of people and projects using the RPi for various interesting
things. The front page blog at the RPi home page is regularly updated with
stories about things like an RPi lab in Ghana, a sailing robot using an
RPi for navigation and control, and the Onion Pi, a Tor proxy
running on an RPi. In his PyCon keynote, Upton listed numerous
projects that have adopted the RPi for everything from music synthesizers
to art installations and aerial photography from weather balloons.
The RPi is being used to research and test new technologies as well.
There are plans afoot to
switch from X to the Wayland display server protocol, which will make it a
useful testing ground for Wayland and Weston. Beyond that, the foundation
has been helping to fund PyPy, the Python
interpreter written in Python as a way to improve the performance of
that language on the device.
It seems that some combination of capabilities, community, and, perhaps,
marketing have led to the RPi's popularity. The focus on providing a
platform to learn programming that was portable and easy to use has widened
far beyond that niche. It has
an ecosystem of companies that are selling accessories for the RPi
(including things like cases, add-ons for controlling other devices using
the GPIO pins, sensors, and so on). But it is probably the "fun" aspect
that is the biggest push behind much of the RPi's momentum—the system
really does hearken back to the days of TRS-80s and other 8-bit computers,
but with color, sound, video, and a lot more power.
to post comments)