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

LinuxÄÚºËÉ豸ģÐÍ(2)

·­ÒëÕߣº¹ùÉÙ±¯
2009/12/01
Ô­ÎÄ£ºlinux/Documentation/driver-model/binding.txt
Çý¶¯°ó¶¨
Çý¶¯°ó¶¨¾ÍÊǽ«Ò»¸öÉ豸ºÍ¿ØÖƸÃÉ豸µÄÇý¶¯¹ØÁªÔÚÒ»ÇеĹý³Ì¡£
µäÐ͵ÄÇé¿öÏ£¬×ÜÏßÇý¶¯À´´¦ÀíÇý¶¯°ó¶¨£¬ÒòΪÿ¸ö×ÜÏßÇý¶¯¶¼ÓÐ×ÜÏßÏà¹ØµÄÊý¾Ý
½á¹¹À´±íʾÉ豸ºÍÉ豸Çý¶¯¡£ÓÐÁ˱íʾÉ豸ºÍÉ豸Çý¶¯µÄͨÓÃÊý¾Ý½á¹¹£¬¾ø´ó¶àÊýµÄ°ó
¶¨¹ý³Ì¿ÉÒÔʹÓÃÕâЩͨÓôúÂë¡£
×ÜÏß
~~~
×ÜÏßÀàÐÍÊý¾Ý½á¹¹°üº¬Ò»¸ö¼Ç¼ËùÓÐÊôÓÚÕâ¸ö×ÜÏßÀàÐ͵ÄÉ豸Á´±í¡£µ±Ò»¸öÉ豸Çý¶¯µ÷ÓÃ
device_register()ʱ£¬Ëü»á±»Ìí¼Óµ½Õâ¸öÁ´±íµÄβ²¿¡£
×ÜÏßÀàÐÍÊý¾Ý½á¹¹Ò²°üº¬Ò»¸ö¼Ç¼ËùÓÐÊôÓÚÕâ¸ö×ÜÏßÀàÐ͵ÄÇý¶¯Á´±í¡£µ±Ò»¸öÉ豸Çý¶¯µ÷ÓÃ
driver_register()ʱ£¬¸ÃÇý¶¯»á±»Ìí¼Óµ½Õâ¸öÁ´±íµÄβ²¿¡£
ÕâÊÇ´¥·¢Çý¶¯°ó¶¨µÄÁ½¸öÖ÷Ҫʼþ¡£
É豸ע²á
~~~~~~~~
µ±Ò»¸öÐÂÉ豸±»Ìí¼Óºó£¬×ÜÏßµÄÇý¶¯Á´±í»á±»µü´ú£¬²éÕÒ³öÖ§³Ö¸ÃÉ豸µÄÇý¶¯¡£ÎªÁË´ïµ½
Õâ¸öÄ¿µÄ£¬ÐÂÉ豸µÄÉ豸ID±ØÐëÆ¥ÅäÇý¶¯Ö§³ÖµÄÉ豸IDÖеÄÒ»¸ö¡£É豸IDµÄ¸ñʽºÍ
Óï·¨ÊÇ×ÜÏßÏà¹ØµÄ¡£²»ÐèҪʹÓÃÒ»¸ö¸´ÔÓµÄ״̬»úºÍÆ¥ÅäËã·¨£¬¶øÊÇÓÉ×ÜÏßÇý¶¯Ìṩ
Ò»¸öcallbackº¯ÊýÀ´±È½ÏÉ豸ºÍÒ»¸öÇý¶¯ËùÖ§³ÖµÄIDÊÇ·ñÆ¥Å䣬Èç¹ûÆ¥Åä·µ»ØÖµÎª1£¬·ñÔò
·µ»ØÖµÎª0¡£
int match(struct device * dev, struct device_driver * drv);
µ±Ò»¸öÆ¥Åä±»ÕÒµ½Ê±£¬É豸µÄ'driver'Óò»á±»ÉèÖÃΪÕâ¸öÇý¶¯£¬Çý¶¯µÄprobe»Øµ÷º¯Êý»á±»µ÷Óá£
ÕâʹÇý¶¯Óлú»á¼ìÑéÊÇ·ñÕæÕýÖ§³ÖÕâ¸öÓ²¼þÉ豸,ͬʱ»á¼ìÑéÉ豸ÊÇ·ñ´¦ÓÚ¹¤×÷״̬¡£
É豸Àà±ð
~~~~~~~~~~~~
µ±probe³É¹¦Íê³Éºó£¬É豸±»×¢²áµ½ËüÊôÓÚµÄÀàÖС£É豸Çý¶¯ÊôÓÚÇÒ½öÊôÓÚÒ»¸öÀ࣬Õâ¸öÀà»áÔÚ
Çý¶¯µÄdevclassÓòÖÐÉèÖá£
devclass_add_device±»µ÷ÓÃÀ´Ã¶¾ÙºÍ×¢²áÀàÖеÄÉ豸£¬Õâ¸ö¹ý³Ì·¢ÉúÔÚÀàµÄregister_dev»Øµ÷
º¯ÊýÖС£
×¢Ò⣺É豸class½á¹¹ºÍÆäºËÐIJÙ×÷º¯Êý»¹Ã»ÓнøÈëmainlineÄںˣ¬ËùÒÔÒÔÉÏÌÖÂÛÓÐÒ»¶¨ÍÆ
²âÐÔ¡£
Çý¶¯
~~~~
µ±Ò»¸öÇý¶¯±»¹ØÁªµ½Ò»¸öÉ豸ʱ£¬Õâ¸öÉ豸±»²åÈëµ½Çý¶¯µÄÉ豸Á´±íÖС£
sysfs
~~~~~
ÔÚbusĿ¼µÄ'devices'×ÓĿ¼À´´½¨·ûºÅÁ´½Ó£¬Ö¸Ïòʵ¼ÊµÄdeviceĿ¼¡£
ÔÚdriverµÄ'devices'×ÓĿ¼À´´½¨·ûºÅÁ´½Ó£¬Ö¸Ïòʵ¼ÊµÄdeviceĿ¼¡£
ÔÚclassĿ¼ÀïΪÉ豸´´½¨×ÓĿ¼£¬ÔÚ×ÓĿ¼À´´½¨·ûºÅÁ´½Ó£¬Ö¸Ïò¸ÃÉ豸ÔÚsys
treeÀïµÄʵ¼ÊλÖá£
Ò²¿ÉÒÔÔÚÉ豸µÄʵ¼ÊĿ¼À´´½¨·ûºÅÁ´½Ó£¬Ö¸ÏòËüµÄclassĿ¼£¬»òÕßclassĿ¼µÄ¶¥²ã
Ŀ¼£»Ò²¿ÉÒÔ´´½¨·ûºÅÁ´½Ó£¬Ö¸ÏòËüµÄdriverĿ¼¡£²»¹ýĿǰ²¢Ã»ÓÐÕâÑù×


