The Multi Room Audio player

Main menu

You are here

Setup a Raspbian image for headless usage

Submitted by Martin Runge on Thu, 2013-02-28 11:21

This HOWTO describes, how to create a bootable Raspbian SD card for the RaspberryPi without the need to connect a monitor to the Pi. Most other HOWTOs ask you to log into the RaspberryPi with monitor and keyboard connected to do the final configurations. We do it over ssh instead, so a network connection and a DHCP server is needed instead.

We do this on Linux, not Windows. It is possible to create the bootable SD card itself on Windows, too, but the steps following afterwards can't be done on Windows. We need:

A Linux PC (or virtual machine) with an SD card reader (I use a Laptop with a reader built in)

A SD card >= 2 GB (The Raspbian image is 2GB large, but the filesystem can be expanded to use the additional space of a larger card)

Download

Download the latest official raspian image from http://www.raspberrypi.org/downloads. Choose "Raspbian wheezy". Once finished, you have a zip file named "2013-02-09-wheezy-raspbian.zip" or similar (the date may change). I asume it in ~/Downloads for the further steps.

Create a directory to work with the image and unpack the zip file there:

So now you have the unpacked image "2013-02-09-wheezy-raspbian.img" in the raspiimg folder.

Write Image to SD card

There are several ways to write the unpacked image to your SD card described at the download site http://www.raspberrypi.org/downloads. I use the "dd method". The dd method is somewhat dangrous: Make sure - reall, really sure - that you use the right device!!!

I use gparted to have a look at the disks in my machine. First while the SD card is not inserted:

/dev/sda

/dev/sdb

Then Insert the SD card into the reader. Your system will notify you about the new device. Look at the disks gparted sees now:

/dev/sda

/dev/sdb

/dev/mmcblk0

Here it is: /dev/mmcblk0 that is my SD card (the name /dev/mmcblk0 is very common, but maybe your SD card will have a different name)

Now copy the raspian image to the SD card. All data on the SD card will be lost! (More exactly: all data on the of=<device> will be lost, so make sure to use the right one. As this step needs to be done with sudo, you could damage your whole system otherwise.) This will take a while ...

Resize the filessystem on the SD card

Resizing the RootFS on the SD card can be done on the RaspberryPi via the "raspi-config" utility. Another way is to do it with you Linux PC before booting the RaspberryPi:

I recommend gparted for that:

Select the SD card device in the the upper right, /dev/mmcblk0 in this case:

right click on the largest (last) partition, select "Resize/Move", the following dialog will open:

Pull the right Edge of the partition all trough the unallocated space to the right until free space becomes zero

Push "Resize/Move"

Back in the Main Window, Click "Apply". The result should look like this:

If you have trouble applying your changes, it may help to remove and re-insert the SD card and restart gparted.

Change some settings on the RootFS

As we do not want to (or can't for some reason) connect monitor and keyboard to the RaspberryPi, we have to adjust some settings inside the RootFS on the SD card, so wen can log in via SSH once the RaspberryPi is bootet from the SD card.

Set a hostname, so we know where to ssh to

enable ssh-server on the target

If no DHCP server is available, set a fixed IP address in /etc/network/interfaces (on the SD card)

Boot the RaspberryPi from the SD card. The Board will respond to ping very soon after power on, but the ssh daemon will takt a little while (~30sec) to become ready. Login with user "pi" and password "raspberry":

ssh pi@raspi1
The authenticity of host 'raspi1 (192.168.13.25)' can't be established.
ECDSA key fingerprint is f4:28:53:2d:e3:b9:a0:5b:f6:c1:13:c2:e7:bf:12:fd.
Are you sure you want to continue connecting (yes/no)? yes
pi@raspi1's password:
Linux raspi1 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
NOTICE: the software on this Raspberry Pi has not been fully configured. Please run 'sudo raspi-config'
pi@raspi1 ~ $