Een Raspberry Pi is een heel klein en zuinig computertje met een ARM SoC.
Iedereen heeft er een (nu ja, zoiets).
Ik heb nu ook een eentje besteld. Een dag later al in huis. Het spelen, uhe, experimenteren, kan beginnen.
Het plan is om de Pi 'headless' te gebruiken als een super-zuinig computertje, dat gewoon altijd aan staat. Ideaal voor kleine home-automation experimenten en waarbij er geen beeldscherm aan hoeft (dus ook geen 'Desktop Manager' nodig), alles verder via een remote SSH sessie.
Intussen is m'n RPi collectie wat gegroeid, vooral door de nieuwschierigheid naar de nieuwe versies van de RPi.
De RPi 2 B is door het grotere geheugen erg interresant voor miniservers. De RPi B+ is nog interresant vanwege het nog lagere stroomverbruik. De originele RPi B is natuurlijk nog uitstekend bruikbaar voor projecten waar het om IO gaat (want dat kost niet zoveel geheugen) en past goed bij de oudere uitbreidings modules.
De bovenste RPi heeft een LCD module gekoppeld (en een Pi-Matrix board met een boel leds, ligt er naast). De Pi eronder was de Pi in de meterkast, met ArchLinux erop (nu niet meer in de meterkast, want die wordt aangepast i.v.m. de komst van glasvezel). De andere twee Pi's zijn de nieuwere versies, resp Pi B+ en Pi 2 B. De laatste arriveerde vandaag met de post.
The Raspberry Pi Foundation
Raspberry Pi Wiki on eLinux
CentOS 7 Installation Guide on Raspberry PI
FedBerry is a Fedora Remix specifically built for use with Raspberry Pi® 2/3 Model B computers
Raspberry Pi 3 Thermal Throttling Analysis: The $8 "Moster" Heatsink
The Raspberry Pi is succeeding in ways its makers almost imagined
Raspberry Pi - Programming languages, IDEs, etc.
Build a custom Linux system to your needs for scraths
Kali Linux on a Raspberry Pi (A/B+/2) with Disk Encryption
Raspberry Pi GPIO via the Shell
undertake cruel and unusual measures to preserve SD card life so that your Pi can run as close to 24x7x365 as possible
Install Kali ARM on a Raspberry Pi
How to set up a Raspberry Pi web server, mail server and Owncloud installation
How to set up a website with HTTPS and SPDY support under nginx on a Raspberry Pi
Enabling Simultaneous AP and Managed Mode WiFi on Raspberry Pi Zero W
TFT 2.8" display (STMPE610 + II9341)
Raspberry Pi Cluster Emulation With Docker
Ik heb wat 2Gb SD kaartjes die uitstekend te gebruiken zijn voor de RPi v1. Ik ben opnieuw gaan zoeken naar een Linux distributie voor de Pi die op zo'n kaartje past en ben uitgekomen bij DietPi. Dit is een 'minimal Raspbian/Debian Server Image' waarbij je de software die je echt wilt hebben, makkelijk kan installeren. Er zijn zelfs 'functionele modules' die je via een handig menu kan installeren.
Ik ben gestopt met deze distributie, omdat je af en toe een nieuwe image moet laden. Dan moet je gelijk ook je website weer opnieuw neerzetten, irritant. Daarnaast was de raspbian repo laat met updaten van webserversoftware.
Het Diet-Pi installatie proces is goed uitgelegd op de Diet-Pi installatie pagina, dus dat ga ik niet herhalen. Samengevat is het gewoon de image downloaden, uitpakken en op de SD-kaart schrijven. Dat is eigenlijk alles. Daarna kan je de SD kaart in je Pi plaatsen en die start dan Linux op en doet nog wat configuratie bij opstarten en de 1e inlog. Het IP adres moet je zelf vinden, b.v. op je router bij de DHCP info. Zodra je het IP-adres van de RPi weet, kan je er met SSH (of putty) op inloggen.
Ook bij de Diet-Pi image staat IPv6 standaard uit. Dat is gedaan door de IPv6 module te blacklisten. Pas dat aan, zodat de ipv6 module wel geladen wordt.
Pas ook de /etc/network/networking file aan zodat voor ipv6 de interface op auto staat.
iface eth0 inet6 auto
Na een update van v77 naar v79, bleek dat het vrijgeven van ipv6 opnieuw moest, maar de 'networking' file bleef intact.
vi /etc/modprobe.d/ipv6-blacklist.conf
de regel blacklist ipv6
weghalen (of eigenlijk een # ervoor plaatsen), zodat de ipv6 module niet meer blacklisted is.vi /etc/sysctl.d/ipv6.conf
de 'ipv6' entry aanpassen van '=1' naar 'net.ipv6.conf.all.disable_ipv6=0'
.Na een paar weken, weer een nieuwe update, nu naar v81. Na de update, maar voor de reboot is IPv6 nog actief en een boel outdated 'temporary' addresses.
# ip -6 addr 1: lo:Helaas schakelt de update IPv6 weer uit na de update naar v81. Nu blijkt dat de ipv6 module via een filemtu 65536 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qlen 1000 inet6 2a02:a448:25ea:0:399a:783a:a18b:9b3d/64 scope global temporary dynamic valid_lft 86340sec preferred_lft 2936sec inet6 2a02:a448:25ea:0:bd95:b8bd:7ef6:9d18/64 scope global temporary deprecated dynamic valid_lft 86340sec preferred_lft 0sec inet6 2a02:a448:25ea:0:f5bf:5956:10cf:ec73/64 scope global temporary deprecated dynamic valid_lft 86340sec preferred_lft 0sec inet6 2a02:a448:25ea:0:995c:e03a:72d1:c166/64 scope global temporary deprecated dynamic valid_lft 86340sec preferred_lft 0sec inet6 2a02:a448:25ea:0:ba27:ebff:fe00:0/64 scope global dynamic valid_lft 86340sec preferred_lft 43140sec inet6 fe80::ba27:ebff:fe00:0/64 scope link valid_lft forever preferred_lft forever #
blacklist-ipv6.conf
te zijn geblokkeerd. De file disable_ipv6.conf
blijkt nu leeg te zijn, maar ipv6 is nog disabled. Gooi deze *ipv6*.conf file weg en zet de configuratie in een file local.conf.
vi /etc/modprobe.d/ipv6-blacklist.conf
de regel blacklist ipv6
onschadelijk maken door een # vooraan te plaatsen.vi /etc/sysctl.d/local.conf
een nieuwe file maken met de volgende regels
net.ipv6.conf.all.disable_ipv6=0
en
net.ipv6.conf.default.use_tempaddr=2
en
net.ipv6.conf.all.use_tempaddr=2
en
net.ipv6.conf.eth0.use_tempaddr=2
.
# ip -6 addr 1: lo:Bij het uitvoeren van de update naar v82 is IPv6 netjes 'aan' gebleven.mtu 65536 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qlen 1000 inet6 2a02:a448:25ea:0:98e2:61f9:6af9:1afe/64 scope global temporary dynamic valid_lft 86377sec preferred_lft 43177sec inet6 2a02:a448:25ea:0:ba27:ebff:fe00:0/64 scope global dynamic valid_lft 86377sec preferred_lft 43177sec inet6 fe80::ba27:ebff:fe00:0/64 scope link valid_lft forever preferred_lft forever #
Voor normaal gebruik wil ik een normaal account hebben en voor beheerwerk de mogelijkheid van sudo. Dat account zit standaard niet in DietPi want dat wordt niet nodig gevonden voor thuisgebruik. Ik vind dat wel wenselijk, dus dat heb ik geregeld. Voor het maken van een extra useraccount heb je maar een paar dingen nodig. In dit geval wordt speciaal voor zowel de user als de user groep een ID van 1000 gebruikt en hoewel ik dat mooi vind, is dat niet persee nodig. Eerst het nieuwe useraccount maken (ik noem dat account hier 'user').
mkdir /home # alleen voor de DietPi image nodig groupadd -g 1000 user useradd -g 1000 -u 1000 -m -s /bin/bash -d /home/user user passwd userDan nog sudo installeren en de nieuwe user toevoegen aan de sudo groep.
apt-get install sudo usermod -G sudo userJe kan in de /etc/ssh/sshd_config nog instellen dat je met 'root' niet meer remote mag inloggen. Als extra veiligheid kan je zelfs nog certificate based login regelen. Deze extra beveiliging is voor thuisgebruik niet nodig zolang je poort 22 maar dicht houdt vanaf externe netwerken.
Als je nu zaken wilt doen als 'root' kan je elke opdracht vooraf laten gaan door sudo, of je gebruikt sudo -s om je sessie om te zetten naar root tot je dat met exit weer afsluit.
Ik heb een 2GB SD kaartje (daar heb ik er een paar van, oorspronkelijk voor m'n digitale fotocamera), dus het moet een beetje compacte distributie zijn. ArchLinux voor de RPi is zo'n distributie die maar 1GB nodig heeft, dus dat past en heeft nog wat reserve.
ArchLinux was één van de images die begin 2014 kant en klaar op de Raspberry site stond. Nu is deze daar verdwenen, maar is wel beschikbaar op de Arch Linux ARM site. Download ieen passende versie, pak uit en plaats volgens de getting started methode via dd op het SD kaartje. SD-kaartje naar de RPi transplanteren en booten. Als je via HDMI een monitor of TV aangesloten hebt, zie je de console en de opstart meldingen. Het IP address zie je daar ook. Je kan nu ook vanaf een ander systeem via een SSH inlogen.
Hey, geen IPv6 adres? Hoe kan dat. Na het raadplegen van Google blijkt IPv6 standaard uit staat. Ergens in /boot/cmdline.txt staat "ipv6.disable=1"; Veranderen in "ipv6.disable=0" en een herstart en IPv6 doet het ook.
ArchLinux, dus ook de ARM versie, is een z.g. rolling release distributie. Dat betekent dat je altijd een vrij recente editie hebt, je krijgt elke keer een klein aantal updates en hoeft niet elk half jaar een grote update te doen, zoals bij ubuntu. Het bijwerken gebeurt via pacman -Suy. Daarna, indien nodig, een reboot. De RPi draait daarom met een recente kernel versie.
Bij de installatie op 18 january 2014 is de versie:
$ uname -mr 3.10.27-1-ARCH armv6l
Netwerk, zowel een IPv4 als IPv6 actief
$ ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 192.168.1.120/24 brd 192.168.1.255 scope global eth0 inet6 2001:470:1f15:116b:ba27:ebff:fe00:0/64 scope global dynamic