Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linuxÄÚºËÄ£¿éÖв¶»ñÖжϵÄÒ»¸öÀý×Ó

Ö±½ÓÉÏÀý×Ó°É¡£Ö»ÊDz¶»ñij¸öÉ豸µÄÖж϶øÒÑ¡£¡£¡£
¸ÃÎļþµÄÃû×ÖÊÇirq.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/timer.h>
#define DEBUG
#ifdef DEBUG
#define MSG(message, args...) printk(KERN_DEBUG "irq:" message, ##args)
#else
#define MSG(message, args...)
#endif
MODULE_LICENSE("GPL");
MODULE_AUTHOR("silence1214");
int irq;
char *interface;
// ÏÂÃæÕâ2¸ö²ÎÊýͨ¹ý²åÈëÄÚºËÄ£¿éµÄʱºò¸³ÖµµÄ...
module_param(irq, int, 0644);
module_param(interface, charp, 0644);
// Öжϲ¶»ñµÄʱºòµÄ´¦Àíº¯Êý
int irq_handle_function(int irq, void *device_id)
{
static int count = 1;
MSG("[%d]receive the irq at %ld...\n", count, jiffies);
count++;
return IRQ_NONE;
}
int init_module()
{
// ×¢²áÖжϲ¶»ñ£¬µÚÈý¸ö²ÎÊýµÄÒâ˼ÊÇºÍÆäËûÉ豸¹²Ïí¸ÃÖжϺţ¬×îºóÒ»¸ö²ÎÊýÊÇÉ豸µÄid£¬Æäʵ¶ÔÓÚ¹²ÏíϵÄÉ豸Õâ¸öºÅÂë¾Ý˵ÊÇËæ±ãд£¬Ò»°ã¶¼Ð´irqµÄÁË¡£
//ֻҪע²á³É¹¦¾Í¿ÉÒԵȴý¶ÔÓ¦É豸µÄ¸ÃÖжϺŵĵ½À´ ¾Í¿ÉÒÔ´¦Àí»Øµ÷º¯ÊýÁË¡£¡£
if(request_irq(irq, irq_handle_function, IRQF_SHARED, interface, (void *)&irq))
{
MSG("regist irq failure...\n");
return -EIO;
}
MSG("interface=%s and irq=%d...\n", interface, irq);
MSG("regist irq success...\n");
return 0;
}
void cleanup_module()
{
free_irq(irq, &irq);
MSG("unregist irq...\n");
}

¶ÔÓ¦µÄmakefileµÄÄÚÈÝÊÇ
obj-m:=irq.o
default:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
Îҵĵ±Ç°Äں˰汾Ϊ£º2.6.27.5-117.fc10.i686
Ö´Ðв½Ö裺
1£ºÊ×ÏÈmakeÒ»ÏÂÉú³Éirq.ko
2£º²é¿´ cat /proc/interrupts
ÎҵĴòÓ¡½á¹ûÊÇ£º
Õâ¸ö19¾ÍÊÇÎÒÐèҪʹÓõÄÖжϺţ¬eth0Æäʵ¾ÍÊÇÍø¿¨£¨µÚÒ»¿é£¬ÎÒÒ²¾ÍÕâôһ¿é£©¡£¡£¡£
È»ºóÎÒʹÓòåÈëÄÚºËÄ£¿éµÄÃüÁîÊÇ£º
2.1£ºinsmod irq.ko interface=eth1 irq=19
Èç¹ûûÓб¨ÈκÎÐÅÏ¢¾ÍÊDzåÈëÕýÈ·ÁË£¬
½Ó×Å
2.2£ºÊäÈë dmesg »Ø³µ¡£¡£¾Í»á¿´µ½ÈçϽØÍ¼µÄÐÅÏ¢ÁË¡£¡£¾ÍÊÇÎÒÃdzÌÐòÖдòÓ¡µÄÐÅÏ¢¡£¡£
ºÃÁËÕâ¾ÍÊÇËã³É¹¦ÁË¡£¡£¡£
2.3£ºÔ­Àí¾ÍÊÇ£¬£¬×¢²áÁËÒ»¸ö²¶»ñÖжϺÅΪ19µÄ³ÌÐò¡£¡£¡£È»ºóµ±·¢³ö19µÄÖжϺŵÄÉ豸·¢³ö


Ïà¹ØÎĵµ£º

¡¶Essential Linux Device Drivers¡·ÖÐÎİæµÚ1ÕÂ




