wiki:GENIRacksHome/OpenGENIRacks/RaspberryPIs

Version 41 (modified by rrhain@bbn.com, 3 years ago) (diff)

--

This Page Will Currently Describe the PI Lab

Inventory: see attachment:Purchase_for_Raspberry_Pi_project.pdf:wiki:GENIRacksHome/OpenGENIRacks/RaspberryPIs

Addresses

DNS Addresses

128.89.68.230 rosifolius
128.89.68.231 gunnianus
128.89.68.232 leucodermis
128.89.68.233 parvifolius
128.89.68.234 ellipticus
128.89.68.235 idaeus

We also asked for fixed IP addresses for BBNGuest. We provided the MAC addresses for affiliation. DNS entries have also been assigned:

C4:e9:84:0d:b8:61 192.1.16.101 pi1.bbn.com
C4:e9:84:0d:b8:7d 192.1.16.102 pi2.bbn.com
C4:e9:84:0d:93:35 192.1.16.103 pi3.bbn.com
C4:e9:84:0c:7f:43 192.1.16.104 pi4.bbn.com
C4:e9:84:0c:7f:49 192.1.16.105 pi5.bbn.com

Web Pages Used for Reference

Generic Raspbian Installation

https://www.raspberrypi.org/help/noobs-setup/ - Note: I had trouble getting micro 64GB cards to work with this process although I know that the installation instructions for the hypriot worked for this size.

https://www.raspberrypi.org/documentation/installation/installing-images/mac.md - used this method later

  sudo diskutil list
  sudo diskutil umountDisk /dev/disk5
  sudo dd bs=1m if=/Users/rrosales/Downloads/2016-03-18-raspbian-jessie.img of=/dev/rdisk5
  sudo diskutil eject /dev/rdisk5

And then once the SD card is used to boot the pi - one needs to run raspi-config, and choose expanding filesystem to get the rest of the SD card seen.

http://raspberrypi.stackexchange.com/questions/15250/how-to-get-remaining-memory-in-sd-card -

Static IP Address Configuration for Raspbian Jesse version

Link https://pi-hole.net/faq/how-do-i-set-a-static-ip-address-in-raspbian-jessie-using-etcdhcpcd-conf/

Despite lots of confusing information out there, it is actually pretty straightforward to set a static address in Raspbian.

Being by editing the file (do not use /etc/network/interfaces anymore!)

sudo vi /etc/dhcpcd.conf

Then all you need to do is append this to the bottom of the file, substituting the correct IP address you want.

interface eth0
static ip_address=192.168.1.141/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

Docker Image Installation

