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
Ïà¹ØÎĵµ£º
¡¡¡¡bashÓÐÁ½ÖÖÊäÈëģʽviģʽºÍemacsģʽ£¬ÆäÖÐemacsÊÇĬÈÏģʽ£¬¶øÇÒ²Ù×÷ÆðÀ´Ò²±ÈviģʽҪ¿ì½Ý¡£¿ÉÒÔͨ¹ý set -o viºÍset -o emacsÀ´×ª»»¡£
¡¡¡¡1.ÔÚÃüÁîÀúÊ·ÖвéÕÒ
¡¡
¡¡Ç¿ÁÒÍÆ¼öʹÓà Ctrl+r£¬ Õâ¸ö¼ü×éºÏÊÇ·´ÏòÔöÁ¿²éÕÒÏûÏ¢ÀúÊ·¡£ºÜºÃÓᣠ±ÈÈçÄãºÜ¾ÃÒÔǰÊäÈë¹ýij¸öÃüÁîÈç¡£ gcc -c -DKKT -
Dnnn µÈµÈ£¬Ò»³¤´®£¬ ......
/bin
Òýµ¼Æô¶¯ËùÐèµÄÃüÁî»òÆÕͨÓû§¿ÉÄÜÓõÄÃüÁî(¿ÉÄÜÔÚÒýµ¼Æô¶¯ºó)¡£
/sbin
ÀàËÆ/bin £¬µ«²»¸øÆÕͨÓû§Ê¹Óã¬ËäÈ»Èç¹û±ØÒªÇÒÔÊÐíʱ¿ÉÒÔʹÓá£
/etc
ÌØ¶¨»úÆ÷µÄÅäÖÃÎļþ¡£
/root
rootÓû§µÄ¼ÒĿ¼¡£
/lib
¸ùÎļþϵͳÉϵijÌÐòËùÐèµÄ¹²Ïí¿â¡£
/lib/modules
ºËÐĿɼÓÔØÄ£¿é£¬ÌرðÊÇÄÇЩ»Ö¸´Ëð»µÏµÍ³Ê±Òýµ¼ËùÐèµÄ(Àý ......
ÕªÒª£º LinuxÎļþÀàÐͳ£¼ûµÄÓУºÆÕͨÎļþ¡¢Ä¿Â¼¡¢×Ö·ûÉ豸Îļþ¡¢¿éÉ豸Îļþ¡¢·ûºÅÁ´½ÓÎļþµÈ£¬Èç¹ûÏëÁ˽âÕâ·½ÃæÖªÊ¶µÄµÜÐÖ£¬¾Í½øÀ´Á˽âÁ˽⡣±¾ÎÄÓ¦¸Ã˵ÊÇ»ù´¡Îĵµ¡£
Ŀ¼
2.1 ÆÕͨÎļþ£»
2.2 Ŀ¼£»
2.3 ×Ö·ûÉ豸»ò¿éÉ豸Îļþ£»
2.4 Ì×½Ó¿ÚÎļþ£»
2.5 ·ûºÅÁ´½ÓÎļþ£»
1¡¢LinuxÎļþµÄÀ©Õ¹Ãû£»
2¡¢Linux Î ......
ϵͳÐÅÏ¢
arch
ÏÔʾ»úÆ÷µÄ´¦ÀíÆ÷¼Ü¹¹(1)
uname -m
ÏÔʾ»úÆ÷µÄ´¦ÀíÆ÷¼Ü¹¹(2)
uname -r
ÏÔʾÕýÔÚʹÓõÄÄں˰汾
dmidecode -q
ÏÔʾӲ¼þϵͳ²¿¼þ – (SMBIOS / DMI)
hdparm -i /dev/hda
ÂÞÁÐÒ»¸ö´ÅÅ̵ļܹ¹ÌØÐÔ
hdparm -tT /dev/sda
ÔÚ´ÅÅÌÉÏÖ´ÐвâÊÔÐÔ¶ÁÈ¡²Ù×÷
cat /proc/cpuinfo
ÏÔʾCPU infoµÄÐÅÏ¢
c ......
ת×Ô£ºhttp://blog.chinaunix.net/u1/44908/showart_1869167.html
# LinuxÖÐÓÃALSAÇý¶¯Éù¿¨Á÷³ÌÏê½â£ºhttp://www.linuxsir.org/main/?q=node/67
±±ÄÏÄϱ±ÐÖµÄÎÄÕ£¬±È½ÏÏêϸµÄ½²½âÁËÔÚlinuxϽâ¾öALSAÇý¶¯Éù¿¨ÎÊÌâµÄÁ÷³Ì£¬¸´Ï°ÁËÉù¿¨¼ì²â»òÕßÉ豸¼ì²âµÄÐí¶àÃüÁ²»´íµÄ×ÊÁÏ£¬Ö»ÊÇÏÖÔÚÎÊÌ⻹û½â¾ö¡£
# alsa-proj ......