-Ëᦻª(Barry Song)
Linux¾ßÓÐÓÕÈ˵Ä÷ÈÁ¦£¬ËüÊÇÒ»¸öÓÉÈ«ÊÀ½ç²»Í¬Ãñ×å¡¢²»Í¬ÐÅÑö¡¢²»Í¬ÐÔ±ðµÄÈ˹²Í¬²ÎÓëºÍЭ×÷µÄ¹ú¼ÊÐÔÏîÄ¿¡£LinuxÃâ·ÑÌṩԴ´úÂ룬²¢ÇÒ¾ßÓÐÓëUnixÀàËÆµÄΪÈËÃÇËùÊìϤµÄÓ¦ÓóÌÐò±à³Ì»·¾³£¬ÕâÒ»ÇÐÔì¾ÍÁËËü½ñÌìµÄ¾Þ´ó³É¹¦¡£Í¨¹ý»¥ÁªÍø´Óר¼Ò´¦¼´Ê±»ñµÃµÄ¸ßÖÊÁ¿µÄÃâ·ÑÖ§³ÖÒ²·¢»ÓÁËÖØÒª× ......

¡¶Essential Linux Device Drivers¡·ÖÐÎİæµÚ2ÕÂ

-Ëᦻª£¨Barry Song£©
ÔÚ¿ªÊ¼²½ÈëLinuxÉ豸Çý¶¯³ÌÐòµÄÉñÃØÊÀ½ç֮ǰ£¬ÈÃÎÒÃÇ´ÓÇý¶¯³ÌÐò¿ª·¢ÈËÔ±µÄ½Ç¶È¿´¼¸¸öÄں˹¹³ÉÒªËØ£¬ÊìϤһЩ»ù±¾µÄÄں˸ÅÄî¡£ÎÒÃǽ«Ñ§Ï°Äں˶¨Ê±Æ÷¡¢Í¬²½»úÖÆÒÔ¼°ÄÚ´æ·ÖÅä·½·¨¡£²»¹ý£¬ÎÒÃÇ»¹ÊǵôÓÍ·¿ªÊ¼Õâ´Î̽Ë÷Ö®Âá£Òò´Ë£¬±¾ÕÂÒªÏÈä¯ÀÀÒ»ÏÂÄں˷¢³öµÄÆô¶¯ÐÅÏ¢£¬È»ºóÔÙÖð¸ö½²½âһЩÓÐÒâ˼µÄµã¡£
......

Linuxϰ²×°CVS·þÎñÆ÷

£¨±¾ÎÄÕÂÖ÷ÒªÊǸöÈËÈÝÒ×ÕÒ×ÊÁ϶ø×ªµÄ£¬±¾ÎÄÀ´´Ë     http://hackang.javaeye.com/blog/234000£©
Ò»¡¢Ê×ÏȲ鿴ÓÐûÓа²×°cvs
rpm -qa|grep cvs
Èç¹ûûÓа²×°£¬È¥downÒ»¸örpm°ü°²×°Ò»°Ñ   rpm -i cvs-1.11.22-5.el5.i386.rpm
¶þ¡¢Ìí¼Ócvs×éºÍÓû§
groupadd cvs
useradd -g cvs -s / ......

LinuxϵÄCPUÀûÓÃÂʼÆËãÔ­ÀíÏê½â

   ÎÒÃÇÔÚ¸ãÐÔÄܲâÊÔµÄʱºò£¬¶Ôºǫ́·þÎñÆ÷µÄCPUÀûÓÃÂÊ¼à¿ØÊÇÒ»¸ö³£ÓõÄÊֶΡ£·þÎñÆ÷µÄCPUÀûÓÃÂʸߣ¬Ôò±íÃ÷·þÎñÆ÷ºÜ·±Ã¦¡£Èç¹ûǰ̨ÏìӦʱ¼äÔ½À´Ô½´ó£¬¶øºǫ́CPUÀûÓÃÂÊʼÖÕÉϲ»È¥£¬ËµÃ÷ÔÚij¸öµØ·½ÓÐÆ¿¾±ÁË£¬ÏµÍ³ÐèÒªµ÷ÓÅ¡£Õâ¸öÊǼ´Ê¹²»¶®¼¼ÊõµÄÈ˶¼ÈÝÒ×Àí½âµÄÊÂÇé¡£
   ÉÏÃæÀí½â¶ÔÂð£¿ÎÒ¸öÈ˾õµÃ²»Ê®·Ö× ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