LinuxÉ豸ģÐÍÖ®input×ÓϵͳÏê½â
³ö´¦:http://ericxiao.cublog.cn/
Ò»£ºÇ°ÑÔ
ÔÚ¼üÅÌÇý¶¯´úÂë·ÖÎöµÄ±Ê¼ÇÖУ¬½Ó´¥µ½ÁËinput×Óϵͳ.¼üÅÌÇý¶¯£¬¼üÅÌÇý¶¯½«¼ì²âµ½µÄËùÓа´¼ü¶¼Éϱ¨¸øÁËinput×Óϵͳ¡£Input×ÓϵͳÊÇËùÓÐI/OÉ豸Çý¶¯µÄÖмä²ã£¬ÎªÉϲãÌṩÁËÒ»¸öͳһµÄ½çÃæ¡£ÀýÈ磬ÔÚÖÕ¶ËϵͳÖУ¬ÎÒÃDz»ÐèҪȥ¹ÜÓжàÉÙ¸ö¼üÅÌ£¬¶àÉÙ¸öÊó±ê¡£ËüÖ»Òª´Óinput×ÓϵͳÖÐȥȡ¶ÔÓ¦µÄʼþ(°´¼ü£¬Êó±êÒÆλµÈ)¾Í¿ÉÒÔÁË¡£½ñÌì¾Í¶Ôinput×Óϵͳ×öÒ»¸öÏ꾡µÄ·ÖÎö.
ÏÂÃæµÄ´úÂëÊÇ»ùÓÚlinux kernel 2.6.25.·ÖÎöµÄ´úÂëÖ÷ҪλÓÚkernel2.6.25/drivers/inputÏÂÃæ.
¶þ£ºÊ¹ÓÃinput×ÓϵͳµÄÀý×Ó
ÔÚÄÚºË×Ô´øµÄÎĵµDocumentation/input/input-programming.txtÖС£ÓÐÒ»¸öʹÓÃinput×ÓϵͳµÄÀý×Ó£¬²¢¸½´øÏàÓ¦µÄ˵Ã÷¡£ÒÔ´ËΪÀý·ÖÎöÈçÏ£º
#include <linux/input.h>
#include <linux/module.h>
#include <linux/init.h>
#include <asm/irq.h>
#include <asm/io.h>
static void button_interrupt(int irq, void *dummy, struct pt_regs *fp)
{
input_report_key(&button_dev, BTN_1, inb(BUTTON_PORT) & 1);
input_sync(&button_dev);
}
static int __init button_init(void)
{
if (request_irq(BUTTON_IRQ, button_interrupt, 0, "button", NULL)) {
printk(KERN_ERR "button.c: Can't allocate irq %d\n", button_irq);
return -EBUSY;
}
button_dev.evbit[0] = BIT(EV_KEY);
button_dev.keybit[LONG(BTN_0)] = BIT(BTN_0);
input_register_device(&button_dev);
}
static void __exit button_exit(void)
{
input_unregister_device(&button_dev);
free_irq(BUTTON_IRQ, button_int
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
µ¼¶Á£ºÓÖÊÇM. Tim Jones µÄÎÄÕ£¬ËûÔÚ×Î×β»¾ëµØ¹Ø×¢×ÅÄÚºËÖÐÿһÏîеļ¼Êõ£¬²¢ÒÔ´ó¼ÒÒ×ÓÚÀí½âµÄ·½Ê½³ÊÏÖÔÚ¶ÁÕßÃæÇ°¡£
Linux Äں˵ķ¢Õ¹
½éÉÜ 2.6.28 ºÍ 2.6.29 °æ±¾ÖеÄÐÂÌØÐÔ
¼¶±ð£º Öм¶
M. Tim Jones, ¹ËÎʹ¤³Ìʦ, Emulex
Corp.
ÉúÃüµÄ±ØÈ»²»½ö°üÀ¨ËÀÍöºÍÄÉË°£¬»¹°üÀ¨ GNU/Linux® ²Ù×÷ϵͳµÄ·¢Õ¹£¬×îÐ ......
×î½ü¶¨ÖÆÁËÒ»¸öubuntuµÄ°²×°½çÃæ,¸Ð¾õ±È½ÏÓÐÒâ˼,дÉÏÀ´,ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔʵ¼ùÒ»ÏÂ...
ÏȽéÉÜÒ»ÏÂgrubºÍisolinux,ÒÔ¼°Ò»Ð©¿ª»úÒýµ¼³ÌÐò...
1)BIOS:basic input output system,Ò»°ãµÄÇé¿öÏÂÊǹé½áÓÚfirmwareÕâÒ»ÀàµÄ.ÕâÀïÊÇΪÁËÁ¬½Óͨ˳,¾Í¼òµ¥µÄ˵һÏÂbios.BIOSÊÇÓû§ÔÚ°´ÏµçÔ´µÄÄÇÒ»¿Ì,¸ºÔðºÍÓ²¼þ¹µÍ¨²¢³ÊÏÖµ½Óû§ÃæÇ°µ ......
LINUXÏÂͼÐνçÃæÇл»µ½Îı¾Ä£Ê½
http://blog.chinaunix.net/u/3995/showart_115072.html
1.¿ª»ú½øÈëÎı¾Ä£Ê½
Èç¹ûÏëÈÿª»ú×Ô¶¯½ø´¿Îı¾Ä£Ê½,
ÐÞ¸Ä/etc/inittab
ÕÒµ½ÆäÖеÄ
id:5:initdefault:
ÕâÐÐָʾÆô¶¯Ê±µÄÔËÐм¶ÊÇ5,Ò²¾ÍÊÇͼÐÎģʽ
¸Ä³É3¾ÍÊÇÎı¾Ä£Ê½ÁË
id:3:initdefault:
ÕâÊÇÒòΪLinux²Ù×÷ϵͳÓÐÁùÖÖ ......