Raspberry π Labs resources, tutorials, help and downloads. The Raspberry Pi and logo are trademark of the Raspberry Pi foundation, and Raspberry π Labs is not releated with them.

The first thing we’ll do its dowload the original Raspbian image from http://www.raspberrypi.org/downloads


Follow their instructions on flashing that image to your SD Card and booting it up on your Raspberry Pi to get this screenraspi-config

Please setup it like you are finishing a normal installation :

  • change_locale: Set locale
  • change_timezone: Set timezone
  • configure_keyboard: Set keyboard layout
  • memory_split: Give GPU 4MB if you want. :-)
  • ssh: Enable the ssh server
  • change_pass: Change password for ‘pi’ user

Select <Finish> and then enter, sudo shutdown -h now to power off your Raspberry Pi.

WARNING: Experts Only! Use at Your OWN Risk, this ONLY for a fresh Raspbian “wheezy” SD Card image!

This is an automated script. If you don’t want it automated, just remove the -y from each line before executing

After the procedure is completed, you do have the option of installing the updated technology you wish to use. (sudo apt-get install application).

This Procedure assumes you want a basic, barebones Raspbian OS configuration on your Raspberry Pi:

  • Ethernet Internet
  • HDMI Screen
  • USB Keyboard
  • USB Mouse

Source| Element14
Source2|84 MB Minimal Raspbian ARMHF Image for Raspberry Pi

Generally if you want to reset the Raspberry Pi you have to either unplug it and then plug it back in, or enter a command with a keyboard. Which’s fine if you actually have a monitor hooked up, but if you don’t, constantly unplugging it is going to wear down the connections. To add a a reset button, you’ll just need to solder on a couple of pins as described in the video above. You can then use any old PC reset switch, or just join the pins with a jumper when you have to reset it. The Raspberry Pi isn’t exactly made for frequent resets, but it comes in handy on occasion. Head over to Raspi.TV for the full guide.

Source | Raspi.tv

A great way to test out the serial port is to use the minicom program. If you dont have this installed run

Connect your PC to the Raspberry Pi serial port using an appropriate serial port adapter and wiring, then open Putty or a similar serial terminal program on PC side. Setup a connection using the serial port at 9600 baud.

Now run up minicom on the Raspberry Pi using

What you type into the minicom terminal screen should appear on the serial PC terminal and vice versa.

raspberrypi-serialconsoleBy default the Raspberry Pi’s serial port is configured to be used for console input/output. Whilst this is useful if you want to login using the serial port, it means you can’t use the Serial Port in your programs. To be able to use the serial port to connect and talk to other devices (e.g. Arduino), the serial port console login needs to be disabled.

But in some Linux Distros, this option isn’t enable or isn’t configured,  in order to check/enable this access, let’s start !


Adafruit Console Lead
This cable has 3.3V logic levels so its safe to use, but not all cables are 3.3V! Only use the Adafruit console cable for this tutorial to avoid damaging your Pi’s GPIO pins

Link | Adafruit

there are a couple of file to check and modify :

The first and main one is /etc/inittab

This file has the command to enable the login prompt and this needs to be disabled. Edit the file and move to the end of the file. You will see a line similar to

Disable it by adding a # character to the beginning. Save the file.

Enable/Disable Bootup Info

When the Raspberry Pi boots up, all the bootup information is sent to the serial port. Disabling this bootup information is optional and you may want to leave this enabled as it is sometimes useful to see what is happening at bootup. If you have a device connected (i.e. Arduino) at bootup, it will receive this information over the serial port, so it is up to you to decide whether this is a problem or not.

You can Enable/disable it by editing the file /boot/cmdline.txt

If its enable the contents of the file look like this

To Disable remove all references to ttyAMA0 (which is the name of the serial port). The file will now look like this





In order to keep your Raspberry Pi secure, and to get updated functionality, you should get the firmware and the software updated. This post will describe how to keep your Raspberry Pi updated, as well as how to manage the software for the system.

Check what firmware version you are running:

pi@raspberrypi:~$ /opt/vc/bin/vcgencmd version

Updating the Firmware
As described in Getting Sound and Video to Work on Raspberry Pi, the rpi-update tool should be downloaded from Hexxah’s Github, copied to /usr/local/bin/, and made executable.

Install software needed to perform the update:
pi@raspberrypi:~$ sudo apt-get install ca-certificates git-core binutils
Download the script:
pi@raspberrypi:~$ sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update
Copy the script to /usr/local/bin:
pi@raspberrypi:~$ sudo cp rpi-update /usr/local/bin/rpi-update
Make the script executable:
pi@raspberrypi:~$ sudo chmod +x /usr/local/bin/rpi-update
Run the script:
pi@raspberrypi:~$ sudo rpi-update

