Sikkepitje.nl

Sikkepitje.nl

this private cloud

Raspberry Pi voor de beginner

Installeer een besturingssysteem

Stappenplan samengevat:

Raspbian Jessie Lite

Gebruik Jessie Lite als je van plan bent om de Raspberry Pi headless, m.a.w. zonder monitor wilt gebruiken. Jessie Lite bevat geen X-server en ook niet alle componenten die op X draaien en is daardoor een stuk kleiner dan Raspbian Jessie.

Raspbian eerste-keer initialisatie

Bestandssysteem uitbreiden

Na eerste keer starten is het aan te raden om het bestandssysteem op de SD-kaart uit te breiden. Normaliter als je een Raspbian image op je SD-kaart zet, wordt niet alle ruimte op de kaart gebruikt. Door het bestandssysteem uit te breiden Hiermee gebruik je alle vrije niet-gepartitioneerde ruimte op de SD-kaart.

 $ sudo raspi-config

Kies in het menu Advanced Options > Expand Filesystem. Reboot daarna.

Nieuwe gebruiker

ingelogd als user pi verander je wachtwoord:

 $ passwd

Maak de gebruiker "pietje" en voeg hem toe aan de groepen waar user "pi" ook lid van is.

 $ sudo adduser pietje       # vraagt om wachtwoord

Maak "pietje" lid van de groepen waarvan "pi" lid is. Dit is nodig o.a. om recht te krijgen om diverse hardware te mogen gebruiken. Je moet bijvoorbeeld lid van groep 'dialout' zijn om COM-poorten te mogen gebruiken en 'gpio' om de GPIO-pinnen direct aan te spreken. Kijk van welke groep user "pi" lid van is met

 $ groups pi

Op dit moment is 'pi' lid van de groepen pi, adm, dialout, cdrom, sudo, audio, video, plugdev, games, users, netdev, input, spi, gpio. Voeg de gebruiker "paul" toe aan deze groepen

 $ sudo usermod -a -G adm,dialout,cdrom,sudo,audio,\
 video,plugdev,games,users,netdev,input,spi,gpio pietje

Alternatieve manier:

 $ for GROUP in adm dialout cdrom sudo audio video plugdev \
games users netdev input spi i2c gpio; do sudo adduser pietje $GROUP; done

Voeg pietje toe aan sudoers

 $ sudo visudo

...en voeg onderaan deze regel toe:

pietje ALL=(ALL) NOPASSWD: ALL

log uit als pi, login als pietje.

Statisch ip-adres

Als je je Raspberry Pi headless wilt gebruiken, is het handig hem een vast ip-adres te geven. Het verdient de voorkeur om voor je Raspberry Pi een vast adres te reserveren in je DHCP-server. Je DHCP-server is meestal een ufnctie van je modem/router en dit wordt DHCP lease reservation genoemd. Alleen als dat niet lukt, kun je in de Raspberry Pi een statisch ip-adres instellen als volgt.

 $ sudo nano /etc/network/interfaces

Verander de regel:

iface eth0 inet dhcp

in:

 iface eth0 inet static
 address 192.168.178.45
 netmask 255.255.255.0
 network 192.168.178.0
 broadcast 192.168.178.255
 gateway 192.168.178.1

..en bewaar. Activeer deze nieuwe instelling door de netwerkadapter te deactiveren en te activeren. Doe dit alleen op een local console, anders sluit je jezelf uit!!

 $ sudo ifdown eth0
 $ sudo ifup eth0

Controleer tenslotte de instelling met ifconfig:

 $ ifconfig

Het commando ifconfig geeft een hoop uitvoer waaruit zou moeten blijken dat interface eth0 het ipadres 192.168.178.45 heeft.

Meerder statische ip-adressen

(multiple static ip addresses)

auto eth0
allow-hotplug eth0
iface eth0 inet static
        address 192.168.178.95
        netmask 255.255.255.0
        network 192.168.178.0
        broadcast 192.168.178.255
        gateway 192.168.178.1

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
        address 172.23.3.195
        netmask 255.255.252.0
        network 172.23.0.0
        broadcast 172.23.3.255

Let op: Alias-adapter kunnen geen "gateway" hebben!

Hostname wijzigen

Stel tenslotte een andere hostname in. Om je systeem een andere naam te geven, gebruik niethet hostname commando.

 $ sudo hostname miep

want dit werkt niet! Maar doe dit:

 $ sudo nano /etc/hostname

en bewerk dit bestand, verwijder de enige regel en type de nieuwe naam van de Raspberry Pi, bijv. miep: en reboot:

 $ sudo reboot

Log in en zie dat de prompt veranderd is:

 paul@miep ~ $

Je krijgt waarschijnlijk vaak een melding als:

 unable to resolve host miep

