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

LinuxÏÂUSB suspend/resumeÔ´Âë·ÖÎö

Linux
ÏÂ
USB
suspend/resume
Ô´Âë·ÖÎö
Author:aaron
 
±¾ÎÄÖ÷Òª´Ó×Ô¼º¿ª·¢µÄÒ»¸ö
USB
Çý¶¯µÄÀý×ÓÀ´ÉîÈë½²½â
linux
ÄÚºËÊÇÈçºÎÖ§³Ö
USB
É豸µÄÐÝÃߺͻ½ÐѵÄ
,
×î½üÎÒÔÚΪÎÒÃǹ«Ë¾µÄÒ»¸öÄ£¿éд
linux
ϵÄÇý¶¯
,
ÆäÖÐÖ®Ò»¾ÍÊÇÒªÖ§³Ö
USB
µÄÐÝÃß»½ÐÑÎÊÌâ
,
ʵ¼ÊÉÏ
linux
Äں˶Ô
USB
µÄÕâ¸ö¹¦ÄܵÄÖ§³Ö»¹ÊDZȽÏеÄ
,
Ò²¾ÍÊÇ×î½ü¼¸ÄêµÄÊÂ
.
 
Ò»
 
´ò¿ª
/
¹Ø±Õ
USB suspend/resuem
¹¦ÄÜ
ÒªÈÃ
linux
Ö§³Ö
usb suspend/resuem,
µ±È»ÏÈÒª°ÑÄÚºËÖÐÕâ¸ö¹¦ÄܵĴúÂë±àÒë½øÈ¥¿©
,
¼´ÒªÔÚ
make menuconfig
ʱ´ò¿ª¶ÔÕâÏÄܵÄÖ§³Ö
.
µÚÒ»¸ö´ò¿ªµÄÏîÊÇ
CONFIG_PM,
¼´Õû¸öϵͳµÄµçÔ´¹ÜÀí
, USB suspend/resuem
Ö»ÊÇÕû¸öµçÔ´¹ÜÀíµÄÒ»¸ö×Ôϵͳ
.
Ö»Óдò¿ªÁËÕâ¸ö¹¦ÄܲÅÄÜÈÃ
USB
µÄÕâ¸öÌØÐÔÄÜÓÃ
.
µÚ¶þ¸öÒª´ò¿ªµÄµ±ÈÃÊÇ
USB
×Ô¼ºµÄ¿ª¹ØÁË
CONFIG_USB_SUSPEND.
¼´´ò¿ªÁËÕâ¸ö¹¦ÄܺóÎÒÃÇÖ»ÒªÔÚÎÒÃÇ×Ô¼ºµÄÇý¶¯Àï¼òµ¥µ÷ÓÃÏÂ
USB core
ÌṩµÄº¯Êý½Ó¿Ú¾ÍÄÜʹÎÒÃǵÄÉ豸ÐÝÃßÁË
.
 
¶þ

Ô´Âë·ÖÎö
ÔÚ
2.6.19
֮ǰµÄ´úÂëÖв»Ö§³Ö
USB
×Ô¶¯ÐÝÃߵŦÄÜ
,
ËüÖ»ÄÜÊÇÔÚ
host
ÐÝÃßÇé¿öϲŻáÈÃ
USB
É豸ҲÐÝÃß
.
ËùÒÔÈç¹ûÎÒÃÇÒªÈÃ×Ô¼ºµÄÉ豸ÔÚ²»Ê¹ÓõÄÇé¿öϾÍÐÝÃ߾͵Ã×Ô¼ºÌí¼ÓÏàÓ¦µÄ´úÂë
,
ÐÒÔ˵ÄÊÇÎÒÃDz»ÐèÒªÌí¼Ó¸´ÔӵĴúÂë¾ÍÄÜ´ïµ½Õâ¸öÄ¿µÄ
,
ÒòΪ
USB core
ÀïÌṩÁ˼¸¸ö½Ó¿Ú¿ÉÒÔÖ±½ÓÈÃÎÒÃǵÄÇý¶¯µ÷ÓÃÒÔ°ÑÎÒÃǵÄÉ豸ÖÃÈëÐÝÃß״̬
.
ÏÂÃæÎÒÃÇÒÔ
2.6.16
µÄ´úÂëΪÀýÀ´·ÖÎöÏÂ
USB
É豸ÊÇÈçºÎ½øÈëÐÝÃßµÄ
.
Drivers\usr\core\hub.c:
int usb_suspend_device(struct usb_device *udev)
{
#ifdef     
CONFIG_USB_SUSPEND
      
if (udev->state ==
USB_STATE_NOTATTACHED)
             
return -ENODEV;
      
return
__usb_suspend_device(udev, udev->portnum);
#else
      
/* NOTE: 
udev->state unchanged, it's not lying ...
*/
      
udev->dev.power.power_state
= PMSG_SUSPEND;
      
return 0;
#endif
}
û´í
,
ÔÚÎÒÃǵ


Ïà¹ØÎĵµ£º

ÈçºÎÀ´ÅжÏÄãµÄLinuxϵͳ»úÆ÷ÊÇ·ñ±»ºÚ£¿


