insmod ¼ÓÔØÄÚºËÄ£¿é ³öÏÖ¡°¶Î´íÎó¡±
×î½üÕÒÁËºÜ¶à¹ØÓÚÄÚºËÄ£¿éÉè¼ÆµÄ×ÊÁÏ£¬µ«Á¬×î¼òµ¥µÄhello world¶¼Í¨¹ý²»ÁË£¬ÊÔÁ˺ܶàÈ˵ģ¬×îºó¼ÓÔØÄ£¿éʱ¶¼»á³öÏÖ¡°¶Î´íÎ󡱡£#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");// У¬·ñÔòÓÐ waring, È¥µôÁË #define MODULE, ×Ô¶¯¶¨Òå
static int hello_init(void)
{
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);// ±ØÐ룡£¡
module_exit(hello_exit); // ±ØÐ룡£¡
MakefileÀïÃæ¾ÍÒ»¾ä
obj-m := hello.o
££make -C /usr/src/linux SUBDIRS=$PWD modules
insmod ./hello.ko¾Í»áÌáʾ¶Î´íÎó¡£
²»ÖªµÀÊDz»ÊÇÎÒϵͳÄÄÀïÅäÖôíÎóµÄÔÒò£¬ÎÒ°²×°µÄÊÇdebian4.0
kernel 2.6.18£¬Ä¬Èϲ»°²×°Äںˣ¬ÎÒÖØÐ±àÒëÁ˵ġ£ µÈ´ý¸ßÊֻشð,ÎÒÒ²ÊÔÁËn¸ö°æ±¾,»¹ÏÂÁË2.6.22-rc5µÄÄÚºË,ÖØÐ±àÒëÁË»¹ÊDz»ÐÐ,µ«ÎҵĴíÎó×ÜÊÇÒ»ÑùµÄ,¾ÍÊÇ: no module found in object ÄãµÄÄÚºËÖØÐ±àÒë¹ýô£¿ Linux 2.6 ÔÚ±àÒëÄ£¿éʱҪÇóÄãÒѾ±àÒë¹ýÒ»¸öÄںˣ¬¶øÇÒ±àÒë¹ý³ÌÖÐÉú³ÉµÄÁÙʱÎļþ»¹Ã»ÓÐɾ³ý£¨Ò²¼´±àÒëºóûÓÐÖ´ÐÐ make clean£©£¬make µÄ -C Ñ¡ÏîµÄ²ÎÊýÓ¦¸ÃÖ¸¶¨Îª±àÒëÄÚºËʱ¶ÔÓ¦µÄĿ¼¡£ ¿ÉÊÇÎҵıàÒëÁËѽ£¬ÔÎÔÎ:o
Ò³:
[1]