Waarom Lazarus Pascal?
Lazarus Pascal is een gratis Pascal ontwikkelomgeving, die veel weg heeft van (en grotendeels compatible is met) Delphi en gebaseerd op FPC (Free Pascal Compiler).
Ik kan Lazarus echt sterk aanraden, zeker als je al eens met Delphi hebt gewerkt, en als je graag programma’s wilt bouwen voor meerdere platformen zonder de enorme prijs voor Delphi te willen betalen. Ik ben zelf een Pascal fan, en heb altijd genoten van het ontwikkelen van programma’s met Delphi en Lazarus. Vooral Lazarus is krachtig en staat het toe om bijzonder vlot een programma te bouwen.
Al dat doet me denken dat Lazarus/FPC en Raspberry Pi eigenlijk voor elkaar gemaakt zijn,… niet dan?
Wat is nou het probleem?
Voor oudere Raspberry Pi modellen (andere processor), zou je gewoon met “apt-get” uit de voeten moeten kunnen – ook al is die versie antiek. Per de Lazarus Pascal Wiki:
1 2 3 4
| sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fpc
sudo apt-get install lazarus |
Op een Raspberry Pi 2 Model B echter, werkt dit van geen meter.
Dit zou kunnen liggen aan de verschillende processor, maar ik ben geen expert – zie ook deze vergelijkingstabel. De oudere Raspberry Pi modellen (A, B, B+) gebruiken namelijk een Broadcom BCM2835 chip welke een enkel-core ARMv6 processor gebruikt. De nieuwere Raspberry Pi 2 gebruikt echten een Broadcom BCM2836 chip met een ARMv7 quad core processor.
Nogmaals, ik ben ook geen expert, en ik weet alleen dat de normale Raspberry Pi methode faalt …
Ik heb overigens erg veel geleerd van het artikel “Raspberry Pi 2, FreePascal, Lazarus and Delphi” maar heb dit artikel geschreven met mijn eigen aanpassingen en bevindingen in gedachten. Veel loof dus naar Simon Stuart – zonder zijn informatie had het vast veel langer geduurd dan die 2 dagen die ik er nu aan besteed heb. Let dus goed op dat de stappen NIET hetzelfde zijn als in het artikel van Simon – gooi ze dus niet door elkaar.
Aan het einde van dit artikel heb ik nog een aantal andere links geplaatst die ik gebruikt heb voor het uitvogelen hoe het e.e.a werkt.
Lazarus Pascal op een Raspberry Pi 2 Model B
Let goed op: dit artikel is ALLEEN GESCHIKT VOOR DE RASPBERRY PI 2 Model B.
Ik zal elke stap toelichten tot het punt dat je zelf in Lazarus Pascal aan de slag kunt – Volg iedere stap zorgvuldig.
Na het schrijven van dit artikel, ben ik ter controle zelf nog een paar keer door iedere stap gegaan om er zeker van te zijn dat ze reproduceerbaar zijn. Volg de stappen dus zorgvuldig en aan het einde zul ook jij een werken FPC en Lazarus op jouw Raspberry Pi 2 hebben.
Heb ik een Raspberry Pi 2?
Ik moet eerlijk zeggen dat de naam van de Raspberry Pi 2 (ook bekend als de Raspberry Pi 2 Model B) verwarrend is, zeker omdat er ook een Raspberry Pi Model B bestaat, let dus bij aanschaf goed op …
Een aantal kenmerken voor de Raspberry Pi 2:
- 4 USB aansluitingen (sommige oudere modellen hebben er maar 2)
- Ethernet aansluiting
- Geen composite video uitgang (gele tulp stekker bij oudere modellen)
- Op de grote chip (bovenkant) staat “BroadCom BMC2836“
- Aan de achterkant zou ook een grote (geheugen) chip moeten zitten
- Onder GPIO aansluiting staat zoiets als “Raspberry Pi 2 Model B“
Je kunt in de shell ook cat /proc/cpuinfo
gebruiken.
De uitvoer zou dan 4 soortgelijke blokken tekst moeten laten zien (1 voor elke core), die lijken op dit:
processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Raspberry Pi 2 Model B
Wat hebben we nodig …?
Uiteraard hebben we een a Raspberry Pi 2 nodig.
We hebben ook een 16 Gb (of groter) micro SD kaart nodig (met Wheezy werkte het voor mij ook met een 8Gb kaartje).
Probeer een wat vlotter model te kiezen (minstens een Class 10 – zie ook SD-Card.org).
We hebben ook tijdelijk een HDMI capabele monitor of HDMI capabele TV nodig, en minstens een USB toetsenbord.
Een USB muis hebben we initieel niet nodig, maar zodra we met Lazarus aan de slag gaan is het een must – tenzij je remote toegang (VNC) gaat gebruiken natuurlijk.
We hebben een netwerk verbinding nodig voor Internet toegang, en hiervoor is alleen een Ethernet verbinding geschikt.
Wifi werkt gewoon van geen meter – een blijkbaar bekend probleem bij de Raspberry Pi.
Als je al dat bij elkaar hebt, tijd om de meest actuele versie van RaspBian image van de Raspberry Pi download pagina te downloaden. Ik heb dit proces met RaspBian Wheezy, en het is niet onmogelijk dat deze stappen ook voor andere Linux versies werkt.
In de nu volgende stappen installeren we een aantal benodigde packages, subversion, FPC en natuurlijk de Lazarus Pascal IDE.
Merk op: Dit hele proces duurt ongeveer 2 uur!
Raspberry Pi voorbereiden voor Lazarus Pascal
We gaan nu de volgende stappen doen:
Stap 1 – Flash RaspBian op een SD-Kaart
Zoals eerder gezegd, we moeten eerst de RaspBian image (ZIPPED IMG bestand) downloaden van de Raspberry Pi download pagina.
Vervolgens moeten we deze naar een SD-kaart schrijven. Lees hiervoor het artikel “Raspberry Pi – Hoe zet ik een Besturingssysteem op een SD-kaartje” – het is erg eenvoudig. Merk op dat RaspBian in een ZIP bestand zit, en je moet die dus eerst unzippen, tenzij je v1.6 van ApplePi-Baker (alleen voor MacOS X) gebruikt.
Je kunt meteen naar de uitleg voor jouw besturingssysteem springen:
Stap 2 – Eerste boot Configuratie voor RaspBian
Na het flashen van de SD kaart, plaatsen we de kaart in de Raspberry Pi 2 en gaan we deze voor de eerste keer opstarten.
Sluit monitor of TV aan, en minstens een USB toetsenbord, voor je de adapter aansluit (zo’n beetje iedere 2 Ampere, of meer, Android lader zal werken).
Tijdens het starten zien we een hoop tekst voorbij komen – lekker negeren tot je RaspBian configuratie ziet.
N.b : Zet booten naar de Desktop NIET aan! Het zou teveel geheugen in beslag nemen, welke we al hard genoeg nodig hebben voor het compileren van FPC/Lazarus.
In dit scherm gebruiken we de Pijltje Omhoog en Pijltje Omlaag toetsen om door de opties te gaan, waarbij we ENTER gebruiken om een keuze te maken.
De toetsen Pijltje Naar Rechts en Pijltje Naar Links gebruiken we om aan het einde van de rit de “Finish” optie te kiezen.
In deze stappen doen we:
- Filesysteem groter maken,
- Wachtwoord veranderen,
- Overklokken van de Raspberry Pi,
- SSH aanzetten, en
- Hestarten van de Raspberry Pi ….
Groter maken van het Filesystem (vereist)
In deze stap vergroten we het filesysteem zodat de hele SD kaart gebruikt gaat worden.
Kies “1 Expand Filesystem” en druk op ENTER.
RaspBian – Expand FileSystem
Na wat tekst op het scherm, verschijnt er een bevestiging waar we “OK” kiezen (druk op ENTER).
Gebruiker wachtwoord wijzigen (optioneel)
Deze stap is optioneel …
De standaard gebruikersnaam is “pi” en het standaard wachtwoord is “raspberry” (zonder de aanhalingstekens natuurlijk).
Ik ben soms wat lui, dus ik heb mijn wachtwoord aanzienlijk eenvoudiger gemaakt.
Selecteer “2 Change User Password” en druk op ENTER.
RaspBian – Verander gebruikerswachtwoord
Je wordt nu twee maal gevraagd om het nieuwe wachtwoord in te voeren, waarna een bevestiging verschijnt.
Overklokken van de Raspberry Pi (optioneel)
Ik ben geen fan van overklokken, maar in dit geval wilde ik graag een uitzondering maken, niet alleen omdat het relatief veilig is, maar ook omdat we nogal wat rekenkracht gaan nodig hebben en dan tellen die extra MHz toch wel mee.
GEVAREN VAN OVERKLOKKEN!
Overklokken van een Raspberry Pi kan een lekkere snelheidswinst geven, maar ben je er wel van bewust dat overklokken de Raspberry Pi kan beschadigen, zeker op de langere duur. Bedenk ook dat de Raspberry Pi heter zal worden, dus een geschikte koeling bij hoge snelheden is geen fout idee.
Ik heb zelf goede ervaringen met de “Medium” overklok instelling, maar dat is natuurlijk geen garantie dat dit net zo goed werkt op jouw Raspberry Pi.
Overklokken doe je op eigen risico!
Kies de optie “7 Overclock” en druk weer op ENTER.
RaspBian – Overklokken
Na een waarschuwen m.b.t. overklokken, kunnen we een keuze maken hoe ver we willen overklokken.
De maximale “veilige” overklok instelling is volgens mij de “Medium” optie – ik zou zeker niet hoger gaan. Dat wil niet zeggen dat de hogere waarden niet werken overigens … maar alles op eigen risico!
RaspBian – Overklok Opties
SSH toegang aanzetten (vereist)
Voor de volgende stappen moeten we SSH toegang hebben, omdat we in de SSH shell gaan werken.
Selecteer “8 Advanced Options” en druk weer op ENTER.
RaspBian – Advanced Options
Kies in het volgende venster de optie “A4 SSH” en druk op ENTER.
RaspBian – SSH toegang aanzetten
Inhet daarop volgende venster kies je “Enable” om SSH aan te zetten.
Afronding van de RaspBian configuratie (vereist)
Om alles af te sluiten, gebruik de Pijltje naar Rechts of Pijltje naar Links toets om “Finish” te kiezen waarna de Raspberry Pi herstart.
Stap 3 – Een paar kleine Tweaks
In deze stappen gaan we:
- Opstart regenboogje uitzetten,
- Swap File groter maken,
- Het IP adres van de Raspberry Pi bepalen (voor SSH toegang).
Je kunt al deze stappen meteen in de command-line uitvoeren.
Mocht je het IP adres van jouw Raspberry Pi al weten, dan kun je deze stappen natuurlijk ook vanuit een SSH Shell uitvoeren. De stap “IP adres vinden” kun je dan natuurlijk overslaan.
Verwijderen van de opstart regenboog (optioneel)
Ik ben er zelf niet kapot van, dus als je wilt kun je (net als ik) deze regenboog uitzetten.
Raspberry Pi – Uitzetten van de kleurenboog bij het opstarten
In de Raspberry Pi kunnen we in de directory “/boot/” een bestand vinden dat “config.txt” heet, waarin we dat kunnen aanpassen. Het bestand kunnen we Nano bewerken:
sudo nano /boot/config.txt
Voeg aan het einde deze extra regel toe (voor meer opties, zie config.txt documentatie):
Na het toevoegen van deze extra regel, sluiten we Nano af met CTRL+X, gevolgd door drukken op de “y” toets, en de ENTER toets.
Swap file groter maken (vereist)
Omdat de standaard swap file te klein kan worden, moeten we deze even een beetje groter maken, ook hiervoor gebruiken we Nano.
sudo nano /etc/dphys-swapfile
Je vindt hierin maar 1 regel, welke we veranderen naar:
Ook hier weer afsluiten met CTRL+X en drukken op de “y” toets en gevolgd door een ENTER.
“can’t call the assembler, error -1”
Als je in de toekomst de Lazarus IDE laat hercompileren, dan kun je tegen deze foutmelding aan lopen. Dit geeft in de meeste gevallen aan dat we geen geheugen meer beschikbaar hebben.
Het gebeurt zelden (ik was BRGAControls aan het installeren), maar voor die momenten kun je de swap file nog iets verder vergroten:
CONF_SWAPSIZE=1000
IP adres van de Raspberry Pi bepalen voor SSH toegang
We hebben SSH toegang nodig een daarvoor moeten we het IP adres van de Raspberry Pi weten. Je zou de naam van de Raspberry Pi (standaard “raspberrypi”) kunnen proberen, maar dat werkte bij mij van geen meter.
Voor je deze stap uitvoert, moet je natuurlijk wel de Ethernet aansluiten op jouw Raspberry Pi!
SSH nodig voor dit project …
Alle volgende stappen gaan we in een SSH shell doen (tot het moment dat we Lazarus starten in Stap 7).
Het is van groot belang dat X (de Desktop) niet draait terwijl we aan het compileren en installeren zijn, anders lopen we te snel tegen de geheugen beperkingen aan.
Om het IP adres te vinden, typen we in de shell:
Waarbij je zoiets als dit zou moeten gaan zien:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| pi@raspberrypi ~ $ ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:f6:5e:4d
inet addr:192.168.2.9 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:545 errors:0 dropped:0 overruns:0 frame:0
TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:34746 (33.9 KiB) TX bytes:14520 (14.1 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 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:1104 (1.0 KiB) TX bytes:1104 (1.0 KiB) |
Als je naar de tweede regel kijkt, dan zie je daar “eth0” staan – dit is jouw ethernet aansluiting.
In de volgende regel (regel 3) zie je dan “inet addr:” staan, gevold door het IP adres van jouw Raspberry Pi – schrijf het op (in dit voorbeeld: 192.168.2.9).
Nu dat we het IP adres weten, kunnen we met onze favoriete SSH applicatie toegang tot de Raspberry Pi zoeken – we hebben de monitor (of TV) en toetsenbord even niet meer nodig omdat we alles nu op afstand kunnen doen.
Lees het korte artikel “Werken met SSH Clients en SSH verbindingen” om aan de slag te gaan. Je kunt ook meteen naar betreffende besturingssysteem springen:
Je kunt het ook met Google Chrome doen natuurlijk …
Reboot de Raspberry Pi
Na het maken van de gewenste verandering, reboot de Raspberry Pi met:
Stap 4 – De meest recente Free Pascal Compiler installeren
Voor we Lazarus kunnen compileren en installeren, hebben we de Free Pascal Compiler (FPC) nodig.
Maar hier komt de grap … om de meest actuele FPC te kunnen compileren hebben we een eerdere versie van FPC nodig – jawel, FPC wordt gecompileerd met FPC – volgens de Wiki heet dat Bootstrapping.
Ik zal je stap voor stap door dit debacle helpen.
Slechte suggestie… Maar het werkt…
Ik heb Lazarus en FPC al op verschillende SD-Kaarten geïnstalleerd en ben tot een lullige conclusie gekomen.
Als ik alles voor de voetweg de stappen in het SSH venster kopieer en plak, dan werkt alles uitstekend. Maar zodra ik ga nadenken bij elke stap, dan neigt er steeds iets fout te gaan haha…
Ik hoor ervaren gebruikers al knarsetanden… en terecht!
Maar toch werkt deze “slechte” methode steeds opnieuw weer.
Installeren van SubVersion (SVN)
Als eerste hebben we “subversion” (ook bekend asl SVN) nodig zodat we laatste versie van Free Pascal uit SVN kunnen ophalen.
Via de SSH shell, voer je nu de volgende commando’s uit. Druk op ENTER als bevestiging wanneer er vragen gesteld worden:
1 2 3
| sudo su
apt-get update
apt-get install -y subversion |
Dit gaat een Super User shell (su) openen, “apt-get” (een package manager) updaten, en subversion downloaden en installeren.
Installeer FPC 2.6.4
We hebben een FPC versie om FPC te kunnen compileren, en gelukkig is er al een voorgebakken versie voor ARM beschikbaar.
1 2 3 4 5
| mkdir /usr/local/fpc
cd /usr/local/fpc
wget http://sourceforge.net/projects/freepascal/files/Linux/2.6.4/fpc-2.6.4.arm-linux.tar
tar xvf fpc-2.6.4.arm-linux.tar
cd fpc-2.6.4.arm-linux |
Pas Op: Gebruik de juiste “Install Prefix”
Het is van groot belang dat in de volgende stap de [eerste] vraag
Install prefix (/usr or /usr/local) [/usr] :
beantwoord wordt met /usr/local, anders wordt het een zooitje en werkt het niet.
Voer nu het volgende commando uit. Let erop dat je de eerste vraag met “/usr/local” beantwoord. Alle andere vragen kun je beantwoorden door op ENTER te drukken.
Als dat klaar is kun je in de shell fpc
typen wat FPC start. Het antwoord van FPC begint met een versie nummer (2.6.4).
Downloaden van de meest actuele FPC versie sources
In deze stap gaan we meest actuele FPC versie broncode (sources) downloaden uit de SVN. Dit duurt wel even, dus zoek maar vast een lekker bakje koffie op …
1 2 3
| cd /usr/local/fpc
svn co http://svn.freepascal.org/svn/fpc/trunk source
cd source |
Compileer en Installeer de meest actuele FPC versie
Dit wordt een stap die veel tijd gaat kosten, vandaar dat we de Raspberry Pi willen overklokken.
1 2 3
| make all OPT=-dFPC_ARMHF
make install OPT=-dFPC_ARMHF PREFIX=/usr/local
make install sourceinstall OPT=-dFPC_ARMHF PREFIX=/usr/local |
Elke stap duurt even, en een enorme lijst met tekst berichten zullen er over het scherm voorbij flitsen – inclusief een zooi waarschuwingen die we lekker negeren. Heb geduld en wacht steeds tot een stap is afgerond voor je aan de volgende stap begint.
Als je fpc
nu weer probeert nadat deze 3 stappen zijn afgerond, dan zul je zien dat we nog steeds met FPC 2.6.4 werken en dat was toch even niet de bedoeling. Het probleem ligt erin dat symbolische link van ppcarm (wat staat voor Portable Pascal Compiler ARM – zie deze Linux man pagina) naar de verkeerde binary wijst..
Om deze symbolische link te corrigeren moeten we eerste weten welke versie we net hebben gemaakt – tijdens het schrijven van dit artikel was dat 3.1.1. Tegen de tijd dat jij dit leest kan dat natuurlijk een andere versie zien.
Laten we eens kijken wat we hebben …
Je zult na dit commando zoiets zien als dit:
In dit voorbeeld zien we dat we versie 2.6.4 en 3.1.1 (deze laatste kan dus voor jou anders zijn).
Onthoud dit nummer (3.1.1 in mijn geval) goed want dat hebben we in de volgende stap nodig.
In het tweede commando, vervang het nummer 3.1.1 door wat je bij jou hebt gezien (dat kan dus ook 3.1.1 zijn):
1 2
| rm -f /usr/local/bin/ppcarm
ln -sf /usr/local/lib/fpc/3.1.1/ppcarm /usr/local/bin/ppcarm |
We hebben net een symbolische link gemaakt en dat kunnen we als volgt controleren:
ls -l /usr/local/bin/ppcarm
Dit zou zoiets als dit moeten opleveren:
lrwxrwxrwx 1 root root 31 Apr 20 13:48 /usr/local/bin/ppcarm -> /usr/local/lib/fpc/3.1.1/ppcarm
Zie je hoet het ‘->’ wijst naar onze nieuwe compiler (/usr/local/lib/fpc/3.1.1/ppcarm)?
Als dit NIET het geval is, dan is er iets fout gegaan. Ga dan weer naar “Laten we eens kijken wat we hebben …” en probeer het nog eens.
Als je nu fpc
probeert dan zul je eindelijk de juiste FPC versie zien (in mijn voorbeeld: 3.1.1).
Stap 5 – Installeer de Lazarus Pascal IDE
Wat Extra Packages Installeren
Voor we de Lazarus Pascal IDE kunnen bouwen, hebben we wat extra packages nodig – ook hier gebruiken we weer “apt-get” en bevestigen we installatie vragen door gewoon op ENTER te drukken.
1 2
| apt-get update
apt-get install -y libx11-dev libgdk-pixbuf2.0-dev libcairo2-dev gir1.2-coglpango-1.0 libpangox-1.0-dev xorg-dev libgtk2.0-dev libpango1.0-dev |
Download de meest actuele Lazarus sources
Hier weer een vergelijkbaar verhaal zoals we dat bij FPC hebben gezien:
1 2 3
| mkdir /usr/local/lazarus
cd /usr/local/lazarus
svn co http://svn.freepascal.org/svn/lazarus/trunk source |
Compileer en Installeer de meest actuele Lazarus Pascal IDE versie
Ook dit gaat weer even duren … misschien een goed moment om de Lazarus Wiki pagina “Lazarus with the Raspberry Pi” eens op ons gemak te gaan bestuderen. Vooral het GPIO onderdeel is interessant …
Daar gaan we dan, stap voor stap:
1 2 3
| cd source
make all OPT=-dFPC_ARMHF
make install OPT=-dFPC_ARMHF PREFIX=/usr/local |
Als dit niet eindigde met een paar geweldige foutmeldingen, dan heb je nu Lazarus IDE beschikbaar met de meest actuele Free Pascal Compiler.
Na compileren van Lazarus zul je een kopie van “lazarus” in de “/usr/local/share” directory zien.
De sources die we daarnet gebruikt hebben kunnen nu veilig verwijderd worden (ongeveer 1 Gb aan data):
1
| rm -rf /usr/local/lazarus |
Stap 6 – Aan de slag op de Desktop
Nu wordt het tijd dat we toegang gaan zoeken tot de Raspberry Pi desktop, zeg maar de windows omgeving (X).
Hieronder twee opties, je kunt er 1 kiezen of beiden.
Optie 1 – Op afstand met VNCServer (optioneel)
Ik werk meestal vanaf mijn computer met de Raspberry Pi, d.m.v. VNC – in dit geval gebruiken we de beschrijving van de Raspberry Pi documentatie en gaan we TightVNC server gebruiken.
Als eerste moeten we TightVNC Server installeren:
1 2
| apt-get update
apt-get install -y tightvncserver |
Ook hier kan weer om installatie bevestiging gevraagd worden, … druk gewoon op ENTER.
Ik heb er zelf de voorkeur voor dat TightVNC Server automatisch opstart als de Raspberry Pi boot, dus moeten we aan de slag met init.d (de “autoexec” van Linux ), en ook hiervoor gebruiken we de Nano tekst editor weer:
Nu dat Nano open staat, kopieer en plak de volgende tekst in Nano:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #!/bin/sh
### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO
USER=root
HOME=/root
export USER HOME
case "$1" in
start)
echo "Starting VNC Server"
#Insert your favoured settings for a VNC session
/usr/bin/vncserver :0 -geometry 1280x800 -depth 16 -pixelformat rgb565
;;
stop)
echo "Stopping VNC Server"
/usr/bin/vncserver -kill :0
;;
*)
echo "Usage: /etc/init.d/vncboot {start|stop}"
exit 1
;;
esac
exit 0 |
Druk daarna weer op CTRL+X, de “y” toets en uiteindelijk de ENTER toets.
Uiteraard ben je vrij in het aanpassen van de resolutie.
Op mijn computer werk ik liever met b.v. 1440×900 (i.p.v. 1280×800), waardoor regel 21 er als volgt uit ziet:
21
| /usr/bin/vncserver :0 -geometry 1440x900 -depth 16 -pixelformat rgb565 |
Nu nog even de rechten aanpassen zodat het uitgevoerd kan worden tijdens de boot:
1 2 3
| cd /etc/init.d
chmod 755 vncboot
update-rc.d vncboot defaults |
(De Raspberry Pi documentatie stelt voor om update-rc.d /etc/init.d/vncboot defaults
te gebruiken, maar dat werkte dus niet voor mij)
Op dit moment kunt je het beste TightVNC Server even starten met:
/etc/init.d/vncboot start
Als TightVNC Server voor het eerst start, vraagt het om een wachtwoord voor toegang, welke je moet bevestigen. Een wachtwoord voor alleen-lezen kan ook worden ingevoerd maar dat hoeft net perse – ik heb er geen toepassing voor, dus ik heb netjes met “n” beantwoord.
Dit is een moment waar je misschien de Raspberry Pi even kunt rebooten om zeker te zijn dat TightVNC Server inderdaad tijden de boot start (in een Super User shell kun je dat gewoon met “reboot” doen). Uiteraard kun je dit ook later doen.
Oh en voor ik vergeet, je kunt TightVNC Server stoppen met:
Optie 2 – Boot Raspberry Pi direct naar de Desktop (optioneel)
Besturing of afstand (VNC) is natuurlijk leuk, maar direct besturen met een monitor, toetsenbord en muis kan natuurlijk ook.
Hiervoor gaan we RaspBian configuratie tool gebruiken, welke we helemaal in het begin van het artikel ook al gebruikt hebben (zie ook de Raspberry Pi Documentatie voor meer details):
Selecteer de optie “3 Enable Boot to Desktop/Scratch” waar we kunnen instellen of de Raspberry Pi start met de console (shell/terminal), de grafische windows-achtige werk omgeving (Desktop) of scratch (prul ding voor de kids vermoed ik).
Kies nu “Desktop Log in as user ‘pi’ at the graphical desktop” en selecteer “Finish” om de veranderingen op te slaan.
De Raspberry Pi zal vanaf nu meteen naar de Desktop booten.
Step 7 – Lazarus voor de eerste keer starten
Hier kunnen we dus kiezen of we de Raspberry Pi op afstand willen bedienen, of direct via toetsenbord en muis op de Raspberry Pi.
VNC Access
Als je Remote Access gebruikt (besturing op afstand met TightVNC), dan zul je eerst een VNC Client te pakken moeten krijgen – en VNC Clients bestaan voor zo’n beetje iedere besturingssysteem … zelfs als het geen zin lijkt te hebben (b.v. Android or iOS).
RealVNC heeft VNC clients beschikbaar voor Windows, Linux en MacOS X, welke je hier kunt downloaden.
VNC Viewer alternatieven :
- MacOS X gebruikers kunnen “Screen Sharing” gebruiken, het zit standaard bij MacOS X,
- Windows gebruikers kunnen ook bij “TightVNC” terecht,
- Ubuntu gebruikers kunnen de ingebouwde “Remote Desktop Viewer” gebruiken.
Start Lazarus
Het starten van Lazarus is verassend simpel. Klik op de grote “Menu” knop links boven in, en kijk onder “Programming” waar we “Lazarus” vinden – geweldig hè?
Start Lazarus
Lazarus vertellen waar de FPC sources staan
Echter, bij de eerste start zien we een probleem,… Lazarus kan de sources van FPC niet vinden …
Gelukkig hoeven we dat maar 1x in te stellen.
RaspBian – Lazarus kan de FPC sources niet vinden
Vul hier het pad /usr/local/fpc/source
in en klik op “Start IDE” en dat is alles …
Als ik net Lazarus heb geïnstalleerd doe ik altijd even een proef rondje. Gewoon een kop of de Form gooien, even iets bij de OnClick event doen en starten maar.
Merk overigens wel op dat compileren van een programma aanzienlijk trager gaat dan op een desktop – dus je met wel een klein beetje geduld hebben.
Ik heb overigens ook de debugger getest, met break points enzo, en ook dat werkt uitstekend.
Raspberry Pi 2 – Lazarus IDE loopt als een zonnetje
Tip: Reclaim wat extra disk ruimte
RaspBian is standard al best netjes, zeker in vergelijk met bepaalde ander distro’s. Maar het kan beter.
Met onderstaande opdrachten win je bijna een Gb terug.
Ik ga er van uit dat je nog steeds jouw SSH hebt open staan, met een Super User shell. Mocht dit niet het geval zijn, open dan een shell of een SSH shell en type “sudo su”.
In de onderstaande opdrachten verwijderen we wat overbodige files (oude fpc tar file, wat python games, en log files) en een aantal packages die niet echt nodig zijn zoals een aantal andere games, Wolfram, Scratch, Dillo, GPicView, etc.
Vervolgens laten we “apt-get” de zaak schoonmaken.
Mocht je nog wel een toepassing voor SubVersion (SVN) hebben, b.v. voor een nieuwere FPC or Lazarus in de toekomst, dan moet je “subversion” verwijderen uit de vijfde regel.
1 2 3 4 5 6 7
| rm /usr/local/fpc/fpc-2.6.4.arm-linux.tar
rm -R /home/pi/python_games
cd /var/log/
sudo rm `find . -type f`
apt-get -y purge wolfram-engine scratch minecraft-pi sonic-pi dillo gpicview penguinspuzzle subversion
apt-get -y autoremove
apt-get -y clean |
Aanvullende Informatie
Reacties
Er zijn 25 reacties welke je hieronder kunt lezen.
Je kunt jouw eigen opmerkingen plaatsen m.b.v. dit formulier, of een reactie op een bestaande opmerking plaatsen door op de "Beantwoorden" knop te klikken.
Lazarus is op de standaard manier (apt-get install lazarus) zonder problemen op mijn Rasberry Pi 2 B met succes uitgevoerd, de Pi heb ik een paar dagen terug aangeschaft, Rasbian via NOOBS op een 16 Gb grote schijf gezet. Tot zo ver geen problemen tegen gekomen, als Delphi adept vanaf versie 1 ben ik blij om deze IDE op de Raspberry te kunnen gaan gebruiken.
Ruud Koortens
Hallo Ruud!
Mooi om te horen dat het je met apt-get is gelukt, ik (en anderen) hebben dat een aantal keer geprobeerd, maar het bleef falen.
Daarnaast is dit wel een oude versie van Lazarus.
Uiteraard is het mogelijk dat de repository een update heeft gehad. Kun je eens kijken welke Lazarus versie je nu op jouw Raspberry Pi hebt?
(Start Lazarus -> Help -> About)
Het zou namelijk erg goed nieuws zijn als dit een nieuwere versie is (b.v. 1.4.0) .
hans
is daar dalk `n NOOBS + fpc + Lazarus sc card Image beskikbaar vir download?
Dit sal baie help!
Pieter
Hi Pieter!
Ik denk niet dat een NOOBS (of Raspbian) + FPC + Lazarus als SD card IMG beschikbaar zal komen.
Wat wel een optie kan worden is dat de packages voor Raspberry Pi 1 en 2 gebouwd en/of geupdate worden zodat men meteen met apt-get de juiste versie kan downloaden, en/of eventueel de optie om ze als .deb bestand te downloaden.
hans
Dankie Hans,
ek sou graag sien dat een van ons `n vooraf-opgestelde Noobs installasie met FPC en Lazarus sal zip sodat dit bloot op `n nuwe sc kaart gecopy kan word en daar! Dit sal onmiddelik werk sonder al die gesukkel. Of is ek verkeerd?
Die download stap van die .tar file in die volgende instruksie werk nie:
wget http://sourceforge.net/projects/freepascal/files/Linux/2.6.4/fpc-2.6.4.arm-linux.tar
Die rede is dat sourgeforce `n advertensie wys en die download na 5 sekondes geselekteer moet word. Ek het dit manually afgelaai op `n memory stick en deur StartX in die fpc folder oorgecopy.
Pieter
Hi Pieter,
je hebt zeker een goed punt! Maar …
– Ik vermoed dat er maar een beperkt aantal Raspberry Pi bezitters ook Lazarus gaan/willen gebruiken.
– Iemand moet de image steeds bij houden zodat het up-to-date blijft (dus Raspbian, Lazarus en FPC updates verwerken).
In tegenstelling tot een correcte apt-get versie. Wie lazarus gebruikt weet ook snel hoe je apt-get gebruikt en met 3 commando’s staat het dan op jouw systeem geinstalleerd. Met .deb files zou men (theoretisch) alles in 1 file kunnen proppen. Maar ook daar weer: iemand moet de files up to date houden.
In de Engelstalige versie van dat artikel zijn er al mensen mee aan het rommelen – maar of er wat van terecht komt weet ik niet.
Dit zou eigenlijk op apt-get niveau door het Lazarus?FPC team moeten bijgehouden worden (net zoals ze dat doen voor Windows, intel Linux en MacOS X).
Uit eigen ervaring weet ik dat ik zelf daar niet zo goed in ben haha …
hans
Zie ook de opmerking: Hoe maak je een Debian Package (Engelstalige versie van dit artikel).
hans
De wget link werkte voor mij wel overigens. Een direct link zou misschien beter werken:
http://downloads.sourceforge.net/project/freepascal/Linux/2.6.4/fpc-2.6.4.arm-linux.tar?r=&ts=1436093493&use_mirror=skylink
Op deze pagina kun je proberen bij te houden wat de meest actuele versie is:
https://sourceforge.net/projects/freepascal/files/Linux/
Erg handig is het inderdaad niet …
hans
Dankie Hans,
ek het so pas hier by Gordon van https://www.facebook.com/groups/RaspberryPascal/ `n image installasie gekry om af te laai.
Pieter
Hi Pieter,
Ik begreep niet helemaal wat je bedoelde met dat laatste bericht …
(jij spreekt Zuid-Afrikaans geloof ik? Het meeste kan ik volgen maar die laatste even niet )
hans
Ik hebt bij Gordon van https://www.facebook.com/groups/RaspberryPascal/ `n image gekry wat veronderstel is om Noobs+fpc+lazarus op th hebben.
As ek dit op my sd kaart laai, behoort die Raspberry PI2 dadelik te werk met Lazarus geinstalleer. Ek sal laat weet of dit werk.
Pieter
Cool! Maar hoe download je een IMG van Facebook?
hans
Gordon gooi dit in Dropbox – 3 Gb ha ha
Aflaai nog nie suksesvol – bly errors kry in zip file
Pieter
Haai Hans,
so Gordon het vir my `n 7zip file op dropbox gegooi. Afgelaai (3Gb) en unzip na 15 Gb img file!
Met ‘Win32 Disk Imager’ op `n 16Gb sd card gelaai, op Raspberry PI 2 ingesit en dit werk onmiddelik!
Lazarus getoets, alles werk!
Dankie Gordon!
Pieter
3Gb … best groot bestand om even te downloaden.
Doet Gordon het ook bijhouden (dus updaten), of was dit maar 1x …?
hans
Gordon het my eenmalig gehelp met die image file. Ek dink as jy by hul facebook groep aansluit, dan sal hy en ander die opgraderings ook beskikbaar maak.
Pieter
Hi Pieter,
ik dacht al zoiets ja. Het kost best veel tijd en moeite om een image up-to-date te houden.
Ik hoop binnenkort een .deb beschikbaar te kunnen maken met FPC, FPC Sources en Lazarus zodat installatie makkelijk gaat.
hans
Hallo T4A,
Ik probeer het allemaal aan de praat te krijgen, maar bij het onderdeel Compileer en Installeer de meest actuele FPC versie, gaat het bij mij fout bij het commando
make all OPT=-dFPC_ARMHF
Ik krijg terug:
Makefile:2887: *** The only supported starting compiler version is 3.0.0. You are trying to build with 2.6.4.. Gestopt.
Ik gebruik Rasbian Jessie op een RPi2 Model B v1.1
Gerhard
Hi Gerhard,
het lijkt erop dat de meest recente versie van Lazarus, FPC 3.0.0 nodig heeft, maar daar lijkt geen binary voor te bestaan.
Zie ook de opmerkingen in de Engelse versie van het artikel (volg deze link).
hans
Hi guys.
Ik heb een Raspberry Pi3 met de laatste versie van Raspbian (pixel desktop) en heb zonder moeite hier versie Lazarus (1.2.4) op geïnstalleerd.
Een simpele form met een knop erop en een label (bijv.) werkt goed.
Krijg het nu alleen nog niet voor elkaar om de gpio poorten aan te sturen. (hardware, led met weerstend is goed aan te sturen in de terminal met een simpel Python script)
Hoop dus eigenlijk meer info over gpio poorten aansturen te vinden met Lazarus.
Iemand een idee?
Ray
Hoi Ray,
Het aansturen van de GPIO pinnen is wat lastig, tot je het juste basis adres hebt gevonden – maar ik moet bekennen dat ik dat zelf ook nog niet gebruikt heb (tijdsgebrek). Voor de Pi en de Pi2 was dit al een iets waar je op moest letten. Ik kan me voorstellen dat hetzelfde voor de Pi3 geldt.
(zie deze pagina, en deze code, en dit is ook een goede bron van informatie)
hans
Oeps.
Dat is raar! Schreef hier net een klein stukje over de Pi3 en Lazarus maar deed dat dus voor niets?
Vreemd en heel erg jammer.
Ray
Hoi Ray,
Opmerkingen die hier geplaatst worden, voor de eerste keer voor een gegeven gebruiker, moet ik (beheerder) goedkeuren voor ze zichtbaar worden.
Jouw post is dus wel doorgekomen …
hans
Ik ben nu al enige tijd aan het wordtelen om Lazarus opm mijn PI 3 aan de gang te krijgen maar loop steed tegen problemen aan
en vroeg me af of dit bij iemand gelukt is.
groet… Hans
Hans
Hoi naamgenoot!
Ik heb zelf (nog) geen RPI-3, dus ik kan het zelf nog niet proberen.
Intussen heeft het Lazarus team ook meer aandacht gegeven aan installatie op een Raspberry Pi, dus misschien dat deze links behulpzaam zijn:
– Raspbian – Lazarus Wiki
– Lazarus on Raspberry Pi
– GetLazarus (heeft meerdere installaties beschikbaar)
– dit Forum onderwerp op het Lazarus Forum van iemand die ook tegen problemen aan liep voor de RPI-3
Geen idee of je er wat aan hebt, en of je ze misschien al bekeken had. Laat vooral horen als je nog steeds tegen problemen aan loopt. Ik ben volgende week weer terug van vakantie en kan dan zelf ook wat proberen (al is het dan wel met een RPI-2).
hans