Préparer le Pi
À faire une seule fois. À la fin vous aurez amc sur le Pi, les
interfaces matérielles activées, et la bibliothèque système libgpiod
prête pour le package amalgame-hardware-gpio.
1 · Flasher un OS 64 bits
Amalgame fournit un binaire natif linux-arm64. Assurez-vous que
votre Pi tourne sous un OS 64 bits — le 32 bits
(armv7l/armv6l) n'est pas supporté.
Avec Raspberry Pi Imager, choisissez Raspberry Pi OS (64-bit) et écrivez-le sur la carte SD. Après le boot, vérifiez :
uname -m # doit afficher : aarch64
S'il affiche armv7l, reflashez avec l'image 64 bits.
2 · Installer amc
La commande unique installe le binaire ARM64 natif :
sudo apt install -y build-essential libgc-dev libssl-dev curl
curl -fsSL https://raw.githubusercontent.com/amalgame-lang/Amalgame/main/install/install.sh | sh
amc --version
build-essential fournit le gcc qu'amc build appelle en coulisses
(Amalgame compile vers du C, puis vers un binaire natif).
3 · Activer les interfaces matérielles
Le GPIO marche d'emblée. I²C et SPI sont désactivés par
défaut — activez-les avec raspi-config :
sudo raspi-config
# → 3 Interface Options
# → I5 I2C → Enable
# → I4 SPI → Enable
sudo reboot
(De façon équivalente, ajoutez dtparam=i2c_arm=on et
dtparam=spi=on dans /boot/firmware/config.txt.) Après le redémarrage
vous devriez voir les nœuds périphériques :
ls /dev/i2c-* /dev/spidev*
# /dev/i2c-1 /dev/spidev0.0 /dev/spidev0.1
4 · Installer libgpiod v2 (le seul vrai piège)
amalgame-hardware-gpio se lie à libgpiod 2.x. Vérifiez ce que
votre distribution fournit :
pkg-config --modversion libgpiod # il faut du 2.x
| Distribution | libgpiod dans apt |
Que faire |
|---|---|---|
| Debian Trixie+, Ubuntu 24.10+ | 2.x | sudo apt install libgpiod-dev |
| Raspberry Pi OS / Debian Bookworm, Ubuntu 24.04 LTS | 1.6 (incompatible) | compiler 2.x depuis les sources ↓ |
Raspberry Pi OS (Bookworm) n'a que la 1.6 dans apt, dont l'API est incompatible avec la 2.x — sur un Pi aujourd'hui vous compilez donc presque toujours la 2.x depuis les sources. Ça prend environ une minute :
sudo apt install -y build-essential autoconf autoconf-archive \
automake libtool pkg-config
curl -sSLO https://mirrors.edge.kernel.org/pub/software/libs/libgpiod/libgpiod-2.2.4.tar.gz
tar xzf libgpiod-2.2.4.tar.gz && cd libgpiod-2.2.4
./configure --prefix=/usr/local --enable-tools=yes
make && sudo make install && sudo ldconfig
pkg-config --modversion libgpiod # affiche maintenant 2.2.4
libgpiod 1.x et 2.x ont des API incompatibles ; ce package vise la 2.x uniquement. Il n'y a pas de couche de compatibilité 1.6.
5 · Permissions : les groupes gpio/i2c/spi
Lire et écrire les nœuds périphériques demande soit sudo, soit
l'appartenance au bon groupe. Sur Raspberry Pi OS, l'utilisateur par
défaut est généralement déjà dans gpio, i2c et spi. Vérifiez :
groups # cherchez : gpio i2c spi
S'il manque un groupe, ajoutez-vous et déconnectez/reconnectez-vous :
sudo usermod -aG gpio,i2c,spi "$USER"
Sinon, lancez simplement vos programmes avec sudo.
Voilà toute la préparation. Ensuite : Votre premier programme.