LinuxÄÚºËÉ豸ģÐÍ(1)
LinuxÄÚºËÉ豸ģÐÍ
·ÒëÕߣº¹ùÉÙ±¯
2009/12/01
ÔÎÄ£ºlinux/Documentation/driver-model/overview.txt
¸ÅÊö
~~~~
LinuxÄÚºËÇý¶¯Ä£ÐÍÊÇÕë¶ÔÄÚºË֮ǰËùÓв»Í¬µÄÇý¶¯Ä£Ð͵Äͳһ³éÏóÄ£ÐÍ¡£ËüµÄÄ¿µÄÊÇ,ͨ
¹ý½áºÏÒ»Ì×Êý¾ÝºÍ²Ù×÷¼¯µ½Ò»¸öÈ«¾Ö¿É·ÃÎʵÄÊý¾Ý½á¹¹À´Ó¶øÌí¼Ó»ùÓÚijÖÖÖ¸¶¨×ÜÏßµÄÉè
±¸ºÍÇŽÓÇý¶¯¡£
´«Í³µÄÇý¶¯Ä£ÐÍʵÏÖÁËÀàËÆÊ÷µÄÊý¾Ý½á¹¹(»òÕßÒ»¸öÁ´±íÊý¾Ý½á¹¹£©À´¿ØÖÆÉ豸,
¶øûÓÐÒ»¸ö¿çÔ½²»Í¬×ÜÏßÀàÐÍ£¬Í³Ò»µÄ³éÏóÊý¾Ý½á¹¹¡£
µ±Ç°µÄÇý¶¯Ä£ÐÍÌṩÁËÒ»¸öͨÓõÄͳһµÄÊý¾ÝÄ£ÐÍ£¬ÓÃÓÚÃèÊöÒ»¸ö×ÜÏߣ¬ÒÔ¼°¹ÒÔØÔÚ×ÜÏß
ÉϵÄÉ豸¡£Õâ¸öͳһµÄ×ÜÏßÄ£ÐÍ°üº¬ÁËÒ»Ì×ÿ¸ö×ÜÏ߶¼ÓµÓеÄͨÓÃÊôÐÔ£¬Ò»Ì×ͨÓõĻص÷
º¯Êý£¬ÀýÈçÔÚbus probing, bus shutdown, bus power management»Øµ÷º¯Êý
µÈµÈ¡£
ͨÓõÄÉ豸ºÍÇŽӽӿÚÌåÏÖÁËÏÖ´ú¼ÆËã»úµÄÄ¿±ê£º¼´ÎÞ·ìÉ豸“¼´²å¼´ÓÔµÄÄÜÁ¦£¬µçÔ´¹Ü
ÀíÄÜÁ¦£¬ºÍÈȲå°ÎÄÜÁ¦¡£ÌرðµØ£¬ÓÉIntelºÍMicrosoftÖ§ÅäµÄÄ£Ðͼٶ¨¼¸ºõËùÓеÄÉ豸ÔÚ
x86¼æÈݵÄ×ÜÏßÉÏÄܹ»ÒÔÉÏÊö·½Ê½¹¤×÷¡£µ±È»£¬²»ÊÇÿһ¸ö×ÜÏßÄܹ»Ö§³ÖËùÓеÄÕâЩ²Ù×÷
£¬µ«ÊǼ¸ºõ¾ø´ó²¿·ÖµÄ×ÜÏßÖ§³ÖÕâЩ²Ù×÷µÄ¾ø´ó²¿·Ö¡£
µ×²ã·ÃÎÊ
~~~~~~~~
ͨÓõÄÊý¾ÝÓòÒѾ´Óµ¥¸ö¾ßÌåµÄ×ÜÏß²ãÒÆÖõ½Ò»¸öͨÓõÄÊý¾Ý½á¹¹Àï¡£ÕâЩÓòÈÔÈ»±ØÐë
Äܹ»±»×ÜÏß²ã·ÃÎÊ£¬ÓÐʱҲ¿ÉÒÔ±»Ìض¨µÄÉ豸Çý¶¯·ÃÎÊ¡£
ÆäËûµÄ×ÜÏ߲㱻¹ÄÀøѧϰPCI×ÜÏß²ãµÄ×ö·¨£¬struct pci_dev¶¨ÒåÈçÏ£º
struct pci_dev {
...
struct device dev;
};
Ê×ÏȼÇס£¬ËüÊǾ²Ì¬·ÖÅäµÄ¡£ÕâÒâζ×ÅÔÚÉ豸̽²âʱֻ·ÖÅäÒ»´Î¡£Ò²ÐèÒª¼Çס£¬Õâ¸öÓò
(struct device dev)ÔÚstruct pci_devµÄβ²¿¡£ÕâÈÃÈËÃÇÀí½âÔÚÐèÒªbus driverºÍ
global driverÖ®¼ä½øÐÐת»»Ê±Ó¦µ±×öʲô£¬¼õÉÙÇл»ÐèÒªµÄ¿ªÏú¡£
(ÎÒµÄÀí½âÊÇ£¬ºÜ¼òµ¥£¬¾ÍÊÇÁ½¸öÊý¾Ý½á¹¹Ö®¼äͨ¹ýÖ¸ÕëÀ´²éÕÒ¶¨Î»)
PCI×ÜÏß²ãÍêÈ«Äܹ»×ÔÓɵطÃÎÊstruct deviceµÄ¸÷¸öÓò¡£ËüÁ˽âstruct pci_devµÄ½á¹¹£¬Ò²Ó¦
µ±Á˽âstruct deviceµÄ½á¹¹¡£¾ßÌåµÄPCIÉ豸Çý¶¯Ê¹ÓÃÁËеÄÇý¶¯Ä£ÐÍ£¬¾Í²»ÄÜÒ²²»Ó¦µ±
½Ó´¥struct deviceµÄ¸÷¸öÓò£¬³ý·ÇÓÐÒ»¸öÒª×öµÄÇ¿ÖÆÀíÓÉ¡£
ÕâÖÖ³éÏó×è°ÁËÔÚ¹ý¶É½×¶Î²»±ØÒªµÄÕóÍ´£¨ÎÒµÄÀí½â£¬Ö¸µÄÊÇÊý¾ÝÔÚ²»Í¬½á¹¹²ãÉϵĴ¦Àí
£©¡£Èç¹ûÒ»¸öÓòµÄÃû×ָıä»òÕßÒƳý£¬µ×²ãµÄÇý¶¯¾Í»áÔâµ½ÆÆ»µ¡£´ÓÁíÒ»·½Ãæ½²£¬Èç¹û½ö
ÓÐ×ÜÏ߲㣨·ÇÉ豸²ã£©·ÃÎÊstruct device£¬ÄÇôӦµ±Ö»ÓÐ×ÜÏ߲㷢Éú¸Ä±ä¡£
Óû§½Ó¿Ú
~~~~~~~~
½èÖúϵ
Ïà¹ØÎĵµ£º
Ò»¡¢ ¸Å¿ö
¡¡¡¡ÏµÍ³µÄÒýµ¼ºÍ³õʼ»¯ÊDzÙ×÷ϵͳʵÏÖ¿ØÖƵĵÚÒ»²½£¬Ò²ÊǼ¯ÖÐÌåÏÖϵͳÓÅÁÓµÄÖØÒª²¿·Ö¡£LINUX×÷Ϊһ¸öÃâ·ÑµÄ×¼UNIX²Ù×÷ϵͳ£¬ÔÚÖÚ¶àÒµÓà°®ºÃÕßÒÔ¼°Ð¡ÐÍÉÌÒµ´¦ÀíÊг¡±íÏÖ²»Ë×£¬³ÉΪ¼ÌWINDOWSϵÁкóµÄÁíÒ»¸öÖ÷Á÷¡£Á˽âLINUXϵͳµÄ³õʼ»¯£¬¶ÔÓÚ½øÒ»²½ÕÆÎÕUNIXϵͳÊÇÊ®·ÖÓаïÖúµÄ¡£
ͨ³££¬LINUXϵͳµÄ³õʼ»¯¿ÉÒÔ· ......
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Äں˵İüº¬Í·ÎļþÕÒ²»µ½¡£Òª½â¾ö´ËÎÊÌâÐèÒª° ......
ÔÎĵØÖ·£ºhttp://www.eetop.cn/blog/html/40/202640-8862.html
o: ±àÒëµÄÄ¿±êÎļþ
a: ¾²Ì¬¿â£¬Æäʵ¾ÍÊÇ°ÑÈô¸ÉoÎļþ´òÁ˸ö°ü
so: ¶¯Ì¬Á´½Ó¿â£¨¹²Ïí¿â£©
lo: ʹÓÃlibtool±àÒë³öµÄÄ¿±êÎļþ£¬Æäʵ¾ÍÊÇÔÚoÎļþÖÐÌí¼ÓÁËһЩÐÅÏ¢
la: ʹÓÃlibtool±àÒë³öµÄ¿âÎļþ£¬ÆäʵÊǸöÎı¾Îļþ£¬¼Ç¼ͬÃû¶¯Ì¬¿âºÍ¾²Ì¬¿âµÄÏà¹ØÐÅÏ¢
1 lib ......