Voici un Makefile relativement basique. On utilise ici des outils de cross compilations car je compile le module sur mon ordinateur de manière à le charger sur une raspberry plus tard.
Ce Makefile marche bien mais il y a cependant des choses que je ne comprend pas vraiment ou dont je n'en suis vraiment pas. Si vous pouvez m'éclairer ce serait avec grand plaisir
Tout d'abord je définis la variable THE_ARCH=arm car l'architecture du processeur de la raspberry est un arm. Ensuite dans ma variable PREFIX j'indique le chemin vers les outils de cross compilations qui vont permettre de compiler mon module pour une architecture arm.
Je possède une raspberry pi 3B, c'est pour cela que PREFIXE pointe vers arm-bcm2708 qui correspond à la configuration basique d'un raspberry pi 3B. Donc j'en déduis que si je voulais cross compiler mon module pour un raspberry pi 4 par exemple il faudrait pointer vers un dossier arm-bcm2711 contenant les outils de cross compilation pour un RPI4 ( je viens de voir que c'était la config d'un raspberry pi 4 https://www.stephenwagner.com/2020/03/17/how-to-compile-linux-kernel-raspberry-pi-4-raspbian/ )
Si quelqu’un à une explication précise du bcm2708 je suis preneur ! Je sais qu'avant de compiler un noyau linux il nous faut générer sa configuration et cela se fait par la commande make bcm2708_defconfig mais ça reste encore un peu flou sur ce qui se passe pendant l'exécution de cette commande.
Pour terminer si quelqu'un peut m'éclaire sur la fin ce serait top. Je ne comprend pas trop à quoi sert la variable PWD ( qui pointe vers le chemin du shell ??) ainsi que la commande qui doit compiler mon module (le make remplace le gcc ?) :
> Je ne comprend pas trop à quoi sert la variable PWD
Un exemple de Makefile, dans mon répertoire /tmp
justdoit:
echo PWD = $(PWD)
exécution
billaud@info-304-02bx:/tmp$ make
echo PWD = /tmp
PWD = /tmp
=> c'est une variable qui représente le chemin d'accès du répertoire courant (Print Working Directory)
- Edité par michelbillaud 2 juin 2020 à 18:27:26
Makefile - modules kernel
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.