Ho un paio d'anni di esperienza di programmazione. Ora ho deciso di lavorare allo sviluppo del modulo del kernel Linux. Tuttavia, non riesco nemmeno a iniziare. Ho compilato questo codice in Ubuntu.Come codificare un modulo del kernel Linux?
#include <linux/module.h>
int init_module(void){ printk("<1> hellp"); return 0;}
void cleanup_module(void){ printk("<1> bye");}
tuttavia, l'insmod non funziona il messaggio di errore è "Formato modulo non valido". dopo aver cercato su Google ho pensato che potrebbe esserci qualche problema con la compatibilità della versione. E non c'è un buon modo per risolverlo. Quindi alcuni veri sviluppatori di moduli del kernel possono darmi qualche consiglio? quale ambiente dovrei preparare prima di iniziare l'apprendimento?
Grazie!
* "Ti manca le macro __init e __exit, ..." * - L'uso di '' __init' e __exit' non sono richiesti; specificano solo le sezioni di testo che possono essere liberate dopo aver completato l'avvio. Ciò che è richiesto per un modulo driver sono le dichiarazioni per due punti di ingresso usando 'module_init()' e 'module_exit()'. – sawdust