ÈȲå°Î
ÓÐ 2 ¸ö²»Í¬½Ç¶ÈÀ´¿´´ýÈȲå°Î£º
´ÓÄں˽Ƕȿ´£¬ÈȲå°ÎÊÇÔÚÓ²¼þ¡¢Äں˺ÍÄÚºËÇý¶¯Ö®¼äµÄ½»»¥¡£
´ÓÓû§½Ç¶È¿´£¬ÈȲå°ÎÊÇÄں˺ÍÓû§¿Õ¼äÖ®¼ä£¬Í¨¹ýµ÷ÓÃÓû§¿Õ¼ä³ÌÐò£¨Èçhotplug¡¢udev ºÍ mdev£©µÄ½»»¥¡£ µ±ÐèҪ֪ͨÓû§Äں˷¢ÉúÁËijÖÖÈȲå°Îʼþʱ£¬Äں˲ŵ÷ÓÃÕâ¸öÓû§¿Õ¼ä³ÌÐò¡£
ÏÖÔڵļÆËã»úϵͳ£¬ÒªÇó Linux ÄÚºËÄܹ»ÔÚÓ²¼þ´ÓϵͳÖÐÔöɾʱ£¬¿É¿¿Îȶ¨µØÔËÐС£Õâ¾Í¶ÔÉ豸Çý¶¯×÷ÕßÔö¼ÓÁËѹÁ¦£¬ÒòΪÔÚËûÃDZØÐë´¦ÀíÒ»¸öºÁÎÞÕ÷Õ×µØÍ»È»³öÏÖ»òÏûʧµÄÉ豸¡£
ÈȲå°Î¹¤¾ß
µ±Óû§ÏòϵͳÌí¼Ó»òɾ³ýÉ豸ʱ£¬Äں˻á²úÉúÒ»¸öÈȲå°Îʼþ£¬²¢ÔÚ /proc/sys/kernel/hotplug ÎļþÀï²éÕÒ´¦ÀíÉ豸Á¬½ÓµÄÓû§¿Õ¼ä³ÌÐò¡£Õâ¸öÓû§¿Õ¼ä³ÌÐòÖ÷ÒªÓÐ
hotplug:Õâ¸ö³ÌÐòÊÇÒ»¸öµäÐ굀 bash ½Å±¾£¬Ö»´«µÝÖ´ÐÐȨ¸øÒ»ÏµÁÐλÓÚ /etc/hot-plug.d/ Ŀ¼Ê÷µÄ³ÌÐò¡£hotplug ½Å±¾ËÑË÷ËùÓеÄÓÐ .hotplug ºó׺µÄ¿ÉÄܶÔÕâ¸öʼþ½øÐд¦ÀíµÄ³ÌÐò²¢µ÷ÓÃËüÃÇ, ²¢´«µÝ¸øËüÃÇÐí¶à²»Í¬µÄÒѾ±»ÄÚºËÉèÖõĻ·¾³±äÁ¿¡£(»ù±¾Òѱ»ÌÔÌ£¬¾ßÌåÄÚÈÝÇë²ÎÔÄ¡¶LDD3¡·)
ÒòΪhotplugÏÖÔÚÒ²ÔÚ±»ÂýÂýµØÌÔÌ£¬udev²»ÔÙÒÀÀµhotplugÁË£¬ËùÒÔÕâÀï²»ÔÙ½éÉÜ£»
udev½Ïmdev¸´ÔÓ£¬²»Ì«ÊʺÏǶÈëʽʹÓᣣ¨±¾ÈËÒ²ÓÐ×öudevµÄʵÑ飬½»²æ±àÒëÊÇͨ¹ýÁË£¬µ«ÊÇʹÓÃÉÏÓÐÎÊÌ⣬ûÓÐʵÏ֯书ÄÜ¡£Ò²ÐíÊÇÎÒµÄÎļþϵͳû×öºÃ£¬ÒÔºóÓÐʱ¼äÔÙÑо¿ºÍд¼Ç¼¡£Óгɹ¦¸ßÈ˵Ä֪ͨһÉù£¬½»Á÷һϾÑé¡£^_^лл£¡£©£»
mdev¼òµ¥Ò×Ó㬱ȽÏÊʺÏǶÈëʽϵͳ£¬ÊµÑé³É¹¦¡£ÒÔÏÂÏêϸ½éÉÜmdevµÄʹÓá£
firmware
Ó²¼þÊг¡µÄ¼¤ÁÒ¾ºÕù, ʹµÃÖÆÔìÉÌÁ¬Ò»µãÓÃÓÚÉ豸¿ØÖƹ̼þµÄ EEPROM µÄ³É±¾¶¼²»Ô¸Ò⻨·Ñ¡£Òò´Ë¹Ì¼þÒ»°ã·¢²¼ÔÚºÍÓ²¼þÅäÌ×µÄÇý¶¯°üÖУ¬ÓɲÙ×÷ϵͳ£¨ÆäʵÊÇÇý¶¯³ÌÐò£©¸ºÔð´«Ë͹̼þµ½É豸¡£
Äں˹̼þ½Ó¿Ú
»ñÈ¡¹Ì¼þµÄÕýÈ··½·¨Êǵ±ÐèҪʱ´ÓÓû§¿Õ¼ä»ñÈ¡Ëü¡£Ò»¶¨²»ÒªÊÔͼ´ÓÄں˿ռäÖ±½Ó´ò¿ª°üº¬¹Ì¼þµÄÎļþ£¬ÄÇÊÇÒ»¸öÒ׳ö´íµÄ²Ù×÷, ÒòΪËü°Ñ²ßÂÔ(ÒÔÎļþÃûµÄÐÎʽ)°üº¬½øÁËÄںˡ£ÕýÈ·µÄ·½·¨ÊÇʹÓù̼þ½Ó¿Ú:
×¢Ò⣺ҪʹÓÃfirmware£¬±ØÐëÒªÔÚÅäÖÃÄÚºËʱѡÉÏ£º
Device Drivers --->
Generic Driver Options --->
<*> Userspace firmware loading support
·ñÔò»á³öÏÖ: Unknown symbol release_firmware ºÍ: Unknown symbol request_firmware µÄ´íÎó¡£
¹Ì¼þ½Ó¿Ú¹¤×÷ÔÀí
¹Ì¼þ×ÓϵͳʹÓà sysfs ºÍÈȲå°Î»úÖÆ¹¤×÷¡£µ±µ÷Óà request_firmwareʱ, º¯Êý½«ÔÚ /sys/class/firmware Ï´´½¨Ò»¸öÒÔÉ豸ÃûΪĿ¼ÃûµÄÐÂĿ¼£¬ÆäÖаüº¬ 3 ¸öÊôÐÔ:
loading £ºÕâ¸öÊôÐÔÓ¦µ±±»¼ÓÔØ¹Ì¼þµÄÓû§¿Õ¼ä½ø³ÌÉèÖÃΪ 1¡£µ±¼ÓÔØÍê±Ï, Ëü½«±»ÉèΪ 0¡£±»ÉèΪ -1 ʱ£¬½«ÖÐÖ¹¹Ì¼þ¼ÓÔØ¡£
data £ºÒ»¸öÓÃÀ´½ÓÊչ̼þÊý¾ÝµÄ¶þ½øÖÆÊôÐÔ¡£ÔÚÉèÖà loading Ϊ1ºó, Óû§¿Õ¼ä½ø³Ì½«¹Ì¼þдÈëÕâ¸öÊôÐÔ¡£
device £ºÒ»¸öÁ´½Óµ½ /sys/devices ÏÂÏà¹ØÈë¿ÚÏîµÄ·ûºÅÁ´½Ó¡£
Ò»µ©´´½¨ÁË sysfs Èë¿ÚÏî, Äں˽«ÎªÉ豸²úÉúÒ»¸öÈȲå°Îʼþ£¬²¢´«µÝ°üÀ¨±äÁ¿ FIRMWARE µÄ»·¾³±äÁ¿¸ø´¦ÀíÈȲå°ÎµÄÓû§¿Õ¼ä³ÌÐò¡£FIRMWARE ±»ÉèÖÃΪÌṩ¸ø request_firmware µÄ¹Ì¼þÎļþÃû¡£
Óû§¿Õ¼ä³ÌÐò¶¨Î»¹Ì¼þÎļþ, ²¢½«Æä¿½±´µ½ÄÚºËÌṩµÄ¶þ½øÖÆÊôÐÔ£»ÈôÎÞ·¨¶¨Î»Îļþ, Óû§¿Õ¼ä³ÌÐòÉèÖà loading ÊôÐÔΪ -1¡£
Èô¹Ì¼þÇëÇóÔÚ 10 ÃëÄÚûÓб»·þÎñ, ÄÚºË¾Í·ÅÆú²¢·µ»ØÒ»¸öʧ°Ü״̬¸øÇý¶¯¡£³¬Ê±ÖÜÆÚ¿Éͨ¹ý sysfs ÊôÐÔ /sys/class/firmware/timeout ÊôÐԸı䡣
request_firmware ½Ó¿ÚÔÊÐíʹÓÃÇý¶¯·¢²¼É豸¹Ì¼þ¡£µ±ÕýÈ·µØ¼¯³É½øÈȲå°Î»úÖÆºó, ¹Ì¼þ¼ÓÔØ×ÓϵͳÔÊÐíÉ豸²»ÊܸÉÈŵع¤×÷¡£ÏÔÈ»ÕâÊÇ´¦ÀíÎÊÌâµÄ×îºÃ·½·¨£¬µ«¹Ì¼þÊܰæÈ¨±£»¤£¬Ð¡ÐÄÎ¥·´°æÈ¨·¨¡£