Comment faire pour compiler un module noyau linux pour Raspberry pi?

Je vais avoir des ennuis pour compiler un module du noyau pour un raspberry pi. Je veux compiler un "hello world" module de noyau à l'aide de la raspberry pi lui-même.

Je suis à l'aide de raspbian wheezy 3.6.11+.

J'ai essayé de suivre les instructions à http://elinux.org/RPi_Kernel_Compilation.

Voici le Makefile, je suis en utilisant:

obj-m += hello-1.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Voici le code source pour bonjour-1.c:

/*  
 *  hello-1.c - The simplest kernel module.
 */
#include <linux/module.h>   /* Needed by all modules */
#include <linux/kernel.h>   /* Needed for KERN_INFO */

int init_module(void)
{
    printk(KERN_INFO "Hello world 1.\n");

    /* 
     * A non 0 return means init_module failed; module can't be loaded. 
     */
    return 0;
}

void cleanup_module(void)
{
    printk(KERN_INFO "Goodbye world 1.\n");
}

Voici ce que j'obtiens quand j'essaie de rendre le projet:

root@raspberrypi:/home/pi/hello-module# make
make -C /lib/modules/3.6.11+/build M=/home/pi/hello-module modules
make: *** /lib/modules/3.6.11+/build: No such file or directory.  Stop.
make: *** [all] Error 2

J'ai essayé de créer le répertoire de construction dans /lib/modules/3.6.11+

make -C /lib/modules/3.6.11+/build M=/home/pi/hello-module modules
make[1]: Entering directory `/lib/modules/3.6.11+/build'
make[1]: *** No rule to make target `modules'.  Stop.
make[1]: Leaving directory `/lib/modules/3.6.11+/build'
make: *** [all] Error 2

J'ai GNU Make 3,81 et gcc (Debian 4.6.3-14+rpi1) 4.6.3 installé. J'ai aussi installé la source de linux à l'aide de

sudo apt-get install linux-source

Toutes les idées sur ce que je pourrais faire pour obtenir cette compiler?

  • Sur le Raspberry il n'y a pas de "construire" le sous-répertoire dans le répertoire des modules. J'ai pu confirmer que sur mon RPI. D'où la question: qu'est-Ce que la "bonne" façon de créer avec les données requises pour le module de construction?
  • Puisque vous avez déjà reçu des réponses spécifiques, voici un bref aperçu sur les raisons du problème. Vous êtes à l'aide de la Raspberry Pi foundation noyau (le raspberrypi-firmware paquet dans Raspbian) qui ne fournit pas les en-têtes dont vous avez besoin pour faire des modules du noyau. Vous pouvez les installer à l'aide de la rpi-source outil. Ou de passer à Raspian le noyau de+en-têtes à la place (ajouter un firmware entrée après wheezy main contrib ... dans /etc/apt/sources.lst, packages de mise à jour, supprimer raspberrypi-firmware, installer raspberrypi-firmware-nokernel.
  • Grand instructions dans ce la question et la réponse j'ai compilé dans script
InformationsquelleAutor user3025582 | 2013-11-23