dzÎölinuxϼüÅÌÉ豸¹¤×÷ºÍ×¢²áÁ÷³Ì
dzÎölinuxϼüÅÌÉ豸¹¤×÷ºÍ×¢²áÁ÷³Ì
¡¾Ç³ÎölinuxÏÂÊó±êÇý¶¯µÄʵÏÖ¡¿
input_init()=>
=>
class_register(&input_class);×¢²áinputÀà
input_proc_init();´´½¨procϵÄĿ¼ºÍÎļþ
register_chrdev(INPUT_MAJOR, "input", &input_fops);×¢²áÇý¶¯³ÌÐòµ½cdev_mapÉÏ,ÒÔ´ýÇý¶¯É豸.
drivers\input\keyboard\pxa3xx_keypad.cΪÎÒÃǵÄkeyboardÉ豸,
pxa3xx_keypad_probe=>
request_irq(IRQ_ENHROT, &enhanced_rotary_interrupt,
IRQF_DISABLED, "Enhanced Rotary", (void *)keypad);×¢²á¿ì½Ý¼üÖжÏ
request_irq(IRQ_KEYPAD, pxa3xx_keypad_interrupt, IRQF_DISABLED,pdev->name, keypad);×¢²áÖжÏ
static irqreturn_t pxa3xx_keypad_interrupt(int irq, void *dev_id)
{
struct pxa3xx_keypad *keypad = dev_id;
uint32_t kpc = keypad_readl(KPC);
if (kpc & KPC_MI)
pxa3xx_keypad_scan_matrix(keypad);
if (kpc & KPC_DI)
pxa3xx_keypad_scan_direct(keypad);
return IRQ_HANDLED;
}
ÔÚirqÖÐÈç¹û¶Áµ½ÁËkey,ÄÇô»áÖ±½Óµ÷ÓÃ
input_report_key(keypad->input_dev,lookup_matrix_keycode(keypad, row, col),
new_state[col] & (1 << row));
static inline unsigned int lookup_matrix_keycode(
struct pxa3xx_keypad *keypad, int row, int col)
{
return keypad->matrix_keycodes[(row << 3) + col];
}
input_report_key(struct input_dev *dev, unsigned int code, int value)
devΪinput_devÉ豸,ÎÒÃǵÄ4*4¼üÅÌ
codeΪ±ê×¼PC¼üÅÌÂëÖµ
valueΪ°´¼ü¶¯×÷,Ϊ1±íʾ¼üÅ̰´ÏÂ,Ϊ0±íʾ°´¼ü̧Æð
static inline void input_report_key(struct input_dev *dev, unsigned int code, int value)
{
input_event(dev, EV_KEY, code, !!value);
}
void inp
Ïà¹ØÎĵµ£º
×¼±¸¹¤×÷:
¡¡¡¡Óõ½µÄperl À©Õ¹×é¼þ(modules)ÔÚÉÏÆªÌù³ö.( win32::odbc Ä£¿é
)ÏÂÔØ×é¼þºó°´ÕÕReadmeÎļþ°²×°µ¹ÏìӦĿ¼.ÅäÖúÃÏàÓ¦µÄodbcÊý¾ÝÔ´.
¡¡¡¡
¡¡¡¡³ÌÐòʵÏÖ:
¡¡¡¡Ê¹ÓÃ
¡¡¡¡use
Win32::ODBC;
¡¡¡¡
¡¡¡¡Óï¾ä°üº¬Ó¦Ê¹ÓõÄÄ£¿éÊÇwin32::odbc,д³öÊý¾Ý¿â
Á¬½Ó×Ö·û´®
¡¡¡¡
¡¡¡¡$DSN = "DSN =
My DSN ......
ÔÚLinux»·¾³ÏÂÊäÈë: cd /usr/openv/netbackup/bin/admincmd/
./bpexpdate -m ´Å´ø±êÇ©Ãû(media ID) -d 0 ±íʾ¶ÔÕâÅÌ´Å´øµÄÊý¾ÝÇå¿Õ,Èç´Å´ø½éÖʱ£´æÖÜÆÚÊÇÓÀ¾ÃµÄ,
Ò²»áÈ«²¿Çå¿Õ,ʹËü¹ýÆ ......
whereis <³ÌÐòÃû³Æ>
²éÕÒÈí¼þµÄ°²×°Â·¾¶
-b Ö»²éÕÒ¶þ½øÖÆÎļþ
-m Ö»²éÕÒ°ïÖúÎļþ
-s Ö»²éÕÒÔ´´úÂë
-u ÅųýÖ¸¶¨ÀàÐÍÎļþ
-f Ö»ÏÔʾÎļþÃû
-B <Ŀ¼> ÔÚÖ¸¶¨Ä¿Â¼Ï²éÕÒ¶þ½øÖÆÎļþ
-M <Ŀ¼> ÔÚÖ¸¶¨Ä¿Â¼Ï²éÕÒ°ïÖúÎļþ
-S <Ŀ¼> ÔÚÖ¸¶¨Ä¿Â¼Ï²éÕÒÔ´´úÂë
locate <ÎļþÃû³Æ>
ÔÚÎļþË÷ ......
grep¡¢fgrepºÍegrepÃüÁî
Õâ×éÃüÁîÒÔÖ¸¶¨Ä£Ê½ËÑË÷Îļþ£¬²¢Í¨ÖªÓû§ÔÚʲôÎļþÖÐËÑË÷µ½ÓëÖ¸¶¨µÄģʽƥÅäµÄ×Ö·û´®£¬²¢´òÓ¡³öËùÓаüº¬¸Ã×Ö·û´®µÄÎı¾ÐУ¬ÔÚ¸ÃÎı¾ÐеÄ×îÇ°ÃæÊǸÃÐÐËùÔÚ µÄÎļþÃû¡£grepÃüÁîÒ»´ÎÖ»ÄÜËÑË÷Ò»¸öÖ¸¶¨µÄģʽ£»egrepÃüÁî¼ìË÷À©Õ¹µÄÕýÔò±í´ïʽ£¨°üÀ¨±í´ïʽ×éºÍ¿ÉÑ¡Ï£»fgrepÃüÁî¼ìË÷¹Ì¶¨×Ö·û´®£¬Ëü²» ......
µÚËIJ¿·Ö һЩ¸üºÃµÄÏë·¨
4.1 »÷°Üϵͳ¹ÜÀíÔ±µÄLKMµÄ·½·¨
ÕâÒ»²¿·Ö»á¸øÎÒÃǶԸ¶Ò»Ð©Ê¹ÓÃLKM±£»¤Äں˵ĶàÒÉ£¨ºÃµÄ£©µÄ¹ÜÀíÔ±µÄ·½·¨¡£ÔÚ½âÊÍÁËËùÓÐϵͳ¹ÜÀíÔ±Äܹ»Ê¹Óõķ½·¨Ö®ºó£¬ºÜÄÑΪÎÒÃÇ£¨hackers£©ÕÒµ½Ò»¸ö¸üºÃµÄ°ì·¨¡£ÎÒÃÇÐèÒªÀ뿪LKMÒ»»á¶ù£¬À´Ñ°ÕÒ»÷°ÜÕâЩÀ§Äѵı£»¤µÄ·½·¨¡£
¼Ù¶¨Ò»¸öϵͳ¿ÉÒÔ±»¹ÜÀíÔ±°²×°ÉÏÒ»¸öÊ ......