Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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
}
û´í
,
ÔÚÎÒÃǵ


Ïà¹ØÎĵµ£º

µÚ2ÕÂ Linux°²×°

µÚ2Õ Linux°²×°Á˽âÁËLinuxµÄÀúÊ·ºÍ·¢Õ¹¹ý³Ì£¬¶ÁÕß´ó¸ÅÒѾ­¼±ÇеØÏëÒª°ÑLinux°²×°µ½×Ô¼ºµÄ¼ÆËã»úÉÏ¡£ÎÞËùη¾åµÄ¶ÁÕß¿ÉÄÜÒѾ­ÔÚÔĶÁ±¾ÕÂ֮ǰ¾Í×ö¹ýÕâÑùµÄ³¢ÊÔ¡£ÎÞÂÛÕâЩ³¢ÊÔ×îÖÕÊdzɹ¦»¹ÊÇʧ°Ü£¬¾Í´ÓÕâÀ↑ʼLinuxÖ®Âðɣ¡ ......

2.2 °²×°LinuxÖÁÓ²ÅÌ

2.2  °²×°LinuxÖÁÓ²ÅÌ
×¼±¸¹¤×÷Íê³ÉÖ®ºó£¬¾Í¿ÉÒÔ×ÅÊÖ½«Linux°²×°µ½Ó²ÅÌÖÐÁË¡£Èç½ñLinuxµÄ°²×°¹ý³ÌÒѾ­·Ç³£“ɵ¹Ï”»¯£¬Ö»ÐèÒªÇáµã¼¸ÏÂÊó±ê£¬¾ÍÄܹ»Íê³ÉÕû¸öϵͳµÄ°²×°¡£¾¡¹ÜÈç´Ë£¬ÕâÀïÈÔÈ»ÏêϸµØ¸ø³ö°²×°¹ý³ÌµÄÿһ²½¡£Í¬Ê±£¬¶ÔÓÚºÍWindows´æÔÚÏÔÖøÇø±ðµÄµØ·½£¬ÈçÓ²ÅÌ·ÖÇøµÄ×éÖ¯·½Ê½£¬±¾½Ú½«×öÏêϸµÄÌÖÂÛ¡£ ......

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


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

linux framebuffer ѧϰ±Ê¼ÇÒ»£¨»ù´¡ÖªÊ¶£©

ARGB8888
32λɫ,ARGB8888±íʾARGB¸÷´ú±í8룬A±íʾ͸Ã÷¶È£¬µ±ÎªffʱΪ·Ç͸Ã÷£¬RGB·Ö±ðΪºìÂÌÀ¶£¬ff±íʾ×îŨ¡£
ARGB1555
16λɫ 1 λ±íʾ ͸Ã÷¶È£¬ Ö»ÄÜÏÔʾÁ½ÖÖ״̬£¬Í¸Ã÷ºÍ·Ç͸Ã÷¡£
¡¾Ê²Ã´ÊÇFrameBuffer¡¿
FrameÖ¡£ºÄãËù¿´µ½µÄÆÁÄ»µÄͼÏñ£¬»òÕßÔÚÒ»¸ö´°¿ÚÖеÄͼÏñ£¬¾Í½ÐÒ»Ö¡¡£
Buffer»º³å£ºÒ»¶ÎRAM£¬ÓÃÀ´ÔÝ´æÍ¼ÏñÊý ......

Ò»¸öÅ©Ãñ¹¤Ñ§Ï°LINUXÄں˵ļèÐÁÀú³Ì

´ó¼ÒºÃ,ÎÒÏÈ×ÔÎÒ½éÉÜ,ÎÒ26,,ÖÐѧ±ÏÒµ,À´Ö±ÖØÔÖÇøËÄ´¨µÂÑô,ÏÖÔÚÔڳɶ¼Ò»Ð©½¨Öþ
¹¤µØ´òС¹¤Î¬³ÖÉú¼Æ,ÓÉÓÚÆ½Ê±Ï²»¶¿´Êé,6Äêǰ,ÎÒÔÚÒ»¸öµØÌ¯ÉÏ¿´Êéʱ,Óöµ½ÁËÒ»±¾,
CÓïÑÔ³ÌÐòÉè¼Æ,´Ó´Ëϲ»¶ÉÏÁ˱à³Ì,¹ýºó¾ÍÊÇ..°×ÌìÔÚ¹¤µØ¸É»î,ÍíÉÏѧϰ±à³Ì,
ÒÔºó,ÎÒÕâ·½ÃæµÄ֪ʶÔö¶àÁË.,,,

ѧϰÁË,<<Êý¾Ý½á¹¹> > ºÍ<<8 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