Ciao a tutti, con ubuntu ho il seguente problema. Ho creato un modulo list.c
"
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
static int __init list_init(void)
{
struct task_struct *task;
printk("Inizio lista di processi:\n");
for_each_process(tasks)
{
printk("%s [%d]\n",task->comm , task->pid);
}
printk("Fine lista dei processi.");
return 0;
}
static void __exit list_exit(void)
{
printk(KERN_INFO "Fine modulo Process list.");
}
module_init(list_init);
module_exit(list_exit);
"
per la compilazione dei moduli faccio cosi:
"creo una directory; all'interno della directory, inserisco il mio file list.c. Creo quindi il Makefile, contenente solo questa riga:
obj-m := list.o
kbuild viene invocato eseguendo make con alcuni parametri; visto che si tratta di una operazione comune per i driver esterni, creo uno script che automatizza il tutto. Creo quindi lo script kbuild, contenente queste righe:
#!/bin/bash
KDIR=/lib/modules/`uname -r`/build
make -C $KDIR M=`pwd` $@"
preso da qui:http://www.hwupgrade.it/forum/archiv...t-851881.html.
Finchè utilizzo il modulo in una delle due versioni del kernel standard di ubuntu tt ok.Le versioni del kernel sono (2.6.20).
Ho installato il kernel 2.6.22.1 seguendo questa guida: http://wiki.ubuntu-it.org/CompilazioneKernel.
Se entro nel nuovo kernel e provo a compilare nuovamente il modulo mi da errori.
Che succede??