[Image with Docker built in http://blog.hypriot.com/getting-started-with-docker-and-mac-on-the-raspberry-pi]

[Instructions on how to run a container using the previous image - http://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/#going-wild-with-docker-what-can-you-actually-do-with-it:397c66ef19f9f061b6711d2e296cb276]

http://openvswitch.org/support/dist-docs/INSTALL.Docker.md.txt

https://sdntestbed.wordpress.com/2015/07/03/install-open-vswitch-on-raspberry-pi/

https://wiredcraft.com/blog/multi-host-docker-network/

https://github.com/docker-library/official-images/tree/master/library

https://labs.ctl.io/5-unexpected-ways-to-use-docker/

https://hub.docker.com/r/tomparys/skype/

Note - To make sure you have the full SD card available to you - you might need to expand the file system: http://raspberrypi.stackexchange.com/questions/15250/how-to-get-remaining-memory-in-sd-card
After booting up
[sudo raspi-config]

Setting Up Wifi

[Installing TL-WN722N WiFi on the Pi - Directions taken from http://barntek.net/simplemachinesforum/index.php?topic=190.0]

Edit /etc/apt/sources.list to add the non-free archive and backports (eg: sudo vi /etc/apt/sources.list):

deb http://ftp.us.debian.org/debian/ squeeze main non-free
deb http://security.debian.org/ squeeze/updates main non-free
deb http://ftp.us.debian.org/debian/ squeeze-updates main non-free
deb http://backports.debian.org/debian-backports squeeze-backports main non-free

Update the package cache:

sudo apt-get update

Download the wifi utils:

sudo apt-get install wireless-tools usbutils

Download the required firmware and put it in the correct location - you may not need to do this for your adapter or you may need different firmware - see below.

sudo apt-get install firmware-atheros
sudo wget http://linuxwireless.org/download/htc_fw/1.3/htc_9271.fw
sudo cp htc_9271.fw /lib/firmware

Add adapter definition to network config - eg: sudo vi /etc/network/interfaces - add the wlan0 section:

# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.

auto lo

iface lo inet loopback
iface eth0 inet dhcp

# The wireless interface
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf

Plug in adapter Confirm adapter is present:

root@raspberrypi:~# sudo iwconfig
  lo        no wireless extensions.

  eth0      no wireless extensions.

  wlan0     IEEE 802.11bgn  ESSID:off/any
            Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
            Retry  long limit:7   RTS thr:off   Fragment thr:off
            Encryption key:off
            Power Management:off

Scan your network to see what wireless access points can be seen. You may need to do this to identify your network's SSID (name), but it also confirms that the wifi dongle is doing something. The first command just lists the SSIDs found, the second tells you probably more than you ever want to know:

sudo iwlist wlan0 scan | grep ESSID

or

sudo iwlist wlan0 scan

Create the wpa.conf file - eg: sudo vi /etc/wpa.conf:

Note: The ssid is case sensitive - if your WLAN's SSID is MYLAN, using "mylan" will not work - you won't connect!

network={
ssid="NETWORK-SSID"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="YOUR-WLAN-PASSWORD"
}

Start the adapter

sudo ifup wlan0

Double-check whether you are connected - below the WLAN interface has been given an IP address - looks good!

root@raspberrypi:~# ifconfig
 eth0      Link encap:Ethernet  HWaddr b8:27:eb:76:7e:2e
           inet addr:192.168.202.75  Bcast:192.168.202.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1488  Metric:1
           RX packets:1060 errors:0 dropped:0 overruns:0 frame:0
           TX packets:146 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:95749 (93.5 KiB)  TX bytes:48493 (47.3 KiB)

 lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:8 errors:0 dropped:0 overruns:0 frame:0
           TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:560 (560.0 B)  TX bytes:560 (560.0 B)

 wlan0     Link encap:Ethernet  HWaddr b0:48:7a:91:5c:f4
           inet addr:192.168.222.161  Bcast:192.168.222.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:31 errors:0 dropped:0 overruns:0 frame:0
           TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:2260 (2.2 KiB)  TX bytes:1542 (1.5 KiB)

And then to configure the wifi adapter - use the WICD GUI

WICD

[Wicd - https://wiki.debian.org/WiFi/HowToUse#Wicd]

You must remove network-manager to get wicd to work. Check to see if network-manager is installed and see if, after you installed the driver, your wireless is already working in the notification area of your desktop manager. You may already be good to go.

wicd (Wireless Interface Connection Daemon) is a lightweight alternative to NetworkManager. It is environment-independent, making it suitable for all desktop environments, including GNOME, Xfce, LXDE, and Fluxbox. Like NetworkManager, wicd is configured via a graphical interface. Your wireless interface should not be referenced within Debian's /etc/network/interfaces file.

  1. Update the list of available packages and install the wicd package:
        $ su
        # aptitude update
        # aptitude install wicd
    
  1. Amend /etc/network/interfaces to contain only the following:
        # This file describes the network interfaces available on your system
        # and how to activate them. For more information, see interfaces(5).
    
        # The loopback network interface
        auto lo
        iface lo inet loopback
    

Note: as of wheezy it is fine to have your wireless interface in /etc/network/interfaces, but not required. You can set the wireless interface (e.g. wlan0) in the wicd client's preferences.

  1. If not already performed, add your regular user account to the netdev group and reload DBus:
        # adduser yourusername netdev
        # /etc/init.d/dbus reload
    
  1. Start the wicd daemon:
        # /etc/init.d/wicd start
    
  1. Start the wicd GUI with your regular user account: Original instruction had a -n. We needed to run it without -n
        # exit
        $ wicd-client
    

GUI Setup

[We used Openbox - http://www.bristolwatch.com/rpi/rpi_openbox.htm]

RYU Installation

    sudo apt-get install python-dev
    sudo pip install ryu

Also check this page for new install https://github.com/ipop-project/Documentation/wiki/Installing-openvswitch-and-RYU-controller

GRAM Porting Status

The latest GRAM AM Software has been put on the 128.89.68.230 card. The idea was to have GRAM as the AM manager for the resources of the rack. It was not as trivial to pull out the OpenStack code as there might be OpenStack assumptions intertwined into the GRAM AM code. In particular, the GRAM AM seems to support the notion of a tenant. And that notion naturally follows with OpenStack, and I think GRAM uses that notion. On a positive note, all python dependencies seemed to be supported by the PI operating system easily.

Installing Interesting Applications

Installing a WebRTC server on a Raspberry PI

https://bloggeek.me/webrtc-raspberripi-nodejs/

https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=130217

Running OVS and RYU on the PI's (Li Lin's work)

Attachments (7)

Download all attachments as: .zip