My Raspberry Pi experience with Debian-based Linux distribution Occidentalis

No readers like this yet.
open source button on keyboard

Opensource.com

Enter the black raspberry. Rubus occidentalis.

It's an ominous name for an ominous fruit: the black raspberry. As the owner of a new Raspberry Pi, I realized that I was going to have to, at some point, open the box and do something with it.

It was fortunate, therefore, that Limor Fried had been working hard on...well, actually, everything related to the Raspberry Pi. Limor and the Adafruit team designed cases, debugging cables, breakout boards, and everything you might need to do something awesome with the Raspberry Pi.

Most recently, Adafruit released a Linux distribution based on Raspbian (a Debian-based distribution). It is called Occidentalis, which takes its name from the black rasperry, rubus occidentalis.

As you know, rolling a Linux distro (from scratch or as an upstream modification of an existing distribution) is not easy work, so this is impressive unto itself. For a variety of reasons (in no small part because Limor sent me an email about it), I decided this would be the first operating system I would bring up on my Raspberry Pi.

My Raspberry Pi story

You can skip this human interest bit and head to the next section if you want more technical goodness.

I had not powered up my Raspberry Pi since receiving it largely because I didn't have an SD card. So, last night, I did bedtime with our son while my wife went hunting for a 4GB, class 4 microSD card from SanDisk (approximately $4, with SD card adapter). Having downloaded Occidentalis earlier, I checked the SHA-1 hash, unzipped it, and then dd'd the image onto the SD card. It is worth mentioning the known good hardware list is something you should read and adhere to before you get started; the first microSD card I chose didn't work, hence the late Saturday run for a different card.

Once the Raspberry came up, it was like the olden days of Linux all over again. By that, I mean "everything didn't happen magically," but instead I had to roll up my sleeves and do a bit of work. I used a wireless adapter I had previously ordered from Adafruit, and it showed up without a problem (success!). I got to the login prompt, had to go to the Internet (to look up my username), and then managed to log in (success!). I typed startx, and over the HDMI connection, got a GUI on my TV (success!). I opened a browser, and...NO NETWORK.

Fast forward an hour while I dug around and remembered how much I had forgotten about Linux networking. Between using a Mac on a daily basis and being spoiled by the incredibly polished work coming out of the Fedora and Debian/Ubuntu communities, it has been years since something basic didn't "just work" when I brought up a machine. I hacked out a config file (the Occidentalis has vi, or something resembling it, on board), and ultimately managed to connect to my WPA-based WiFi router.

At this point, I checked out my course webpage in three different web browsers, found out that Occidentalis advertises on Bonjour (I was able to SSH into raspberrypi.local), and decided that 12:15 AM was way too late for a college professor, so I headed to bed.

Three reasons to choose Occidentalis

There are three reasons I chose to boot Occidentalis on the Raspberry Pi. First, I had a $10 WiFi adapter from Adafruit Industries, and I assumed that it would be supported out-of-the-box by Occidentalis—I was right. The second reason was because Limor wrote me an email and said, "I thought you'd be interested in the v0.2 release."

The third reason is much larger, and far more compelling. Ladyada has been doing a lot of work to make the base Raspian distro more hacker friendly...and, I don't see the point of having a Rasperry Pi if you're not going to do something awesome with it. The current release of Occidentalis (v0.2 at the time of this writing) has a laundry list of features that are worth noting:

  • The image is truncated and fits on a 4GB card with room to spare.
  • Kernel modules out the wazoo were added:
    • RTC (real-time clock)
    • lm-sensors
    • The DS1307 RTC
    • The HMC6352 compass module
    • The BMP085 barometric pressure sensor
    • The ADS1015 analog to digital converter
    • PWM/Servo kernel modules (for PWM on GPIO pin #18)
  • I2C and SPI kernel support

If you're someone who spends their entire life in the desktop-and-laptop-only world of computing (where "peripherals" means "a mouse and a keyboard"), then none of these things will make much sense to you. However, if you're someone who has gotten even moderately serious with their Arduino, you'll realize that these features make it easy to get some C or Python code running on the Raspberry Pi that can talk to sensors and motors, thus doing something interesting in the physical world.

Next steps with Occidentalis

During the spring semester of 2013, I'll be teaching the course, Computer Organization. My intention is to use the text, Elements of Computing Systems by Nisan and Shocken— I've used it before and it's absolutely excellent. It introduces students to a simplified hardware description language, and from there we build an ALU, followed by an assembler, virtual machine, compiler, and ultimately an operating system.

The text, along with the associated (free, open) simulation software is wonderful, but it does not ground anything in the real/physical world. My thinking, at the moment, is that I would like my students to all have a Linux machine that we can use to explore elements of computer organization...and, ideally, that machine is 1) real and 2) relatively simple. The Raspberry Pi (and a distribution like Occidentalis) make for a great starting point for the exploration of computer organization and how that interfaces with the "real world". 

Or perhaps I'll just build something that my three-year-old thinks is cool. We'll see which happens first.

User profile image.
Matt is passionate about the design and development of usable languages for embedded control. You can some of his work at concurrency.cc, a rallying point for parallel programming on the popular Arduino platform. However, most of the time Matt keeps himself busy as a member of the faculty at Berea College.

3 Comments

What device is that in the photo? It does not look like any raspberry Pi I have seen...
It says "Broadcom."

Yes, device in the image looks quite different from my Raspberry Pi

All these johnny-come-lately seem to think a model B is where it all started. That's a nice pic of an alpha development board from August 2011.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.