Raspberry Pi

I was lucky enough to finally receive my Raspberry Pi last Friday. I ordered it from Farnell as early as I possibly could, and my order was dated 08:34:24 29/02/2012. Of course I’ve been playing with it since, and have mostly been working on the kernel – getting things cleaned up a bit and upgraded a bit. So the first thing to announce is I’ve got a little stash of Raspberry Pi-related stuff available for people to try.

Linux 3.2.16 kernel

The main improvement is that you can boot the compressed kernel and that early printk works. Using either of these caused the RPi to hang at boot due to the early console code being badly broken, but my changes (available on GitHub) initialise the serial port (115200 Kbps 8n1) if you boot the compressed image and give you serial output as soon as possible. This is very useful for debugging the kernel.

I’ve also rebased the 3.1.9-based official tree against 3.2.16 to bring it more into line with what Debian Wheezy expects at the moment. Simon has his own tree where we’re working on 3.3 and more recent kernels, ideally aiming for mainline inclusion at some point in the future. This is a big job though.

So without further ado, grab yourself the pre-built 3.2.16 kernel and install it like this (as root):

  1. dpkg -i linux-image-3.2.16-rpi1+_1_armel.deb
  2. Backup your /boot/kernel.img.
  3. cat first32k.bin /boot/vmlinuz-3.2.16-rpi1+ > /boot/kernel.img
  4. Reboot

Please let me know if you have any issues with this kernel (that you don’t also have with the stock kernel)!

Minimal Debian Wheezy disk image

In my travels with the Raspberry Pi I found that the official Debian image wasn’t to my liking. Not only does it have lots of unnecessary (for me) software installed, but certain configuration files are badly mangled (such as /etc/passwd and family). The image is also based on Squeeze, though I admit it’s easy enough to dist-upgrade to Wheezy. Regardless, I decided to start from scratch using debootstrap (and working around some interesting issues) I built a minimal Debian Wheezy image.

This has the bare minimum changes from a plain debootstrapped system to get a working Raspberry Pi. It runs DHCP on eth0 at boot and runs ntpd, but does not have openssh-server installed. It starts consoles on both the serial port (115200 8n1) and the HDMI display. The time zone is set to UTC. The kernel, of course, is my 3.2.16 kernel from above.

Update 2012-05-11: I have updated my image to fix the udev problem mentioned below. Please see my latest post about it.

Download wheezy-mini-2012-05-08.img.gz (113M). The root password is raspberrypi.

Please note: There is one known issue with the above image which means that your eth0 will be renamed to eth1 and networking will not be brought up automatically. This is easy to fix: just edit /etc/udev/rules.d/70-persistent-net.rules and remove the two sets of rules with their comments at the end of the file, then reboot. I have created an updated image that fixes this problem.

7 thoughts on “Raspberry Pi

  1. I’ll make time to try this tomorrow, but in the meantime: does your kernel contain I2C or SPI support? (Crosses fingers, feels doubtful)

    • Sorry, my kernel supports neither at the moment. Once I’m happy with the SPI code I wrote I’ll roll a new kernel package that includes that. I2C may take a little longer but it’s definitely on my list of things I want to get done.

  2. If there’s anything we can do to help, drop me an email. The team here includes 6 devs (including me), and the other 5 are pretty good 🙂 Several have done some kernel hacking in the past.

  3. Pingback: build your own Raspberry Pi image | hödlmosers' hard- and softwarecuisine

  4. do you have an hint for the follwoing kernel error messages during booting?
    # Waiting for root device /dev/mmcblk0p2
    # mmc0: problem reading SD Status register.
    # mmc0: error -110 whilst initialising SD card
    same Raspberry with same PSU and same SD card but default, original Debian 6 is running fine.

    • Franz – no, I see that error myself occasionally but it’s a transitional thing. It happens then the card appears to reset and the RPi carries on. I had the same with the official Debian image and kernel though. Do you have another SD card you can try with?

  5. Chris,

    you are completly right, just tested with another SD card and its working fine (except needed to resize the ext4 fs due to SD card is a little bit smaller than 2 GiB). your kernel ist the first I see with IPv6 enabled. many thanks for this great and impressive image.


Comments are closed.