Comme on me l’a demandé à plusieurs reprises, et comme je l’avais annoncé précédemment, voici les versions PDF de mes articles sur la construction d’un système Linux à partir de zéro pour un Raspberry Pi. Ces articles sont parus dans Gnu Linux Magazine France.
- Raspberry Pi from scratch 1 (paru dans le numéro 155 de Gnu Linux Magazine France en décembre 2012).
- Raspberry Pi from scratch 2 (paru également dans le numéro 155 de Gnu Linux Magazine France en décembre 2012).
- Raspberry Pi from scratch 3 (paru dans le numéro 158 de Gnu Linux Magazine France en mars 2013).
Les fichiers associés (sources, configuration, etc.) sont accessibles à partir de cette page de téléchargement.
Superbes articles!
Merci
Merci, très bien fait!
Merci beaucoup pour ces articles toujours performants.
Je viens de réaliser mon premier « Noyau Raspberry PI from scratch » et j’aimerai activer le bus SPI.
J’ai donc pris votre article sur le SPI, mais je ne trouve ( ce pas faute d’avoir chercher) pas l’option « BCM2708 SPI controller driver » dans les paramètres du noyau ( version 3.6.11 ) via « make ARCH=arm menuconfig » l’option semble avoir disparue.
Penser vous qu’il me faut prendre une version antérieur de noyau?
Amicalement.
Christophe
Je vois bien cette option dans « Device drivers »-> « SPI support » du noyau 3.6.11 mais c’est la version « patchée » pour Raspberry Pi.
La manière la plus simple d’obtenir cette version est de faire :
L’option
BCM2708 SPI controller driver (SPI0)
apparaît.Elle dépend en fait de l’option
"System Type"-> "ARM system type" -> "Broadcom BCM2708 family"
qui n’est pas dans l’ordre alphabétique de la liste…
Bon courage…
J’ai trouvé la solution, mon .config était pas bon car corrompu par une mauvaise manip.
Depuis je me bats avec le montage du ssh, certainement une erreur de ma par la compilation me sort un fichier pour x86 et pas arm.
Merci encore pour vos articles.
Christophe
Résolut avec la nouvelle version de Dropbear.
Merci beaucoup pour cette doc très efficace !
J’obtiens un linux qui tourne très bien mais qui ne reconnaît que 128 des 512MB de mon Raspberry. Une partie est forcément allouée au GPU mais ça m’étonnerait que ce soit 384MB :).
J’ai tenté d’isoler le problème, ça semble venir du kernel, pas de start.elf ni du bootcode.bin. Mais je ne parviens pas à trouver le point précis qui pose problème.
A ce sujet également, ce qui est différent de la doc: plus de fichiers arm_xxx_start.elf présent ni de loader.bin.
D’avance merci,
Greg.
Bonsoir,
Y a t-il une ligne gpu_mem dans config.txt sur la partition de boot ?
Au départ, je n’avais pas mis de config.txt du tout.
En tentant de résoudre ce problème de RAM, j’ai ajouté le config.txt que j’utilise habituellement avec des Raspbian classiques. Et là, l’écran ne s’allume pas au boot … Alors que ce config.txt fonctionne habituellement. Quelque chose m’échappe.
Je n’ai laissé que gpu_mem dans config.txt : écran noir … J’ai commenté gpu_mem: OK … Etrange 🙂
La valeur indiquée pour gpu_mem est peut-être insuffisante pour activer l’écran graphique.
Une solution consiste à récupérer les fichiers du bootloader d’une distribution comme Raspbian, et à ne remplacer que le noyau (kernel.img) par son noyau personnalisé.
Bien vu! Minimum opérationnel : 32MB.
Et je viens de trouver ce qui n’allait pas. J’ai remplacé gpu_mem par gpu_mem_512
Encore merci!
Merci pour ces articles! Ce niveau d’approfondissement de linux associé à la Raspberry Pi est rare sur le web.
Je voudrais bien essayer de mettre en place un système real time sur cette carte en utilisant l’extension de Xenomai mais j’ai rencontré différentes erreurs lors de la compilation de buildroot.
make[4]: *** [clean-temp.o] Error 1
make[4]: *** Waiting for unfinished jobs….
mv -f .deps/close-hook.Tpo .deps/close-hook.Po
make[4]: Leaving directory `/home/francesco/Developement/RaspberryPi/Developement/buildroot-2012.05/output/build/host-m4-1.4.16/lib’
make[3]: *** [all] Error 2
J’ai alors repéré la derniere version de buildroot, la 2013-11, et modifié la configuration à partir de celle suggérée par vous dans le premier article. Mais même dans ce cas j’ai eu des erreurs (
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the –with-gmp, –with-mpfr and/or –with-mpc options to specify
their locations. )
probablement à cause d’un mauvais réglage du .config.
Pourriez-vous m’aider à configurer la dernière version de buildroot?
D’avance, merci.
Je pense qu’il manque des packages sur votre machine de compilation.
Il faut ajouter :
libgmp-dev, libmpfr-dev, libmpc-dev (systèmes Debian, Ubuntu, etc.)
ou
libgmp-devel, libmpfr-devel, libmcp-devel (système RedHat, Fedora, etc.)
Je ne suis pas certain de ces trois derniers.
J’utilize ubuntu 13.10 et avec la dernière version, la 2013-11, et les packages que vous m’avez signalé, tout a bien fonctionné!
[sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev]
Par contre la compilation donnait encore des erreurs avec la version de buildroot 2012-05.
Merci!
Bonjour,
Merci beaucoup pour vos articles.
J’ai construit un « linux from sratch » avec vos directives, il fonctionne bien excepté le SSH:
– impossible de me connecter.
– j’ai donc essayer le Telnet et j’obtiens un refus de connexion.
– le transfert de fichier via SCP fonctionne bien
Il semblerai que la console ne soit pas disponible via la connexion Ethernet, serait elle occupée par un autre processus ( liaison série qui fonctionne très bien)?
Avez vous une idée de la cause?
Par avance Merci.
À vérifier en priorité : il doit y avoir un fichier spécial
/dev/ptmx
(créé automatiquement par udevd) et un répertoire/dev/pts
sur lequel est monté un système de fichier spécial devpts avec la commande suivante (dans le script d’initialisation/etc/init.d/rcS
) :Bonjour,
Merci pour votre réponse.
le fichier /dev/ptmx existe mais ne peux être lu.
une chose qui me parait étrange le répertoire /dev/pts est bien présent sur la carte SD
mais pas visible par ls -l /dev/pts via la console du RPI.
voici mon script rcS:
#! /bin/sh
mount none /proc -t proc
mount none /sys -t sysfs
mount / -o remount,rw
mount none /dev -t devtmpfs
mount none /dev/pts -t devpts
modprobe ledtrig-heartbeat
if [ -f /sys/class/leds/led0/trigger ]; then
echo heartbeat > /sys/class/leds/led0/trigger
fi
hostname -F /etc/hostname
loadkmap < /etc/azerty.kmap
/etc/init.d/rc.network &
/etc/init.d/rc.services &
suite…
il est fort probable que je fais une grosse erreur quelque part.
par avance merci.
Christophe
Il faut ajouter
entre les lignes
et
Le répertoire
pts
est présent dans le répertoire/dev
sur la carte SD mais on monte « par-dessus » ce dernier un système de fichiers special sur un ramdisk (devtmpfs) qui ne contient pas initialement de répertoirepts
.À nous de le créer…
Bonjour,
ça fonctionne très bien, merci beaucoup car je n’aurais pas pu trouver la solution.
Amitiés.
Christophe