linux uinput ·ÖÎö¡£
linux uinput
±¾ÎÄÒÔ 2.6.22.7 µÄkernel Ϊ»ù´¡¡£
Ê×ÏÈ uinput ÊÇÒ»¸ö×Ö·ûÉ豸£¬ Æä´ÎËü»¹ÊÇÒ»¸ö input É豸¡£ÁíÍâËü¿ÉÒÔÊÇÒ»¸öÊó±ê»òÕß¼üÅÌÉ豸¡£
´Ó init ²¿·Ö˵Æð°É¡£
static const struct file_operations uinput_fops = {
.owner = THIS_MODULE,
.open = uinput_open,
.release = uinput_release,
.read = uinput_read,
.write = uinput_write,
.poll = uinput_poll,
.unlocked_ioctl = uinput_ioctl,
};
static struct miscdevice uinput_misc = {
.fops = &uinput_fops,
.minor = UINPUT_MINOR,
.name = UINPUT_NAME,
};
static int __init uinput_init(void)
{
return misc_register(&uinput_misc);
}
Ê×ÏÈ˵˵ miscdevice, ºÜ·½±ãµÄ¶«Î÷£¬¶Ô device ×öÁ˼òµ¥µÄ°ü×°£¬
µ± misc_register µÄʱºò¾ÍÍê³ÉÁË É豸µÄ ×¢²á°²×°Ò»ÀàµÄ¶«¶«£¬ ²»ÓÃ×Ô¼ºÔÙ²ÙÐÄÁË¡£ÕæÊÇÀÁÈ˵ÄÉè¼Æ°¢¡£
ËùÓÐµÄ misc É豸¹«ÓÃͬһ¸öÖ÷É豸ºÅ£¬ÔÚ misc_init ÖУ¬
static int __init misc_init(void)
{
#ifdef CONFIG_PROC_FS
struct proc_dir_entry *ent;
ent = create_proc_entry("misc", 0, NULL);
if (ent)
ent->proc_fops = &misc_proc_fops;
#endif
misc_class = class_create(THIS_MODULE, "misc");
if (IS_ERR(misc_class))
return PTR_ERR(misc_class);
if (register_chrdev(MISC_MAJOR,"misc",&misc_fops)) {
printk("unable to get major
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ÀýÒ»£º·¢ËÍ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 ......
tidy ÊÇÒ»¸ö·Ç³£°ïæµÄÍøÒ³´úÂë·ÖÎöºÍ¾À´íµÄ¹¤¾ß£¬Äܹ»Ö§³Ö¶àÖÖÒ³Ãæ±àÂ룬²¢ÇÒÖ§³ÖxhtmlÊä³ö¡£Èç¹ûÎÒÃÇ͵ÀÁ£¬ÉõÖÁ¿ÉÒÔ½«Õû¸öÒ³Ãæ»º´æ£¬×îºó²ÉÓÃtidy´¦Àí£¬×îºóÊä³öÍêÃÀµÄxhtml´úÂë¡£
linuxϰ²×°¹ý³ÌÈçÏ£º
Ê×ÏȰ²×°tidy £¬ÏÂÔØtidyÔ´´úÂ룺
cvs -d:pserver: anonymous@tidy.cvs.sourceforge.net Ϊ·À±¸µç×ÓÓʼþµØÖ·ÊÕ¼¯ ......
ÕªÒª£º LinuxÎļþÀàÐͳ£¼ûµÄÓУºÆÕͨÎļþ¡¢Ä¿Â¼¡¢×Ö·ûÉ豸Îļþ¡¢¿éÉ豸Îļþ¡¢·ûºÅÁ´½ÓÎļþµÈ£¬Èç¹ûÏëÁ˽âÕâ·½ÃæÖªÊ¶µÄµÜÐÖ£¬¾Í½øÀ´Á˽âÁ˽⡣±¾ÎÄÓ¦¸Ã˵ÊÇ»ù´¡Îĵµ¡£
Ŀ¼
2.1 ÆÕͨÎļþ£»
2.2 Ŀ¼£»
2.3 ×Ö·ûÉ豸»ò¿éÉ豸Îļþ£»
2.4 Ì×½Ó¿ÚÎļþ£»
2.5 ·ûºÅÁ´½ÓÎļþ£»
1¡¢LinuxÎļþµÄÀ©Õ¹Ãû£»
2¡¢Linux Î ......
ת×Ô£ºhttp://blog.chinaunix.net/u1/44908/showart_1869167.html
# LinuxÖÐÓÃALSAÇý¶¯Éù¿¨Á÷³ÌÏê½â£ºhttp://www.linuxsir.org/main/?q=node/67
±±ÄÏÄϱ±ÐÖµÄÎÄÕ£¬±È½ÏÏêϸµÄ½²½âÁËÔÚlinuxϽâ¾öALSAÇý¶¯Éù¿¨ÎÊÌâµÄÁ÷³Ì£¬¸´Ï°ÁËÉù¿¨¼ì²â»òÕßÉ豸¼ì²âµÄÐí¶àÃüÁ²»´íµÄ×ÊÁÏ£¬Ö»ÊÇÏÖÔÚÎÊÌ⻹û½â¾ö¡£
# alsa-proj ......