Dit kun je corrigeren, door /etc/hosts te bewerken en "miep" toe te voegen aan 127.0.0.1. Sommige lieden voegen het adres 127.0.1.1 toe en geven het deze naam, dus:

 $ sudo nano /etc/hosts

en voeg to:

 127.0.1.1 miep

SSH

Bij verstek is OpenSSH al geinstalleerd en draait de server. Om de SSH poort te veranderen, bewerk sshd_config.

 $sudo nano /etc/ssh/sshd_config

en wijzig de regel:

 Port 22

in bijvoorbeeld:

 Port 1025

Als je bij inloggen een banner wilt zien, uncomment de Banner-regel:

 Banner /etc/issue.net

Bewaar de file, en laat de ssh-server de configuratie opnieuw laden om de gemaakte wijzigingen te activeren:

 $ sudo service ssh reload

SSH op headless Raspberry Pi met nieuwere Raspbian

In de nieuwste distros, in ieder geval op Raspbian Jessie Lite, is SSH niet meer bij verstek ingeschakeld. Dan kan je op een headless (zonder monitor en toetsenbord) Raspberry Pi SSH inschakelen op een eenvoudige manier. Maak op de bootpartitie een nieuw bestand genaamd ssh. Bij de volgende boot is SSH ingeschakeld. That's all!

Enable ssh and connect to a wifi network without a keyboard or a screen

Dit werkt voor de Raspberry Pi Zero W welke ingebouwde wifi heeft en geen ethernet-adapter. Het werkt in ieder geval voor Raspbian Jessie.

  • Maak in de bootpartitie een file genaam ssh; hiermee wordt SSH server ingeschakeld.
  • Maak de bootpartitie een file genaamd wpa_supplicant.conf. Open deze in een editor en voeg de volgende tekst toe:
network={
    ssid="MyWiFi"
    psk="MyPrivateKey"
    key_mgmt=WPA-PSK
}

Bron
Meer info: Setting wifi up via the command line

Screen en Byobo als loginshell

Tip: Installeer Byobu. Hiermee kunnen consoleopdrachten actief blijven, ook nadat je je afmeld van de console.

 $ sudo apt-get byobu

Daarna kun je Byobu als standaard loginshell instellen voor de huidige gebruiker

 $ byobu-enable

Meld je af en opnieuw aan. Nu is Byobu de login shell. Wanneer aangemeld op de console, bijvoorbeeld via SSH, dan kun je je actieve venster loskoppelen met Ctrl-a d terwijl actieve taken blijven doordraaien.

Systeemupdate

Werk de software bij

 $ sudo apt-get update
 $ sudo apt-get upgrade

Dit duurt lang! neem hiervoor de tijd.

Werk de firmware bij:

 $ sudo rpi-update
 $ sudo ldconfig
 $ sudo reboot

Python module serial

Om de seriele poort te gebruiken vanuit Python, moet module python-serial worden geinstalleerd.

 $ sudo apt-get install python-serial

De USB-naar-seriele adapter met de Prolific Pl2303 wordt goed herkend door de Raspberry Pi. enig minpunt is dat ik de adapter erin steek, de Raspberry Pi zich reset! Het seriele device wordt beschikbaar via /dev/ttyUSB0.

Om te zien waar de seriele adapter zich bevindt en hoe het heet, doe:

 $ dmesg | grep usb 

of:

paul@bert ~/development $ 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 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Overigens een goede eenvoudig te gebruiken terminalprogramma om te seriele verbinding te testen is minicom. Dit is te installeren met:

 $ sudo apt-get install minicom

Gebruik :

 $ minicom -D /dev/ttyUSB0 -b 9600

De USB-TTL seriele adapter van Adafruit (deze) wordt prima herkend in python. Helaas is hij niet Plug-and-Play ; insteken van de adapter in USB maakt dat de Raspberry Pi zichzelf reset!

En verder: software installeren

 sudo apt-get install {pakket}

Handige pakketten:

  • nginx
  • php
  • screen en byobu

Apache2

 sudo apt-get install apache2 php5
 mkdir ~/wwwroot

Bewerk /etc/apache2/site-enable/000-default als volgt:

        DocumentRoot /home/paul/wwwroot
        <Directory /home/paul/wwwroot>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

Me deze laatste wijziging is de "DocumentRoot" gewijzigd en ingesteld op een map in de homedirectory van deze gebruiker , te weten /home/paul/wwwroot. Dit maakt het mogelijk om bestanden van de webserver zonder root-privileges te beheren en dat is makkelijk.

Apache: Could not reliably determine the server's fully qualified domain name

Na starten van Apache2 met sudo service apache2 start klaagt het dat

 Could not reliably determine the server's fully qualified domain name