Ë׳Ɠ½Å±¾Ð¡¹í”µÄ¼Ò»ïÊÇÊôÓÚÄÇÖÖºÜÔã¸âµÄºÚ¿Í£¬ÒòΪ»ù±¾ÉÏËûÃÇÖеÄÐí¶àºÍ´ó¶àÊýÈ˶¼ÊÇÈç´ËµÄûÓм¼ÇÉ¡£¿ÉÒÔÕâÑù˵£¬Èç¹ûÄã°²×°ÁËËùÓÐÕýÈ·µÄ²¹¶¡£¬ÓµÓо­¹ý²âÊԵķÀ»ðǽ£¬²¢ÇÒÔÚ¶à¸ö¼¶±ð¶¼¼¤»îÁËÏȽøµÄÈëÇÖ¼ì²âϵͳ£¬ÄÇôֻÓÐÔÚÒ»ÖÖÇé¿öÏÂÄã²Å»á±»ºÚ£¬ÄǾÍÊÇ£¬ÄãÌ«ÀÁÁËÒÔÖÁûȥ×ö¸Ã×öµÄÊÂÇ飬ÀýÈ磬°²×°BINDµÄ ......

LinuxϵͳÏÂÄÚ´æÉêÇëÓ¦Óõķ½·¨Ô­Àí×ܽá

1. µØÖ·¿Õ¼äµÄ¹ÜÀí
¡¡¡¡ÎïÀíµØÖ·¶¼ÊÇÓÐÄں˹ÜÀíµÄ£¬ node-->zone-->mem_map-->page, ËùÓеÄÎïÀíÒ³Ã涼ÔÚmem_mapÊý×éÖеÄÒ³Ö¡¶ÔÓ¦£¬ È»ºó²»Í¬µÄpageÓзÖΪDMA£¬normal£¬highmemÈý¸özone¡£
¡¡¡¡ÄÚºËÏßÐÔµØÖ·¿Õ¼ä£¬ ʵ¼ÊÉÏÖ»ÊǵͶËÄÚ´æ²ÅÓÐÏßÐÔµØÖ·£¬0---896MB²¿·Ö¡£
¡¡¡¡ÄÚºËÐéÄâµØÖ·£¬ µÍ¶ËÄÚ´æµÄÐéÄâµØÖ·ÓëÏ ......

Linux ÐéÄâÊó±ê£¬¼üÅÌ Ö®Ò»¡£

Linux ÓÐ×Ô¼ºµÄ input ×Óϵͳ£¬¿ÉÒÔͳһ¹ÜÀíÊó±êºÍ¼üÅÌʼþ¡£
»ùÓÚÊäÈë×Óϵͳ ʵÏÖµÄ uinput ¿ÉÒÔ·½±ãµÄÔÚÓû§¿Õ¼äÄ£ÄâÊó±êºÍ¼üÅÌʼþ¡£
µ±È»£¬Ò²¿ÉÒÔ×Ô¼ºÔìÂÖ×Ó£¬ ×öÒ»¸ö×Ö·ûÉ豸½ÓÊÕÓû§ÊäÈ룬¸ù¾ÝÊäÈ룬ͶµÝ input ʼþ¡£
»¹ÓÐÒ»ÖÖ·½Ê½¾ÍÊÇÖ±½Ó Íù evnent ÀïдÈëÊý¾Ý£¬ ¶¼¿ÉÒÔ´ïµ½¿ØÖÆÊó±ê¼üÅ̵ŦÄÜ¡£
±¾ÆªÎÄÕ¾ÍÊÇ ......

£Ûת£ÝLinuxÃæÊÔÌâ

from£º http://blog.chinaunix.net/u3/101356/showart.php?id=2120288
Ò»£®Ìî¿ÕÌ⣺
1. ÔÚLinux
ϵͳ
ÖУ¬ÒÔ
Îļþ
·½Ê½·ÃÎÊÉ豸 ¡£
2. LinuxÄÚºËÒýµ¼Ê±£¬´ÓÎļþ/etc/fstab
ÖжÁÈ¡Òª¼ÓÔصÄÎļþϵͳ
¡£
3. LinuxÎļþϵͳÖÐÿ¸öÎļþÓÃi½Úµã
À´±êʶ¡£
4. È«²¿´ÅÅÌ¿éÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪÒýµ¼¿é ¡¢×¨ÓÃ¿é ¡¢ i½Úµã ......

ÎÒÕýÔÚʹÓõÄlinux¹¤¾ß

ÕæÕý½Ó´¥linuxµ½ÏÖÔÚ½«½ü1ÄêÁË£¬ÓÉ×î³õµÄÃÅÍ⺺£¬µ½ÏÖÔڱȽϵÃÐÄÓ¦ÊÖµÄʹÓÃlinux£¬Íê³É¼¸ºõËùÓй¤×÷£¬°üÀ¨³ÌÐò¿ª·¢¡¢±¾µØϵͳά»¤¡¢½»Á÷¡¢ÓéÀֵȹ¦ÄÜ£¬ËãÊÇÊÕ»ñÆÄ·áÁË¡£
×ܽáÁËÒ»ÏÂ×Ô¼ºÓÃÆðÀ´¸Ð¾õ²»´íµÄlinux¹¤¾ß£º(²»·Ö˳Ðò£¬linux·¢ÐаæÓõÄÊÇfedora 10)
1. ±à¼­Æ÷: vim (Ààuinxƽ̨ÉϹ«ÈÏ×î¾­µäµÄ£¬Ã»»°Ëµ)
2. ³ÌÐò¿ª ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