linux/init.h: Aucun fichier ou répertoire

Je suis en train de construire un module du noyau pour ma classe, et je reçois un mur massif des erreurs, mais au-dessus de ladite paroi est la tristement célèbre "Aucun fichier ou répertoire' erreur. Il semble être à la racine du problème. Non seulement cela semble nuire à init.h, mais aussi le module.h et le noyau.h. Les trois premières lignes du programme go comme suit:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>

J'ai regardé et essayé d'autres chemins pour lequel ces fichiers devraient être lors de la navigation sur des questions similaires, mais rien n'a fonctionné jusqu'à présent. Le plus étrange, c'est que j'ai utilisé ce module déjà; j'ai été fournis starter code qui était présent en haut (je n'ai rien changé) et il ne me donne pas d'erreur. Bien que, évidemment, le code est différent, mais ce qui semble être le plus gros problème à l'heure actuelle.

Le code est comme suit:

#include </usr/include/linux/init.h>
#include </usr/include/linux/module.h>
#include </usr/include/linux/kernel.h>
/* This function is called when the module is loaded. */
int simple_init(void)
{
printk(KERN_INFO "Loading Module\n");
static LIST_HEAD(birthday_list)
struct birthday{
int day;
int month;
int year;
struct list_head list;
};
struct birthday *ptr, *next;
struct birthday *bob;
struct birthday *judy;
struct birthday *josh;
struct birthday *lana;
struct birthday *jan;
bob = kmalloc(sizeof(*bob), GFP_KERNEL);
bob -> day = 17;
bob -> month = 1;
bob -> year = 1990;
INIT_LIST_HEAD(&bob -> list);
...
list_add_tail(bob -> list, &birthday_list);
list_add_tail(judy -> list, &birthday_list);
list_add_tail(josh -> list, &birthday_list);
list_add_tail(lana -> list, &birthday_list);
list_add_tail(jan -> list, &birthday_list);
struct birthday *ptr;
list_for_each_entry(ptr, &birthday_list, list){
kprintf('%d/%d/%d \n', ptr -> month, ptr -> day,  ptr -> year);
}
list_for_each_entry_safe(ptr, &birthday_list, list){
list_del(&ptr->list);
kfree(ptr);
}
return 0;
}
/* This function is called when the module is removed. */
void simple_exit(void) {
printk(KERN_INFO "Removing Module\n");
}
/* Macros for registering module entry and exit points. */
module_init( simple_init );
module_exit( simple_exit );
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Simple Module");
MODULE_AUTHOR("SGG");
Où est votre copie de init.h, et quel est le chemin de votre passage à gcc?
Vous pouvez poster votre code ? Êtes-vous à l'aide de Makefile fourni dans le répertoire /lib/modules ?
Eh bien, j'ai un peu de choses à signaler. Pour l'un, init.h et le module.h semblent avoir disparu. De plus, j'ai essayé de résoudre ce problème, et les choses.. en quelque sorte s'est mal passé. J'ai essayé d'utiliser la commande "sudo apt-get install linux-headers-generic", et il m'a donné un message d'erreur: "E: le Paquet" linux-headers-generic' a pas d'installation candidat."
Je ne suis pas en utilisant le Makefile que vous êtes en train de parler, mais il y en a un dans le répertoire du module, j'essaie de l'exécuter. Comme pour poster le code, il y a BEAUCOUP de remplissage choses entre ce n'est pas vraiment important... je vais travailler sur l'obtention posté; je l'ai exécuté sur une machine virtuelle.

OriginalL'auteur Robert Crawford | 2015-02-10