Comment faire pour compiler un module du noyau contre une nouvelle Source

Je suis en train de compiler un Hello World module. Je vais avoir une nouvelle Ubuntu dans mon système qui n'ont pas de noyau compilé.

Mon noyau est:

2.6.32-34-generic

J'ai donné le Makefile suivant et a obtenu l'erreur:

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

# make
make -C /lib/modules/2.6.32-34-generic/build M=/home/james/Desktop/hello modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-34-generic'
make[2]: *** No rule to make target `/home/james/Desktop/hello/hello-1.c', needed by `/home/james/Desktop/hello/hello-1.o'.  Stop.
make[1]: *** [_module_/home/james/Desktop/hello] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-34-generic'
make: *** [all] Error 2

Le contenu de mon /lib/modules/2.6.32-34-générique sont

total 3864
lrwxrwxrwx  1 root root     40 2011-11-05 15:55 build -> /usr/src/linux-headers-2.6.32-34-generic
drwxr-xr-x  2 root root   4096 2011-11-05 15:49 initrd
drwxr-xr-x 10 root root   4096 2011-11-05 15:49 kernel
.......................................................
.......................................................

Le dossier /usr/src/linux-headers-2.6.32-34-generic existe.

Depuis il ne fonctionne pas, j'ai téléchargé le linux-headers-2.6.32-34-générique source de Ubuntu et compilé, et changé mon Makefile:

obj-m += hello-1.o
all:
    make -C /usr/src/linux-2.6.32/M=$(PWD) modules

clean:
    make -C /usr/src/linux-2.6.32/M=$(PWD) clean

#make
make -C /usr/src/linux-2.6.32/M=/home/james/Desktop/hello modules
make[1]: Entering directory `/usr/src/linux-2.6.32'

  ERROR: Kernel configuration is invalid.
         include/linux/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.


  WARNING: Symbol version dump /usr/src/linux-2.6.32/Module.symvers
           is missing; modules will have no dependencies and modversions.

make[2]: *** No rule to make target `/home/james/Desktop/hello/hello-1.c', needed by `/home/james/Desktop/hello/hello-1.o'.  Stop.
make[1]: *** [_module_/home/james/Desktop/hello] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.32'
make: *** [all] Error 2

Quelqu'un pourrait-il m'aider à résoudre cela.http://packages.ubuntu.com/lucid-updates/devel/linux-headers-2.6.32-34-générique

J'ai quelques questions à poser.

Après une nouvelle installation, quelle est la meilleure façon de compiler un noyau. Après j'ai compilé le noyau et construit un module il fonctionnait parfaitement auparavant. Mais je ne pourrais pas savoir quoi faire dans cette situation

OriginalL'auteur user567879 | 2011-11-26