Wednesday, March 19, 2014

Backing up the Raspberry Pi SD card

Since there's a lot of talk about corrupted SD cards, I decided it's best if I take a backup of mine every now and then, to ensure I don't lose all my work due to some stupid corruption.

There's many different reasons for the corruption problems: faulty memory cards (SD cards have a limited number of read/write cycles, especially the older ones), counterfeit SD cards (never buy your SD card off eBay!), bad formatting (never use the windows disk formatter to format SD cards - instead use the SD Formatter by SD card association), removing the power from Raspberry Pi without proper shutdown, bad USB power supplies for the RasPi and RasPi overclocking.

For this  instruction to work, you need a Windows PC and a SD card reader.

I use the free program Win32 Disk Imager. It works fast and it's free!

First, select a folder and a name for the image file you are going to create. Then select your SD card device and press Read. It's that simple.

The only downside is that the image file is huge, as big as your memory card (mine is about 7.4 gigs since I use a 8gig memory card). So after creating the image file with Win32 Disk Imager, I recommend that you zip it with 7zip, this way you'll save a lot of disk space! My file went from 7.4 gigabytes to 128 megabytes! That's under 2% of the original size.

Tuesday, March 18, 2014

Fixing missing modules error in Raspbian

If you have used hifi's raspbian-ua-netinst, the unattended Raspbian installer, you might run into problems with modules:

depmod -a
ERROR: could not open directory /lib/modules/3.10-3-rpi: No such file or directory
FATAL: could not search modules: No such file or directory

I fixed this problem with:

apt-get install git-core
apt-get install rpi-update


Note that this will also upgdare your firmware and the linux kernel!

Getting sound to work on the Raspberry Pi

I wanted to try out audio on the Raspberry Pi, using the Raspbian OS. Here's how I got it to work.

The installer I used for Raspbian was the minimal network installer by hifi. This will use up only about 150MB of space and will not install a desktop, so you'll save a lot of resources with this approach.

After installing Raspbian, this is what I needed to do in order to get sound output.

First, login as root (default password = raspbian - change it ASAP!).

Update the package list for APT, the package installer tool of Debian:
apt-get update

Install ALSA.
apt-get install alsa-base

At this point I discovered that the minimal installer doesn't include the sound card module of the raspi.

Alsa's aplay is a  wav file player, and with it I could check which sound devices are available:

aplay -L

The output:
    Discard all samples (playback) or generate zero samples (capture)

... and when trying to enable the sound card module, I got an error:
modprobe snd_bcm2835

libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/3.10-3-rpi/modules.dep.bin'

Just in case, I installed apt-utils first and configured some packages the minimal Rasbpian installer had left unconfigured:
apt-get install apt-utils
dpkg-reconfigure -au

Then to update the raspberry pi firmware and kernel!
apt-get install git-core
apt-get install rpi-update

After the update process, I checked the firmware version:
uname -a
Linux pi 3.10-3-rpi #1 Debian 3.10.11-1+rpi3 (2014-01-01) armv6l GNU/Linux

Then a reboot and check the version again:
uname -a
Linux pi 3.10.33+ #656 PREEMPT Fri Mar 14 18:19:28 GMT 2014 armv6l GNU/Linux

Now, modprobe will enable the sound card!
modprobe snd_bcm2835

And the sound is working! You can try this out with speaker-test (ctrl-c to break):

Or you can use aplay and the sounds included in ALSA:
aplay /usr/share/sounds/alsa/Front_Left.wav