Thursday, June 23, 2016

Configure your Raspberry Pi without Keyboard and Display

 As an intensive Raspberry Pi user you have an image with a suitable OS just in case. For example, my images are all preconfigured for my private networks and I just have to copy them to an SD card and put them into the Raspberry. Then I can start right away - with whatever. The configuration of a new Rasbian can usually be done by bringing the small single board computer with a network cable into the LAN.


But there are circumstances where these approaches don't help and the circumstances don't allow you to connect the Raspberry to the network via the network cable and only WLAN is available. There is an easy way to do this configuration on a laptop directly after copying the Raspbian image to the SD card. I describe the steps for Windows, Linux and (soon) OSX.

I refer here to the standard Rasbian, the Howto does NOT work with Raspbian lite. (Stand 2016-05-27-raspbian-jessie-lite.img)

The image is downloaded from https://www.raspberrypi.org/downloads/raspbian/.

I refer here to the standard Rasbian image, the Howto does NOT work with the Raspbian lite image. (Stand 2016-05-27-raspbian-jessie-lite.img)

Initial configuration using Windows

Copy the downloaded image to the SD Card using WinDiskImager32 


Then a part (one of two partitions) of the copied image is visible in Windows Explorer.



A new file called wpa_supplicant.conf is created in this area. The following information will be added to this file (I like to use Notepad++ or Textpad for editing) 

update_config=1
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

network={
   &nbsp ssid="SSID"
    psk="Passwort"
}


Once the file is saved it can be used in the Raspberry. When the Raspberry is started, it gets an IP address from the WLAN which can be used to access the Raspberry. Most routers or access points have a web frontend which can be used to find out the IP address of the Raspberry. If this is not possible, a network scanner will help. Scanning the whole network is not (that easy) possible with Windows onboard tools. On iOS and Android Smartphones I have Fing for this.




Initial configuration using Windows

Under Linux you can copy the image with the dd command to the SD card. First you have to check the device name of the SD card under Linux. Before the card is inserted the mounted storage devices are listed. This is done with the command: 

df -h


Then the SD card is inserted and the command 

df -h


is executed again. The return should contain

/dev/mmcblk0p1


or

/dev/sdd1

I will use the mmcblk0p1 in this case. Afterwards the device is unmounted with umount. If there are several partitions on the SD card (recognizable by mmcblk0p2, mmcblk0p3, ...), all of them have to be unmounted.

Afterwards the image can be copied to the SD card. It is important that the image is copied to the SD card and not to a partition. Therefore the name to copy to is /dev/mmcblk0 or /dev/sdd and not /dev/mmcblk0p1 or /dev/sdd1.

The command to copy is:

dd bs=4M if=2016-05-27-raspbian-jessie.img of=/dev/mmcblk0


Of course you can also copy with your preferred GUI on a current Ubuntu (16.x). This is quite easy with the usb-imagewriter. The usb-imagewriter must be installed.

After the card has been written, the SD card must be remounted. The easiest way is to remove the card for a short time and plug it in again. 


df -h


With you can see that the card has two partitions. One partition is called /dev/mmcblk0p1 and the other /dev/mmcblk0p2. Here the smaller partition with a size of about 50 to 100MB is interesting. On this partition we will copy the WLAN information, which will be moved to the right place later on the first start of Raspbian in Raspberry.

In the terminal I open the file wpa_supplicant.conf with the command: 

sudo wpa_passphrase testwifi testpassword >> /dev/ mmcblk0p1/wpa_supplicant.conf


and all information for the WIFI configuration needs to be inserted with the following structure:

update_config=1
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
    ssid="testwifi"
    #psk="testpassword"
    psk=d28f6e7bcc45536a1930c0010f1d8a8e16c5dc154cc1309ae97859f2586924df
}

In order to connect to the Raspberry later, the IP address must be obtained. If the MAC address (or the manufacturer code) is known, the Raspberry is started and after a few moments scanned for the Raspberry with nMap. The manufacturer code (called OUI) can be found at http://aruljohn.com/mac.pl. Click on vendor lookup in the input mask and enter the manufacturer of the map.


The MAC address part 80:F1:02 is here exemplary for my Edimax WIFI USB adapter. 

nmap -sP 192.168.50.0/24 | awk '/^Nmap/{ip=$NF}/80:F1:02/{print ip}'


Now you known everything to connect to your Raspberry with SSH. Have fun :)

No comments:

Post a Comment