Portál AbcLinuxu, 8. listopadu 2025 07:02
#include linux/module.h
#include linux/kernel.h
#include linux/init.h
static int __init mymodule_init(void)
{
// printk(KERN_INFO "mymodule2: module inicializovan\n");
return 0;
}
static void __exit mymodule_cleanup(void)
{
// printk(KERN_INFO "mymodule: modul uvolnen\n");
}
/*
static void mymodule_run(void)
{
printk(KERN_INFO "mymodule: Bezim!!\n");
}
*/
//EXPORT_SYMBOL(mymodule_run);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Vlastni Modul");
MODULE_AUTHOR("Venca Vopicka");
MODULE_VERSION("1.2.3-stupid");
module_init(mymodule_init);
module_exit(mymodule_cleanup);
prelozime ho:
make -C /usr/src/linux SUBDIRS=$PWD modules
make: Entering directory `/usr/src/linux-2.6.18-deh'
WARNING: Symbol version dump /usr/src/linux-2.6.18-deh/Module.symvers
is missing; modules will have no dependencies and modversions.
CC [M] /home/fly911/module/mymodule.o
Building modules, stage 2.
MODPOST
CC /home/fly911/module/mymodule.mod.o
LD [M] /home/fly911/module/mymodule.ko
make: Leaving directory `/usr/src/linux-2.6.18-deh'
loadneme do jadra:
insmod ./mymodule.ko
podivame:
lsmod
Module Size Used by mymodule 1088 0 [permanent] ipt_REJECT 4096 1 xt_tcpudp 3072 1 iptable_filter 2560 1 ip_tables 10828 1 iptable_filter x_tables 9988 3 ipt_REJECT,xt_tcpudp,ip_tables 8139too 19584 0 snd_intel8x0 26012 0 snd_ac97_codec 79520 1 snd_intel8x0 snd_ac97_bus 2304 1 snd_ac97_codeca ejhle, modul se stal permanentni soucasti jadra ! rmmod mymodule a samozrejme nejde unloadnout ERROR: Removing 'mymodule': Device or resource busy Jadro je zkompilovane podle vlastniho konfiguraku. Na kompu se vyskytuje tento jediny zdrojak jadra. Tusim, ze "sobaka zaryta" je nekde v nastavenich kompilace, ale kde netusim. Dik za kazde nakopnuti spravnym smerem.
/* Declare what kind of code we want from the header files */
#define __KERNEL__ /* We're part of the kernel */
#define MODULE /* Not a permanent part, though. */
Pomohlo?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.