De oplossing is simpel: maak een bestand /etc/apache2/conf.d/fqdn en zet daarin:

 ServerName miep

Vanaf Ubuntu 14.04 doen we dat anders: maak /etc/apache2/conf-available/fqdn.conf (let op extensie .conf) en daarin

 ServerName miep

Daarna, enable deze configuratie:

 a2enconf fqdn

Test PHP

maak in map /home/paul/wwwroot nu een bestand met naam "info.php":

 <?php phpinfo();

Richt je browser op http://miep/info.php en je krijgt als het goed is nu een informatie over PHP te zien.

Verleng het leven van je SD-kaart

http://www.zdnet.com/raspberry-pi-extending-the-life-of-the-sd-card-7000025556/

Het is goed om te weten dat er een aantal gemounte mappen tmpfs gebruiken. Feitelijk zijn deze opgeslagen in een RAM-disk en schrijven dus niet op de SD-kaart of ander Flash-geheugen, maar in een stukje werkgeheugen dat toegankelijk is als bestandssysteem. Een van deze mappen is /tmp. Mijn P1-Logger zou het beste elke minuut niet in de homedirectory schrijven maar in een bestand in /tmp.

Niet meer nodig voor nieuwere (2014 ) Raspberry Pis

Programma autostarten op headless RPi

autorun

Five Ways To Run a Program On Your Raspberry Pi At Startup

Tips

HDMI-naar-VGA

Ik heb een zwarte HDMI-naar-VGA-converter. Ik krijg zwart beeld. Het komt vaker voor. De Raspberry initialiseert de HDMI-uitgang niet. Verhelp dit door instellingen in config.txt te wijzigen. Wijzig als root /boot/config.txt en voeg aan het eind van het bestand de volgende regels toe:

# Instellingen om de wankele zwarte HDMI-naar-VGA-adapter te gebruiken.
# http://elinux.org/RPiconfig

# Gebruik deze in plaats van "hdmi_safe=1"
hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
config_hdmi_boost=4
hdmi_group=2
hdmi_mode=4
disable_overscan=0
overscan_left=16
overscan_right=16
overscan_top=16
overscan_bottom=16

# hdmi_mode=4  #  640x480    60 Hz
# hdmi_mode=9   # 800x600 @ 60 Hz
hdmi_mode=16  # 1024x768   60 Hz
# hdmi_mode=23  # 1280x768   60 Hz
# hdmi_mode=35  # 1280x1024  60 Hz

Raspberry Pi met remote X server

Als je de Raspberry Pi headless gebruikt , kun je niet alleen via PuTTY de command line interface (CLI) gebruiken, maar kun je ook X gebruiken vanaf je desktop computer. Je gebruikt daarvoor een SSH client, zoals PuTTY, en een X server op je Windows, bijvoorbeeld XMing.

De procedure hoe je dat doet is beschreven op Xming with Raspberry Pi, maar deze handleiding is erg uitgebreid, en veel stappen kun je overslaan als je al een Raspberry Pi hebt draaien.

Een samengevatte instructie is als volgt.

  • Raspberry Pi
    • apt-get install xdm
    • dpkg-reconfigure xdm - en kies xdm
    • /etc/X11/xdm/xdm-config en wijzig regel:
 DisplayManager.requestPort:    0

in:

 ! DisplayManager.requestPort:  0
  • /etc/X11/xdm/Xaccess en wijzig:
 #*                                     #any host can get a login window

in:

 *                                      #any host can get a login window
  • Windows
    • download en installeer Xming en Xming-fonts
    • start XMing als volgt:
 Xming :1 -query 192.168.0.6

Identificeer je Raspberry Pi

Hoe identificeer je je Raspberry Pi via het besturingssyteem ? Dat doe je via het commando

 $ cat /proc/cpuinfo

In deze tabel geeft het Revision-veld een unieke identificatie voor de hardware. Je zoekt dit nummer op in Checking Your Raspberry Pi Board Version & Revision Number

Meer...

rpi-update verouderd

rpi-update heb je niet meer nodig! In 99% van alle gevallen is

 $ sudo apt-get update
 $ sudo apt-get upgrade

voldoende om je systeem up-to-date te houden. Dat geldt zeker voor Raspberry Pi 2 en latere modellen.

Internet resources

Scratch krijg een MOOC

http://www.techthefuture.com/technology/programming-language-scratch-gets-its-own-mooc/?mc_cid=5f570d721c&mc_eid=a8eaf658ac

Gertboard

Leuk om te lezen: Kees Moerman Raspberry Pi Hardware en I/O http://www.keesmoerman.nl/rasp_hw.html

Goede webshops voor Raspberry spullen

Grote electronicawebshops

Buitenlands, sommige met nederlands-talige website

Info

Youtube Sparkfun

Meer spannende links