Raspberry Pi How-tos
The Raspberry Pi is by far the most popular ARM Linux hobbyist board with over 2 millions pieces already sold. There are plenty of how-to and tutorials on the web, notably on elinux.org, so I won’t try to list all Raspberry Pi tutorials available, but instead will only list the few I’ve done in this blog.
I took a while before the Raspberry Pi became easily available, with lead times over 2 months common at the time of launch. So I wrote some post to get started before you receive the hardware by running a similar system in QEMU (Quick EMUlator):
- ARM1136 emulator running Debian in QEMU. This was before the kernel and images become available for the Raspberry Pi, so it’s mainly for historical reference, and should not be used at this point.
- Running the first Debian image for Raspberry Pi in QEMU.
- Running Raspberry Pi Fedora 14 Remix in QEMU.
The last two instructions can still be used, but were written in early 2012, so you may want to downloading newer images to give it a try.
When I worked a few years ago, I spend some time optimizing firmware to reduce its footprint, which cheap memory storage this become less relevant for consumer products, but can still be useful for cost-sensitive applications, and for training purposes. I did three post explaining how to create with minimal images without desktop environment and extra packages:
- 84MB compressed image based on Raspbian. It’s still using a little over 400MB on the SD card, but it’s convenient as you can simply install the required packages with apt-get.
- 46MB compressed image based on Slitaz distribution. It’s much smaller than Raspbian with a rootfs of just 18.6MB, and tazpkg package manager allows you to install packages just like apt-get would do in debian based distributions. There may be less supported packages than in Raspbian however.
- 12MB compressed image built with Yocto. There are two advantages with this method. The rootfs is still very small (42.8MB), and it helps you learn about the Yocto Project, which becoming more and more popular in the embedded Linux space. It’s a bit more difficult to install packages however, as they need to be compiled with the Yocto build system.
Once I had my minimal Raspbian image as mention in the previous section, I explained how to install WordPress in my Raspberry Pi on top of Nginx. Installing APC: sudo apt-get install apc, and configuring W3 Total Cache to use APC Object Cache will boost performance further.
The Raspberry Pi developers added VP6, VP8, MJPEG and OGG Theora software decoding support at tis beginning of 2013. At the time, it required to build omxplayer yourself, so I provided instructions to build omxplayer using a the Raspberry Pi rootfs as an NFS share.
A few months, later I wrote another post about media playback, this time less technical, explaining how to install OpenElec 3.0.0 on the Raspberry Pi.
When the Raspberry Pi foundation launched their camera module, I wrote a Raspberry Pi camera tutorial using information I gathered on the Internet.
I wanted a casing for my Raspberry Pi, something cheap that would also allow me to easily add extra boards. There was nothing on the market for this purpose, so I decided to create my own modular Raspberry Pi enclosure using perfboards, the total BoM cost was $7.30, which was definitely on the low cost side, even it required some efforts. After that I added a relay and some LEDs to the perfboards to show the modular concept of this RPi casing, and control these with the minimal Yocto image.
Bluetooth Low Energy (BLE) is one of the exciting new technical development that took place this year, and I wanted to play around a bit to I bought Texas Instruments SensorTag ($25), and explained how to control this BLE device with a Raspberry Pi.