Natasha moving from fifth grade down to kindergarten provided me the opportunity to re-architect her classroom’s computers. For a while I entertained the idea of buying a small set of tablets (iPad Minis or Nexus 7s). Thinking about how Natasha would have to maintain (i.e., charge) the tablets, the risk of not knowing what software she’d need, and the cost led me to shelve the tablet idea. Rather, I decided to complete the Raspberry Pi terminals I started in her fifth grade classroom.
The Raspberry Pi is a small (about as big as a deck of playing cards), inexpensive computer for hobbyists. I hesitate to call it a kid’s computer, at least not at the often-quoted $35. For that low price you get a bare circuit board. In the configuration I deemed necessary, the actual price is closer to $80 (Raspberry Pi, power supply, SD card, case, and HDMI-to-SVGA adapter). Like a “regular” computer you also need a monitor, keyboard, and mouse. I picked those up for another $50 per Raspberry Pi.
While the Raspberry Pi can run a standalone operating system using its ARM CPU, I chose to run each as a terminal against a server. By acting as a terminal it doesn’t matter that the Raspberry Pi is somewhat underpowered because all the heavy-lifiting is really performed by the server. The acquisition of Yield Software freed my old developer workstation, a 24-port ethernet switch, and a battery backup. I had enough server-side equipment to power 20 clients; Natasha only needed 4.
I chose Edubuntu, an education-oriented distribution of Ubuntu Linux, as the base server operating system. Edubuntu includes educational software as the name implies, and, more importantly, Linux Terminal Server Project. LTSP is the magic allowing software running on the server to be displayed on the client computers.
Getting LTSP running was pretty easy. There is a stripped-down client operating system specifically for this: BerryTerminal. I installed BerryTerminal (using BerryBoot), started the Raspberry Pis, and quickly logged into the server. Unfortunately BerryTerminal does not support Pulse Audio (remote sound) yet. Without sound the computers are not useful for Natasha’s kindergarten classroom.
If these were for Natasha’s fifth grade classroom, non-working sound can be useful. Fifth graders can visit websites and write essays without sound. The same isn’t true of kindergarteners. Kindergarteners can’t read. Kindergarteners can’t write. Natasha wants computers in her kindergarten classroom specifically for the students to listen to software teaching the alphabet. This is impossible without sound.
I verified that standalone (non-LTSP) Linux (e.g., Raspbian) sucessfully provides audio from a Raspberry Pi. This meant the audio problem manifested itself in the LTSP configuration. I could have lived with standalone Raspbian if it weren’t for the fact that Natasha intended to use Flash-based websites for the kindergarten software. Adobe has no Linux/ARM version of Flash. The Raspberry Pi runs ARM, hence no Flash on Raspbian.
After many attempts to fix BerryTerminal I finally gave up on BerryTerminal and instead configured Raspbian to act as an LTSP and Pulse Audio client. Raspbian’s disk image is much larger than BerryTerminal (1.94 GB versus 0.03 GB) and I suspect I’m running more services than necessary in Raspbian, but at least it works.