Lazarus est un environnement de développement opensource pour développer des programmes en langage Pascal. Ceux qui ont connu TurboPascal et Delphi retrouveront un environnement familier. Claude a profité d’un essai d’un Raspberry Pi Zero sous VNC pour faire une installation depuis une distribution de départ. Cet article est une mise à jour de l’article sur Lazarus publié sur le blog fin 2018. Il vous explique comment installer la dernière version stable (IDE 2.0.8 FPC 3.0.4 en mai 2020) en corrigeant certaines imprécisions de l’article original.
Au sommaire :
Installer Lazarus sur le Raspberry Pi
Par précaution il est utile de faire au préalable une copie de sauvegarde de votre carte micro SD si vous partez d’une carte contenant des données.
Prérequis
Si vous n’avez pas déjà svn (logiciel de synchronisation pour les développements concurrents) installez le :
sudo apt install -y subversion
Il est aussi prudent d’augmenter la taille du swap
sudo nano /etc/dphys-swapfile
puis si besoin changer la ligne CONF_SWAPSIZE pour allouer 1000 Mo,
CONF_SWAPSIZE=1000
Redémarrez votre Raspberry Pi pour prendre ces modifications en compte.
Principe
Lazarus utilise fpc (Free Pascal Compiler) lui-même compilé avec… fpc. C’est le problème de l’œuf et de la poule : il nous faut un compilateur fonctionnant sur notre Pi pour compiler le compilateur et l’IDE Lazarus. A partir de ce compilateur exécutable on compilera la dernière version du compilateur puis l’IDE.
Etape 1 : compilateur initial
Pour cette étape rien de changé : la dernière version disponible pour le Raspberry est toujours la 3.0.2. Le texte ci-dessous est don strictement identique à l’article original.
En cherchant sur le site Freepascal j’ai repéré un binaire exécutable sur Raspberry en version 3.0.2
On va l’installer dans le répertoire /usr/local/fpc :
sudo mkdir /usr/local/fpc
cd /usr/local/fpc
sudo wget http://sourceforge.net/projects/freepascal/files/Linux/3.0.2/fpc-3.0.2.arm-linux-eabihf-raspberry.tar
sudo tar xvf fpc-3.0.2.arm-linux-eabihf-raspberry.tar
cd fpc-3.0.2.arm-linux
puis installation :
sudo ./install.sh
à la question Install prefix (/usr or /usr/local) [/usr] : répondre /usr/local
à la question mode IDE j’ai répondu y
pas besoin de la documentation ni des démos
On contrôle que le compilateur est bien installé en tapant :
fpc
Vérifier que la réponse est :
Free Pascal Compiler version 3.0.2 [2017/02/17] for arm
Copyright (c) 1993-2017 by Florian Klaempfl and others
/usr/local/bin/fpc [options] [options]
Only options valid for the default or selected platform are listed.
Put + after a boolean switch option to enable it, – to disable it.
@ Read compiler options from in addition to the default fpc.cfg
-a The compiler does not delete the generated assembler file
-al List sourcecode lines in assembler file
-an List node info in assembler file (-dEXTDEBUG compiler)
-ao Add an extra option to external assembler call (ignored for internal)
-ap Use pipes instead of creating temporary assembler files
-ar List register allocation/release info in assembler file
-at List temp allocation/release info in assembler file
-A Output format:
-Adefault Use default assembler
-Aas Assemble using GNU AS
-b Generate browser info
-bl Generate local symbol info
-B Build all modules
-C Code generation options:
-C3 Turn on ieee error checking for constants
-Ca Select ABI; see fpc -i or fpc -ia for possible values
*** press enter ***
Etape 2 : compilation de la version 3.0.4 du compilateur
Contrairement à l’article d’origine, je choisi de prendre la version du compilateur utilisée par la dernière IDE stable et non la version du trunk qui est en fait une version en cours de développement.
On récupère les sources dans le dossier /usr/local/fpc :
cd /usr/local/fpc
sudo wget http://sourceforge.net/projects/freepascal/files/Source/3.0.4/fpc-3.0.4.source.tar.gz
sudo tar xvf fpc-3.0.4.source.tar.gz
puis on compile et installe la dernière version :
cd fpc-3.0.4
sudo make all OPT=-dFPC_ARMHF
sudo make install OPT=-dFPC_ARMHF PREFIX=/usr/local
sudo make install sourceinstall OPT=-dFPC_ARMHF PREFIX=/usr/local
A ce stade la 3.0.4 est compilée mais si nous faisons fpc nous avons toujours 3.0.2 par défaut
on peut voir avec
ls /usr/local/lib/fpc
3.0.2 3.0.4 lexyacc
Pour définir 3.0.4 comme version par défaut :
sudo rm -f /usr/local/bin/ppcarm
sudo ln -sf /usr/local/lib/fpc/3.0.4/ppcarm /usr/local/bin/ppcarm
Contrôle :
ls -l /usr/local/bin/ppcarm
doit répondre
lrwxrwxrwx 1 root root 18 mai 20 17:03 /usr/local/bin/ppcarm -> /usr/local/lib/fpc/3.0.4/ppcarm
et
fpc
Répond :
Free Pascal Compiler version 3.0.4 [2020/05/18] for arm
Copyright (c) 1993-2017 by Florian Klaempfl and others
/usr/local/bin/fpc [options] <inputfile> [options]
Only options valid for the default or selected platform are listed.
Put + after a boolean switch option to enable it, – to disable it.
@<x> Read compiler options from <x> in addition to the default fpc.cfg
-a The compiler does not delete the generated assembler file
-al List sourcecode lines in assembler file
-an List node info in assembler file (-dEXTDEBUG compiler)
-ao Add an extra option to external assembler call (ignored for internal)
-ap Use pipes instead of creating temporary assembler files
-ar List register allocation/release info in assembler file
-at List temp allocation/release info in assembler file
-A<x> Output format:
-Adefault Use default assembler
-Aas Assemble using GNU AS
-b Generate browser info
-bl Generate local symbol info
-B Build all modules
-C<x> Code generation options:
-C3 Turn on ieee error checking for constants
-Ca<x> Select ABI; see fpc -i or fpc -ia for possible values
*** press enter ***
On peut supprimer le dossier fpc 3.0.2 :
sudo rm -r fpc-3.0.2.arm-linux
Etape 3 : compilation de l’IDE
On peut passer à la compilation de l’IDE.
Au préalable on installe les paquets requis :
sudo apt 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
Récupération des sources dans le dossier /usr/local/lazarus :
sudo mkdir /usr/local/lazarus
cd /usr/local/lazarus
sudo svn co http://svn.freepascal.org/svn/lazarus/tags/lazarus_2_0_8/ source
[stextbox id=’info’ caption=’Commande introuvable’]Note de framboise314 : si vous obtenez une erreur « commande introuvable » il faut installer svn avant d’exécuter cette ligne de commande
sudo apt-get install subversion[/stextbox]
Création de l’IDE :
cd source
sudo make bigide
Puis installation:
sudo make install OPT=-dFPC_ARMHF PREFIX=/usr/local
Enfin pour lancer l’ide la première fois
sudo ./lazarus
Au premier lancement il faut indiquer l’emplacement des sources de lazarus et de fpc :
Nota : j’ai du rebooter le Pi pour que Lazarus apparaisse dans le menu Programmation.
Conclusion
Que peux-t-on faire avec Lazarus ?
La bibliothèque de composants visuels permet de faire rapidement des logiciels de test comme ce logiciel de test et de calibration de capteurs de pression (entre autres) :
Capteurs utilisés pour mon projet d’écran pour ULM en OpenGL :
Lazarus tourne sur mon Pi0 mais bien sûr il est illusoire de vouloir faire du développement sur une machine aussi peu puissante. C’était pour moi un exercice de style pour tester le fonctionnement d’un Pi0 contrôlé par VNC avec un simple câble USB. De ce côté c’est tout à fait convainquant d’autant plus que l’installation a été faite sur un Pi0 de base grâce au partage de la connexion internet de mon PC.
Merci Claude pour cette mise à jour et bonne continuation de ton projet d’écran pour ULM !!
Sources
- https://sourceforge.net/projects/freepascal/files/Linux/3.0.2/fpc-3.0.2.arm-linux-eabihf-raspberry.tar/download
- https://www.tweaking4all.com/hardware/raspberry-pi/install-lazarus-pascal-on-raspberry-pi-2/
- https://www.tomshardware.com/uk/reviews/raspberry-pi-headless-setup-how-to,6028.html
- https://sourceforge.net/projects/openavionics/
Bonjour,
après l’installation réussie de Lazarus sur un Raspberry PI 4 en version 4 GB, j’ai poursuivi sur celle de la librairie PXL dans le but d’accéder au GPIO mais je ne parviens pas à faire fonctionner le plus simple des exemples fournis, « blinky » qui devrait allumer une led connectée sur le GPIO23. Merci pour votre aide.
Désolé je n’utilise pas PXL. Il faudrait de toute façon avoir plus de détails sur le dysfonctionnement.
En fait le programme ne passe pas la première ligne:
(‘SystemCore := TFastSystemCore.Create;’)
et quitte sans explication.
Je précise que le montage avec la LED n’est pas en cause puisqu’il fonctionne normalement avec la routine python équivalente.
cf réponse à Pascal par erreur.
Bonjour,
J’apprécie beaucoup vos publications et exemples. J’ai la dernière version de raspbian 32 bits sur un pc portable à base de Intel ATOM mais je suppose que l’installation de FPC qui est décrite ci-dessus diffère non seulement au niveau du fichier « fpc-3.0.2.arm-linux-eabihf-raspberry.tar » mais aussi au niveau des options des commandes
sudo make all OPT=-dFPC_ARMHF
sudo make install OPT=-dFPC_ARMHF PREFIX=/usr/local
sudo make install sourceinstall OPT=-dFPC_ARMHF PREFIX=/usr/local
Auriez vous des informations la dessus ??
Cordialement
Pascal
Pour Linux / Intel le package est directement disponible sur
https://www.lazarus-ide.org/index.php?page=downloads
Il est aussi probablement présent sur des repository.
Pour les processeur ARM il faut le recompiler car on ne trouve (au jour de la rédaction) que la version 1.8 au mieux.
Pour en savoir plus il faudrait faire un pas à pas approfondi de puis la ligne Create.
Tu as un exemple GPIO17ToggleBoxChange ici :
https://wiki.freepascal.org/Lazarus_on_Raspberry_Pi
Ping : Exploration de l'EEPROM HAT du Raspberry Pi (Partie 1/2) - Framboise 314, le Raspberry Pi à la sauce française....
Merci, je vais essayer cela ces prochains jours
Lazarus 2.0.10 fpc 3.2.0 vient de sortir
La procédure est valable : il suffit de remplacer 3.0.4 par 3.2.0 pour fpc et 2.0.8 par 2.0.10 pour l’IDE.
Je suis débutant sur PI. Chez moi, je n’arrive plus à suivre le protocole ci-haut depuis la récupération des sources.
» sudo svn co http://svn.freepascal.org/svn/lazarus/tags/lazarus_2_0_8/ source » –> « ../source » inexistant. Avez-vous le même problème ?
D’avance merci !
Bonjour Kevin
Confirmez mais il me semble que l’erreur que vous reportez n’est pas exacte : le système vous dit « Commande introuvable » c’est ça ? vous avez mis « inexistant » ??? c’est important de mettre le message exact si vous voulez être aidé. le mieux c’est le copier coller)
A priori je dirai que la commande svn n’est pas installée sur votre Raspberry Pi OS.
tapez
sudo apt-get install subversion
avant de lancer la commande svn
(c’est indiqué au début de l’article dans les prérequis, mais si vous débutez, vous n’avez peut être pas tilté 🙂 )
dite moi si ça fonctionne…
cdt
françois
Bonjour
Philippe est-ce que tu as eu une réponse pour la library PXL et le raspberry pi 4 j’ai le même souci.Pour moi les adresses du gpio base entre le rpi 3 et 4 ne sont pas les mêmes et la librairie n’est donc pas à jour. D’ailleurs dans les sources de la librairie, il y a bien les directives de compilation suivant rpi 2 ou 3 mais pas 4 donc il suffirait de rajouter un if . J’ai eu le créateur par mail , mais il a beaucoup de taf .