What could be better at Christmas than a shiny new gadget? Perhaps a shiny new gadget that runs Linux? One that reminds me of Heathkit, and TRS-80, and days of experimenting and playing with computers for no reason other than curiosity, and joy, and learning? That's what I got, a Raspberry Pi!
A Raspberry Pi depends on Raspbian which is a free operating system based on Debian and is optimized for Raspberry Pi hardware. Raspbian comes with over 35,000 packages of pre-compiled software.
What I intend to write here is "Jamie's Excellent Raspberry Adventures": it will document my own experiences, discoveries, successes and failures with this little gadget. If you want authoritative information, go to the Raspberry Pi web site, and if you want concise instructions about setting up and configuring one, an excellent new article was just posted there.
What I write here will be my own experiences based on those and other information sources, and my own knowledge and previous experiences.
Ok, first, here's what I got. I ordered all of this from the Pi-Shop here in Switzerland.
- Raspberry Pi Model B. The model A is still available, and costs a bit less. Both have the same basic design, and the same processor. The Model B has twice the memory (512MB vs. 256MB), dual USB ports instead of a single port, and RJ-45 wired network connection. In my opinion you would have to be pretty hard-core to choose the Model A today.
- 16GB Category 10 SD Flash Memory Card. The minimum size required is only 4GB, and it doesn't have to be category 10; buying a 4GB Category 4 card would save a fair bit of money.
- 5.25V/1.5A Micro-USB power supply. This is essentially the same as most smartphone chargers today, and one of those could theoretically be used. However, if you are going to connect USB-powered peripherals, or other devices on the expansion bus (such as the optional camera), the power requirements could exceed what such a typical charger could provide.
- A multi-layer clear plastic case. The Raspberry Pi board can be run without a case, it doesn't need cooling or whatever, so you don't really need to buy this at all. If you choose to buy a case, they run from the simplest possible plastic box, to polished and/or varnished wood, and probably all the way to solid gold diamond-encrusted works of art. Go wild.
- Heat Sink. Absolutely not necessary, the Raspberry Pi web page specifically says it is not required, but I am old and paranoid and very conservative.
To these basic components I had to add a USB keyboard and mouse - no options here, there are no other ports or connection possibilities for them. I am using a Logitech Unifying receiver, so I only have to use one of the USB ports for the two devices.
Had to have a display, of course: I am using an HDMI to DVI cable and one of my standard monitors. Many people will simply connect to a TV, which I suppose has the additional benefit of giving you sound output via HDMI to the TV speakers, but I haven't tried this yet so I can't say for sure.
If you want a network connection, you have to either connect wired via the RJ-45 plug, or wireless using a USB wi-fi adapter. The safest way to ensure compatibility a wi-fi adaptor and other such peripheral devices, would be to order them from someplace like the Pi-Shop as well.
Assembling and connecting all of the hardware took about 10 minutes; the most tedious part was figuring out how to put the case layers around the circuit board. Many other cases are simple boxes that you put the board in - but they don't look as cool as this layer-cake box!
Once everything was assembled and ready to go, I needed an operating system, of course. The simple solution here would be to buy the SD card with New Out Of Box Software (NOOBS) already on it, again this is easily available from specialty places such as the Pi-Shop, but I want to get my hands a bit more dirty and really understand what is going on, so I chose not to do that.
The alternative is to download the NOOBS package, and then extract it to the SD card. That is dead easy to do, regardless of whether you are working on Linux or Windows, and once you have done it you just slide the SD card into the Pi and you're ready to go. There is no power switch. Seriously. When you want to start up, you plug in the power supply. When you are done, you shut down and then pull the plug back out again. That's it.
When you boot with nothing but the NOOBS software extracted on the SD card, it boots to an operating system select/install menu. With the current NOOBS version (watch out here, there was a new release made on Christmas Eve), there are a nubmer of choices:
- Raspbian Debian GNU/Linux specifically adapted for the Raspberry Pi
- Arch Linux ARM Arch Linux for ARM processers, further customized for the Raspberry Pi
- RaspBMC XBMC Media Center
- OpenELEC XBMC Media Center
- RISC OS An alternative NON-LINUX operating system
- Pidora: Fedora 18 remix for the Raspberry Pi
If the SD card is sufficiently large, you can choose more than one of these to install.
For the first setup and experimentation, I chose only Raspbian, on the assumption that starting out with something familiar would be a good idea. The NOOBS installer then goes through partitioning the SD card and installing whatever has been chosen. That takes about five to 10 minutes per selection, during which it displays some general information about the hardware and software.
After the Raspbian installation was complete, I had to choose whether I wanted to boot to a CLI (text) or GUI (graphic) interface; I chose GUI, and after it rebooted I got this LXDE desktop:
Well all right: it works, and I'm up an running! I can't tell you how pleased and impressed I was at this point.
What is it like to use? Well, compared to normal desktop or laptop systems today, it is very slow. That is to be expected, because it is a slow, single-processer CPU and a really slow system disk (the SD card).
One of the reasons I got the category 10 SD card was that I hoped it would make the whole thing faster - but if this is "faster" then I'm not sure that I want to see "normal" or "slower". I suspect (and hope) that the difference in the SD card doesn't really carry through all that much to user performance. But that doesn't really matter much, honestly, because you don't buy a Raspberry Pi as a desktop replacement. It is an educational tool, a toy, and perhaps a media center (I'll get to that last bit later). So the speed is what it is, end of story.
Next, what is included in Raspbian? The current version (just released on 24 Dec) is based on Debian GNU/Linux 7.2. It's kind of interesting that I have just been writing about various different distributions and desktops recently, and about "lightweight" LXDE and Xfce distributions in particular. Raspbian is a classic example of a very lightweight LXDE system.
Some of the obvious things are shown in the screen shot above - one that jumps right out is the Midori browser, rather than Firefox or whatever. There is also the LXTerminal emulator, and a variety of programming tools and games.
I checked the LXDE menus, and found that there is actually a pretty nice array of utilities and applications installed - things like a file manager, a simple image viewer (leafpad), an image viewer and a PDF viewer, a calculator, and lots more - almost all in "lightweight" versions. What it doesn't have are things like Office tools (document editor, spreadsheet etc.), graphic/photo management and editing packages (GIMP/Shotwell/digiKam), and multimedia playback applications.
I also found that it includes the basic aptitude (apt-get and such) utilities for software/package management. It doesn't include synaptic, which I have become very much used to, but that can easily be installed with
apt-get install synaptic
The next thing I wanted to do was look at how the NOOBS had partitioned the disk, but of course my favorite, gparted, was also not loaded. Again, easily fixed with apt-get (or synaptic if it was installed above).
On the other hand, the things which are installed give a clear idea of what the Raspberry Pi is really intended for - eduational programming use. Under the Programming item on the menus are listed:
- IDLE A Python IDE
- Scratch An interactive visual/graphic programming language from MIT
- Sonic PI A programming language for sounds
- Squeak A Smalltalk programming language development environment
- Wolfram/Mathematica Scientific programming/analysis
Raspbian also includes many of the standard Linux/Unix programming tools and scripting languages, such as perl (5.14), awk (actually mawk), and of course good old shell scripts (bash and friends) - guaranteed to keep old-timers happy.
Whew. That's a lot of stuff to investigate, and an amazing little piece of equipment. I've got lots more to do, investigating Raspbian and trying out some of the alternatives. I'm particularly looking forward to Arch Linux.