LKMPG: Ciao Mondo: differenze tra le versioni

nessun oggetto della modifica
mNessun oggetto della modifica
Nessun oggetto della modifica
Riga 111: Riga 111:
Ulteriori dettagli sui Makefiles dei moduli del kernel sono disponibili in <code>linux/Documentation/kbuild/makefiles.txt</code>. Bisogna essere sicuri di aver letto quanto appena esposto e il file specificato prima di iniziare a mettere mano sui Makefiles: in questo si rispagna molto lavoro.
Ulteriori dettagli sui Makefiles dei moduli del kernel sono disponibili in <code>linux/Documentation/kbuild/makefiles.txt</code>. Bisogna essere sicuri di aver letto quanto appena esposto e il file specificato prima di iniziare a mettere mano sui Makefiles: in questo si rispagna molto lavoro.


Adesso è arrivato il momento di inserire il nostro modulo fresco di compilazione all'interno del kernel con '''insmod ./hello-1.ko'''.
Adesso è arrivato il momento di inserire il nostro modulo fresco di compilazione all'interno del kernel con '''insmod ./hello-1.ko''' (ignora qualsiasi cosa che sembra non funzionare, ne discuteremo a breve).
 
Tutti i moduli caricati nel kernel sono listati in <code>/proc/modules</code>. Va alla fine del file e utilizza <code>cat</code> per vedere che il tuo modulo fa veramente parte del kernel. Congratulazioni, adesso sei l'autore di parte del codice del kernel Linux. Quando la novità sparisce, rimuovi il modulo dal kernel usando '''rmmod hello-1'''. Dai un'occhiata a <code>/var/log/messages</code> per vedere se effettivamente l'operazione di rimozione è stata loggata  nel file di log del sistema.
 
Adesso c'è un altro esercizio per il lettore. Avete presente il commento sul valore di <code>return</code> in <code>init_module()</code>? Cambiate il valore con qualcosa di negativo, rimcompilate e caricate il modulo di nuovo. Cosa succede?
168

contributi