Raspberry pi needs no introduction, regardless of what side of the house you are on. If you need a reason to buy one, just look at the specs, The new Raspberry pi 2 comes with the following specs:
- A 900MHz quad-core ARM Cortex-A7 CPU
- 1GB RAM
- 4 USB ports
- 40 GPIO pins
- Full HDMI port
- Ethernet port
- Combined 3.5mm audio jack and composite video
- Camera interface (CSI)
- Display interface (DSI)
- Micro SD card slot
- VideoCore IV 3D graphics core
Just to fire-up the raspberry pi, here’s what you will need to get started:
- Micro SD card, preferably class 10 and above.
- You may also need an SD Card reader to load image to your sdcard
- The raspberry pi comes with an HDMI port
- You may need an hdmi cable or converter if your screen does not support hdmi
- You need a USB keyboard and a mouse
- The raspbery pi comes with an Ethernet port.
- You may need an rj-45 cable/ standard ethernet cable
- You also may need to set it up, where you have access to an Ethernet jack
- Case is not a must, but a nice have.
- I will be moving the pi between home and work, so I found it fitting to have one
- You need a 5V micro USB power supply to power the Pi. Most micro-usbs are 5V, read labels.
- Wi-Fi dongle. (when purchasing, make sure you look into drivers support first)
- One of my priorities with the pi is portability, and this offers just that.
- Please read manual and power warnings
Picking an image
I’ve not done my due diligence to find more images, I’m more eager to just get going.
Ubuntu announced a dev-core image called Snappy , a minimal server image with the same libraries as traditional ubuntu server. This is still in alpha phases. I tried being a maverick, I’ve had little success getting my wi-Fi dongle to work. But like expected the internals are similar with ubuntu.
Snappy also includes an easy to configure Web Device Management framework (WEBDM) to manage “snaps” add-ons on your OS. Here’s a good guide that better describes webdm
And here’s ubuntu’s guide to snappy
Building the image (on linux)
This the official guide for installing images on linux.
Once sd-card is in it’s adapter and loaded into your computer, you can run the following commands to see what’s mounted.
My sdcard mount point is mmcblk0p1, unmount it first
Once you have downloaded an image at http://www.raspberrypi.org/downloads/ you can unzip the image using this command
Now you are ready to build the image file
be careful, this is a command that will overwrite a partition if you pick the wrong one, if in doubt refer to official documentation. also note ‘mmcblk0’ not ‘mmcblk0p1,p2’
sudo dd bs=4M if=2015-02-16-wheezy-raspbian.img of=/dev/mmcblk0
sync, to reload cache, and remove sdcard,
Starting the image [RASPBIAN]
Once sd-card inserted. power the Pi by inserting the power cable.
RASPBIAN setup is self explanatory, it allows you to configure system variables before the image fully boots.
I’ve ran through most of the options above, notably
ssh and the keyboard, and os locales. if you’ve made a mistake, this command is still available passed the initial config at
Remember to reboot after initial config.
The wifi-dongle was automatically detected, I was hoping to compile drivers myself, but not entirely surprised.
my dongle runs on
lsub showed the dongle
$ lsusb Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
lsmod shows the loaded module including the model for my dongle’s chipset
$ lsmod Module Size Used by snd_bcm2835 18850 0 snd_pcm 75388 1 snd_bcm2835 snd_seq 53078 0 snd_seq_device 5628 1 snd_seq snd_timer 17784 2 snd_pcm,snd_seq snd 51667 5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device 8192cu 528429 0 uio_pdrv_genirq 2958 0 uio 8119 1 uio_pdrv_genirq
more info about module
$ modinfo 8192cu filename: /lib/modules/3.18.7-v7+/kernel/drivers/net/wireless/rtl8192cu/8192cu.ko version: v4.0.2_9000.20130911 author: Realtek Semiconductor Corp. description: Realtek Wireless Lan Driver license: GPL
sudo iwlist wlan0 scan just to scan the wireless networks.
$ sudo ifdown wlan0 Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/$MACADDRESS Sending on LPF/wlan0/$MACADDRESS Sending on Socket/fallback
Fill in the
$ vi /etc/network/interfaces allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid "$WIFI_SSID" wpa-psk "$WIFI_PASSWORD"
Bring up the interface and watch it get DHCP
pi@kr4spberry ~ $ sudo ifup wlan0 ioctl[SIOCSIWAP]: Operation not permitted ioctl[SIOCSIWENCODEEXT]: Invalid argument ioctl[SIOCSIWENCODEEXT]: Invalid argument Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/$MACADDRESS Sending on LPF/wlan0/$MACADDRESS Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 20 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPOFFER from 192.168.0.1 DHCPACK from 192.168.0.1 bound to 192.168.0.11 -- renewal in 1405 seconds.
There is a power saving issue with the wifi intermittently going off, Here’s how to fix it?
Create and edit a new file in
#edit conf sudo nano /etc/modprobe.d/8192cu.conf
and paste the following in
# Disable power saving options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1
Then reboot with
Wifi / HEADLESS
I intended to use this as a headless server. I run quick nmap scans on my network and I compare the matching MAC Address
sudo nmap -F 192.168.0.0/24,
$IP Host is up (0.064s latency). MAC Address: $MACADDRESS (Kaparel)
now once dongle is connected on the network I can scan for it.
$ifconfig wlan0 Link encap:Ethernet HWaddr $MACADDRESS inet addr:$IP-PREFIX.7 Bcast:$IP-PREFIX.255 Mask:255.255.255.0
- Learn a way to connect to known networks automatically, and cron to keep retrying link when it goes down