Ïà¹ØÎĵµ£º

[תÌû]LinuxÇý¶¯¿ª·¢Ñ§Ï°µÄһЩ±ØÒª²½Öè

 1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......

Red Hat Enterprise Linux 5°²×°VM ware Tools

RHEL5ÔÚ°²×°VM-wareTools¹ý³ÌÖгöÏÖÈçÏ´íÎó£º
What is the
location of the directory of C header files that match your running kernel?
[/usr/src/linux/include] The directory of kernel headers (version
2.6.18-8.el5xen) does not match
´Ë´íÎóÖ÷ÒªÊÇÏëÕÒLinuxÄں˵İüº¬Í·ÎļþÕÒ²»µ½¡£Òª½â¾ö´ËÎÊÌâÐèÒª° ......

´òÔìÇáÇÉµÄ Linux ·þÎñÆ÷

ºÃ¾Ãûд Blog£¬Ã¦°¡Ê²Ã´µÄ¾Í²»ËµÁË£¬ÀÁÊÇ×î´óµÄÔ­Òò¡£×î½üæ×ŸøÊµÑéÊÒ×ö¸öÍøÕ¾£¬³ýÁËÎÒÊìϤµÄ Web Design & Development Ö®Í⣬Õâ´ÎÎÒ»¹´î½¨ÁËһ̨ Linux ·þÎñÆ÷¡£Ò»·½ÃæÓÃÀ´·ÅÖÃÎÒÃǵÄÕ¾µã£¬ÁíÒ»·½ÃæÊµÑéÊÒ·Åһ̨·þÎñÆ÷£¬Ò²ÎªÊµÑéÊҵijÉÔ±ÃÇÌṩһЩ¶îÍâµÄ·þÎñ£¬·½±ã¿ÆÑкÍѧϰ¡£
ËäÈ»×ö Web ÎÒÊÇÇá³µÊì·ÁË£¬µ«µ¹Ì ......

OracleÈçºÎ¸Ä±älistenerµÄ¶Ë¿ÚºÅ (Linux)

ÔÚLinuxÉϰ²×°oracleµÄʱºò²»Ð¡ÐݲװÁËÁ½´Îlistener, ¸ãµÃlistenerµÄ¶Ë¿ÚºÅ±ä³ÉÁË1522¶ø²»ÊÇȱʡµÄ1521, ¿Í»§¶ËÁ¬Á˺þö¼Ã»ÓÐÁ¬½ÓÉÏ£¬×îºó²Å·¢ÏÖÊÇlistenerµÄ¶Ë¿ÚºÅ²»¶Ô¡£Ò»ÏÂÊÇÎҸıälistener¶Ë¿ÚºÅµÄ²½Ö裺
1. Ê×ÏÈÐèҪֹͣlistener, ʹÓÃÃüÁîlsnrctl stop
2. listenerÍ£Ö¹ÒԺ󣬵½ÄãµÄ$ORACLE_HOME/network/adminÏÂÕ ......

linux ioctl½âÊÍ

ÎÒÕâÀï˵µÄioctlº¯ÊýÊÇÔÚÇý¶¯³ÌÐòÀïµÄ£¬ÒòΪÎÒ²»ÖªµÀ»¹ÓÐûÓбðµÄ³¡ºÏÓõ½ÁËioctl£¬
      ËùÒԾ͹涨ÁËÎÒÃÇÌÖÂ۵ķ¶Î§¡£ÎªÊ²Ã´ÒªÐ´ÆªÎÄÕÂÄØ£¬ÊÇÒòΪÎÒǰһÕó×Ó±»ioctl¸ø¸ã»ì
      ÁË£¬Õ⼸Ìì²ÅŪÃ÷°×Ëü£¬ÓÚÊÇÔÚÕâÀïÇåÀíÒ»ÏÂÍ·ÄÔ¡£
      ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