After that reboot to changes take effect!

and Voila! , just execute this last step!

check again what firmware version you are running now !

pi@raspberrypi:~$ /opt/vc/bin/vcgencmd version
Jul  1 2012 12:48:16
Copyright (c) 2012 Broadcom
version 323014 (release)

Every time you want to check for firmware updates, then execute:
pi@raspberrypi:~$ sudo rpi-update

for some reason freepbx isn’t compatible with php 5.4 which is the default in raspbian, if you have any problem installing freepbx, i got a patch here that you can use in the meantime :D

Test: http://codepad.viper-7.com/0dQFWd

Applying this patch Freepbx Should work smooth and clear :D


After a long fight with the installation of this software package we will share the easiest way to install it in our raspberry pi.


Install PEAR MDB2

PEAR MDB2 is then simply installed via

Download and extract Asterisk:

Set Up Correct Compilation For ARM Platform
Using your favorite editor, make the change below. I prefer VIM, an enhanced version of the popular VI command line editor:

Search for the word “proc=” in the file and change this to read “proc=arm”. For those new to VIM, move to the end of this line using the arrow keys and press ‘a’, then remove all the chractors before the = sign using back space and type in ‘arm’. Finally press escape to come out of editing mode. Then press SHIFT+Z+Z to save and exit the file.

Compile and Install Asterisk
Using the following commands:

Now we have Asterisk Up and running, lets start with the FREEPBX

lets create the necessary users and permissions

Set the mysql root password during it’s installer. Then edit /etc/apache2/envvars and set user and group to “asterisk”. Remember after doing that lets modify the /var/run/apache2 directory with the same user and group, this will fix any problem when apache restart.

Then create the databases (requires mysql root pw):

on the mysql prompt, enter:

Download and extract FREEPBX

lets start the installation:

now modify the apache default site conf to fit in the freepbx default /var/www/html

last but no the least …. lets fix some issues… (some minor bugs in the freepbx version)

fix /etc/asterisk/manager.conf




secret = amp111


missing some symbolic links I believe the installer should have created, but somehow we needed this to make it work:

At this point everything should be done and we are able to log into FreePBX, then enabled all modules in the module admin.

Have a good Hacking . :D


For people short on SD cards: Berryboot is a simple boot selection screen, allowing you to put multiple Linux distribution on a single SD card.
In addition it allows you to put the operating system files on an external USB hard drive instead of on the SD card itself.

Download link Berryboot for the Raspberry Pi: berryboot-20121230.zip

To install: extract the contents of the .zip file to a normal FAT formatted SD card, and put it in your Raspberry Pi. This can be simply done under Windows without any special image writer software.
Once you start your Pi it will start an installer that reformats the SD card and downloads the operating systems files from the Internet.

Link | Berryboot

surfing on the web, about all the distros created for our Raspberry pi i found this cool site:

Android pi :

Current status

CyanogenMOD 9 (based on Android 4.0): Boots, unusable

  • Framebuffer issues: possibly due to the lack of double buffering and/or page flipping in the bcm2708 framebuffer driver
  • Proper libEGL library not present: libraries *are* available, but those are linked against glibc instead of android’s bionic libc (issue filed here)

CyanogenMOD 7.2 (based on Android 2.3): Boots, very slow, barely usable.

  • Same problem with the hardware acceleration libraries.

Official Android 4.0.3 (built by Broadcom): Boots, very fast with hardware acceleration, lacks AudioFlinger support.


CyanogenMOD 9 image Needs an SD card of at least 2GB. Extract and image to your SD card just like the Debian image.

CyanogenMOD 7.2 image Same instructions apply.

CyanogenMOD 7.2 image (with Ethernet Menu) Same instructions apply.

You may want to change hdmi_group and hdmi_mode in config.txt (or just remove the lines)


With the new raspbian build you can use the raspi-conf command but if you want to do manually, let’s do now …

The Raspberry Pi comes with 256MB of RAM, included in the Broadcom BCM2835 System on chip, which also contains the CPU, GPU and DSP in the same package.

That 256MB of RAM is split between the CPU and GPU at boot time of the Pi, and by default is a 50:50 split, 128MB each. This works well for video decoding and 3D graphics, but if you know you won’t be using such graphically intensive applications, you can change this split to give the CPU a bit more.

Now HoTo do so, you just need to copy the pre-made .elf files to the start.elf file in /boot, and reboot:

For 192MB for the CPU and 64MB for the GPU:

For 224MB for the CPU and 32MB for the GPU:

For the default 50% & 50% CPU & GPU: